@kensio/yulin 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +2 -2
  2. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
  3. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +10 -6
  4. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
  5. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
  6. package/dist/service/aws/factory/sim-aws-account-service-cache.js +2 -0
  7. package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
  8. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.d.ts +2 -0
  9. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.d.ts.map +1 -1
  10. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.js +15 -1
  11. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.js.map +1 -1
  12. package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.d.ts +27 -0
  13. package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.d.ts.map +1 -0
  14. package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.js +44 -0
  15. package/dist/service/cloudformation/template/condition/sim-cfn-condition-comparison.js.map +1 -0
  16. package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.d.ts +36 -0
  17. package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.d.ts.map +1 -0
  18. package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.js +68 -0
  19. package/dist/service/cloudformation/template/condition/sim-cfn-condition-evaluator.js.map +1 -0
  20. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +45 -0
  21. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts.map +1 -0
  22. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +80 -0
  23. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js.map +1 -0
  24. package/dist/service/cloudformation/template/condition/sim-cfn-conditions.d.ts +28 -0
  25. package/dist/service/cloudformation/template/condition/sim-cfn-conditions.d.ts.map +1 -0
  26. package/dist/service/cloudformation/template/condition/sim-cfn-conditions.js +29 -0
  27. package/dist/service/cloudformation/template/condition/sim-cfn-conditions.js.map +1 -0
  28. package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.d.ts +46 -0
  29. package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.d.ts.map +1 -0
  30. package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.js +94 -0
  31. package/dist/service/cloudformation/template/condition/sim-cfn-resource-conditions.js.map +1 -0
  32. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +0 -1
  33. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts.map +1 -1
  34. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +2 -14
  35. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js.map +1 -1
  36. package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.d.ts +31 -0
  37. package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.d.ts.map +1 -0
  38. package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.js +52 -0
  39. package/dist/service/cloudformation/template/node/fn/if/sim-cfn-fn-if.js.map +1 -0
  40. package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.d.ts +39 -0
  41. package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.d.ts.map +1 -0
  42. package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.js +82 -0
  43. package/dist/service/cloudformation/template/node/fn/select/sim-cfn-fn-select.js.map +1 -0
  44. package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.d.ts +31 -0
  45. package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.d.ts.map +1 -0
  46. package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.js +45 -0
  47. package/dist/service/cloudformation/template/node/fn/split/sim-cfn-fn-split.js.map +1 -0
  48. package/dist/service/cloudformation/template/node/sim-cfn-list.d.ts +1 -1
  49. package/dist/service/cloudformation/template/node/sim-cfn-list.d.ts.map +1 -1
  50. package/dist/service/cloudformation/template/node/sim-cfn-list.js +3 -2
  51. package/dist/service/cloudformation/template/node/sim-cfn-list.js.map +1 -1
  52. package/dist/service/cloudformation/template/node/sim-cfn-object.d.ts.map +1 -1
  53. package/dist/service/cloudformation/template/node/sim-cfn-object.js +5 -1
  54. package/dist/service/cloudformation/template/node/sim-cfn-object.js.map +1 -1
  55. package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.d.ts +19 -0
  56. package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.d.ts.map +1 -0
  57. package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.js +33 -0
  58. package/dist/service/cloudformation/template/parse/fn/if/sim-cfn-fn-if-parser.js.map +1 -0
  59. package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.d.ts +26 -0
  60. package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.d.ts.map +1 -0
  61. package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.js +35 -0
  62. package/dist/service/cloudformation/template/parse/fn/select/sim-cfn-fn-select-parser.js.map +1 -0
  63. package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.d.ts +3 -0
  64. package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.d.ts.map +1 -1
  65. package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.js +18 -0
  66. package/dist/service/cloudformation/template/parse/fn/sim-cfn-function-parser.js.map +1 -1
  67. package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.d.ts +25 -0
  68. package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.d.ts.map +1 -0
  69. package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.js +36 -0
  70. package/dist/service/cloudformation/template/parse/fn/split/sim-cfn-fn-split-parser.js.map +1 -0
  71. package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.d.ts +14 -4
  72. package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.d.ts.map +1 -1
  73. package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.js +7 -5
  74. package/dist/service/cloudformation/template/resolve/sim-cfn-resolve-context.js.map +1 -1
  75. package/dist/service/cloudformation/template/sim-cfn-template-body-validator.d.ts.map +1 -1
  76. package/dist/service/cloudformation/template/sim-cfn-template-body-validator.js +4 -0
  77. package/dist/service/cloudformation/template/sim-cfn-template-body-validator.js.map +1 -1
  78. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +14 -0
  79. package/dist/service/cloudformation/template/sim-cfn-template.d.ts.map +1 -1
  80. package/dist/service/cloudformation/template/sim-cfn-template.js +44 -12
  81. package/dist/service/cloudformation/template/sim-cfn-template.js.map +1 -1
  82. package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.d.ts +20 -0
  83. package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.d.ts.map +1 -1
  84. package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.js +32 -2
  85. package/dist/service/cloudformation/template/value/sim-cfn-template-value-resolver.js.map +1 -1
  86. package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.d.ts +11 -0
  87. package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.d.ts.map +1 -0
  88. package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.js +21 -0
  89. package/dist/service/cloudformation/template/value/sim-cfn-unresolved-expression.js.map +1 -0
  90. package/dist/service/cloudformation/template/value/sim-cfn-value-path.d.ts +22 -0
  91. package/dist/service/cloudformation/template/value/sim-cfn-value-path.d.ts.map +1 -0
  92. package/dist/service/cloudformation/template/value/sim-cfn-value-path.js +92 -0
  93. package/dist/service/cloudformation/template/value/sim-cfn-value-path.js.map +1 -0
  94. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +7 -0
  95. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts.map +1 -1
  96. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
  97. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  98. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +1 -1
  99. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  100. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +10 -1
  101. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts.map +1 -1
  102. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +21 -1
  103. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js.map +1 -1
  104. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.d.ts +24 -0
  105. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.d.ts.map +1 -0
  106. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.d.ts +7 -0
  107. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.d.ts.map +1 -0
  108. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.js +38 -0
  109. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.factory.js.map +1 -0
  110. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.js +2 -0
  111. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-dispatcher.js.map +1 -0
  112. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +17 -0
  113. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts.map +1 -0
  114. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +37 -0
  115. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js.map +1 -0
  116. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +38 -0
  117. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts.map +1 -0
  118. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +45 -0
  119. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js.map +1 -0
  120. package/dist/service/cloudfront/sim-cloudfront.d.ts +3 -0
  121. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  122. package/dist/service/cloudfront/sim-cloudfront.js +4 -1
  123. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  124. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts +4 -0
  125. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts.map +1 -1
  126. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js +2 -0
  127. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js.map +1 -1
  128. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.d.ts +6 -0
  129. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.d.ts.map +1 -1
  130. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js +11 -0
  131. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js.map +1 -1
  132. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts +6 -5
  133. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts.map +1 -1
  134. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js +6 -16
  135. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js.map +1 -1
  136. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts +4 -4
  137. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts.map +1 -1
  138. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js +4 -9
  139. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js.map +1 -1
  140. package/dist/service/dynamodb/command/table/table.command.d.ts +2 -1
  141. package/dist/service/dynamodb/command/table/table.command.d.ts.map +1 -1
  142. package/dist/service/dynamodb/command/table/table.types.d.ts +4 -7
  143. package/dist/service/dynamodb/command/table/table.types.d.ts.map +1 -1
  144. package/dist/service/dynamodb/sim-dynamodb.d.ts +42 -60
  145. package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
  146. package/dist/service/dynamodb/sim-dynamodb.js +48 -60
  147. package/dist/service/dynamodb/sim-dynamodb.js.map +1 -1
  148. package/dist/service/dynamodb/stream/sim-dynamodb-item-change.d.ts +34 -0
  149. package/dist/service/dynamodb/stream/sim-dynamodb-item-change.d.ts.map +1 -0
  150. package/dist/service/dynamodb/stream/sim-dynamodb-item-change.js +2 -0
  151. package/dist/service/dynamodb/stream/sim-dynamodb-item-change.js.map +1 -0
  152. package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.d.ts +42 -0
  153. package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.d.ts.map +1 -0
  154. package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.js +35 -0
  155. package/dist/service/dynamodb/stream/sim-dynamodb-stream-activity.js.map +1 -0
  156. package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.d.ts +22 -0
  157. package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.d.ts.map +1 -0
  158. package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.js +30 -0
  159. package/dist/service/dynamodb/stream/sim-dynamodb-stream-arn.js.map +1 -0
  160. package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.d.ts +22 -0
  161. package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.d.ts.map +1 -0
  162. package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.js +27 -0
  163. package/dist/service/dynamodb/stream/sim-dynamodb-stream-images.js.map +1 -0
  164. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.d.ts +15 -0
  165. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.d.ts.map +1 -0
  166. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.js +25 -0
  167. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-keys.js.map +1 -0
  168. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.d.ts +11 -0
  169. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.d.ts.map +1 -0
  170. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.js +74 -0
  171. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record-size.js.map +1 -0
  172. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.d.ts +49 -0
  173. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.d.ts.map +1 -0
  174. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.js +60 -0
  175. package/dist/service/dynamodb/stream/sim-dynamodb-stream-record.js.map +1 -0
  176. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.d.ts +18 -0
  177. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.d.ts.map +1 -0
  178. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.js +31 -0
  179. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.js.map +1 -0
  180. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.d.ts +39 -0
  181. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.d.ts.map +1 -0
  182. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.js +64 -0
  183. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.js.map +1 -0
  184. package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.d.ts +28 -0
  185. package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.d.ts.map +1 -0
  186. package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.js +30 -0
  187. package/dist/service/dynamodb/stream/sim-dynamodb-stream-specification.js.map +1 -0
  188. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.d.ts +26 -0
  189. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.d.ts.map +1 -0
  190. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.js +29 -0
  191. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.js.map +1 -0
  192. package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.d.ts +13 -0
  193. package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.d.ts.map +1 -0
  194. package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.js +48 -0
  195. package/dist/service/dynamodb/stream/sim-dynamodb-stream-update.js.map +1 -0
  196. package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.d.ts +10 -0
  197. package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.d.ts.map +1 -0
  198. package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.js +38 -0
  199. package/dist/service/dynamodb/stream/sim-dynamodb-stream-view-type.js.map +1 -0
  200. package/dist/service/dynamodb/stream/sim-dynamodb-stream.d.ts +74 -0
  201. package/dist/service/dynamodb/stream/sim-dynamodb-stream.d.ts.map +1 -0
  202. package/dist/service/dynamodb/stream/sim-dynamodb-stream.js +82 -0
  203. package/dist/service/dynamodb/stream/sim-dynamodb-stream.js.map +1 -0
  204. package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.d.ts +24 -0
  205. package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.d.ts.map +1 -0
  206. package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.js +2 -0
  207. package/dist/service/dynamodb/stream/sim-dynamodb-stream.types.js.map +1 -0
  208. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.d.ts +31 -0
  209. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.d.ts.map +1 -0
  210. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.js +45 -0
  211. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-table.factory.js.map +1 -0
  212. package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.d.ts +97 -0
  213. package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.d.ts.map +1 -0
  214. package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.js +135 -0
  215. package/dist/service/dynamodb/stream/sim-dynamodb-table-stream.js.map +1 -0
  216. package/dist/service/dynamodb/table/sim-dynamodb-table-description.d.ts.map +1 -1
  217. package/dist/service/dynamodb/table/sim-dynamodb-table-description.js +6 -0
  218. package/dist/service/dynamodb/table/sim-dynamodb-table-description.js.map +1 -1
  219. package/dist/service/dynamodb/table/sim-dynamodb-table-items.d.ts +33 -1
  220. package/dist/service/dynamodb/table/sim-dynamodb-table-items.d.ts.map +1 -1
  221. package/dist/service/dynamodb/table/sim-dynamodb-table-items.js +46 -1
  222. package/dist/service/dynamodb/table/sim-dynamodb-table-items.js.map +1 -1
  223. package/dist/service/dynamodb/table/sim-dynamodb-table-storage.d.ts +95 -0
  224. package/dist/service/dynamodb/table/sim-dynamodb-table-storage.d.ts.map +1 -0
  225. package/dist/service/dynamodb/table/sim-dynamodb-table-storage.js +120 -0
  226. package/dist/service/dynamodb/table/sim-dynamodb-table-storage.js.map +1 -0
  227. package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts +2 -0
  228. package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts.map +1 -1
  229. package/dist/service/dynamodb/table/sim-dynamodb-table-update.js +11 -6
  230. package/dist/service/dynamodb/table/sim-dynamodb-table-update.js.map +1 -1
  231. package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts +33 -70
  232. package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts.map +1 -1
  233. package/dist/service/dynamodb/table/sim-dynamodb-table.js +50 -93
  234. package/dist/service/dynamodb/table/sim-dynamodb-table.js.map +1 -1
  235. package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts +6 -3
  236. package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts.map +1 -1
  237. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.d.ts.map +1 -1
  238. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.js +5 -1
  239. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.js.map +1 -1
  240. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +5 -2
  241. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts.map +1 -1
  242. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +13 -8
  243. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js.map +1 -1
  244. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts +4 -0
  245. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts.map +1 -1
  246. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +32 -21
  247. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js.map +1 -1
  248. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts +1 -6
  249. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts.map +1 -1
  250. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js +1 -22
  251. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js.map +1 -1
  252. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts +2 -1
  253. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts.map +1 -1
  254. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +3 -2
  255. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js.map +1 -1
  256. package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.d.ts +17 -0
  257. package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.d.ts.map +1 -0
  258. package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.js +46 -0
  259. package/dist/service/lambda/event-source/poll/sim-lambda-batch-item-failures.js.map +1 -0
  260. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.d.ts +39 -0
  261. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.d.ts.map +1 -0
  262. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.js +28 -0
  263. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-batch-response.js.map +1 -0
  264. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts +33 -7
  265. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts.map +1 -1
  266. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js +7 -6
  267. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js.map +1 -1
  268. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.d.ts +25 -0
  269. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.d.ts.map +1 -0
  270. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.js +16 -0
  271. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.js.map +1 -0
  272. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts +9 -69
  273. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts.map +1 -1
  274. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js +1 -135
  275. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js.map +1 -1
  276. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts +6 -30
  277. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts.map +1 -1
  278. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js +9 -66
  279. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js.map +1 -1
  280. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.d.ts +17 -0
  281. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.d.ts.map +1 -0
  282. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.js +17 -0
  283. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-delivery.js.map +1 -0
  284. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.d.ts +88 -0
  285. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.d.ts.map +1 -0
  286. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.js +132 -0
  287. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event-source-poller.js.map +1 -0
  288. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.d.ts +41 -0
  289. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.d.ts.map +1 -0
  290. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.js +60 -0
  291. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-polled-queue.js.map +1 -0
  292. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +23 -5
  293. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts.map +1 -1
  294. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +65 -12
  295. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js.map +1 -1
  296. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.d.ts +23 -0
  297. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.d.ts.map +1 -0
  298. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.js +30 -0
  299. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.js.map +1 -0
  300. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.d.ts +26 -0
  301. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.d.ts.map +1 -0
  302. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.js +35 -0
  303. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.js.map +1 -0
  304. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +6 -8
  305. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts.map +1 -1
  306. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +6 -9
  307. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js.map +1 -1
  308. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts +5 -5
  309. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts.map +1 -1
  310. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js +5 -5
  311. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js.map +1 -1
  312. package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.d.ts +18 -0
  313. package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.d.ts.map +1 -0
  314. package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.js +23 -0
  315. package/dist/service/lambda/event-source/sim-lambda-event-source-polling-permission.js.map +1 -0
  316. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts +7 -3
  317. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts.map +1 -1
  318. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js +13 -21
  319. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js.map +1 -1
  320. package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.d.ts +7 -25
  321. package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.d.ts.map +1 -1
  322. package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.js +10 -31
  323. package/dist/service/s3/bucket/notification/sim-s3-lambda-notification.js.map +1 -1
  324. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.d.ts +6 -10
  325. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.d.ts.map +1 -1
  326. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.js +16 -68
  327. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.js.map +1 -1
  328. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.d.ts +17 -4
  329. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.d.ts.map +1 -1
  330. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.js +19 -10
  331. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.js.map +1 -1
  332. package/dist/service/s3/bucket/notification/sim-s3-notification-ids.d.ts +9 -0
  333. package/dist/service/s3/bucket/notification/sim-s3-notification-ids.d.ts.map +1 -0
  334. package/dist/service/s3/bucket/notification/sim-s3-notification-ids.js +18 -0
  335. package/dist/service/s3/bucket/notification/sim-s3-notification-ids.js.map +1 -0
  336. package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.d.ts +5 -3
  337. package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.d.ts.map +1 -1
  338. package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.js +3 -1
  339. package/dist/service/s3/bucket/notification/sim-s3-notification-overlap.js.map +1 -1
  340. package/dist/service/s3/bucket/notification/sim-s3-notification-properties.d.ts +19 -0
  341. package/dist/service/s3/bucket/notification/sim-s3-notification-properties.d.ts.map +1 -0
  342. package/dist/service/s3/bucket/notification/sim-s3-notification-properties.js +27 -0
  343. package/dist/service/s3/bucket/notification/sim-s3-notification-properties.js.map +1 -0
  344. package/dist/service/s3/bucket/notification/sim-s3-notification.d.ts +61 -0
  345. package/dist/service/s3/bucket/notification/sim-s3-notification.d.ts.map +1 -0
  346. package/dist/service/s3/bucket/notification/sim-s3-notification.js +50 -0
  347. package/dist/service/s3/bucket/notification/sim-s3-notification.js.map +1 -0
  348. package/dist/service/s3/bucket/notification/sim-s3-queue-notification.d.ts +21 -0
  349. package/dist/service/s3/bucket/notification/sim-s3-queue-notification.d.ts.map +1 -0
  350. package/dist/service/s3/bucket/notification/sim-s3-queue-notification.js +24 -0
  351. package/dist/service/s3/bucket/notification/sim-s3-queue-notification.js.map +1 -0
  352. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.d.ts +10 -0
  353. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.d.ts.map +1 -0
  354. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.js +31 -0
  355. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.js.map +1 -0
  356. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.d.ts +3 -0
  357. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.d.ts.map +1 -1
  358. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.js +30 -1
  359. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.js.map +1 -1
  360. package/dist/service/s3/command/get-bucket-notification-configuration/get-bucket-notification-configuration.command.d.ts +2 -1
  361. package/dist/service/s3/command/get-bucket-notification-configuration/get-bucket-notification-configuration.command.d.ts.map +1 -1
  362. package/dist/service/s3/command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.d.ts +10 -1
  363. package/dist/service/s3/command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.d.ts.map +1 -1
  364. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.d.ts +0 -4
  365. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.d.ts.map +1 -1
  366. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js +1 -4
  367. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js.map +1 -1
  368. package/dist/service/s3/notification/destination/sim-s3-notification-destination-check.d.ts.map +1 -1
  369. package/dist/service/s3/notification/destination/sim-s3-notification-destination-check.js +6 -4
  370. package/dist/service/s3/notification/destination/sim-s3-notification-destination-check.js.map +1 -1
  371. package/dist/service/s3/notification/destination/sim-s3-notification-destination.d.ts +20 -2
  372. package/dist/service/s3/notification/destination/sim-s3-notification-destination.d.ts.map +1 -1
  373. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.d.ts +12 -10
  374. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.d.ts.map +1 -1
  375. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.js +19 -17
  376. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.js.map +1 -1
  377. package/dist/service/s3/notification/destination/sim-s3-service-principal.d.ts +8 -0
  378. package/dist/service/s3/notification/destination/sim-s3-service-principal.d.ts.map +1 -0
  379. package/dist/service/s3/notification/destination/sim-s3-service-principal.js +8 -0
  380. package/dist/service/s3/notification/destination/sim-s3-service-principal.js.map +1 -0
  381. package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.d.ts +40 -0
  382. package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.d.ts.map +1 -0
  383. package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.js +52 -0
  384. package/dist/service/s3/notification/destination/sqs/sim-aws-s3-notification-queues.js.map +1 -0
  385. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.d.ts +33 -0
  386. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.d.ts.map +1 -0
  387. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.js +64 -0
  388. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue-arn.js.map +1 -0
  389. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.d.ts +33 -0
  390. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.d.ts.map +1 -0
  391. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js +55 -0
  392. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js.map +1 -0
  393. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.d.ts +23 -0
  394. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.d.ts.map +1 -0
  395. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.js +2 -0
  396. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queues.js.map +1 -0
  397. package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.d.ts +40 -0
  398. package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.d.ts.map +1 -0
  399. package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.js +51 -0
  400. package/dist/service/s3/notification/destination/sqs/sim-s3-sqs-notification-destination.js.map +1 -0
  401. package/dist/service/s3/notification/sim-s3-notification-dispatcher.d.ts +2 -2
  402. package/dist/service/s3/notification/sim-s3-notification-dispatcher.d.ts.map +1 -1
  403. package/dist/service/s3/notification/sim-s3-notification-dispatcher.js +6 -3
  404. package/dist/service/s3/notification/sim-s3-notification-dispatcher.js.map +1 -1
  405. package/dist/service/sqs/command/authorize/sim-sqs-condition-context.d.ts.map +1 -1
  406. package/dist/service/sqs/command/authorize/sim-sqs-condition-context.js +9 -5
  407. package/dist/service/sqs/command/authorize/sim-sqs-condition-context.js.map +1 -1
  408. package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.d.ts +40 -0
  409. package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.d.ts.map +1 -0
  410. package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.js +40 -0
  411. package/dist/service/sqs/command/authorize/sim-sqs-service-send-authorizer.js.map +1 -0
  412. package/dist/service/sqs/command/sim-sqs-request-options.d.ts +16 -0
  413. package/dist/service/sqs/command/sim-sqs-request-options.d.ts.map +1 -1
  414. package/dist/service/sqs/command/sim-sqs-request-options.js +9 -0
  415. package/dist/service/sqs/command/sim-sqs-request-options.js.map +1 -1
  416. package/dist/service/sqs/index.d.ts +2 -2
  417. package/dist/service/sqs/index.d.ts.map +1 -1
  418. package/dist/service/sqs/index.js +2 -2
  419. package/dist/service/sqs/index.js.map +1 -1
  420. package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts +17 -2
  421. package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts.map +1 -1
  422. package/dist/service/sqs/queue/sim-sqs-queue-arn.js +9 -5
  423. package/dist/service/sqs/queue/sim-sqs-queue-arn.js.map +1 -1
  424. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-table-description.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-description.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,2BAA2B,EAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAehE;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,GACtB,2BAA2B,CAoB7B"}
