@kensio/yulin 1.2.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.
Files changed (328) hide show
  1. package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
  3. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  4. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +3 -2
  5. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
  6. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +7 -2
  7. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
  8. package/dist/service/aws/sim-aws-account-region-scope.d.ts +9 -1
  9. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  10. package/dist/service/aws/sim-aws-account-region-scope.js +10 -0
  11. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  12. package/dist/service/aws/sim-aws-account.d.ts +5 -1
  13. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  14. package/dist/service/aws/sim-aws-account.js +6 -0
  15. package/dist/service/aws/sim-aws-account.js.map +1 -1
  16. package/dist/service/aws/sim-aws-region.d.ts +5 -1
  17. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  18. package/dist/service/aws/sim-aws-region.js +6 -0
  19. package/dist/service/aws/sim-aws-region.js.map +1 -1
  20. package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -1
  21. package/dist/service/aws/sim-aws-service-accessors.d.ts.map +1 -1
  22. package/dist/service/aws/sim-aws-service-accessors.js +4 -0
  23. package/dist/service/aws/sim-aws-service-accessors.js.map +1 -1
  24. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.d.ts +11 -3
  25. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.d.ts.map +1 -1
  26. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.js +20 -6
  27. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.js.map +1 -1
  28. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.d.ts.map +1 -1
  29. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js +1 -0
  30. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js.map +1 -1
  31. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts +5 -0
  32. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts.map +1 -1
  33. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js +7 -0
  34. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js.map +1 -1
  35. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts +5 -4
  36. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts.map +1 -1
  37. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js +16 -11
  38. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js.map +1 -1
  39. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.d.ts +23 -0
  40. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.d.ts.map +1 -0
  41. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.js +62 -0
  42. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.js.map +1 -0
  43. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.d.ts +17 -0
  44. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.d.ts.map +1 -0
  45. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.js +24 -0
  46. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.js.map +1 -0
  47. package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.d.ts +11 -0
  48. package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.d.ts.map +1 -1
  49. package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.js +13 -0
  50. package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.js.map +1 -1
  51. package/dist/service/dynamodb/command/stream/describe-stream/describe-stream.command.d.ts +43 -0
  52. package/dist/service/dynamodb/command/stream/describe-stream/describe-stream.command.d.ts.map +1 -0
  53. package/dist/service/dynamodb/command/stream/describe-stream/describe-stream.command.js +5 -0
  54. package/dist/service/dynamodb/command/stream/describe-stream/describe-stream.command.js.map +1 -0
  55. package/dist/service/dynamodb/command/stream/describe-stream/sim-dynamodb-describe-stream.d.ts +26 -0
  56. package/dist/service/dynamodb/command/stream/describe-stream/sim-dynamodb-describe-stream.d.ts.map +1 -0
  57. package/dist/service/dynamodb/command/stream/describe-stream/sim-dynamodb-describe-stream.js +77 -0
  58. package/dist/service/dynamodb/command/stream/describe-stream/sim-dynamodb-describe-stream.js.map +1 -0
  59. package/dist/service/dynamodb/command/stream/get-records/get-records.command.d.ts +32 -0
  60. package/dist/service/dynamodb/command/stream/get-records/get-records.command.d.ts.map +1 -0
  61. package/dist/service/dynamodb/command/stream/get-records/get-records.command.js +5 -0
  62. package/dist/service/dynamodb/command/stream/get-records/get-records.command.js.map +1 -0
  63. package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-get-records.d.ts +29 -0
  64. package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-get-records.d.ts.map +1 -0
  65. package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-get-records.js +60 -0
  66. package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-get-records.js.map +1 -0
  67. package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-streams-api-record.d.ts +12 -0
  68. package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-streams-api-record.d.ts.map +1 -0
  69. package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-streams-api-record.js +52 -0
  70. package/dist/service/dynamodb/command/stream/get-records/sim-dynamodb-streams-api-record.js.map +1 -0
  71. package/dist/service/dynamodb/command/stream/get-shard-iterator/get-shard-iterator.command.d.ts +31 -0
  72. package/dist/service/dynamodb/command/stream/get-shard-iterator/get-shard-iterator.command.d.ts.map +1 -0
  73. package/dist/service/dynamodb/command/stream/get-shard-iterator/get-shard-iterator.command.js +5 -0
  74. package/dist/service/dynamodb/command/stream/get-shard-iterator/get-shard-iterator.command.js.map +1 -0
  75. package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-get-shard-iterator.d.ts +27 -0
  76. package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-get-shard-iterator.d.ts.map +1 -0
  77. package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-get-shard-iterator.js +42 -0
  78. package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-get-shard-iterator.js.map +1 -0
  79. package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-shard-iterator-position.d.ts +11 -0
  80. package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-shard-iterator-position.d.ts.map +1 -0
  81. package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-shard-iterator-position.js +53 -0
  82. package/dist/service/dynamodb/command/stream/get-shard-iterator/sim-dynamodb-shard-iterator-position.js.map +1 -0
  83. package/dist/service/dynamodb/command/stream/list-streams/list-streams.command.d.ts +33 -0
  84. package/dist/service/dynamodb/command/stream/list-streams/list-streams.command.d.ts.map +1 -0
  85. package/dist/service/dynamodb/command/stream/list-streams/list-streams.command.js +5 -0
  86. package/dist/service/dynamodb/command/stream/list-streams/list-streams.command.js.map +1 -0
  87. package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-list-streams.d.ts +26 -0
  88. package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-list-streams.d.ts.map +1 -0
  89. package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-list-streams.js +31 -0
  90. package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-list-streams.js.map +1 -0
  91. package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-stream-page.d.ts +28 -0
  92. package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-stream-page.d.ts.map +1 -0
  93. package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-stream-page.js +59 -0
  94. package/dist/service/dynamodb/command/stream/list-streams/sim-dynamodb-stream-page.js.map +1 -0
  95. package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-access.d.ts +44 -0
  96. package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-access.d.ts.map +1 -0
  97. package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-access.js +53 -0
  98. package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-access.js.map +1 -0
  99. package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-command.types.d.ts +8 -0
  100. package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-command.types.d.ts.map +1 -0
  101. package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-command.types.js +2 -0
  102. package/dist/service/dynamodb/command/stream/sim-dynamodb-stream-command.types.js.map +1 -0
  103. package/dist/service/dynamodb/command/stream/stream.types.d.ts +84 -0
  104. package/dist/service/dynamodb/command/stream/stream.types.d.ts.map +1 -0
  105. package/dist/service/dynamodb/command/stream/stream.types.js +2 -0
  106. package/dist/service/dynamodb/command/stream/stream.types.js.map +1 -0
  107. package/dist/service/dynamodb/error/dynamodb.error.d.ts +17 -0
  108. package/dist/service/dynamodb/error/dynamodb.error.d.ts.map +1 -1
  109. package/dist/service/dynamodb/error/dynamodb.error.js +19 -0
  110. package/dist/service/dynamodb/error/dynamodb.error.js.map +1 -1
  111. package/dist/service/dynamodb/index.d.ts +1 -0
  112. package/dist/service/dynamodb/index.d.ts.map +1 -1
  113. package/dist/service/dynamodb/index.js +1 -0
  114. package/dist/service/dynamodb/index.js.map +1 -1
  115. package/dist/service/dynamodb/sdk/sim-dynamodb-streams-sdk-command-router.d.ts +24 -0
  116. package/dist/service/dynamodb/sdk/sim-dynamodb-streams-sdk-command-router.d.ts.map +1 -0
  117. package/dist/service/dynamodb/sdk/sim-dynamodb-streams-sdk-command-router.js +46 -0
  118. package/dist/service/dynamodb/sdk/sim-dynamodb-streams-sdk-command-router.js.map +1 -0
  119. package/dist/service/dynamodb/sim-dynamodb-streams.d.ts +59 -0
  120. package/dist/service/dynamodb/sim-dynamodb-streams.d.ts.map +1 -0
  121. package/dist/service/dynamodb/sim-dynamodb-streams.js +79 -0
  122. package/dist/service/dynamodb/sim-dynamodb-streams.js.map +1 -0
  123. package/dist/service/dynamodb/sim-dynamodb.d.ts +6 -3
  124. package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
  125. package/dist/service/dynamodb/sim-dynamodb.js +16 -5
  126. package/dist/service/dynamodb/sim-dynamodb.js.map +1 -1
  127. package/dist/service/dynamodb/stream/sim-dynamodb-stream-position.d.ts +31 -0
  128. package/dist/service/dynamodb/stream/sim-dynamodb-stream-position.d.ts.map +1 -0
  129. package/dist/service/dynamodb/stream/sim-dynamodb-stream-position.js +13 -0
  130. package/dist/service/dynamodb/stream/sim-dynamodb-stream-position.js.map +1 -0
  131. package/dist/service/dynamodb/stream/sim-dynamodb-stream-read.d.ts +33 -0
  132. package/dist/service/dynamodb/stream/sim-dynamodb-stream-read.d.ts.map +1 -0
  133. package/dist/service/dynamodb/stream/sim-dynamodb-stream-read.js +66 -0
  134. package/dist/service/dynamodb/stream/sim-dynamodb-stream-read.js.map +1 -0
  135. package/dist/service/dynamodb/stream/sim-dynamodb-stream-retention.d.ts +17 -0
  136. package/dist/service/dynamodb/stream/sim-dynamodb-stream-retention.d.ts.map +1 -0
  137. package/dist/service/dynamodb/stream/sim-dynamodb-stream-retention.js +24 -0
  138. package/dist/service/dynamodb/stream/sim-dynamodb-stream-retention.js.map +1 -0
  139. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.d.ts +16 -0
  140. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.d.ts.map +1 -1
  141. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.js +32 -0
  142. package/dist/service/dynamodb/stream/sim-dynamodb-stream-sequence-numbers.js.map +1 -1
  143. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.d.ts +25 -0
  144. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.d.ts.map +1 -0
  145. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.js +74 -0
  146. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard-iterator.js.map +1 -0
  147. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.d.ts +33 -0
  148. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.d.ts.map +1 -1
  149. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.js +49 -0
  150. package/dist/service/dynamodb/stream/sim-dynamodb-stream-shard.js.map +1 -1
  151. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.d.ts +16 -0
  152. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.d.ts.map +1 -1
  153. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.js +25 -0
  154. package/dist/service/dynamodb/stream/sim-dynamodb-stream-store.js.map +1 -1
  155. package/dist/service/dynamodb/stream/sim-dynamodb-stream.d.ts +14 -0
  156. package/dist/service/dynamodb/stream/sim-dynamodb-stream.d.ts.map +1 -1
  157. package/dist/service/dynamodb/stream/sim-dynamodb-stream.js +18 -0
  158. package/dist/service/dynamodb/stream/sim-dynamodb-stream.js.map +1 -1
  159. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-orders.factory.d.ts +31 -0
  160. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-orders.factory.d.ts.map +1 -0
  161. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-orders.factory.js +33 -0
  162. package/dist/service/dynamodb/stream/sim-dynamodb-streamed-orders.factory.js.map +1 -0
  163. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.d.ts +14 -0
  164. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.d.ts.map +1 -1
  165. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +29 -1
  166. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js.map +1 -1
  167. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.d.ts.map +1 -1
  168. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +8 -2
  169. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js.map +1 -1
  170. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +2 -0
  171. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts.map +1 -1
  172. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +7 -1
  173. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js.map +1 -1
  174. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts.map +1 -1
  175. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +25 -7
  176. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js.map +1 -1
  177. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts +4 -0
  178. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts.map +1 -1
  179. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js +4 -0
  180. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js.map +1 -1
  181. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts +5 -2
  182. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts.map +1 -1
  183. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +12 -8
  184. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js.map +1 -1
  185. package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.d.ts +3 -1
  186. package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.d.ts.map +1 -1
  187. package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.js +1 -1
  188. package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.js.map +1 -1
  189. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-event-image.d.ts +23 -0
  190. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-event-image.d.ts.map +1 -0
  191. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-event-image.js +55 -0
  192. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-event-image.js.map +1 -0
  193. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.d.ts +27 -0
  194. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.d.ts.map +1 -0
  195. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.js +41 -0
  196. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.js.map +1 -0
  197. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.d.ts +42 -0
  198. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.d.ts.map +1 -0
  199. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +52 -0
  200. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js.map +1 -0
  201. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.d.ts +77 -0
  202. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.d.ts.map +1 -0
  203. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.js +114 -0
  204. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.js.map +1 -0
  205. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.d.ts +21 -0
  206. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.d.ts.map +1 -0
  207. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.js +56 -0
  208. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.js.map +1 -0
  209. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.d.ts +78 -0
  210. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.d.ts.map +1 -0
  211. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.js +8 -0
  212. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.js.map +1 -0
  213. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-turn.d.ts +40 -0
  214. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-turn.d.ts.map +1 -0
  215. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-turn.js +45 -0
  216. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-turn.js.map +1 -0
  217. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.d.ts +5 -4
  218. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.d.ts.map +1 -1
  219. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.js +18 -5
  220. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller-factory.js.map +1 -1
  221. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +37 -0
  222. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts.map +1 -0
  223. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +51 -0
  224. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js.map +1 -0
  225. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +29 -0
  226. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts.map +1 -0
  227. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +71 -0
  228. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js.map +1 -0
  229. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +36 -0
  230. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts.map +1 -0
  231. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +41 -0
  232. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js.map +1 -0
  233. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +65 -0
  234. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts.map +1 -0
  235. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +92 -0
  236. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js.map +1 -0
  237. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +36 -0
  238. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts.map +1 -0
  239. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +47 -0
  240. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js.map +1 -0
  241. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +7 -1
  242. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts.map +1 -1
  243. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +10 -27
  244. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js.map +1 -1
  245. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +24 -0
  246. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts.map +1 -0
  247. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +33 -0
  248. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js.map +1 -0
  249. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.d.ts +6 -4
  250. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.d.ts.map +1 -1
  251. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.js +8 -5
  252. package/dist/service/lambda/event-source/sim-lambda-event-source-arn.js.map +1 -1
  253. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.d.ts +5 -1
  254. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.d.ts.map +1 -1
  255. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.js +8 -3
  256. package/dist/service/lambda/event-source/sim-lambda-event-source-batch-rules.js.map +1 -1
  257. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +9 -0
  258. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts.map +1 -1
  259. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +8 -0
  260. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js.map +1 -1
  261. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts +2 -0
  262. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts.map +1 -1
  263. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js.map +1 -1
  264. package/dist/service/lambda/event-source/sim-lambda-event-source-reachable.d.ts +27 -0
  265. package/dist/service/lambda/event-source/sim-lambda-event-source-reachable.d.ts.map +1 -0
  266. package/dist/service/lambda/event-source/sim-lambda-event-source-reachable.js +40 -0
  267. package/dist/service/lambda/event-source/sim-lambda-event-source-reachable.js.map +1 -0
  268. package/dist/service/lambda/event-source/sim-lambda-event-source-starting-position.d.ts +60 -0
  269. package/dist/service/lambda/event-source/sim-lambda-event-source-starting-position.d.ts.map +1 -0
  270. package/dist/service/lambda/event-source/sim-lambda-event-source-starting-position.js +51 -0
  271. package/dist/service/lambda/event-source/sim-lambda-event-source-starting-position.js.map +1 -0
  272. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-positions.d.ts +31 -0
  273. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-positions.d.ts.map +1 -0
  274. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-positions.js +29 -0
  275. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-positions.js.map +1 -0
  276. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-reader.d.ts +32 -0
  277. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-reader.d.ts.map +1 -0
  278. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-reader.js +48 -0
  279. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-reader.js.map +1 -0
  280. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-shard.d.ts +28 -0
  281. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-shard.d.ts.map +1 -0
  282. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-shard.js +71 -0
  283. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-stream-shard.js.map +1 -0
  284. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-streams.d.ts +42 -0
  285. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-streams.d.ts.map +1 -0
  286. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-streams.js +55 -0
  287. package/dist/service/lambda/event-source/stream/sim-dynamodb-event-source-streams.js.map +1 -0
  288. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-attribute-value.d.ts +150 -0
  289. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-attribute-value.d.ts.map +1 -0
  290. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-attribute-value.js +2 -0
  291. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-attribute-value.js.map +1 -0
  292. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +52 -0
  293. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts.map +1 -0
  294. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +88 -0
  295. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js.map +1 -0
  296. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +25 -0
  297. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts.map +1 -0
  298. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +34 -0
  299. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js.map +1 -0
  300. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-delivery-context.d.ts +31 -0
  301. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-delivery-context.d.ts.map +1 -0
  302. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-delivery-context.js +33 -0
  303. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-delivery-context.js.map +1 -0
  304. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-stream-service.d.ts +73 -0
  305. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-stream-service.d.ts.map +1 -0
  306. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-stream-service.js +2 -0
  307. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-stream-service.js.map +1 -0
  308. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-streams.d.ts +148 -0
  309. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-streams.d.ts.map +1 -0
  310. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-streams.js +37 -0
  311. package/dist/service/lambda/event-source/stream/sim-lambda-event-source-streams.js.map +1 -0
  312. package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade-guard.d.ts +36 -0
  313. package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade-guard.d.ts.map +1 -0
  314. package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade-guard.js +50 -0
  315. package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade-guard.js.map +1 -0
  316. package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade.error.d.ts +24 -0
  317. package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade.error.d.ts.map +1 -0
  318. package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade.error.js +24 -0
  319. package/dist/service/lambda/event-source/stream/sim-lambda-stream-cascade.error.js.map +1 -0
  320. package/dist/service/lambda/index.d.ts +3 -0
  321. package/dist/service/lambda/index.d.ts.map +1 -1
  322. package/dist/service/lambda/index.js +1 -0
  323. package/dist/service/lambda/index.js.map +1 -1
  324. package/dist/service/lambda/sim-lambda-commands.d.ts +2 -0
  325. package/dist/service/lambda/sim-lambda-commands.d.ts.map +1 -1
  326. package/dist/service/lambda/sim-lambda-commands.js +7 -3
  327. package/dist/service/lambda/sim-lambda-commands.js.map +1 -1
  328. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-event-image.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-event-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,8CAA8C,CAAC;AACzG,OAAO,KAAK,EAEV,2BAA2B,EAC5B,MAAM,6CAA6C,CAAC;AAErD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,oCAAoC,GAAG,SAAS,GACrD;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAYA;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,sBAAsB,GAC5B,2BAA2B,CAO7B"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * The images an event record carries, which are the ones the stream's view type
