@kensio/yulin 0.43.0 → 0.44.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 (408) hide show
  1. package/README.md +1 -0
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
  3. package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
  4. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  5. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +11 -0
  6. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
  7. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +19 -0
  8. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
  9. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
  10. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  11. package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
  12. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  13. package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
  14. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  15. package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
  16. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  17. package/dist/service/aws/sim-aws.d.ts +3 -0
  18. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  19. package/dist/service/aws/sim-aws.js +4 -0
  20. package/dist/service/aws/sim-aws.js.map +1 -1
  21. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.d.ts.map +1 -1
  22. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.js +8 -0
  23. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.js.map +1 -1
  24. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-event-source-mapping-cfn.d.ts +28 -0
  25. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-event-source-mapping-cfn.d.ts.map +1 -0
  26. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-event-source-mapping-cfn.js +33 -0
  27. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-event-source-mapping-cfn.js.map +1 -0
  28. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.d.ts.map +1 -1
  29. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js +2 -0
  30. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js.map +1 -1
  31. package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-cfn-value-adapter.d.ts +6 -0
  32. package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-cfn-value-adapter.d.ts.map +1 -0
  33. package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-cfn-value-adapter.js +13 -0
  34. package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-cfn-value-adapter.js.map +1 -0
  35. package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-queue-cfn.d.ts +28 -0
  36. package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-queue-cfn.d.ts.map +1 -0
  37. package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-queue-cfn.js +40 -0
  38. package/dist/service/cloudformation/resource/cfn/sqs/sim-sqs-queue-cfn.js.map +1 -0
  39. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.d.ts.map +1 -1
  40. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js +3 -0
  41. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js.map +1 -1
  42. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +3 -0
  43. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts.map +1 -1
  44. package/dist/service/cloudformation/resource/sim-cfn-resource.js +4 -1
  45. package/dist/service/cloudformation/resource/sim-cfn-resource.js.map +1 -1
  46. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.d.ts.map +1 -1
  47. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  48. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js.map +1 -1
  49. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.d.ts +26 -0
  50. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.d.ts.map +1 -0
  51. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.js +33 -0
  52. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.js.map +1 -0
  53. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.d.ts +28 -0
  54. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.d.ts.map +1 -0
  55. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +38 -0
  56. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js.map +1 -0
  57. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.d.ts +17 -0
  58. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.d.ts.map +1 -0
  59. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +71 -0
  60. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js.map +1 -0
  61. package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.d.ts +4 -0
  62. package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.d.ts.map +1 -1
  63. package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.js +12 -0
  64. package/dist/service/lambda/cfn/function/sim-cfn-lambda-property-parser.js.map +1 -1
  65. package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.d.ts +5 -6
  66. package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.d.ts.map +1 -1
  67. package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.js +7 -13
  68. package/dist/service/lambda/cfn/function/sim-cfn-lambda-target-function.js.map +1 -1
  69. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts +1 -0
  70. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts.map +1 -1
  71. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js +8 -0
  72. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js.map +1 -1
  73. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +25 -0
  74. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts.map +1 -0
  75. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +55 -0
  76. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js.map +1 -0
  77. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts +6 -0
  78. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.d.ts.map +1 -0
  79. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +64 -0
  80. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js.map +1 -0
  81. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts +17 -0
  82. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.d.ts.map +1 -0
  83. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js +47 -0
  84. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-values.js.map +1 -0
  85. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts +53 -0
  86. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.d.ts.map +1 -0
  87. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +77 -0
  88. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js.map +1 -0
  89. package/dist/service/lambda/command/event-source-mapping/event-source-mapping-access.d.ts +41 -0
  90. package/dist/service/lambda/command/event-source-mapping/event-source-mapping-access.d.ts.map +1 -0
  91. package/dist/service/lambda/command/event-source-mapping/event-source-mapping-access.js +51 -0
  92. package/dist/service/lambda/command/event-source-mapping/event-source-mapping-access.js.map +1 -0
  93. package/dist/service/lambda/command/event-source-mapping/event-source-mapping.command.d.ts +91 -0
  94. package/dist/service/lambda/command/event-source-mapping/event-source-mapping.command.d.ts.map +1 -0
  95. package/dist/service/lambda/command/event-source-mapping/event-source-mapping.command.js +8 -0
  96. package/dist/service/lambda/command/event-source-mapping/event-source-mapping.command.js.map +1 -0
  97. package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.d.ts +60 -0
  98. package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.d.ts.map +1 -0
  99. package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.js +89 -0
  100. package/dist/service/lambda/command/event-source-mapping/sim-lambda-event-source-mapping-commands.js.map +1 -0
  101. package/dist/service/lambda/command/sim-lambda-command.types.d.ts +1 -0
  102. package/dist/service/lambda/command/sim-lambda-command.types.d.ts.map +1 -1
  103. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts +27 -0
  104. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.d.ts.map +1 -0
  105. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js +32 -0
  106. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-delivery.js.map +1 -0
  107. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-schedule.d.ts +40 -0
  108. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-schedule.d.ts.map +1 -0
  109. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-schedule.js +55 -0
  110. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poll-schedule.js.map +1 -0
  111. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts +85 -0
  112. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.d.ts.map +1 -0
  113. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js +136 -0
  114. package/dist/service/lambda/event-source/poll/sim-lambda-event-source-poller.js.map +1 -0
  115. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts +49 -0
  116. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.d.ts.map +1 -0
  117. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js +97 -0
  118. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-batch-response.js.map +1 -0
  119. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event.d.ts +56 -0
  120. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event.d.ts.map +1 -0
  121. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event.js +55 -0
  122. package/dist/service/lambda/event-source/poll/sim-lambda-sqs-event.js.map +1 -0
  123. package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queue-service.d.ts +49 -0
  124. package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queue-service.d.ts.map +1 -0
  125. package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queue-service.js +2 -0
  126. package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queue-service.js.map +1 -0
  127. package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queues.d.ts +118 -0
  128. package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queues.d.ts.map +1 -0
  129. package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queues.js +49 -0
  130. package/dist/service/lambda/event-source/queue/sim-lambda-event-source-queues.js.map +1 -0
  131. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +32 -0
  132. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts.map +1 -0
  133. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +52 -0
  134. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js.map +1 -0
  135. package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queue-attributes.d.ts +29 -0
  136. package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queue-attributes.d.ts.map +1 -0
  137. package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queue-attributes.js +49 -0
  138. package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queue-attributes.js.map +1 -0
  139. package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queues.d.ts +57 -0
  140. package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queues.d.ts.map +1 -0
  141. package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queues.js +89 -0
  142. package/dist/service/lambda/event-source/queue/sim-sqs-event-source-queues.js.map +1 -0
  143. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping-store.d.ts +46 -0
  144. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping-store.d.ts.map +1 -0
  145. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping-store.js +57 -0
  146. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping-store.js.map +1 -0
  147. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +101 -0
  148. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts.map +1 -0
  149. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +93 -0
  150. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js.map +1 -0
  151. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts +37 -0
  152. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.d.ts.map +1 -0
  153. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js +44 -0
  154. package/dist/service/lambda/event-source/sim-lambda-event-source-pollers.js.map +1 -0
  155. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts +23 -0
  156. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.d.ts.map +1 -0
  157. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js +46 -0
  158. package/dist/service/lambda/event-source/sim-lambda-event-source-role-permissions.js.map +1 -0
  159. package/dist/service/lambda/function/sim-lambda-function-name.d.ts +10 -0
  160. package/dist/service/lambda/function/sim-lambda-function-name.d.ts.map +1 -0
  161. package/dist/service/lambda/function/sim-lambda-function-name.js +18 -0
  162. package/dist/service/lambda/function/sim-lambda-function-name.js.map +1 -0
  163. package/dist/service/lambda/function/url/sim-lambda-function-lookup.d.ts +4 -0
  164. package/dist/service/lambda/function/url/sim-lambda-function-lookup.d.ts.map +1 -1
  165. package/dist/service/lambda/function/url/sim-lambda-function-lookup.js +6 -0
  166. package/dist/service/lambda/function/url/sim-lambda-function-lookup.js.map +1 -1
  167. package/dist/service/lambda/index.d.ts +1 -0
  168. package/dist/service/lambda/index.d.ts.map +1 -1
  169. package/dist/service/lambda/sdk/sim-lambda-sdk-command-router.d.ts.map +1 -1
  170. package/dist/service/lambda/sdk/sim-lambda-sdk-command-router.js +16 -0
  171. package/dist/service/lambda/sdk/sim-lambda-sdk-command-router.js.map +1 -1
  172. package/dist/service/lambda/sim-lambda-commands.d.ts +51 -0
  173. package/dist/service/lambda/sim-lambda-commands.d.ts.map +1 -0
  174. package/dist/service/lambda/sim-lambda-commands.js +84 -0
  175. package/dist/service/lambda/sim-lambda-commands.js.map +1 -0
  176. package/dist/service/lambda/sim-lambda.d.ts +35 -39
  177. package/dist/service/lambda/sim-lambda.d.ts.map +1 -1
  178. package/dist/service/lambda/sim-lambda.js +47 -65
  179. package/dist/service/lambda/sim-lambda.js.map +1 -1
  180. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.d.ts +25 -0
  181. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.d.ts.map +1 -0
  182. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.js +33 -0
  183. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.js.map +1 -0
  184. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-name.d.ts +45 -0
  185. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-name.d.ts.map +1 -0
  186. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-name.js +67 -0
  187. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-name.js.map +1 -0
  188. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts +44 -0
  189. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts.map +1 -0
  190. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js +72 -0
  191. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js.map +1 -0
  192. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts +47 -0
  193. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts.map +1 -0
  194. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js +122 -0
  195. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js.map +1 -0
  196. package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.d.ts +24 -0
  197. package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.d.ts.map +1 -0
  198. package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.js +29 -0
  199. package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.js.map +1 -0
  200. package/dist/service/sqs/command/authorize/sim-sqs-authorizer.d.ts +41 -0
  201. package/dist/service/sqs/command/authorize/sim-sqs-authorizer.d.ts.map +1 -0
  202. package/dist/service/sqs/command/authorize/sim-sqs-authorizer.js +51 -0
  203. package/dist/service/sqs/command/authorize/sim-sqs-authorizer.js.map +1 -0
  204. package/dist/service/sqs/command/message/consume.command.d.ts +61 -0
  205. package/dist/service/sqs/command/message/consume.command.d.ts.map +1 -0
  206. package/dist/service/sqs/command/message/consume.command.js +2 -0
  207. package/dist/service/sqs/command/message/consume.command.js.map +1 -0
  208. package/dist/service/sqs/command/message/receive.command.d.ts +40 -0
  209. package/dist/service/sqs/command/message/receive.command.d.ts.map +1 -0
  210. package/dist/service/sqs/command/message/receive.command.js +2 -0
  211. package/dist/service/sqs/command/message/receive.command.js.map +1 -0
  212. package/dist/service/sqs/command/message/send.command.d.ts +80 -0
  213. package/dist/service/sqs/command/message/send.command.d.ts.map +1 -0
  214. package/dist/service/sqs/command/message/send.command.js +2 -0
  215. package/dist/service/sqs/command/message/send.command.js.map +1 -0
  216. package/dist/service/sqs/command/message/sim-sqs-batch-entries.d.ts +39 -0
  217. package/dist/service/sqs/command/message/sim-sqs-batch-entries.d.ts.map +1 -0
  218. package/dist/service/sqs/command/message/sim-sqs-batch-entries.js +67 -0
  219. package/dist/service/sqs/command/message/sim-sqs-batch-entries.js.map +1 -0
  220. package/dist/service/sqs/command/message/sim-sqs-change-message-visibility.d.ts +31 -0
  221. package/dist/service/sqs/command/message/sim-sqs-change-message-visibility.d.ts.map +1 -0
  222. package/dist/service/sqs/command/message/sim-sqs-change-message-visibility.js +51 -0
  223. package/dist/service/sqs/command/message/sim-sqs-change-message-visibility.js.map +1 -0
  224. package/dist/service/sqs/command/message/sim-sqs-delete-message-commands.d.ts +38 -0
  225. package/dist/service/sqs/command/message/sim-sqs-delete-message-commands.d.ts.map +1 -0
  226. package/dist/service/sqs/command/message/sim-sqs-delete-message-commands.js +58 -0
  227. package/dist/service/sqs/command/message/sim-sqs-delete-message-commands.js.map +1 -0
  228. package/dist/service/sqs/command/message/sim-sqs-message-handles.d.ts +28 -0
  229. package/dist/service/sqs/command/message/sim-sqs-message-handles.d.ts.map +1 -0
  230. package/dist/service/sqs/command/message/sim-sqs-message-handles.js +36 -0
  231. package/dist/service/sqs/command/message/sim-sqs-message-handles.js.map +1 -0
  232. package/dist/service/sqs/command/message/sim-sqs-receive-limits.d.ts +27 -0
  233. package/dist/service/sqs/command/message/sim-sqs-receive-limits.d.ts.map +1 -0
  234. package/dist/service/sqs/command/message/sim-sqs-receive-limits.js +70 -0
  235. package/dist/service/sqs/command/message/sim-sqs-receive-limits.js.map +1 -0
  236. package/dist/service/sqs/command/message/sim-sqs-receive-message.d.ts +32 -0
  237. package/dist/service/sqs/command/message/sim-sqs-receive-message.d.ts.map +1 -0
  238. package/dist/service/sqs/command/message/sim-sqs-receive-message.js +33 -0
  239. package/dist/service/sqs/command/message/sim-sqs-receive-message.js.map +1 -0
  240. package/dist/service/sqs/command/message/sim-sqs-receive-request.d.ts +33 -0
  241. package/dist/service/sqs/command/message/sim-sqs-receive-request.d.ts.map +1 -0
  242. package/dist/service/sqs/command/message/sim-sqs-receive-request.js +55 -0
  243. package/dist/service/sqs/command/message/sim-sqs-receive-request.js.map +1 -0
  244. package/dist/service/sqs/command/message/sim-sqs-received-message-view.d.ts +25 -0
  245. package/dist/service/sqs/command/message/sim-sqs-received-message-view.d.ts.map +1 -0
  246. package/dist/service/sqs/command/message/sim-sqs-received-message-view.js +38 -0
  247. package/dist/service/sqs/command/message/sim-sqs-received-message-view.js.map +1 -0
  248. package/dist/service/sqs/command/message/sim-sqs-send-message-commands.d.ts +32 -0
  249. package/dist/service/sqs/command/message/sim-sqs-send-message-commands.d.ts.map +1 -0
  250. package/dist/service/sqs/command/message/sim-sqs-send-message-commands.js +56 -0
  251. package/dist/service/sqs/command/message/sim-sqs-send-message-commands.js.map +1 -0
  252. package/dist/service/sqs/command/message/sim-sqs-sent-message.d.ts +18 -0
  253. package/dist/service/sqs/command/message/sim-sqs-sent-message.d.ts.map +1 -0
  254. package/dist/service/sqs/command/message/sim-sqs-sent-message.js +37 -0
  255. package/dist/service/sqs/command/message/sim-sqs-sent-message.js.map +1 -0
  256. package/dist/service/sqs/command/queue/queue.command.d.ts +114 -0
  257. package/dist/service/sqs/command/queue/queue.command.d.ts.map +1 -0
  258. package/dist/service/sqs/command/queue/queue.command.js +2 -0
  259. package/dist/service/sqs/command/queue/queue.command.js.map +1 -0
  260. package/dist/service/sqs/command/queue/sim-sqs-create-queue.d.ts +51 -0
  261. package/dist/service/sqs/command/queue/sim-sqs-create-queue.d.ts.map +1 -0
  262. package/dist/service/sqs/command/queue/sim-sqs-create-queue.js +70 -0
  263. package/dist/service/sqs/command/queue/sim-sqs-create-queue.js.map +1 -0
  264. package/dist/service/sqs/command/queue/sim-sqs-queue-access.d.ts +63 -0
  265. package/dist/service/sqs/command/queue/sim-sqs-queue-access.d.ts.map +1 -0
  266. package/dist/service/sqs/command/queue/sim-sqs-queue-access.js +98 -0
  267. package/dist/service/sqs/command/queue/sim-sqs-queue-access.js.map +1 -0
  268. package/dist/service/sqs/command/queue/sim-sqs-queue-attribute-commands.d.ts +45 -0
  269. package/dist/service/sqs/command/queue/sim-sqs-queue-attribute-commands.d.ts.map +1 -0
  270. package/dist/service/sqs/command/queue/sim-sqs-queue-attribute-commands.js +74 -0
  271. package/dist/service/sqs/command/queue/sim-sqs-queue-attribute-commands.js.map +1 -0
  272. package/dist/service/sqs/command/queue/sim-sqs-queue-commands.d.ts +47 -0
  273. package/dist/service/sqs/command/queue/sim-sqs-queue-commands.d.ts.map +1 -0
  274. package/dist/service/sqs/command/queue/sim-sqs-queue-commands.js +55 -0
  275. package/dist/service/sqs/command/queue/sim-sqs-queue-commands.js.map +1 -0
  276. package/dist/service/sqs/command/queue/sim-sqs-queue-page.d.ts +27 -0
  277. package/dist/service/sqs/command/queue/sim-sqs-queue-page.d.ts.map +1 -0
  278. package/dist/service/sqs/command/queue/sim-sqs-queue-page.js +54 -0
  279. package/dist/service/sqs/command/queue/sim-sqs-queue-page.js.map +1 -0
  280. package/dist/service/sqs/command/queue/sim-sqs-unsimulated-queue-input.d.ts +18 -0
  281. package/dist/service/sqs/command/queue/sim-sqs-unsimulated-queue-input.d.ts.map +1 -0
  282. package/dist/service/sqs/command/queue/sim-sqs-unsimulated-queue-input.js +27 -0
  283. package/dist/service/sqs/command/queue/sim-sqs-unsimulated-queue-input.js.map +1 -0
  284. package/dist/service/sqs/command/sim-sqs-command.types.d.ts +8 -0
  285. package/dist/service/sqs/command/sim-sqs-command.types.d.ts.map +1 -0
  286. package/dist/service/sqs/command/sim-sqs-command.types.js +2 -0
  287. package/dist/service/sqs/command/sim-sqs-command.types.js.map +1 -0
  288. package/dist/service/sqs/error/sim-sqs.error.d.ts +162 -0
  289. package/dist/service/sqs/error/sim-sqs.error.d.ts.map +1 -0
  290. package/dist/service/sqs/error/sim-sqs.error.js +191 -0
  291. package/dist/service/sqs/error/sim-sqs.error.js.map +1 -0
  292. package/dist/service/sqs/index.d.ts +14 -0
  293. package/dist/service/sqs/index.d.ts.map +1 -0
  294. package/dist/service/sqs/index.js +13 -0
  295. package/dist/service/sqs/index.js.map +1 -0
  296. package/dist/service/sqs/message/sim-sqs-message-attribute-payload.d.ts +56 -0
  297. package/dist/service/sqs/message/sim-sqs-message-attribute-payload.d.ts.map +1 -0
  298. package/dist/service/sqs/message/sim-sqs-message-attribute-payload.js +42 -0
  299. package/dist/service/sqs/message/sim-sqs-message-attribute-payload.js.map +1 -0
  300. package/dist/service/sqs/message/sim-sqs-message-attribute-rules.d.ts +23 -0
  301. package/dist/service/sqs/message/sim-sqs-message-attribute-rules.d.ts.map +1 -0
  302. package/dist/service/sqs/message/sim-sqs-message-attribute-rules.js +68 -0
  303. package/dist/service/sqs/message/sim-sqs-message-attribute-rules.js.map +1 -0
  304. package/dist/service/sqs/message/sim-sqs-message-attribute-value.d.ts +17 -0
  305. package/dist/service/sqs/message/sim-sqs-message-attribute-value.d.ts.map +1 -0
  306. package/dist/service/sqs/message/sim-sqs-message-attribute-value.js +2 -0
  307. package/dist/service/sqs/message/sim-sqs-message-attribute-value.js.map +1 -0
  308. package/dist/service/sqs/message/sim-sqs-message-attribute.d.ts +29 -0
  309. package/dist/service/sqs/message/sim-sqs-message-attribute.d.ts.map +1 -0
  310. package/dist/service/sqs/message/sim-sqs-message-attribute.js +56 -0
  311. package/dist/service/sqs/message/sim-sqs-message-attribute.js.map +1 -0
  312. package/dist/service/sqs/message/sim-sqs-message-attributes.d.ts +44 -0
  313. package/dist/service/sqs/message/sim-sqs-message-attributes.d.ts.map +1 -0
  314. package/dist/service/sqs/message/sim-sqs-message-attributes.js +93 -0
  315. package/dist/service/sqs/message/sim-sqs-message-attributes.js.map +1 -0
  316. package/dist/service/sqs/message/sim-sqs-message-body.d.ts +18 -0
  317. package/dist/service/sqs/message/sim-sqs-message-body.d.ts.map +1 -0
  318. package/dist/service/sqs/message/sim-sqs-message-body.js +66 -0
  319. package/dist/service/sqs/message/sim-sqs-message-body.js.map +1 -0
  320. package/dist/service/sqs/message/sim-sqs-message-store.d.ts +74 -0
  321. package/dist/service/sqs/message/sim-sqs-message-store.d.ts.map +1 -0
  322. package/dist/service/sqs/message/sim-sqs-message-store.js +99 -0
  323. package/dist/service/sqs/message/sim-sqs-message-store.js.map +1 -0
  324. package/dist/service/sqs/message/sim-sqs-message-system-attributes.d.ts +28 -0
  325. package/dist/service/sqs/message/sim-sqs-message-system-attributes.d.ts.map +1 -0
  326. package/dist/service/sqs/message/sim-sqs-message-system-attributes.js +75 -0
  327. package/dist/service/sqs/message/sim-sqs-message-system-attributes.js.map +1 -0
  328. package/dist/service/sqs/message/sim-sqs-message-visibility.d.ts +56 -0
  329. package/dist/service/sqs/message/sim-sqs-message-visibility.d.ts.map +1 -0
  330. package/dist/service/sqs/message/sim-sqs-message-visibility.js +79 -0
  331. package/dist/service/sqs/message/sim-sqs-message-visibility.js.map +1 -0
  332. package/dist/service/sqs/message/sim-sqs-message-writer.d.ts +41 -0
  333. package/dist/service/sqs/message/sim-sqs-message-writer.d.ts.map +1 -0
  334. package/dist/service/sqs/message/sim-sqs-message-writer.js +56 -0
  335. package/dist/service/sqs/message/sim-sqs-message-writer.js.map +1 -0
  336. package/dist/service/sqs/message/sim-sqs-message.d.ts +96 -0
  337. package/dist/service/sqs/message/sim-sqs-message.d.ts.map +1 -0
  338. package/dist/service/sqs/message/sim-sqs-message.js +136 -0
  339. package/dist/service/sqs/message/sim-sqs-message.js.map +1 -0
  340. package/dist/service/sqs/message/sim-sqs-receipt-handle.d.ts +10 -0
  341. package/dist/service/sqs/message/sim-sqs-receipt-handle.d.ts.map +1 -0
  342. package/dist/service/sqs/message/sim-sqs-receipt-handle.js +14 -0
  343. package/dist/service/sqs/message/sim-sqs-receipt-handle.js.map +1 -0
  344. package/dist/service/sqs/queue/sim-sqs-dead-letter-targets.d.ts +51 -0
  345. package/dist/service/sqs/queue/sim-sqs-dead-letter-targets.d.ts.map +1 -0
  346. package/dist/service/sqs/queue/sim-sqs-dead-letter-targets.js +62 -0
  347. package/dist/service/sqs/queue/sim-sqs-dead-letter-targets.js.map +1 -0
  348. package/dist/service/sqs/queue/sim-sqs-deleted-queue-names.d.ts +20 -0
  349. package/dist/service/sqs/queue/sim-sqs-deleted-queue-names.d.ts.map +1 -0
  350. package/dist/service/sqs/queue/sim-sqs-deleted-queue-names.js +42 -0
  351. package/dist/service/sqs/queue/sim-sqs-deleted-queue-names.js.map +1 -0
  352. package/dist/service/sqs/queue/sim-sqs-queue-activity.d.ts +65 -0
  353. package/dist/service/sqs/queue/sim-sqs-queue-activity.d.ts.map +1 -0
  354. package/dist/service/sqs/queue/sim-sqs-queue-activity.js +57 -0
  355. package/dist/service/sqs/queue/sim-sqs-queue-activity.js.map +1 -0
  356. package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts +41 -0
  357. package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts.map +1 -0
  358. package/dist/service/sqs/queue/sim-sqs-queue-arn.js +47 -0
  359. package/dist/service/sqs/queue/sim-sqs-queue-arn.js.map +1 -0
  360. package/dist/service/sqs/queue/sim-sqs-queue-attribute-names.d.ts +27 -0
  361. package/dist/service/sqs/queue/sim-sqs-queue-attribute-names.d.ts.map +1 -0
  362. package/dist/service/sqs/queue/sim-sqs-queue-attribute-names.js +83 -0
  363. package/dist/service/sqs/queue/sim-sqs-queue-attribute-names.js.map +1 -0
  364. package/dist/service/sqs/queue/sim-sqs-queue-attribute-numbers.d.ts +34 -0
  365. package/dist/service/sqs/queue/sim-sqs-queue-attribute-numbers.d.ts.map +1 -0
  366. package/dist/service/sqs/queue/sim-sqs-queue-attribute-numbers.js +93 -0
  367. package/dist/service/sqs/queue/sim-sqs-queue-attribute-numbers.js.map +1 -0
  368. package/dist/service/sqs/queue/sim-sqs-queue-attribute-specs.d.ts +20 -0
  369. package/dist/service/sqs/queue/sim-sqs-queue-attribute-specs.d.ts.map +1 -0
  370. package/dist/service/sqs/queue/sim-sqs-queue-attribute-specs.js +37 -0
  371. package/dist/service/sqs/queue/sim-sqs-queue-attribute-specs.js.map +1 -0
  372. package/dist/service/sqs/queue/sim-sqs-queue-attributes.d.ts +60 -0
  373. package/dist/service/sqs/queue/sim-sqs-queue-attributes.d.ts.map +1 -0
  374. package/dist/service/sqs/queue/sim-sqs-queue-attributes.js +96 -0
  375. package/dist/service/sqs/queue/sim-sqs-queue-attributes.js.map +1 -0
  376. package/dist/service/sqs/queue/sim-sqs-queue-name.d.ts +21 -0
  377. package/dist/service/sqs/queue/sim-sqs-queue-name.d.ts.map +1 -0
  378. package/dist/service/sqs/queue/sim-sqs-queue-name.js +47 -0
  379. package/dist/service/sqs/queue/sim-sqs-queue-name.js.map +1 -0
  380. package/dist/service/sqs/queue/sim-sqs-queue-report.d.ts +22 -0
  381. package/dist/service/sqs/queue/sim-sqs-queue-report.d.ts.map +1 -0
  382. package/dist/service/sqs/queue/sim-sqs-queue-report.js +29 -0
  383. package/dist/service/sqs/queue/sim-sqs-queue-report.js.map +1 -0
  384. package/dist/service/sqs/queue/sim-sqs-queue-store.d.ts +60 -0
  385. package/dist/service/sqs/queue/sim-sqs-queue-store.d.ts.map +1 -0
  386. package/dist/service/sqs/queue/sim-sqs-queue-store.js +87 -0
  387. package/dist/service/sqs/queue/sim-sqs-queue-store.js.map +1 -0
  388. package/dist/service/sqs/queue/sim-sqs-queue-url.d.ts +24 -0
  389. package/dist/service/sqs/queue/sim-sqs-queue-url.d.ts.map +1 -0
  390. package/dist/service/sqs/queue/sim-sqs-queue-url.js +36 -0
  391. package/dist/service/sqs/queue/sim-sqs-queue-url.js.map +1 -0
  392. package/dist/service/sqs/queue/sim-sqs-queue.d.ts +130 -0
  393. package/dist/service/sqs/queue/sim-sqs-queue.d.ts.map +1 -0
  394. package/dist/service/sqs/queue/sim-sqs-queue.js +188 -0
  395. package/dist/service/sqs/queue/sim-sqs-queue.js.map +1 -0
  396. package/dist/service/sqs/queue/sim-sqs-redrive-policy.d.ts +30 -0
  397. package/dist/service/sqs/queue/sim-sqs-redrive-policy.d.ts.map +1 -0
  398. package/dist/service/sqs/queue/sim-sqs-redrive-policy.js +118 -0
  399. package/dist/service/sqs/queue/sim-sqs-redrive-policy.js.map +1 -0
  400. package/dist/service/sqs/sdk/sim-sqs-sdk-command-router.d.ts +18 -0
  401. package/dist/service/sqs/sdk/sim-sqs-sdk-command-router.d.ts.map +1 -0
  402. package/dist/service/sqs/sdk/sim-sqs-sdk-command-router.js +76 -0
  403. package/dist/service/sqs/sdk/sim-sqs-sdk-command-router.js.map +1 -0
  404. package/dist/service/sqs/sim-sqs.d.ts +119 -0
  405. package/dist/service/sqs/sim-sqs.d.ts.map +1 -0
  406. package/dist/service/sqs/sim-sqs.js +213 -0
  407. package/dist/service/sqs/sim-sqs.js.map +1 -0
  408. package/package.json +6 -1