1
+ {"version":3,"file":"sim-dynamodb-table-description.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-description.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,2BAA2B,EAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAehE;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,GACtB,2BAA2B,CA0B7B"}
@@ -29,6 +29,12 @@ export function describeSimDynamoDbTable(table) {
29
29
  GlobalSecondaryIndexes: table.indexes.global.descriptions(table.status),
30
30
  LocalSecondaryIndexes: table.indexes.local.descriptions(),
31
31
  DeletionProtectionEnabled: table.deletionProtectionEnabled,
32
+ StreamSpecification: table.stream.specification(),
33
+ // These stay set once the table has had a stream, whether or not it still
34
+ // has one, since they name the last stream rather than the current
35
+ // setting. A table that has never had one reports neither.
36
+ LatestStreamArn: table.stream.latest?.arn,
37
+ LatestStreamLabel: table.stream.latest?.label,
32
38
  // Neither figure is tracked yet. Real DynamoDB updates both about every
33
39
  // six hours, so they lag behind the items anyway.
34
40
  ItemCount: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-table-description.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-description.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,SAAS,iBAAiB,CACxB,UAA6C;IAE7C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAuB;IAEvB,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ;QACnC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,CAAC,QAAQ;QACzD,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;QAC3C,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAC5D,iBAAiB,EAAE,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC;QACtD,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QACvE,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;QACzD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;QAC1D,wEAAwE;QACxE,kDAAkD;QAClD,SAAS,EAAE,CAAC;QACZ,cAAc,EAAE,CAAC;KAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sim-dynamodb-table-description.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-description.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,SAAS,iBAAiB,CACxB,UAA6C;IAE7C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAuB;IAEvB,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ;QACnC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,CAAC,QAAQ;QACzD,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;QAC3C,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAC5D,iBAAiB,EAAE,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC;QACtD,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QACvE,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;QACzD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;QAC1D,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE;QACjD,0EAA0E;QAC1E,mEAAmE;QACnE,2DAA2D;QAC3D,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG;QACzC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK;QAC7C,wEAAwE;QACxE,kDAAkD;QAClD,SAAS,EAAE,CAAC;QACZ,cAAc,EAAE,CAAC;KAClB,CAAC;AACJ,CAAC"}
@@ -1,4 +1,8 @@
1
1
  import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
2
+ import type { SimDynamoDbItemChanges } from "../stream/sim-dynamodb-item-change.js";
3
+ interface SimDynamoDbTableItemsProperties {
4
+ readonly changes: SimDynamoDbItemChanges;
5
+ }
2
6
  /**
3
7
  * The items one simulated table holds, keyed by marshalled primary key.
4
8
  *
@@ -6,11 +10,25 @@ import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
6
10
  * read-your-writes as real DynamoDB is for a strongly consistent read. Nothing
7
11
  * here is scheduled: an item that a request has been told was written is an
8
12
  * item that is there.
13
+ *
14
+ * This is also where every change to an item is reported from, because it is
15
+ * the one place all of them pass through exactly once: PutItem, UpdateItem,
16
+ * DeleteItem, the batch and transactional writes, and the time to live removal
17
+ * all end up here and nowhere else. The old value is already read to answer
18
+ * with, so reporting the transition costs nothing extra.
9
19
  */
10
20
  export declare class SimDynamoDbTableItems {
11
21
  private readonly items;
22
+ private readonly changes;
23
+ constructor(properties: SimDynamoDbTableItemsProperties);
12
24
  /**
13
25
  * Write an item, and answer with whatever it replaced.
26
+ *
27
+ * A write is reported whether or not it changed anything. UpdateItem with no
28
+ * UpdateExpression stores the item that was already there, so the two images
29
+ * arrive here as the same object, and real DynamoDB writes a `MODIFY` record
30
+ * for that request too. Comparing the images to decide would report less than
31
+ * AWS does, so nothing here compares them.
14
32
  */
15
33
  put(key: string, item: SimDynamoDbItem): SimDynamoDbItem | undefined;
16
34
  /**
@@ -29,8 +47,22 @@ export declare class SimDynamoDbTableItems {
29
47
  *
30
48
  * A key holding nothing is not a failure. DynamoDB deletes by key rather than
31
49
  * by item, so removing a key that is already free asks for the state it is
32
- * already in.
50
+ * already in, and nothing happened for a change to be reported about.
33
51
  */
34
52
  remove(key: string): SimDynamoDbItem | undefined;
53
+ /**
54
+ * Take the item held under a key because its time to live ran out.
55
+ *
56
+ * This is a removal by DynamoDB itself rather than by the application, which
57
+ * is the one thing about a change that cannot be worked out from the images.
58
+ * It is a separate call rather than a flag on `remove` so that a caller has
59
+ * to decide which it is making.
60
+ */
61
+ expire(key: string): SimDynamoDbItem | undefined;
62
+ /**
63
+ * Take the item held under a key, however it came to be taken.
64
+ */
65
+ private removed;
35
66
  }
67
+ export {};
36
68
  //# sourceMappingURL=sim-dynamodb-table-items.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-table-items.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;;;;;;GAOG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAE5D;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAMnE;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE5C;IAED;;;;;OAKG;IACH,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAE9C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAM/C;CACF"}
1
+ {"version":3,"file":"sim-dynamodb-table-items.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAEpF,UAAU,+BAA+B;IACvC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;CAC1C;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD,YAAY,UAAU,EAAE,+BAA+B,EAEtD;IAED;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAWnE;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE5C;IAED;;;;;OAKG;IACH,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAE9C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE/C;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE/C;IAED;;OAEG;IACH,OAAO,CAAC,OAAO;CAehB"}
@@ -5,15 +5,36 @@
5
5
  * read-your-writes as real DynamoDB is for a strongly consistent read. Nothing
6
6
  * here is scheduled: an item that a request has been told was written is an
7
7
  * item that is there.
8
+ *
9
+ * This is also where every change to an item is reported from, because it is
10
+ * the one place all of them pass through exactly once: PutItem, UpdateItem,
11
+ * DeleteItem, the batch and transactional writes, and the time to live removal
12
+ * all end up here and nowhere else. The old value is already read to answer
13
+ * with, so reporting the transition costs nothing extra.
8
14
  */
9
15
  export class SimDynamoDbTableItems {
10
16
  items = new Map();
17
+ changes;
18
+ constructor(properties) {
19
+ this.changes = properties.changes;
20
+ }
11
21
  /**
12
22
  * Write an item, and answer with whatever it replaced.
23
+ *
24
+ * A write is reported whether or not it changed anything. UpdateItem with no
25
+ * UpdateExpression stores the item that was already there, so the two images
26
+ * arrive here as the same object, and real DynamoDB writes a `MODIFY` record
27
+ * for that request too. Comparing the images to decide would report less than
28
+ * AWS does, so nothing here compares them.
13
29
  */
14
30
  put(key, item) {
15
31
  const replaced = this.items.get(key);
16
32
  this.items.set(key, item);
33
+ this.changes.capture({
34
+ oldImage: replaced,
35
+ newImage: item,
36
+ expired: false,
37
+ });
17
38
  return replaced;
18
39
  }
19
40
  /**
@@ -36,11 +57,35 @@ export class SimDynamoDbTableItems {
36
57
  *
37
58
  * A key holding nothing is not a failure. DynamoDB deletes by key rather than
38
59
  * by item, so removing a key that is already free asks for the state it is
39
- * already in.
60
+ * already in, and nothing happened for a change to be reported about.
40
61
  */
41
62
  remove(key) {
63
+ return this.removed(key, false);
64
+ }
65
+ /**
66
+ * Take the item held under a key because its time to live ran out.
67
+ *
68
+ * This is a removal by DynamoDB itself rather than by the application, which
69
+ * is the one thing about a change that cannot be worked out from the images.
70
+ * It is a separate call rather than a flag on `remove` so that a caller has
71
+ * to decide which it is making.
72
+ */
73
+ expire(key) {
74
+ return this.removed(key, true);
75
+ }
76
+ /**
77
+ * Take the item held under a key, however it came to be taken.
78
+ */
79
+ removed(key, expired) {
42
80
  const removed = this.items.get(key);
43
81
  this.items.delete(key);
82
+ if (removed !== undefined) {
83
+ this.changes.capture({
84
+ oldImage: removed,
85
+ newImage: undefined,
86
+ expired,
87
+ });
88
+ }
44
89
  return removed;
45
90
  }
46
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-table-items.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-items.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAqB;IACf,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;IAE5D;;OAEG;IACH,GAAG,CAAC,GAAW,EAAE,IAAqB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAW;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEvB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"sim-dynamodb-table-items.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-items.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,qBAAqB;IACf,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC3C,OAAO,CAAyB;IAEjD,YAAY,UAA2C;QACrD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACpC,CAAC;IAED;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAW,EAAE,IAAqB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,OAAO,CAAC,GAAW,EAAE,OAAgB;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEvB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBACnB,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,SAAS;gBACnB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,95 @@
1
+ import type { BackgroundScheduler } from "../../../util/background/background.js";
2
+ import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
3
+ import type { SimDynamoDbSecondaryIndexes } from "../secondary-index/sim-dynamodb-secondary-indexes.js";
4
+ import type { SimDynamoDbTableStream } from "../stream/sim-dynamodb-table-stream.js";
5
+ import { SimDynamoDbTableTimeToLive } from "../time-to-live/sim-dynamodb-table-time-to-live.js";
6
+ import type { SimDynamoDbReadView } from "./sim-dynamodb-read-view.js";
7
+ import type { SimDynamoDbTableDefinition } from "./sim-dynamodb-table-definition.js";
8
+ import { SimDynamoDbTableWrites } from "./sim-dynamodb-table-writes.js";
9
+ import type { DynamoDbTableName } from "./sim-dynamodb-table-name.js";
10
+ interface SimDynamoDbTableStorageProperties {
11
+ readonly tableName: DynamoDbTableName;
12
+ readonly definition: SimDynamoDbTableDefinition;
13
+ readonly indexes: SimDynamoDbSecondaryIndexes;
14
+ readonly stream: SimDynamoDbTableStream;
15
+ readonly background: BackgroundScheduler;
16
+ }
17
+ /**
18
+ * What one simulated table holds, and everything that reaches its items.
19
+ *
20
+ * The items, the key they are held under, the writes that put them there and
21
+ * the time to live that takes them away are all one thing, because none of them
22
+ * is any use without the others: a key is read to write an item, and a write is
23
+ * what gives an item its deletion window. Holding them together is what leaves
24
+ * the table itself as what a request asks about rather than where its items
25
+ * live.
26
+ *
27
+ * This is built from a definition rather than from a key schema, so the key an
28
+ * item is stored under follows an UpdateTable that changed which attributes the
29
+ * table declares, without the storage having to be told about the update.
30
+ *
31
+ * The stream is handed in rather than made here, because it outlives the
32
+ * items: a table's stream is switched on and off by UpdateTable and keeps what
33
+ * it captured, where the storage is only ever what the table holds now.
34
+ */
35
+ export declare class SimDynamoDbTableStorage {
36
+ /**
37
+ * The table's time to live, and the item removals it drives.
38
+ */
39
+ readonly timeToLive: SimDynamoDbTableTimeToLive;
40
+ /**
41
+ * How the table takes a write, as a check and then a commit, which is what
42
+ * lets a transaction prepare all of its writes before committing any.
43
+ */
44
+ readonly writes: SimDynamoDbTableWrites;
45
+ private readonly tableName;
46
+ private readonly definition;
47
+ private readonly indexes;
48
+ private readonly items;
49
+ constructor(properties: SimDynamoDbTableStorageProperties);
50
+ /**
51
+ * Put an item into the table, and answer with whatever it replaced. The item
52
+ * is there by the time this returns, since real DynamoDB acknowledges a write
53
+ * once it is durable.
54
+ */
55
+ putItem(item: SimDynamoDbItem): SimDynamoDbItem | undefined;
56
+ /**
57
+ * The item already stored under the same primary key as this one.
58
+ *
59
+ * A conditional write is checked against what is there before it, and what is
60
+ * there is found by the key inside the item rather than by a Key of its own.
61
+ * The key is read the same way a write reads it, so an item that could not be
62
+ * written does not quietly find nothing here either.
63
+ */
64
+ itemUnder(item: SimDynamoDbItem): SimDynamoDbItem | undefined;
65
+ /**
66
+ * The primary key an item is stored under, as the table marshals it.
67
+ *
68
+ * A batch write tells two operations on the same item apart by comparing
69
+ * these, which is why the key is readable rather than only usable. Reading it
70
+ * checks the item against the key schema, so a key a write would refuse is
71
+ * refused here too.
72
+ */
73
+ keyOfItem(item: SimDynamoDbItem): string;
74
+ /**
75
+ * The primary key a request's Key names, as the table marshals it.
76
+ */
77
+ keyOfKey(key: SimDynamoDbItem): string;
78
+ /**
79
+ * Read the item a primary key names, if the table holds one.
80
+ *
81
+ * Every write has landed by the time it returns, so this reads the latest
82
+ * one. That is what real DynamoDB gives a strongly consistent read.
83
+ */
84
+ getItem(key: SimDynamoDbItem): SimDynamoDbItem | undefined;
85
+ /**
86
+ * Remove the item a primary key names, and answer with whatever was removed.
87
+ */
88
+ deleteItem(key: SimDynamoDbItem): SimDynamoDbItem | undefined;
89
+ /**
90
+ * What a Query or a Scan reads: the table, or one of its indexes.
91
+ */
92
+ view(indexName: string | undefined): SimDynamoDbReadView;
93
+ }
94
+ export {};
95
+ //# sourceMappingURL=sim-dynamodb-table-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-dynamodb-table-storage.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACxG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,UAAU,iCAAiC;IACzC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,uBAAuB;IAClC;;OAEG;IACH,SAAgB,UAAU,EAAE,0BAA0B,CAAC;IAEvD;;;OAGG;IACH,SAAgB,MAAM,EAAE,sBAAsB,CAAC;IAE/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAE9C,YAAY,UAAU,EAAE,iCAAiC,EAgBxD;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAE1D;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAE5D;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAEvC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAErC;IAED;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAEzD;IAED;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAE5D;IAED;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAUvD;CACF"}
@@ -0,0 +1,120 @@
1
+ import { SimDynamoDbTableTimeToLive } from "../time-to-live/sim-dynamodb-table-time-to-live.js";
2
+ import { SimDynamoDbTableItems } from "./sim-dynamodb-table-items.js";
3
+ import { simDynamoDbTableReadView } from "./sim-dynamodb-table-read-view.js";
4
+ import { SimDynamoDbTableWrites } from "./sim-dynamodb-table-writes.js";
5
+ /**
6
+ * What one simulated table holds, and everything that reaches its items.
7
+ *
8
+ * The items, the key they are held under, the writes that put them there and
9
+ * the time to live that takes them away are all one thing, because none of them
10
+ * is any use without the others: a key is read to write an item, and a write is
11
+ * what gives an item its deletion window. Holding them together is what leaves
12
+ * the table itself as what a request asks about rather than where its items
13
+ * live.
14
+ *
15
+ * This is built from a definition rather than from a key schema, so the key an
16
+ * item is stored under follows an UpdateTable that changed which attributes the
17
+ * table declares, without the storage having to be told about the update.
18
+ *
19
+ * The stream is handed in rather than made here, because it outlives the
20
+ * items: a table's stream is switched on and off by UpdateTable and keeps what
21
+ * it captured, where the storage is only ever what the table holds now.
22
+ */
23
+ export class SimDynamoDbTableStorage {
24
+ /**
25
+ * The table's time to live, and the item removals it drives.
26
+ */
27
+ timeToLive;
28
+ /**
29
+ * How the table takes a write, as a check and then a commit, which is what
30
+ * lets a transaction prepare all of its writes before committing any.
31
+ */
32
+ writes;
33
+ tableName;
34
+ definition;
35
+ indexes;
36
+ items;
37
+ constructor(properties) {
38
+ this.items = new SimDynamoDbTableItems({ changes: properties.stream });
39
+ this.tableName = properties.tableName;
40
+ this.definition = properties.definition;
41
+ this.indexes = properties.indexes;
42
+ this.timeToLive = new SimDynamoDbTableTimeToLive({
43
+ tableName: properties.tableName,
44
+ items: this.items,
45
+ background: properties.background,
46
+ });
47
+ this.writes = new SimDynamoDbTableWrites({
48
+ items: this.items,
49
+ timeToLive: this.timeToLive,
50
+ definition: properties.definition,
51
+ indexes: properties.indexes,
52
+ });
53
+ }
54
+ /**
55
+ * Put an item into the table, and answer with whatever it replaced. The item
56
+ * is there by the time this returns, since real DynamoDB acknowledges a write
57
+ * once it is durable.
58
+ */
59
+ putItem(item) {
60
+ return this.writes.prepareItem(item).commit();
61
+ }
62
+ /**
63
+ * The item already stored under the same primary key as this one.
64
+ *
65
+ * A conditional write is checked against what is there before it, and what is
66
+ * there is found by the key inside the item rather than by a Key of its own.
67
+ * The key is read the same way a write reads it, so an item that could not be
68
+ * written does not quietly find nothing here either.
69
+ */
70
+ itemUnder(item) {
71
+ return this.items.get(this.definition.itemKey.of(item));
72
+ }
73
+ /**
74
+ * The primary key an item is stored under, as the table marshals it.
75
+ *
76
+ * A batch write tells two operations on the same item apart by comparing
77
+ * these, which is why the key is readable rather than only usable. Reading it
78
+ * checks the item against the key schema, so a key a write would refuse is
79
+ * refused here too.
80
+ */
81
+ keyOfItem(item) {
82
+ return this.definition.itemKey.of(item);
83
+ }
84
+ /**
85
+ * The primary key a request's Key names, as the table marshals it.
86
+ */
87
+ keyOfKey(key) {
88
+ return this.definition.itemKey.ofKey(key);
89
+ }
90
+ /**
91
+ * Read the item a primary key names, if the table holds one.
92
+ *
93
+ * Every write has landed by the time it returns, so this reads the latest
94
+ * one. That is what real DynamoDB gives a strongly consistent read.
95
+ */
96
+ getItem(key) {
97
+ return this.items.get(this.definition.itemKey.ofKey(key));
98
+ }
99
+ /**
100
+ * Remove the item a primary key names, and answer with whatever was removed.
101
+ */
102
+ deleteItem(key) {
103
+ return this.writes.prepareRemoval(key).commit();
104
+ }
105
+ /**
106
+ * What a Query or a Scan reads: the table, or one of its indexes.
107
+ */
108
+ view(indexName) {
109
+ return simDynamoDbTableReadView({
110
+ tableName: this.tableName,
111
+ indexName,
112
+ items: this.items.entries().values().toArray(),
113
+ keySchema: this.definition.keySchema,
114
+ attributeDefinitions: this.definition.attributeDefinitions,
115
+ indexes: this.indexes,
116
+ itemKey: this.definition.itemKey,
117
+ });
118
+ }
119
+ }
120
+ //# sourceMappingURL=sim-dynamodb-table-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-dynamodb-table-storage.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-storage.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { SimUpdateTableCommandInput } from "../command/table/table.command.js";
2
2
  import type { SimDynamoDbTableClass } from "../command/table/table.types.js";
3
3
  import type { SimDynamoDbGlobalSecondaryIndex } from "../secondary-index/sim-dynamodb-global-secondary-index.js";
4
+ import type { SimDynamoDbStreamRequest } from "../stream/sim-dynamodb-stream-specification.js";
4
5
  import type { SimDynamoDbAttributeDefinitions } from "./sim-dynamodb-attribute-definitions.js";
5
6
  import type { SimDynamoDbTableBilling } from "./sim-dynamodb-table-billing.js";
6
7
  import type { SimDynamoDbUpdatableTable } from "./sim-dynamodb-updatable-table.js";
@@ -18,6 +19,7 @@ export declare class SimDynamoDbTableUpdate {
18
19
  readonly indexDeleted: string | undefined;
19
20
  readonly tableClass: SimDynamoDbTableClass | undefined;
20
21
  readonly deletionProtectionEnabled: boolean | undefined;
22
+ readonly stream: SimDynamoDbStreamRequest | undefined;
21
23
  private constructor();
22
24
  /**
23
25
  * Read the change an UpdateTable request asks a table for.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-table-update.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2DAA2D,CAAC;AACjH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAE/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AA2DnF;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,SAAgB,oBAAoB,EAAE,+BAA+B,CAAC;IACtE,SAAgB,OAAO,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC7D,SAAgB,YAAY,EAAE,+BAA+B,GAAG,SAAS,CAAC;IAC1E,SAAgB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,SAAgB,UAAU,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC9D,SAAgB,yBAAyB,EAAE,OAAO,GAAG,SAAS,CAAC;IAE/D,OAAO,eASN;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,yBAAyB,GAC/B,sBAAsB,CAyBxB;CACF"}
1
+ {"version":3,"file":"sim-dynamodb-table-update.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2DAA2D,CAAC;AACjH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAE/F,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAE/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AA6DnF;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,SAAgB,oBAAoB,EAAE,+BAA+B,CAAC;IACtE,SAAgB,OAAO,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC7D,SAAgB,YAAY,EAAE,+BAA+B,GAAG,SAAS,CAAC;IAC1E,SAAgB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,SAAgB,UAAU,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC9D,SAAgB,yBAAyB,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/D,SAAgB,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAE7D,OAAO,eAUN;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,yBAAyB,GAC/B,sBAAsB,CA0BxB;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { SimDynamoDbValidationException } from "../error/dynamodb.error.js";
2
+ import { readSimDynamoDbStreamUpdate } from "../stream/sim-dynamodb-stream-update.js";
2
3
  import { SimDynamoDbIndexUpdate } from "./sim-dynamodb-index-update.js";
3
4
  import { readSimDynamoDbTableClass } from "./sim-dynamodb-table-class.js";
4
5
  import { readSimDynamoDbUpdatedBilling } from "./sim-dynamodb-updated-billing.js";
@@ -7,9 +8,9 @@ import { simDynamoDbCreatedIndex, simDynamoDbDeletedIndexName, } from "./sim-dyn
7
8
  * Refuse a request asking for more than one thing at a time.
8
9
  *
9
10
  * AWS takes one of these per call: change what the table is billed and
10
- * provisioned as, add one global secondary index, or remove one. A table class
11
- * or deletion protection change is not one of them and rides along with any of
12
- * them.
11
+ * provisioned as, add one global secondary index, or remove one. A table class,
12
+ * a deletion protection or a stream change is not one of them and rides along
13
+ * with any of them.
13
14
  */
14
15
  function assertOneOperation(billing, indexUpdate) {
15
16
  if (billing !== undefined && !indexUpdate.isEmpty) {
@@ -26,11 +27,12 @@ function assertAsksForSomething(properties) {
26
27
  properties.indexCreated !== undefined ||
27
28
  properties.indexDeleted !== undefined ||
28
29
  properties.tableClass !== undefined ||
29
- properties.deletionProtectionEnabled !== undefined;
30
+ properties.deletionProtectionEnabled !== undefined ||
31
+ properties.stream !== undefined;
30
32
  if (!asks) {
31
33
  throw new SimDynamoDbValidationException("An UpdateTable request changes the table's billing and throughput, " +
32
- "its global secondary indexes, its table class or its deletion " +
33
- "protection, and this one changes none of them");
34
+ "its global secondary indexes, its stream, its table class or its " +
35
+ "deletion protection, and this one changes none of them");
34
36
  }
35
37
  }
36
38
  /**
@@ -47,6 +49,7 @@ export class SimDynamoDbTableUpdate {
47
49
  indexDeleted;
48
50
  tableClass;
49
51
  deletionProtectionEnabled;
52
+ stream;
50
53
  constructor(properties) {
51
54
  assertAsksForSomething(properties);
52
55
  this.attributeDefinitions = properties.attributeDefinitions;
@@ -55,6 +58,7 @@ export class SimDynamoDbTableUpdate {
55
58
  this.indexDeleted = properties.indexDeleted;
56
59
  this.tableClass = properties.tableClass;
57
60
  this.deletionProtectionEnabled = properties.deletionProtectionEnabled;
61
+ this.stream = properties.stream;
58
62
  }
59
63
  /**
60
64
  * Read the change an UpdateTable request asks a table for.
@@ -73,6 +77,7 @@ export class SimDynamoDbTableUpdate {
73
77
  indexDeleted: simDynamoDbDeletedIndexName(indexUpdate, table),
74
78
  tableClass: readSimDynamoDbTableClass(input.TableClass),
75
79
  deletionProtectionEnabled: input.DeletionProtectionEnabled,
80
+ stream: readSimDynamoDbStreamUpdate(input, table.stream),
76
81
  });
77
82
  }
78
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-table-update.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAG5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,mCAAmC,CAAC;AAW3C;;;;;;;GAOG;AACH,SAAS,kBAAkB,CACzB,OAA4C,EAC5C,WAAmC;IAEnC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAClD,MAAM,IAAI,8BAA8B,CACtC,wEAAwE;YACtE,mEAAmE;YACnE,iCAAiC,CACpC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,UAA4C;IAE5C,MAAM,IAAI,GACR,UAAU,CAAC,OAAO,KAAK,SAAS;QAChC,UAAU,CAAC,YAAY,KAAK,SAAS;QACrC,UAAU,CAAC,YAAY,KAAK,SAAS;QACrC,UAAU,CAAC,UAAU,KAAK,SAAS;QACnC,UAAU,CAAC,yBAAyB,KAAK,SAAS,CAAC;IAErD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,8BAA8B,CACtC,qEAAqE;YACnE,gEAAgE;YAChE,+CAA+C,CAClD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,sBAAsB;IACjB,oBAAoB,CAAkC;IACtD,OAAO,CAAsC;IAC7C,YAAY,CAA8C;IAC1D,YAAY,CAAqB;IACjC,UAAU,CAAoC;IAC9C,yBAAyB,CAAsB;IAE/D,YAAoB,UAA4C;QAC9D,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAEnC,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,yBAAyB,GAAG,UAAU,CAAC,yBAAyB,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAiC,EACjC,KAAgC;QAEhC,MAAM,WAAW,GAAG,sBAAsB,CAAC,SAAS,CAClD,KAAK,CAAC,2BAA2B,CAClC,CAAC;QACF,MAAM,OAAO,GAAG,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5D,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEzC,4EAA4E;QAC5E,wEAAwE;QACxE,MAAM,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAC1D,KAAK,CAAC,oBAAoB,CAC3B,CAAC;QAEF,OAAO,IAAI,IAAI,CAAC;YACd,oBAAoB;YACpB,OAAO;YACP,YAAY,EAAE,uBAAuB,CACnC,WAAW,EACX,KAAK,EACL,oBAAoB,CACrB;YACD,YAAY,EAAE,2BAA2B,CAAC,WAAW,EAAE,KAAK,CAAC;YAC7D,UAAU,EAAE,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC;YACvD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;SAC3D,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"sim-dynamodb-table-update.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-update.ts"],"names":[],"mappings":"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"}