3
+ * gave the record and no others.
4
+ */
5
+ export function simLambdaDynamoDbEventImages(body) {
6
+ return {
7
+ ...(body?.Keys !== undefined && {
8
+ Keys: simLambdaDynamoDbEventImage(body.Keys),
9
+ }),
10
+ ...(body?.NewImage !== undefined && {
11
+ NewImage: simLambdaDynamoDbEventImage(body.NewImage),
12
+ }),
13
+ ...(body?.OldImage !== undefined && {
14
+ OldImage: simLambdaDynamoDbEventImage(body.OldImage),
15
+ }),
16
+ };
17
+ }
18
+ /**
19
+ * The image a stream record's item becomes in the event.
20
+ *
21
+ * Everything but binary crosses unchanged. Binary does not: the Streams API
22
+ * hands out bytes, because its client decoded them, and a function receives the
23
+ * base64 the event was written with. A handler doing `Buffer.from(value.B,
24
+ * "base64")` works on AWS, so it has to work here, and bytes handed over
25
+ * instead would make that same line quietly produce something else.
26
+ */
27
+ export function simLambdaDynamoDbEventImage(image) {
28
+ return Object.fromEntries(Object.entries(image).map(([name, value]) => [
29
+ name,
30
+ eventAttributeValue(value),
31
+ ]));
32
+ }
33
+ /**
34
+ * One value, with the binary inside it base64 encoded however deeply it is
35
+ * nested: a list or a map carries attribute values of its own.
36
+ */
37
+ function eventAttributeValue(value) {
38
+ if (value.B !== undefined) {
39
+ return { B: base64Of(value.B) };
40
+ }
41
+ if (value.BS !== undefined) {
42
+ return { BS: value.BS.map((member) => base64Of(member)) };
43
+ }
44
+ if (value.L !== undefined) {
45
+ return { L: value.L.map((member) => eventAttributeValue(member)) };
46
+ }
47
+ if (value.M !== undefined) {
48
+ return { M: simLambdaDynamoDbEventImage(value.M) };
49
+ }
50
+ return value;
51
+ }
52
+ function base64Of(value) {
53
+ return Buffer.from(value).toString("base64");
54
+ }
55
+ //# sourceMappingURL=sim-lambda-dynamodb-event-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-event-image.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-event-image.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAsD;IAMtD,OAAO;QACL,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI;YAC9B,IAAI,EAAE,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;SAC7C,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI;YAClC,QAAQ,EAAE,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC;SACrD,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI;YAClC,QAAQ,EAAE,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC;SACrD,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAA6B;IAE7B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI;QACJ,mBAAmB,CAAC,KAAK,CAAC;KAC3B,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,KAAsC;IAEtC,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { SimLambdaEventSourceStreamBatch, SimLambdaEventSourceStreamPosition, SimLambdaEventSourceStreams, SimLambdaEventSourceStreamWatcher } from "../stream/sim-lambda-event-source-streams.js";
2
+ /**
3
+ * The one stream a mapping polls.
4
+ *
5
+ * Every call names the same stream, and the ones a poll makes are all made as
6
+ * the function's execution role, so both are fixed here rather than written out
7
+ * at each call. Simulated IAM still decides each one, exactly as real IAM does.
8
+ */
9
+ export declare class SimLambdaDynamoDbPolledStream {
10
+ private readonly streams;
11
+ private readonly streamArn;
12
+ constructor(streams: SimLambdaEventSourceStreams, streamArn: string);
13
+ /**
14
+ * Watch for records being written to the stream.
15
+ */
16
+ watch(watcher: SimLambdaEventSourceStreamWatcher): void;
17
+ /**
18
+ * Stop watching the stream.
19
+ */
20
+ unwatch(watcher: SimLambdaEventSourceStreamWatcher): void;
21
+ /**
22
+ * Read up to a batch of records from where the mapping left off.
23
+ */
24
+ read(roleArn: string, position: SimLambdaEventSourceStreamPosition, batchSize: number): Promise<SimLambdaEventSourceStreamBatch>;
25
+ private requestAs;
26
+ }
27
+ //# sourceMappingURL=sim-lambda-dynamodb-polled-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-polled-stream.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,kCAAkC,EAElC,2BAA2B,EAC3B,iCAAiC,EAClC,MAAM,8CAA8C,CAAC;AAEtD;;;;;;GAMG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,YAAY,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,MAAM,EAGlE;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,iCAAiC,GAAG,IAAI,CAEtD;IAED;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,iCAAiC,GAAG,IAAI,CAExD;IAED;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,kCAAkC,EAC5C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,+BAA+B,CAAC,CAM1C;IAED,OAAO,CAAC,SAAS;CAGlB"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The one stream a mapping polls.
3
+ *
4
+ * Every call names the same stream, and the ones a poll makes are all made as
5
+ * the function's execution role, so both are fixed here rather than written out
6
+ * at each call. Simulated IAM still decides each one, exactly as real IAM does.
7
+ */
8
+ export class SimLambdaDynamoDbPolledStream {
9
+ streams;
10
+ streamArn;
11
+ constructor(streams, streamArn) {
12
+ this.streams = streams;
13
+ this.streamArn = streamArn;
14
+ }
15
+ /**
16
+ * Watch for records being written to the stream.
17
+ */
18
+ watch(watcher) {
19
+ this.streams.watch(this.streamArn, watcher);
20
+ }
21
+ /**
22
+ * Stop watching the stream.
23
+ */
24
+ unwatch(watcher) {
25
+ this.streams.unwatch(this.streamArn, watcher);
26
+ }
27
+ /**
28
+ * Read up to a batch of records from where the mapping left off.
29
+ */
30
+ async read(roleArn, position, batchSize) {
31
+ return await this.streams.read({
32
+ ...this.requestAs(roleArn),
33
+ position,
34
+ batchSize,
35
+ });
36
+ }
37
+ requestAs(roleArn) {
38
+ return { streamArn: this.streamArn, caller: { kind: "arn", arn: roleArn } };
39
+ }
40
+ }
41
+ //# sourceMappingURL=sim-lambda-dynamodb-polled-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-polled-stream.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-polled-stream.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAM,OAAO,6BAA6B;IACvB,OAAO,CAA8B;IACrC,SAAS,CAAS;IAEnC,YAAY,OAAoC,EAAE,SAAiB;QACjE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAA0C;QAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAA0C;QAChD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,OAAe,EACf,QAA4C,EAC5C,SAAiB;QAEjB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAC7B,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC1B,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;IAC9E,CAAC;CACF"}
@@ -0,0 +1,42 @@
1
+ import type { SimLambdaFunction } from "../../function/sim-lambda-function.js";
2
+ import type { SimLambdaEventSourceMapping } from "../sim-lambda-event-source-mapping.js";
3
+ import type { SimLambdaDynamoDbStreamEventSourceArn } from "../stream/sim-lambda-dynamodb-stream-event-source-arn.js";
4
+ import type { SimLambdaEventSourceStreamRecord } from "../stream/sim-lambda-event-source-streams.js";
5
+ import type { SimLambdaStreamBatchOutcome } from "./sim-lambda-stream-batch-outcome.js";
6
+ interface SimLambdaDynamoDbStreamDeliveryProperties {
7
+ readonly mapping: SimLambdaEventSourceMapping;
8
+ readonly eventSourceArn: SimLambdaDynamoDbStreamEventSourceArn;
9
+ }
10
+ /**
11
+ * Hands one batch of stream records to a function and says what became of it.
12
+ *
13
+ * The batch is invoked directly rather than through the Invoke command because
14
+ * the handler's error has to be seen: an asynchronous invocation drops it, and
15
+ * this is what decides whether the mapping's checkpoint moves.
16
+ *
17
+ * The answer is one place on the shard rather than a pair of lists, which is
18
+ * the difference between a stream and a queue. What that place is depends on
19
+ * what the function said, so the batch response decides it.
20
+ *
21
+ * What the function did with the table while it ran is part of the same
22
+ * question, so the cascade guard belongs here too: a handler writing back into
23
+ * its own source table is refused rather than handled.
24
+ */
25
+ export declare class SimLambdaDynamoDbStreamDelivery {
26
+ private readonly eventBuilder;
27
+ private readonly batchResponse;
28
+ private readonly cascade;
29
+ constructor(properties: SimLambdaDynamoDbStreamDeliveryProperties);
30
+ /**
31
+ * Deliver a batch, answering with what became of it.
32
+ */
33
+ to(simFunction: SimLambdaFunction, records: readonly SimLambdaEventSourceStreamRecord[]): Promise<SimLambdaStreamBatchOutcome>;
34
+ /**
35
+ * Note a record written to the polled stream, answering with whether this
36
+ * mapping's own function wrote it.
37
+ */
38
+ noteRecordWritten(): boolean;
39
+ private handled;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=sim-lambda-dynamodb-stream-delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-stream-delivery.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0DAA0D,CAAC;AACtH,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AAGrG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAGxF,UAAU,yCAAyC;IACjD,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,qCAAqC,CAAC;CAChE;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,+BAA+B;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IAEtD,YAAY,UAAU,EAAE,yCAAyC,EAQhE;IAED;;OAEG;IACG,EAAE,CACN,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE,SAAS,gCAAgC,EAAE,GACnD,OAAO,CAAC,2BAA2B,CAAC,CAItC;IAED;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAE3B;YAEa,OAAO;CAetB"}
@@ -0,0 +1,52 @@
1
+ import { SimLambdaStreamCascadeGuard } from "../stream/sim-lambda-stream-cascade-guard.js";
2
+ import { SimLambdaDynamoDbStreamEventBuilder } from "./sim-lambda-dynamodb-stream-event.js";
3
+ import { SimLambdaStreamBatchResponse } from "./sim-lambda-stream-batch-response.js";
4
+ /**
5
+ * Hands one batch of stream records to a function and says what became of it.
6
+ *
7
+ * The batch is invoked directly rather than through the Invoke command because
8
+ * the handler's error has to be seen: an asynchronous invocation drops it, and
9
+ * this is what decides whether the mapping's checkpoint moves.
10
+ *
11
+ * The answer is one place on the shard rather than a pair of lists, which is
12
+ * the difference between a stream and a queue. What that place is depends on
13
+ * what the function said, so the batch response decides it.
14
+ *
15
+ * What the function did with the table while it ran is part of the same
16
+ * question, so the cascade guard belongs here too: a handler writing back into
17
+ * its own source table is refused rather than handled.
18
+ */
19
+ export class SimLambdaDynamoDbStreamDelivery {
20
+ eventBuilder;
21
+ batchResponse;
22
+ cascade;
23
+ constructor(properties) {
24
+ this.eventBuilder = new SimLambdaDynamoDbStreamEventBuilder(properties.eventSourceArn);
25
+ this.batchResponse = new SimLambdaStreamBatchResponse(properties.mapping.reportsBatchItemFailures);
26
+ this.cascade = new SimLambdaStreamCascadeGuard(properties);
27
+ }
28
+ /**
29
+ * Deliver a batch, answering with what became of it.
30
+ */
31
+ async to(simFunction, records) {
32
+ return await this.cascade.around(async () => await this.handled(simFunction, records));
33
+ }
34
+ /**
35
+ * Note a record written to the polled stream, answering with whether this
36
+ * mapping's own function wrote it.
37
+ */
38
+ noteRecordWritten() {
39
+ return this.cascade.noteRecordWritten();
40
+ }
41
+ async handled(simFunction, records) {
42
+ try {
43
+ return this.batchResponse.handled(records, await simFunction.invoke(this.eventBuilder.of(records)));
44
+ }
45
+ catch {
46
+ // As on real Lambda, the handler error goes to the function's logs. What
47
+ // the table sees is the batch being tried again.
48
+ return this.batchResponse.failed();
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=sim-lambda-dynamodb-stream-delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-stream-delivery.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAE5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAOrF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,+BAA+B;IACzB,YAAY,CAAsC;IAClD,aAAa,CAA+B;IAC5C,OAAO,CAA8B;IAEtD,YAAY,UAAqD;QAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,mCAAmC,CACzD,UAAU,CAAC,cAAc,CAC1B,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,4BAA4B,CACnD,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAC5C,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,EAAE,CACN,WAA8B,EAC9B,OAAoD;QAEpD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAC9B,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CACrD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,WAA8B,EAC9B,OAAoD;QAEpD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAC/B,OAAO,EACP,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CACxD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;YACzE,iDAAiD;YACjD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,77 @@
1
+ import type { BackgroundScheduler } from "../../../../util/background/background.js";
2
+ import type { SimLambdaFunctionLookup } from "../../function/url/sim-lambda-function-lookup.js";
3
+ import type { SimLambdaEventSourceMapping } from "../sim-lambda-event-source-mapping.js";
4
+ import type { SimLambdaDynamoDbStreamEventSourceArn } from "../stream/sim-lambda-dynamodb-stream-event-source-arn.js";
5
+ import type { SimLambdaEventSourceStreams } from "../stream/sim-lambda-event-source-streams.js";
6
+ import { type SimLambdaEventSourcePolls } from "./sim-lambda-event-source-poll-turn.js";
7
+ import type { SimLambdaEventSourcePoller } from "./sim-lambda-event-source-poller.js";
8
+ interface SimLambdaDynamoDbStreamEventSourcePollerProperties {
9
+ readonly mapping: SimLambdaEventSourceMapping;
10
+ readonly eventSourceArn: SimLambdaDynamoDbStreamEventSourceArn;
11
+ readonly functions: SimLambdaFunctionLookup;
12
+ readonly streams: SimLambdaEventSourceStreams;
13
+ readonly background: BackgroundScheduler;
14
+ }
15
+ /**
16
+ * Polls one event source mapping's DynamoDB stream and invokes its function.
17
+ *
18
+ * A sibling of the queue poller rather than a variation on it. Every step
19
+ * differs, and the last one inverts: a queue mapping polls again when a batch
20
+ * came back, because the batch is on the queue waiting; a stream mapping polls
21
+ * again when a batch went through, because the records stay on the stream
22
+ * either way and it is the checkpoint that moved.
23
+ *
24
+ * That is also why nothing else may read while a delivery is in flight. A
25
+ * received message is hidden and a read record is not, so a second poll
26
+ * overlapping the first would hand the same records to the function twice.
27
+ */
28
+ export declare class SimLambdaDynamoDbStreamEventSourcePoller implements SimLambdaEventSourcePoller, SimLambdaEventSourcePolls {
29
+ private readonly mapping;
30
+ private readonly functions;
31
+ private readonly stream;
32
+ private readonly delivery;
33
+ private readonly progress;
34
+ private readonly turn;
35
+ private stopped;
36
+ constructor(properties: SimLambdaDynamoDbStreamEventSourcePollerProperties);
37
+ /**
38
+ * Watch the stream this mapping polls.
39
+ *
40
+ * Watching starts as soon as the mapping is created, before it has finished
41
+ * creating, so a change made in between is not missed. The poll it wakes
42
+ * finds a mapping that is not polling yet and does nothing, and the poll that
43
+ * follows activation reads from the starting position.
44
+ */
45
+ watch(): void;
46
+ /**
47
+ * Poll as soon as the simulation gets to it, which is what a newly enabled
48
+ * mapping does with whatever its stream already holds, and what a wake-up
49
+ * that arrived mid-poll comes back as.
50
+ */
51
+ pollNow(): void;
52
+ /**
53
+ * Stop polling, as deleting the mapping does.
54
+ */
55
+ stop(): void;
56
+ /**
57
+ * Take a record arriving on the stream as something to poll for.
58
+ *
59
+ * A record written while this mapping's own function is running is the
60
+ * function writing back into its own source table. That never settles, so the
61
+ * mapping stops here and the delivery refuses once it is over.
62
+ */
63
+ recordsAvailable(): void;
64
+ /**
65
+ * Read one batch, deliver it, and decide what happens next.
66
+ *
67
+ * Only ever called through the turn, which is what keeps two polls from
68
+ * reading the same records.
69
+ */
70
+ poll(): Promise<void>;
71
+ /**
72
+ * The function this mapping delivers to, while it should be delivering.
73
+ */
74
+ private pollingFunction;
75
+ }
76
+ export {};
77
+ //# sourceMappingURL=sim-lambda-dynamodb-stream-event-source-poller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-stream-event-source-poller.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAChG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0DAA0D,CAAC;AACtH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAGhG,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAGtF,UAAU,kDAAkD;IAC1D,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,qCAAqC,CAAC;IAC/D,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;CAC1C;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,wCACX,YAAW,0BAA0B,EAAE,yBAAyB;IAEhE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0C;IAE/D,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,UAAU,EAAE,kDAAkD,EAoBzE;IAED;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;;;OAIG;IACH,OAAO,IAAI,IAAI,CAEd;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAGX;IAED;;;;;;OAMG;IACH,gBAAgB,IAAI,IAAI,CAQvB;IAED;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAuB1B;IAED;;OAEG;IACH,OAAO,CAAC,eAAe;CAOxB"}
@@ -0,0 +1,114 @@
1
+ import { SimLambdaDynamoDbPolledStream } from "./sim-lambda-dynamodb-polled-stream.js";
2
+ import { SimLambdaDynamoDbStreamDelivery } from "./sim-lambda-dynamodb-stream-delivery.js";
3
+ import { SimLambdaEventSourcePollTurn, } from "./sim-lambda-event-source-poll-turn.js";
4
+ import { SimLambdaStreamProgress } from "./sim-lambda-stream-progress.js";
5
+ /**
6
+ * Polls one event source mapping's DynamoDB stream and invokes its function.
7
+ *
8
+ * A sibling of the queue poller rather than a variation on it. Every step
9
+ * differs, and the last one inverts: a queue mapping polls again when a batch
10
+ * came back, because the batch is on the queue waiting; a stream mapping polls
11
+ * again when a batch went through, because the records stay on the stream
12
+ * either way and it is the checkpoint that moved.
13
+ *
14
+ * That is also why nothing else may read while a delivery is in flight. A
15
+ * received message is hidden and a read record is not, so a second poll
16
+ * overlapping the first would hand the same records to the function twice.
17
+ */
18
+ export class SimLambdaDynamoDbStreamEventSourcePoller {
19
+ mapping;
20
+ functions;
21
+ stream;
22
+ delivery;
23
+ progress;
24
+ turn = new SimLambdaEventSourcePollTurn(this);
25
+ stopped = false;
26
+ constructor(properties) {
27
+ const { eventSourceArn, mapping } = properties;
28
+ this.mapping = mapping;
29
+ this.functions = properties.functions;
30
+ this.stream = new SimLambdaDynamoDbPolledStream(properties.streams, eventSourceArn.value);
31
+ this.delivery = new SimLambdaDynamoDbStreamDelivery({
32
+ mapping,
33
+ eventSourceArn,
34
+ });
35
+ this.progress = new SimLambdaStreamProgress({
36
+ mapping,
37
+ background: properties.background,
38
+ poll: async () => {
39
+ await this.turn.take();
40
+ },
41
+ });
42
+ }
43
+ /**
44
+ * Watch the stream this mapping polls.
45
+ *
46
+ * Watching starts as soon as the mapping is created, before it has finished
47
+ * creating, so a change made in between is not missed. The poll it wakes
48
+ * finds a mapping that is not polling yet and does nothing, and the poll that
49
+ * follows activation reads from the starting position.
50
+ */
51
+ watch() {
52
+ this.stream.watch(this);
53
+ }
54
+ /**
55
+ * Poll as soon as the simulation gets to it, which is what a newly enabled
56
+ * mapping does with whatever its stream already holds, and what a wake-up
57
+ * that arrived mid-poll comes back as.
58
+ */
59
+ pollNow() {
60
+ this.progress.pollNow();
61
+ }
62
+ /**
63
+ * Stop polling, as deleting the mapping does.
64
+ */
65
+ stop() {
66
+ this.stopped = true;
67
+ this.stream.unwatch(this);
68
+ }
69
+ /**
70
+ * Take a record arriving on the stream as something to poll for.
71
+ *
72
+ * A record written while this mapping's own function is running is the
73
+ * function writing back into its own source table. That never settles, so the
74
+ * mapping stops here and the delivery refuses once it is over.
75
+ */
76
+ recordsAvailable() {
77
+ if (this.delivery.noteRecordWritten()) {
78
+ this.stopped = true;
79
+ return;
80
+ }
81
+ this.progress.pollNow();
82
+ }
83
+ /**
84
+ * Read one batch, deliver it, and decide what happens next.
85
+ *
86
+ * Only ever called through the turn, which is what keeps two polls from
87
+ * reading the same records.
88
+ */
89
+ async poll() {
90
+ const simFunction = this.pollingFunction();
91
+ if (simFunction === undefined) {
92
+ return;
93
+ }
94
+ const { progress } = this;
95
+ // Reading is done as the function's execution role, as on real Lambda, so
96
+ // simulated IAM decides whether this mapping may read its stream.
97
+ const batch = await this.stream.read(simFunction.roleArn, progress.position, this.mapping.batchSize);
98
+ if (batch.records.length === 0) {
99
+ progress.caughtUp(batch);
100
+ return;
101
+ }
102
+ progress.after(await this.delivery.to(simFunction, batch.records), batch);
103
+ }
104
+ /**
105
+ * The function this mapping delivers to, while it should be delivering.
106
+ */
107
+ pollingFunction() {
108
+ if (this.stopped || !this.mapping.isPolling) {
109
+ return undefined;
110
+ }
111
+ return this.functions.find(this.mapping.functionName);
112
+ }
113
+ }
114
+ //# sourceMappingURL=sim-lambda-dynamodb-stream-event-source-poller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-stream-event-source-poller.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event-source-poller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAEL,4BAA4B,GAC7B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAU1E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,wCAAwC;IAGlC,OAAO,CAA8B;IACrC,SAAS,CAA0B;IACnC,MAAM,CAAgC;IACtC,QAAQ,CAAkC;IAC1C,QAAQ,CAA0B;IAClC,IAAI,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAEvD,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,UAA8D;QACxE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,6BAA6B,CAC7C,UAAU,CAAC,OAAO,EAClB,cAAc,CAAC,KAAK,CACrB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAA+B,CAAC;YAClD,OAAO;YACP,cAAc;SACf,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAuB,CAAC;YAC1C,OAAO;YACP,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,IAAI,EAAE,KAAK,IAAmB,EAAE;gBAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB;QACd,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE3C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAClC,WAAW,CAAC,OAAO,EACnB,QAAQ,CAAC,QAAQ,EACjB,IAAI,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC;QAEF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEzB,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import type { SimLambdaDynamoDbStreamEventSourceArn } from "../stream/sim-lambda-dynamodb-stream-event-source-arn.js";
2
+ import type { SimLambdaDynamoDbStreamEvent } from "./sim-lambda-dynamodb-stream-event.types.js";
3
+ import type { SimLambdaEventSourceStreamRecord } from "../stream/sim-lambda-event-source-streams.js";
4
+ /**
5
+ * Builds the DynamoDB stream event for one batch of polled records.
6
+ *
7
+ * The casing here is the event's own and is not a tidy scheme: `eventID` has a
8
+ * capital ID, `dynamodb` has none, `eventSourceARN` has a capital ARN, the
9
+ * block inside `dynamodb` is capitalized and `userIdentity` is not. All of it
10
+ * is what a function actually receives, so all of it is written out.
11
+ */
12
+ export declare class SimLambdaDynamoDbStreamEventBuilder {
13
+ private readonly eventSourceArn;
14
+ constructor(eventSourceArn: SimLambdaDynamoDbStreamEventSourceArn);
15
+ /**
16
+ * The event for a batch of records.
17
+ */
18
+ of(records: readonly SimLambdaEventSourceStreamRecord[]): SimLambdaDynamoDbStreamEvent;
19
+ private record;
20
+ }
21
+ //# sourceMappingURL=sim-lambda-dynamodb-stream-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-stream-event.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0DAA0D,CAAC;AAEtH,OAAO,KAAK,EACV,4BAA4B,EAG7B,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EACV,gCAAgC,EAEjC,MAAM,8CAA8C,CAAC;AAItD;;;;;;;GAOG;AACH,qBAAa,mCAAmC;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IAEvE,YAAY,cAAc,EAAE,qCAAqC,EAEhE;IAED;;OAEG;IACH,EAAE,CACA,OAAO,EAAE,SAAS,gCAAgC,EAAE,GACnD,4BAA4B,CAE9B;IAED,OAAO,CAAC,MAAM;CAqBf"}
@@ -0,0 +1,56 @@
1
+ import { simLambdaDynamoDbEventImages } from "./sim-lambda-dynamodb-event-image.js";
2
+ const millisecondsPerSecond = 1000;
3
+ /**
4
+ * Builds the DynamoDB stream event for one batch of polled records.
5
+ *
6
+ * The casing here is the event's own and is not a tidy scheme: `eventID` has a
7
+ * capital ID, `dynamodb` has none, `eventSourceARN` has a capital ARN, the
8
+ * block inside `dynamodb` is capitalized and `userIdentity` is not. All of it
9
+ * is what a function actually receives, so all of it is written out.
10
+ */
11
+ export class SimLambdaDynamoDbStreamEventBuilder {
12
+ eventSourceArn;
13
+ constructor(eventSourceArn) {
14
+ this.eventSourceArn = eventSourceArn;
15
+ }
16
+ /**
17
+ * The event for a batch of records.
18
+ */
19
+ of(records) {
20
+ return { Records: records.map((record) => this.record(record)) };
21
+ }
22
+ record(record) {
23
+ const identity = record.userIdentity;
24
+ return {
25
+ eventID: record.eventID ?? "",
26
+ eventName: record.eventName ?? "",
27
+ eventVersion: record.eventVersion ?? "",
28
+ eventSource: "aws:dynamodb",
29
+ awsRegion: record.awsRegion ?? this.eventSourceArn.regionName,
30
+ dynamodb: eventRecordBody(record.dynamodb),
31
+ eventSourceARN: this.eventSourceArn.value,
32
+ ...(identity !== undefined && {
33
+ userIdentity: {
34
+ type: identity.Type ?? "",
35
+ principalId: identity.PrincipalId ?? "",
36
+ },
37
+ }),
38
+ };
39
+ }
40
+ }
41
+ /**
42
+ * The change block of an event record.
43
+ */
44
+ function eventRecordBody(body) {
45
+ const createdAt = body?.ApproximateCreationDateTime;
46
+ return {
47
+ ...(createdAt !== undefined && {
48
+ ApproximateCreationDateTime: Math.floor(createdAt.getTime() / millisecondsPerSecond),
49
+ }),
50
+ ...simLambdaDynamoDbEventImages(body),
51
+ SequenceNumber: body?.SequenceNumber ?? "",
52
+ SizeBytes: body?.SizeBytes ?? 0,
53
+ StreamViewType: body?.StreamViewType ?? "",
54
+ };
55
+ }
56
+ //# sourceMappingURL=sim-lambda-dynamodb-stream-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-stream-event.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAWpF,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,OAAO,mCAAmC;IAC7B,cAAc,CAAwC;IAEvE,YAAY,cAAqD;QAC/D,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,EAAE,CACA,OAAoD;QAEpD,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;IAEO,MAAM,CACZ,MAAwC;QAExC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;YACvC,WAAW,EAAE,cAAc;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU;YAC7D,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1C,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK;YACzC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI;gBAC5B,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE;oBACzB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;iBACxC;aACF,CAAC;SACH,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,IAAsD;IAEtD,MAAM,SAAS,GAAG,IAAI,EAAE,2BAA2B,CAAC;IAEpD,OAAO;QACL,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI;YAC7B,2BAA2B,EAAE,IAAI,CAAC,KAAK,CACrC,SAAS,CAAC,OAAO,EAAE,GAAG,qBAAqB,CAC5C;SACF,CAAC;QACF,GAAG,4BAA4B,CAAC,IAAI,CAAC;QACrC,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,EAAE;QAC1C,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC;QAC/B,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,EAAE;KAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * The shape of the event a DynamoDB stream event source mapping invokes a
3
+ * function with.
4
+ *
5
+ * https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html
6
+ */
7
+ /**
8
+ * One attribute value as a DynamoDB stream event carries it.
9
+ *
10
+ * The tags are the ones DynamoDB names its types with, and every one of them is
11
+ * optional, which is how the `aws-lambda` typings declare a stream event's
12
+ * attribute values. Binary is a base64 string rather than bytes, because the
13
+ * event reaches a function as JSON, and JSON has no bytes.
14
+ */
15
+ export interface SimLambdaDynamoDbEventAttributeValue {
16
+ readonly B?: string | undefined;
17
+ readonly BOOL?: boolean | undefined;
18
+ readonly BS?: readonly string[] | undefined;
19
+ readonly L?: readonly SimLambdaDynamoDbEventAttributeValue[] | undefined;
20
+ readonly M?: SimLambdaDynamoDbEventImage | undefined;
21
+ readonly N?: string | undefined;
22
+ readonly NS?: readonly string[] | undefined;
23
+ readonly NULL?: boolean | undefined;
24
+ readonly S?: string | undefined;
25
+ readonly SS?: readonly string[] | undefined;
26
+ }
27
+ /**
28
+ * One item image as a DynamoDB stream event carries it.
29
+ */
30
+ export type SimLambdaDynamoDbEventImage = Readonly<Record<string, SimLambdaDynamoDbEventAttributeValue>>;
31
+ /**
32
+ * The change one record reports, as a DynamoDB stream event record carries it.
33
+ *
34
+ * The field names are the Streams API's, capital and all, because that is what
35
+ * the event carries. `ApproximateCreationDateTime` is the exception: the API
36
+ * gives an instant and the event gives whole seconds since the epoch.
37
+ */
38
+ export interface SimLambdaDynamoDbStreamEventRecordBody {
39
+ readonly ApproximateCreationDateTime?: number | undefined;
40
+ readonly Keys?: SimLambdaDynamoDbEventImage | undefined;
41
+ readonly NewImage?: SimLambdaDynamoDbEventImage | undefined;
42
+ readonly OldImage?: SimLambdaDynamoDbEventImage | undefined;
43
+ readonly SequenceNumber: string;
44
+ readonly SizeBytes: number;
45
+ readonly StreamViewType: string;
46
+ }
47
+ /**
48
+ * Who made the change a record reports, when it was not the application.
49
+ *
50
+ * A time to live deletion is the one that carries this. The Streams API
51
+ * capitalizes the same two fields; the event does not.
52
+ */
53
+ export interface SimLambdaDynamoDbStreamEventUserIdentity {
54
+ readonly type: string;
55
+ readonly principalId: string;
56
+ }
57
+ /**
58
+ * One stream record as a DynamoDB stream event record.
59
+ *
60
+ * https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html
61
+ */
62
+ export interface SimLambdaDynamoDbStreamEventRecord {
63
+ readonly eventID: string;
64
+ readonly eventName: string;
65
+ readonly eventVersion: string;
66
+ readonly eventSource: "aws:dynamodb";
67
+ readonly awsRegion: string;
68
+ readonly dynamodb: SimLambdaDynamoDbStreamEventRecordBody;
69
+ readonly eventSourceARN: string;
70
+ readonly userIdentity?: SimLambdaDynamoDbStreamEventUserIdentity | undefined;
71
+ }
72
+ /**
73
+ * The event a DynamoDB stream event source mapping invokes a function with.
74
+ */
75
+ export interface SimLambdaDynamoDbStreamEvent {
76
+ readonly Records: readonly SimLambdaDynamoDbStreamEventRecord[];
77
+ }
78
+ //# sourceMappingURL=sim-lambda-dynamodb-stream-event.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-stream-event.types.d.ts","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,oCAAoC,EAAE,GAAG,SAAS,CAAC;IACzE,QAAQ,CAAC,CAAC,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAChD,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CACrD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,sCAAsC,CAAC;IAC1D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,wCAAwC,GAAG,SAAS,CAAC;CAC9E;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,SAAS,kCAAkC,EAAE,CAAC;CACjE"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The shape of the event a DynamoDB stream event source mapping invokes a
3
+ * function with.
4
+ *
5
+ * https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=sim-lambda-dynamodb-stream-event.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-dynamodb-stream-event.types.js","sourceRoot":"","sources":["../../../../../src/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-event.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}