@@ -0,0 +1,41 @@
1
+ import type { BackgroundScheduler } from "../../../util/background/background.js";
2
+ import type { SimSqsQueue } from "../queue/sim-sqs-queue.js";
3
+ import { SimSqsMessage } from "./sim-sqs-message.js";
4
+ import type { SimSqsMessageAttributes } from "./sim-sqs-message-attributes.js";
5
+ /**
6
+ * One message as a sender describes it, with the request's own wrapping removed.
7
+ */
8
+ export interface SimSqsMessageWrite {
9
+ readonly body: string | undefined;
10
+ readonly attributes: SimSqsMessageAttributes;
11
+ readonly delaySeconds: number | undefined;
12
+ }
13
+ interface SimSqsMessageWriterProperties {
14
+ readonly clock: BackgroundScheduler;
15
+ }
16
+ /**
17
+ * Puts a message on a queue.
18
+ *
19
+ * SendMessage and each entry of SendMessageBatch end up here, so the two cannot
20
+ * drift apart on what a delay means, on how large a body may be, or on what a
21
+ * message id looks like. The queue's own attributes decide all three, which is
22
+ * why the queue comes in with the write rather than being consulted by the
23
+ * caller.
24
+ */
25
+ export declare class SimSqsMessageWriter {
26
+ private readonly clock;
27
+ constructor(properties: SimSqsMessageWriterProperties);
28
+ /**
29
+ * Write one message to a queue, and hand back what was written.
30
+ */
31
+ write(queue: SimSqsQueue, requested: SimSqsMessageWrite): SimSqsMessage;
32
+ /**
33
+ * The delay a message waits out before it can be received.
34
+ *
35
+ * A message with no delay of its own takes the queue's, which is what makes
36
+ * `DelaySeconds` on the queue a delay every message inherits.
37
+ */
38
+ private delayFor;
39
+ }
40
+ export {};
41
+ //# sourceMappingURL=sim-sqs-message-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-message-writer.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-message-writer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAO/E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAE5C,YAAY,UAAU,EAAE,6BAA6B,EAEpD;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,GAAG,aAAa,CAmBtE;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;CAkBjB"}
@@ -0,0 +1,56 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { SimSqsInvalidParameterValue } from "../error/sim-sqs.error.js";
3
+ import { SimSqsMessage } from "./sim-sqs-message.js";
4
+ import { SimSqsMessageBody } from "./sim-sqs-message-body.js";
5
+ const maximumDelaySeconds = 900;
6
+ const millisecondsPerSecond = 1000;
7
+ /**
8
+ * Puts a message on a queue.
9
+ *
10
+ * SendMessage and each entry of SendMessageBatch end up here, so the two cannot
11
+ * drift apart on what a delay means, on how large a body may be, or on what a
12
+ * message id looks like. The queue's own attributes decide all three, which is
13
+ * why the queue comes in with the write rather than being consulted by the
14
+ * caller.
15
+ */
16
+ export class SimSqsMessageWriter {
17
+ clock;
18
+ constructor(properties) {
19
+ this.clock = properties.clock;
20
+ }
21
+ /**
22
+ * Write one message to a queue, and hand back what was written.
23
+ */
24
+ write(queue, requested) {
25
+ const sentAt = this.clock.now();
26
+ const delaySeconds = this.delayFor(queue, requested.delaySeconds);
27
+ const message = new SimSqsMessage({
28
+ messageId: randomUUID(),
29
+ body: SimSqsMessageBody.of(requested.body ?? "", queue.attributes.maximumMessageSizeBytes),
30
+ attributes: requested.attributes,
31
+ sentAt,
32
+ visibleFrom: new Date(sentAt.getTime() + delaySeconds * millisecondsPerSecond),
33
+ });
34
+ queue.add(message);
35
+ return message;
36
+ }
37
+ /**
38
+ * The delay a message waits out before it can be received.
39
+ *
40
+ * A message with no delay of its own takes the queue's, which is what makes
41
+ * `DelaySeconds` on the queue a delay every message inherits.
42
+ */
43
+ delayFor(queue, requested) {
44
+ if (requested === undefined) {
45
+ return queue.attributes.delaySeconds;
46
+ }
47
+ if (!Number.isSafeInteger(requested) ||
48
+ requested < 0 ||
49
+ requested > maximumDelaySeconds) {
50
+ throw new SimSqsInvalidParameterValue(`Value ${String(requested)} for parameter DelaySeconds is invalid. ` +
51
+ `Reason: Must be an integer from 0 to ${String(maximumDelaySeconds)}.`);
52
+ }
53
+ return requested;
54
+ }
55
+ }
56
+ //# sourceMappingURL=sim-sqs-message-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-message-writer.js","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-message-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAenC;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAmB;IACb,KAAK,CAAsB;IAE5C,YAAY,UAAyC;QACnD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAkB,EAAE,SAA6B;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;YAChC,SAAS,EAAE,UAAU,EAAE;YACvB,IAAI,EAAE,iBAAiB,CAAC,EAAE,CACxB,SAAS,CAAC,IAAI,IAAI,EAAE,EACpB,KAAK,CAAC,UAAU,CAAC,uBAAuB,CACzC;YACD,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,MAAM;YACN,WAAW,EAAE,IAAI,IAAI,CACnB,MAAM,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,qBAAqB,CACxD;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,QAAQ,CAAC,KAAkB,EAAE,SAA6B;QAChE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;QACvC,CAAC;QAED,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;YAChC,SAAS,GAAG,CAAC;YACb,SAAS,GAAG,mBAAmB,EAC/B,CAAC;YACD,MAAM,IAAI,2BAA2B,CACnC,SAAS,MAAM,CAAC,SAAS,CAAC,0CAA0C;gBAClE,wCAAwC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CACzE,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,96 @@
1
+ import type { SimSqsMessageAttributes } from "./sim-sqs-message-attributes.js";
2
+ import type { SimSqsMessageBody } from "./sim-sqs-message-body.js";
3
+ interface SimSqsMessageProperties {
4
+ readonly messageId: string;
5
+ readonly body: SimSqsMessageBody;
6
+ readonly attributes: SimSqsMessageAttributes;
7
+ readonly sentAt: Date;
8
+ readonly visibleFrom: Date;
9
+ readonly deadLetterSourceArn?: string | undefined;
10
+ }
11
+ /**
12
+ * One message on a simulated queue.
13
+ *
14
+ * What the message is stays here; whether it can be received belongs to its
15
+ * visibility, which is the part that changes as it is handed out and given back.
16
+ */
17
+ export declare class SimSqsMessage {
18
+ readonly messageId: string;
19
+ readonly body: SimSqsMessageBody;
20
+ readonly attributes: SimSqsMessageAttributes;
21
+ readonly sentAt: Date;
22
+ private readonly visibility;
23
+ private readonly deadLetterSourceArn;
24
+ private receiptHandle;
25
+ constructor(properties: SimSqsMessageProperties);
26
+ /**
27
+ * How many times this message has been handed out without being deleted.
28
+ */
29
+ get receiveCount(): number;
30
+ /**
31
+ * The instant from which this message can be received.
32
+ *
33
+ * A message sent with a delay is not receivable when it arrives, so anything
34
+ * waiting for it has to wait for this rather than for the send.
35
+ */
36
+ get availableFrom(): Date;
37
+ /**
38
+ * Whether this message can be received at an instant.
39
+ */
40
+ isVisibleAt(instant: Date): boolean;
41
+ /**
42
+ * Whether this message is still waiting out the delay it was sent with.
43
+ */
44
+ isDelayedAt(instant: Date): boolean;
45
+ /**
46
+ * Whether this message is hidden by a visibility timeout, which SQS counts as
47
+ * in flight.
48
+ */
49
+ isInFlightAt(instant: Date): boolean;
50
+ /**
51
+ * Whether the queue's retention period has run out for this message.
52
+ *
53
+ * Retention runs from when the message was sent, however many times it has been
54
+ * received since.
55
+ */
56
+ hasExpiredBy(instant: Date, retentionSeconds: number): boolean;
57
+ /**
58
+ * Hand this message out, hiding it for its visibility timeout.
59
+ */
60
+ receiveAt(instant: Date, visibilityTimeoutSeconds: number, receiptHandle: string): void;
61
+ /**
62
+ * Hide this message for a visibility timeout starting now.
63
+ */
64
+ hideFor(instant: Date, visibilityTimeoutSeconds: number): void;
65
+ /**
66
+ * Whether a receipt handle is the one this message was last received with.
67
+ *
68
+ * An older handle is not. Real SQS accepts a request carrying one and does
69
+ * nothing, because the receive it belongs to has been superseded.
70
+ */
71
+ holdsReceiptHandle(receiptHandle: string): boolean;
72
+ /**
73
+ * This message as it arrives on a dead-letter queue.
74
+ *
75
+ * What the message is carries over unchanged: the id, the body, the message
76
+ * attributes and the sent timestamp. Real SQS leaves the enqueue timestamp
77
+ * alone when it moves a message off a standard queue, so the dead-letter
78
+ * queue's retention period still runs from when the message was first sent
79
+ * rather than restarting.
80
+ *
81
+ * What does not carry over is the receive count, because a receive count
82
+ * counts receives from one queue and this message has not been received from
83
+ * this one. It is receivable straight away: the move is not a send, so the
84
+ * dead-letter queue's delay does not apply to it.
85
+ */
86
+ onDeadLetterQueue(instant: Date, sourceQueueArn: string): SimSqsMessage;
87
+ /**
88
+ * The message system attributes SQS knows about this message.
89
+ *
90
+ * Only the attributes a receive request names are reported, so this is what is
91
+ * available rather than what is returned.
92
+ */
93
+ systemAttributeValues(): ReadonlyMap<string, string>;
94
+ }
95
+ export {};
96
+ //# sourceMappingURL=sim-sqs-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-message.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKnE,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnD;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,IAAI,EAAE,iBAAiB,CAAC;IACxC,SAAgB,UAAU,EAAE,uBAAuB,CAAC;IACpD,SAAgB,MAAM,EAAE,IAAI,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,aAAa,CAAqB;IAE1C,YAAY,UAAU,EAAE,uBAAuB,EAO9C;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;OAKG;IACH,IAAI,aAAa,IAAI,IAAI,CAExB;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAElC;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAElC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAEnC;IAED;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAK7D;IAED;;OAEG;IACH,SAAS,CACP,OAAO,EAAE,IAAI,EACb,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,GACpB,IAAI,CAGN;IAED;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAE7D;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAEjD;IAED;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,GAAG,aAAa,CAStE;IAED;;;;;OAKG;IACH,qBAAqB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAenD;CACF"}
@@ -0,0 +1,136 @@
1
+ import { SimSqsMessageVisibility } from "./sim-sqs-message-visibility.js";
2
+ const millisecondsPerSecond = 1000;
3
+ /**
4
+ * One message on a simulated queue.
5
+ *
6
+ * What the message is stays here; whether it can be received belongs to its
7
+ * visibility, which is the part that changes as it is handed out and given back.
8
+ */
9
+ export class SimSqsMessage {
10
+ messageId;
11
+ body;
12
+ attributes;
13
+ sentAt;
14
+ visibility;
15
+ deadLetterSourceArn;
16
+ receiptHandle;
17
+ constructor(properties) {
18
+ this.messageId = properties.messageId;
19
+ this.body = properties.body;
20
+ this.attributes = properties.attributes;
21
+ this.sentAt = properties.sentAt;
22
+ this.visibility = new SimSqsMessageVisibility(properties.visibleFrom);
23
+ this.deadLetterSourceArn = properties.deadLetterSourceArn;
24
+ }
25
+ /**
26
+ * How many times this message has been handed out without being deleted.
27
+ */
28
+ get receiveCount() {
29
+ return this.visibility.receiveCount;
30
+ }
31
+ /**
32
+ * The instant from which this message can be received.
33
+ *
34
+ * A message sent with a delay is not receivable when it arrives, so anything
35
+ * waiting for it has to wait for this rather than for the send.
36
+ */
37
+ get availableFrom() {
38
+ return this.visibility.availableFrom;
39
+ }
40
+ /**
41
+ * Whether this message can be received at an instant.
42
+ */
43
+ isVisibleAt(instant) {
44
+ return this.visibility.isVisibleAt(instant);
45
+ }
46
+ /**
47
+ * Whether this message is still waiting out the delay it was sent with.
48
+ */
49
+ isDelayedAt(instant) {
50
+ return this.visibility.isDelayedAt(instant);
51
+ }
52
+ /**
53
+ * Whether this message is hidden by a visibility timeout, which SQS counts as
54
+ * in flight.
55
+ */
56
+ isInFlightAt(instant) {
57
+ return this.visibility.isInFlightAt(instant);
58
+ }
59
+ /**
60
+ * Whether the queue's retention period has run out for this message.
61
+ *
62
+ * Retention runs from when the message was sent, however many times it has been
63
+ * received since.
64
+ */
65
+ hasExpiredBy(instant, retentionSeconds) {
66
+ return (this.sentAt.getTime() + retentionSeconds * millisecondsPerSecond <=
67
+ instant.getTime());
68
+ }
69
+ /**
70
+ * Hand this message out, hiding it for its visibility timeout.
71
+ */
72
+ receiveAt(instant, visibilityTimeoutSeconds, receiptHandle) {
73
+ this.receiptHandle = receiptHandle;
74
+ this.visibility.receiveAt(instant, visibilityTimeoutSeconds);
75
+ }
76
+ /**
77
+ * Hide this message for a visibility timeout starting now.
78
+ */
79
+ hideFor(instant, visibilityTimeoutSeconds) {
80
+ this.visibility.hideFor(instant, visibilityTimeoutSeconds);
81
+ }
82
+ /**
83
+ * Whether a receipt handle is the one this message was last received with.
84
+ *
85
+ * An older handle is not. Real SQS accepts a request carrying one and does
86
+ * nothing, because the receive it belongs to has been superseded.
87
+ */
88
+ holdsReceiptHandle(receiptHandle) {
89
+ return this.receiptHandle === receiptHandle;
90
+ }
91
+ /**
92
+ * This message as it arrives on a dead-letter queue.
93
+ *
94
+ * What the message is carries over unchanged: the id, the body, the message
95
+ * attributes and the sent timestamp. Real SQS leaves the enqueue timestamp
96
+ * alone when it moves a message off a standard queue, so the dead-letter
97
+ * queue's retention period still runs from when the message was first sent
98
+ * rather than restarting.
99
+ *
100
+ * What does not carry over is the receive count, because a receive count
101
+ * counts receives from one queue and this message has not been received from
102
+ * this one. It is receivable straight away: the move is not a send, so the
103
+ * dead-letter queue's delay does not apply to it.
104
+ */
105
+ onDeadLetterQueue(instant, sourceQueueArn) {
106
+ return new SimSqsMessage({
107
+ messageId: this.messageId,
108
+ body: this.body,
109
+ attributes: this.attributes,
110
+ sentAt: this.sentAt,
111
+ visibleFrom: instant,
112
+ deadLetterSourceArn: sourceQueueArn,
113
+ });
114
+ }
115
+ /**
116
+ * The message system attributes SQS knows about this message.
117
+ *
118
+ * Only the attributes a receive request names are reported, so this is what is
119
+ * available rather than what is returned.
120
+ */
121
+ systemAttributeValues() {
122
+ const values = new Map([
123
+ ["SentTimestamp", String(this.sentAt.getTime())],
124
+ ["ApproximateReceiveCount", String(this.visibility.receiveCount)],
125
+ [
126
+ "ApproximateFirstReceiveTimestamp",
127
+ String(this.visibility.firstReceived.getTime()),
128
+ ],
129
+ ]);
130
+ if (this.deadLetterSourceArn !== undefined) {
131
+ values.set("DeadLetterQueueSourceArn", this.deadLetterSourceArn);
132
+ }
133
+ return values;
134
+ }
135
+ }
136
+ //# sourceMappingURL=sim-sqs-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-message.js","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAWnC;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACR,SAAS,CAAS;IAClB,IAAI,CAAoB;IACxB,UAAU,CAA0B;IACpC,MAAM,CAAO;IAEZ,UAAU,CAA0B;IACpC,mBAAmB,CAAqB;IACjD,aAAa,CAAqB;IAE1C,YAAY,UAAmC;QAC7C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAuB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAa;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAa;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAa;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,OAAa,EAAE,gBAAwB;QAClD,OAAO,CACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,gBAAgB,GAAG,qBAAqB;YAChE,OAAO,CAAC,OAAO,EAAE,CAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CACP,OAAa,EACb,wBAAgC,EAChC,aAAqB;QAErB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAa,EAAE,wBAAgC;QACrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,aAAqB;QACtC,OAAO,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,OAAa,EAAE,cAAsB;QACrD,OAAO,IAAI,aAAa,CAAC;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,OAAO;YACpB,mBAAmB,EAAE,cAAc;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,qBAAqB;QACnB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAiB;YACrC,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAChD,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACjE;gBACE,kCAAkC;gBAClC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;aAChD;SACF,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Issue a receipt handle for one receive of one message.
3
+ *
4
+ * Real receipt handles are long opaque strings, and a fresh one is issued every
5
+ * time a message is handed out. Generating something equally opaque here means
6
+ * nothing can quietly depend on a handle's shape, or on it being the message id,
7
+ * the way a consumer written against a simpler fake might.
8
+ */
9
+ export declare function makeSimSqsReceiptHandle(): string;
10
+ //# sourceMappingURL=sim-sqs-receipt-handle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-receipt-handle.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-receipt-handle.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
@@ -0,0 +1,14 @@
1
+ import { randomBytes } from "node:crypto";
2
+ const handleBytes = 72;
3
+ /**
4
+ * Issue a receipt handle for one receive of one message.
5
+ *
6
+ * Real receipt handles are long opaque strings, and a fresh one is issued every
7
+ * time a message is handed out. Generating something equally opaque here means
8
+ * nothing can quietly depend on a handle's shape, or on it being the message id,
9
+ * the way a consumer written against a simpler fake might.
10
+ */
11
+ export function makeSimSqsReceiptHandle() {
12
+ return randomBytes(handleBytes).toString("base64");
13
+ }
14
+ //# sourceMappingURL=sim-sqs-receipt-handle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-receipt-handle.js","sourceRoot":"","sources":["../../../../src/service/sqs/message/sim-sqs-receipt-handle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,51 @@
1
+ import type { SimSqsMessageStore } from "../message/sim-sqs-message-store.js";
2
+ import type { SimSqsQueueAttributeInput } from "./sim-sqs-queue-attributes.js";
3
+ import type { SimSqsQueueStore } from "./sim-sqs-queue-store.js";
4
+ import { type SimSqsRedrivePolicy } from "./sim-sqs-redrive-policy.js";
5
+ interface SimSqsDeadLetterTargetsProperties {
6
+ readonly queues: SimSqsQueueStore;
7
+ }
8
+ /**
9
+ * One queue's messages at an instant, as the thing a move works on.
10
+ */
11
+ export interface SimSqsDeadLetterMove {
12
+ readonly policy: SimSqsRedrivePolicy | undefined;
13
+ readonly messages: SimSqsMessageStore;
14
+ readonly sourceQueueArn: string;
15
+ readonly instant: Date;
16
+ }
17
+ /**
18
+ * How a queue reaches the dead-letter queue its redrive policy names.
19
+ *
20
+ * The target is resolved by whole ARN rather than by the name inside one, so an
21
+ * ARN naming another Account or Region finds nothing. Real SQS requires a
22
+ * dead-letter queue to be in the same Account and Region as its source queue,
23
+ * and it has to exist before a policy can name it: a policy pointing at nothing
24
+ * would look like a working dead-letter queue and lose messages instead.
25
+ */
26
+ export declare class SimSqsDeadLetterTargets {
27
+ private readonly queues;
28
+ constructor(properties: SimSqsDeadLetterTargetsProperties);
29
+ /**
30
+ * Refuse a request whose redrive policy names a queue that is not there.
31
+ *
32
+ * A request setting no redrive policy names no dead-letter queue, so there is
33
+ * nothing to check.
34
+ */
35
+ assertRequestedTarget(requested: SimSqsQueueAttributeInput): void;
36
+ /**
37
+ * Move the messages a queue has given up on to its dead-letter queue.
38
+ *
39
+ * A queue with no redrive policy gives up on nothing. A dead-letter queue
40
+ * deleted since the policy was set leaves the messages where they are rather
41
+ * than losing them, which is the safer of the two ways to be wrong about a
42
+ * queue that is no longer there.
43
+ */
44
+ move(request: SimSqsDeadLetterMove): void;
45
+ /**
46
+ * The dead-letter queue a policy names, or undefined once it has been deleted.
47
+ */
48
+ private find;
49
+ }
50
+ export {};
51
+ //# sourceMappingURL=sim-sqs-dead-letter-targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-dead-letter-targets.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-dead-letter-targets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,6BAA6B,CAAC;AAErC,UAAU,iCAAiC;IACzC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAE1C,YAAY,UAAU,EAAE,iCAAiC,EAExD;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAahE;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAiBxC;IAED;;OAEG;IACH,OAAO,CAAC,IAAI;CAGb"}
@@ -0,0 +1,62 @@
1
+ import { SimSqsInvalidParameterValue } from "../error/sim-sqs.error.js";
2
+ import { simSqsRedrivePolicyIn, } from "./sim-sqs-redrive-policy.js";
3
+ /**
4
+ * How a queue reaches the dead-letter queue its redrive policy names.
5
+ *
6
+ * The target is resolved by whole ARN rather than by the name inside one, so an
7
+ * ARN naming another Account or Region finds nothing. Real SQS requires a
8
+ * dead-letter queue to be in the same Account and Region as its source queue,
9
+ * and it has to exist before a policy can name it: a policy pointing at nothing
10
+ * would look like a working dead-letter queue and lose messages instead.
11
+ */
12
+ export class SimSqsDeadLetterTargets {
13
+ queues;
14
+ constructor(properties) {
15
+ this.queues = properties.queues;
16
+ }
17
+ /**
18
+ * Refuse a request whose redrive policy names a queue that is not there.
19
+ *
20
+ * A request setting no redrive policy names no dead-letter queue, so there is
21
+ * nothing to check.
22
+ */
23
+ assertRequestedTarget(requested) {
24
+ const policy = simSqsRedrivePolicyIn(requested);
25
+ if (policy === undefined || this.find(policy) !== undefined) {
26
+ return;
27
+ }
28
+ throw new SimSqsInvalidParameterValue(`Value ${policy.value} for parameter RedrivePolicy is invalid. Reason: ` +
29
+ `Dead letter target ${policy.deadLetterTargetArn} does not exist. A ` +
30
+ `dead-letter queue has to be an existing queue in the same Account ` +
31
+ `and Region as the queue redriving to it.`);
32
+ }
33
+ /**
34
+ * Move the messages a queue has given up on to its dead-letter queue.
35
+ *
36
+ * A queue with no redrive policy gives up on nothing. A dead-letter queue
37
+ * deleted since the policy was set leaves the messages where they are rather
38
+ * than losing them, which is the safer of the two ways to be wrong about a
39
+ * queue that is no longer there.
40
+ */
41
+ move(request) {
42
+ const { policy, messages, sourceQueueArn, instant } = request;
43
+ if (policy === undefined) {
44
+ return;
45
+ }
46
+ const target = this.find(policy);
47
+ if (target === undefined) {
48
+ return;
49
+ }
50
+ for (const message of messages.exhausted(instant, policy.maxReceiveCount)) {
51
+ messages.remove(message);
52
+ target.add(message.onDeadLetterQueue(instant, sourceQueueArn));
53
+ }
54
+ }
55
+ /**
56
+ * The dead-letter queue a policy names, or undefined once it has been deleted.
57
+ */
58
+ find(policy) {
59
+ return this.queues.findByArn(policy.deadLetterTargetArn);
60
+ }
61
+ }
62
+ //# sourceMappingURL=sim-sqs-dead-letter-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-dead-letter-targets.js","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-dead-letter-targets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAKxE,OAAO,EAEL,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAgBrC;;;;;;;;GAQG;AACH,MAAM,OAAO,uBAAuB;IACjB,MAAM,CAAmB;IAE1C,YAAY,UAA6C;QACvD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,SAAoC;QACxD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,MAAM,IAAI,2BAA2B,CACnC,SAAS,MAAM,CAAC,KAAK,mDAAmD;YACtE,sBAAsB,MAAM,CAAC,mBAAmB,qBAAqB;YACrE,oEAAoE;YACpE,0CAA0C,CAC7C,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,OAA6B;QAChC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAE9D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1E,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,IAAI,CAAC,MAA2B;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The queue names a deletion is still holding.
3
+ *
4
+ * This is the SQS version of a behaviour that bites a redeployed stack: a queue
5
+ * deleted a moment ago still owns its name, so recreating it fails. The hold is
6
+ * measured on the simulation's clock, so advancing simulated time past it frees
7
+ * the name, rather than a test having to wait a real minute.
8
+ */
9
+ export declare class SimSqsDeletedQueueNames {
10
+ private readonly deletedAt;
11
+ /**
12
+ * Record that a queue with this name has just been deleted.
13
+ */
14
+ record(name: string, instant: Date): void;
15
+ /**
16
+ * Refuse a name a recent deletion is still holding.
17
+ */
18
+ assertAvailable(name: string, instant: Date): void;
19
+ }
20
+ //# sourceMappingURL=sim-sqs-deleted-queue-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-deleted-queue-names.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-deleted-queue-names.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IAErD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,CAExC;IAED;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,CAqBjD;CACF"}
@@ -0,0 +1,42 @@
1
+ import { SimSqsQueueDeletedRecently } from "../error/sim-sqs.error.js";
2
+ /**
3
+ * Real SQS holds a deleted queue's name for 60 seconds before it can be used
4
+ * again.
5
+ */
6
+ const nameHoldSeconds = 60;
7
+ const millisecondsPerSecond = 1000;
8
+ /**
9
+ * The queue names a deletion is still holding.
10
+ *
11
+ * This is the SQS version of a behaviour that bites a redeployed stack: a queue
12
+ * deleted a moment ago still owns its name, so recreating it fails. The hold is
13
+ * measured on the simulation's clock, so advancing simulated time past it frees
14
+ * the name, rather than a test having to wait a real minute.
15
+ */
16
+ export class SimSqsDeletedQueueNames {
17
+ deletedAt = new Map();
18
+ /**
19
+ * Record that a queue with this name has just been deleted.
20
+ */
21
+ record(name, instant) {
22
+ this.deletedAt.set(name, instant);
23
+ }
24
+ /**
25
+ * Refuse a name a recent deletion is still holding.
26
+ */
27
+ assertAvailable(name, instant) {
28
+ const deletion = this.deletedAt.get(name);
29
+ if (deletion === undefined) {
30
+ return;
31
+ }
32
+ const heldUntil = deletion.getTime() + nameHoldSeconds * millisecondsPerSecond;
33
+ if (instant.getTime() >= heldUntil) {
34
+ this.deletedAt.delete(name);
35
+ return;
36
+ }
37
+ throw new SimSqsQueueDeletedRecently(`You must wait ${String(nameHoldSeconds)} seconds after deleting a ` +
38
+ `queue before you can create another with the same name. Queue ` +
39
+ `'${name}' was deleted at ${deletion.toISOString()}.`);
40
+ }
41
+ }
42
+ //# sourceMappingURL=sim-sqs-deleted-queue-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-deleted-queue-names.js","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-deleted-queue-names.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;GAGG;AACH,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,OAAO,uBAAuB;IACjB,SAAS,GAAG,IAAI,GAAG,EAAgB,CAAC;IAErD;;OAEG;IACH,MAAM,CAAC,IAAY,EAAE,OAAa;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAY,EAAE,OAAa;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GACb,QAAQ,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,qBAAqB,CAAC;QAE/D,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE5B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,0BAA0B,CAClC,iBAAiB,MAAM,CAAC,eAAe,CAAC,4BAA4B;YAClE,gEAAgE;YAChE,IAAI,IAAI,oBAAoB,QAAQ,CAAC,WAAW,EAAE,GAAG,CACxD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,65 @@
1
+ import type { SimClock } from "../../../util/clock/sim-clock.js";
2
+ import type { SimSqsQueueStore } from "./sim-sqs-queue-store.js";
3
+ /**
4
+ * Something outside SQS waiting for messages to arrive on a queue.
5
+ *
6
+ * A Lambda event source mapping is the one this exists for: real Lambda polls a
7
+ * queue continuously, and nothing in this simulation runs continuously, so the
8
+ * queue says when there is something to poll for instead.
9
+ */
10
+ export interface SimSqsQueueWatcher {
11
+ /**
12
+ * A message has arrived, and can be received from the given instant.
13
+ *
14
+ * The instant is when the message becomes visible rather than now, because a
15
+ * message sent with a delay is not receivable yet.
16
+ */
17
+ messageAvailable(availableFrom: Date): void;
18
+ }
19
+ interface SimSqsQueueActivityProperties {
20
+ readonly queues: SimSqsQueueStore;
21
+ readonly clock: SimClock;
22
+ }
23
+ /**
24
+ * What a consumer that cannot poll continuously needs from the queues of one
25
+ * simulated SQS scope: to be told when a message can next be received, and to
26
+ * be able to ask when none has been announced.
27
+ *
28
+ * Watchers are held by queue ARN rather than on the queue itself, so a watcher
29
+ * survives whatever the queue does, and so the queue model stays a queue rather
30
+ * than a subscription list.
31
+ */
32
+ export declare class SimSqsQueueActivity {
33
+ private readonly watchers;
34
+ private readonly queues;
35
+ private readonly clock;
36
+ constructor(properties: SimSqsQueueActivityProperties);
37
+ /**
38
+ * When the earliest message a queue cannot hand out yet becomes receivable,
39
+ * or nothing when it holds no such message.
40
+ *
41
+ * A consumer that started watching a queue whose messages were all in flight
42
+ * or delayed has nothing to wake it, because their arrival was announced
43
+ * before it was watching. Asking is how it finds out when to look.
44
+ */
45
+ nextAvailability(queueArn: string): Date | undefined;
46
+ /**
47
+ * Watch a queue for messages arriving on it.
48
+ */
49
+ watch(queueArn: string, watcher: SimSqsQueueWatcher): void;
50
+ /**
51
+ * Stop watching a queue.
52
+ */
53
+ unwatch(queueArn: string, watcher: SimSqsQueueWatcher): void;
54
+ /**
55
+ * Tell a queue's watchers when a message on it can next be received.
56
+ *
57
+ * A message arriving, a message being handed out and hidden, and a message
58
+ * having its visibility changed are all the same thing to a watcher: there is
59
+ * something to poll for at an instant.
60
+ */
61
+ messageAvailableAt(queueArn: string, availableFrom: Date): void;
62
+ private watchersOf;
63
+ }
64
+ export {};
65
+ //# sourceMappingURL=sim-sqs-queue-activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sqs-queue-activity.d.ts","sourceRoot":"","sources":["../../../../src/service/sqs/queue/sim-sqs-queue-activity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,gBAAgB,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;CAC7C;AAED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,YAAY,UAAU,EAAE,6BAA6B,EAGpD;IAED;;;;;;;OAOG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAEnD;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEzD;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAK3D;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,CAI9D;IAED,OAAO,CAAC,UAAU;CAGnB"}