@kensio/yulin 1.21.3 → 1.21.5

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 (650) hide show
  1. package/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
  2. package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
  3. package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
  4. package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
  5. package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
  6. package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
  7. package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
  8. package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
  9. package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
  10. package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
  11. package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
  12. package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
  13. package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
  14. package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
  15. package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
  16. package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
  17. package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
  18. package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
  19. package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
  20. package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
  21. package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
  22. package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
  23. package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
  24. package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
  25. package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
  26. package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
  27. package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
  28. package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
  29. package/dist/service/athena/index.d.ts +1 -1
  30. package/dist/service/athena/index.js +1 -1
  31. package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
  32. package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
  33. package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
  34. package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
  35. package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
  36. package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
  37. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
  38. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
  39. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +18 -13
  40. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +16 -24
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  50. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  51. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  52. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.d.ts +12 -0
  53. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.js +16 -7
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  74. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  75. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  76. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  77. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  78. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  79. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  80. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  81. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  82. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +3 -0
  83. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +16 -13
  84. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  85. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  86. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  87. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  88. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  89. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  90. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  91. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  92. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  93. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  94. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  95. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  96. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  97. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  98. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  99. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  100. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  101. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  102. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  103. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  104. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  105. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  106. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  107. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  108. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  109. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  110. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  111. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  112. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  113. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +6 -0
  114. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +15 -16
  115. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  116. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.d.ts +10 -0
  117. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.js +14 -0
  118. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -1
  119. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +3 -2
  120. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +5 -8
  121. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +0 -14
  122. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +9 -0
  123. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +2 -0
  124. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +10 -0
  125. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  126. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
  127. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  128. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  129. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  130. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  131. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  132. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  133. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  134. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  135. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  136. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  137. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  138. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  139. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  140. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  141. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
  142. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  143. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  144. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  145. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  165. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  166. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  167. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  168. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  169. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  170. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  171. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  172. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  173. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  174. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  175. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  176. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  177. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  178. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  179. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  180. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  181. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  182. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  183. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  184. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  185. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  186. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  187. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  188. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  189. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  190. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  191. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  192. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  193. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  194. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  195. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  196. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  197. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  198. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  199. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  200. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  201. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  202. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  203. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  204. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  205. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  206. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  207. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  208. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  209. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  210. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  211. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  212. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  213. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  214. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  215. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  216. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  217. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  218. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  219. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.d.ts +47 -0
  220. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.js +46 -0
  221. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  222. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  223. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +53 -20
  224. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +79 -32
  225. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  226. package/dist/service/cloudformation/stack/sim-cfn-stack.js +60 -32
  227. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +21 -1
  228. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  229. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  230. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  231. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  232. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  233. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  234. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  235. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  236. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  237. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  238. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  239. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  240. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
  241. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
  242. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
  243. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  244. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  245. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  246. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  247. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  248. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  249. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  250. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  251. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  252. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  253. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  254. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  255. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  256. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  257. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  258. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  259. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  260. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  261. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  262. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  263. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  264. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  265. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  266. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  267. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  268. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  269. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  270. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  271. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  272. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  273. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  274. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  275. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  276. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  277. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  278. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  279. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  280. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  281. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  282. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  283. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  284. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  285. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  286. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  287. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  288. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  289. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  290. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  291. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  292. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  293. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  294. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  295. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  296. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  297. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  298. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  299. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  300. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  301. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  302. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  303. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  304. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  305. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  306. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  307. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  308. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  309. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  310. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  311. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  312. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  313. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  314. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  315. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  316. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  317. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  318. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  321. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  322. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  323. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  324. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  325. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  326. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  327. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  328. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  329. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  330. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  331. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  332. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  333. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  334. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  335. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  336. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  337. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  338. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  339. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  340. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  341. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  342. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  343. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  344. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  345. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  346. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  347. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  348. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  349. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  350. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  351. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  352. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  353. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  354. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  355. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  356. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  357. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  358. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  359. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  360. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  361. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  362. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  363. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  364. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  365. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  366. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  367. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  368. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  369. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  370. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  371. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  372. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  377. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  378. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  379. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  380. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  381. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  382. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  383. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  384. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  385. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  386. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  387. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  388. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  389. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  390. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  391. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  392. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  393. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  394. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  395. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  396. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  397. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  398. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  399. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  400. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  401. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  402. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  403. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  404. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  405. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  406. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  407. package/dist/service/lambda/index.d.ts +1 -0
  408. package/dist/service/lambda/index.js +1 -0
  409. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  410. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  411. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  412. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  413. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  414. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  415. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  416. package/dist/service/lambda/sim-lambda.js +13 -0
  417. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  418. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  423. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  424. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  425. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  426. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  427. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  428. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  429. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  430. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  431. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  432. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  433. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  434. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  435. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  436. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  437. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  438. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  439. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  440. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  441. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  442. package/dist/service/s3/bucket/sim-s3-bucket-maker.d.ts +31 -0
  443. package/dist/service/s3/bucket/sim-s3-bucket-maker.js +41 -0
  444. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  445. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  446. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  447. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  448. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  449. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  450. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  451. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  452. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  453. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  454. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  455. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  456. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  457. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  458. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  459. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  460. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  461. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  462. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  463. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  464. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  465. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  466. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  467. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  468. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  469. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  470. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  471. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  472. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  473. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  474. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +2 -2
  475. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +4 -12
  476. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  477. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  478. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  479. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  480. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  481. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  482. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  483. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  484. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  485. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  486. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  487. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  488. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  489. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  490. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  491. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  492. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  493. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  494. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  495. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  496. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  497. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  498. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  499. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  500. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  501. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  502. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  503. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  504. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  505. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  506. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  507. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  508. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  509. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  510. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  511. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  512. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  513. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  514. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  515. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  516. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  517. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  518. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  519. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  520. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  521. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  522. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  523. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  524. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  525. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  526. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  527. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  528. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  529. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  530. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  531. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  532. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  533. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  534. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  535. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  536. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  537. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  538. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  539. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  540. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  541. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  542. package/dist/service/s3/error/sim-s3.error.js +26 -40
  543. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  544. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  545. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  546. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  547. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  548. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  549. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  550. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  551. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  552. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  553. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  554. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  555. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  556. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  557. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  558. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  559. package/dist/service/s3/object/s3-object-summary.js +1 -10
  560. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  561. package/dist/service/s3/object/s3-object-tags.js +77 -0
  562. package/dist/service/s3/object/s3-object.d.ts +49 -0
  563. package/dist/service/s3/object/s3-object.js +52 -1
  564. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  565. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  566. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  567. package/dist/service/s3/object/s3-storage-class.js +67 -0
  568. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  569. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  570. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  571. package/dist/service/s3/object/s3-write-storage.js +21 -0
  572. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  573. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  574. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  575. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  576. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  577. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  578. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  579. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  580. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  581. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  582. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  583. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  584. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  585. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  586. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  587. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  588. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  589. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  590. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  591. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  592. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  593. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  594. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  595. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  596. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  597. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  598. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  599. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  600. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  601. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  602. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  603. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  604. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  605. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  606. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  607. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  608. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  609. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  610. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  611. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  612. package/dist/service/s3/sim-s3-commands.d.ts +10 -0
  613. package/dist/service/s3/sim-s3-commands.js +13 -0
  614. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  615. package/dist/service/s3/sim-s3-operations.js +17 -4
  616. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  617. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  618. package/dist/service/s3/sim-s3.d.ts +28 -0
  619. package/dist/service/s3/sim-s3.js +38 -0
  620. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  621. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  622. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  623. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  624. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  625. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  626. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  627. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  628. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  629. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  630. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  631. package/dist/util/background/background-clock-waits.d.ts +52 -0
  632. package/dist/util/background/background-clock-waits.js +76 -0
  633. package/dist/util/background/background-jitter.js +1 -0
  634. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  635. package/dist/util/background/background-pending-tasks.js +117 -0
  636. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  637. package/dist/util/background/background-settled-tasks.js +4 -1
  638. package/dist/util/background/background.d.ts +43 -0
  639. package/dist/util/background/background.js +27 -19
  640. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  641. package/dist/util/background/non-deterministic-background.js +24 -20
  642. package/dist/util/clock/sim-clock-control.js +23 -2
  643. package/docs/services/apigateway/README.md +3 -1
  644. package/docs/services/athena/README.md +126 -3
  645. package/docs/services/cloudformation/README.md +831 -67
  646. package/docs/services/cognito/README.md +5 -0
  647. package/docs/services/dynamodb/README.md +86 -11
  648. package/docs/services/lambda/README.md +603 -39
  649. package/docs/services/s3/README.md +688 -57
  650. package/package.json +8 -2
@@ -1,4 +1,5 @@
1
1
  import { SimLambdaStreamBatchOutcome } from "./sim-lambda-stream-batch-outcome.js";
2
+ import type { SimLambdaStreamRecordTime } from "./sim-lambda-stream-record-times.js";
2
3
  /**
3
4
  * Reads what a function said about the batch of stream records it was given.
4
5
  *
@@ -18,15 +19,15 @@ export declare class SimLambdaStreamBatchResponse {
18
19
  /**
19
20
  * What became of a batch the function returned from.
20
21
  *
21
- * The sequence numbers are the batch's own, in stream order, and each source
22
- * cuts them out of its own record shape. A record carrying none is left out
23
- * rather than given an empty name, so a report entry with no identifier names
24
- * nothing and the whole batch goes back.
22
+ * The records are the batch's own, in stream order, and each source cuts them
23
+ * out of its own record shape. A record carrying no sequence number cannot be
24
+ * named, and is left out of the names a report is read against, so a report
25
+ * entry with no identifier names nothing and the whole batch goes back.
25
26
  */
26
- handled(sequenceNumbers: readonly string[], result: unknown): SimLambdaStreamBatchOutcome;
27
+ handled(records: readonly SimLambdaStreamRecordTime[], result: unknown): SimLambdaStreamBatchOutcome;
27
28
  /**
28
29
  * What becomes of a batch the function threw on: the whole of it is read
29
30
  * again.
30
31
  */
31
- failed(): SimLambdaStreamBatchOutcome;
32
+ failed(records: readonly SimLambdaStreamRecordTime[]): SimLambdaStreamBatchOutcome;
32
33
  }
@@ -1,5 +1,6 @@
1
1
  import { SimLambdaBatchItemFailures } from "./sim-lambda-batch-item-failures.js";
2
2
  import { SimLambdaStreamBatchOutcome } from "./sim-lambda-stream-batch-outcome.js";
3
+ import { simLambdaStreamSequenceNumbers } from "./sim-lambda-stream-sequence-numbers.js";
3
4
  /**
4
5
  * Reads what a function said about the batch of stream records it was given.
5
6
  *
@@ -21,28 +22,28 @@ export class SimLambdaStreamBatchResponse {
21
22
  /**
22
23
  * What became of a batch the function returned from.
23
24
  *
24
- * The sequence numbers are the batch's own, in stream order, and each source
25
- * cuts them out of its own record shape. A record carrying none is left out
26
- * rather than given an empty name, so a report entry with no identifier names
27
- * nothing and the whole batch goes back.
25
+ * The records are the batch's own, in stream order, and each source cuts them
26
+ * out of its own record shape. A record carrying no sequence number cannot be
27
+ * named, and is left out of the names a report is read against, so a report
28
+ * entry with no identifier names nothing and the whole batch goes back.
28
29
  */
29
- handled(sequenceNumbers, result) {
30
+ handled(records, result) {
30
31
  const failedIds = this.batchItemFailures.idsIn(result);
31
32
  if (failedIds === undefined) {
32
- return SimLambdaStreamBatchOutcome.handled();
33
+ return SimLambdaStreamBatchOutcome.handled(records);
33
34
  }
34
- const rewindTo = rewindPoint(failedIds, sequenceNumbers);
35
+ const rewindTo = rewindPoint(failedIds, records);
35
36
  if (rewindTo === undefined) {
36
- return this.failed();
37
+ return this.failed(records);
37
38
  }
38
- return SimLambdaStreamBatchOutcome.failedFrom(rewindTo);
39
+ return SimLambdaStreamBatchOutcome.failedFrom(records, rewindTo);
39
40
  }
40
41
  /**
41
42
  * What becomes of a batch the function threw on: the whole of it is read
42
43
  * again.
43
44
  */
44
- failed() {
45
- return SimLambdaStreamBatchOutcome.failed();
45
+ failed(records) {
46
+ return SimLambdaStreamBatchOutcome.failed(records);
46
47
  }
47
48
  }
48
49
  /**
@@ -52,7 +53,8 @@ export class SimLambdaStreamBatchResponse {
52
53
  * The batch is in stream order, so the first record the report names is the
53
54
  * lowest sequence number it named.
54
55
  */
55
- function rewindPoint(failedIds, sequenceNumbers) {
56
+ function rewindPoint(failedIds, records) {
57
+ const sequenceNumbers = simLambdaStreamSequenceNumbers(records.map((record) => record.sequenceNumber));
56
58
  if (failedIds.some((failedId) => !sequenceNumbers.includes(failedId))) {
57
59
  return undefined;
58
60
  }
@@ -1,15 +1,16 @@
1
1
  import type { SimLambdaEventSourceStart } from "../sim-lambda-event-source-starting-position.js";
2
2
  import type { SimLambdaEventSourceStreamPosition } from "../stream/sim-lambda-event-source-streams.js";
3
- import type { SimLambdaStreamBatchOutcome } from "./sim-lambda-stream-batch-outcome.js";
4
3
  /**
5
4
  * How far along its stream one mapping has got.
6
5
  *
7
6
  * This is the difference between a stream and a queue. A queue hands a message
8
7
  * out and hides it, so a failed batch is the queue's problem afterwards. A
9
8
  * stream hands out a place, and the reader is the only thing that remembers it,
10
- * so a batch that failed is read again from exactly where it was. The
11
- * checkpoint therefore only moves when a batch is finished with: handled, or
12
- * discarded after its retries.
9
+ * so a batch that failed is read again from exactly where it was.
10
+ *
11
+ * The place is all this holds. Which place the next read starts from is decided
12
+ * by what became of the batch and what the mapping is willing to keep trying,
13
+ * and that decision is made elsewhere.
13
14
  */
14
15
  export declare class SimLambdaStreamCheckpoint {
15
16
  #private;
@@ -19,17 +20,10 @@ export declare class SimLambdaStreamCheckpoint {
19
20
  */
20
21
  get position(): SimLambdaEventSourceStreamPosition;
21
22
  /**
22
- * Move past a batch that is finished with.
23
- */
24
- advanceTo(position: SimLambdaEventSourceStreamPosition): void;
25
- /**
26
- * Take a batch the function did not finish.
23
+ * Move to where the next read starts.
27
24
  *
28
- * A batch that failed whole is read again from where it was. One the function
29
- * reported failing partway through moves the checkpoint to the record it
30
- * named, so that record and everything after it goes over again, including
31
- * the records after it that the function did handle. The records before it
32
- * are finished with.
25
+ * That is past a batch the mapping is finished with, and back to the record a
26
+ * batch it is not finished with is delivered again from.
33
27
  */
34
- retry(outcome: SimLambdaStreamBatchOutcome): void;
28
+ advanceTo(position: SimLambdaEventSourceStreamPosition): void;
35
29
  }
@@ -4,9 +4,11 @@
4
4
  * This is the difference between a stream and a queue. A queue hands a message
5
5
  * out and hides it, so a failed batch is the queue's problem afterwards. A
6
6
  * stream hands out a place, and the reader is the only thing that remembers it,
7
- * so a batch that failed is read again from exactly where it was. The
8
- * checkpoint therefore only moves when a batch is finished with: handled, or
9
- * discarded after its retries.
7
+ * so a batch that failed is read again from exactly where it was.
8
+ *
9
+ * The place is all this holds. Which place the next read starts from is decided
10
+ * by what became of the batch and what the mapping is willing to keep trying,
11
+ * and that decision is made elsewhere.
10
12
  */
11
13
  export class SimLambdaStreamCheckpoint {
12
14
  #position;
@@ -20,21 +22,12 @@ export class SimLambdaStreamCheckpoint {
20
22
  return this.#position;
21
23
  }
22
24
  /**
23
- * Move past a batch that is finished with.
25
+ * Move to where the next read starts.
26
+ *
27
+ * That is past a batch the mapping is finished with, and back to the record a
28
+ * batch it is not finished with is delivered again from.
24
29
  */
25
30
  advanceTo(position) {
26
31
  this.#position = position;
27
32
  }
28
- /**
29
- * Take a batch the function did not finish.
30
- *
31
- * A batch that failed whole is read again from where it was. One the function
32
- * reported failing partway through moves the checkpoint to the record it
33
- * named, so that record and everything after it goes over again, including
34
- * the records after it that the function did handle. The records before it
35
- * are finished with.
36
- */
37
- retry(outcome) {
38
- this.#position = outcome.retryPosition(this.#position);
39
- }
40
33
  }
@@ -20,7 +20,7 @@ interface SimLambdaStreamProgressProperties {
20
20
  */
21
21
  export declare class SimLambdaStreamProgress {
22
22
  private readonly checkpoint;
23
- private readonly backoff;
23
+ private readonly retry;
24
24
  private readonly schedule;
25
25
  constructor(properties: SimLambdaStreamProgressProperties);
26
26
  /**
@@ -44,7 +44,10 @@ export declare class SimLambdaStreamProgress {
44
44
  */
45
45
  after(outcome: SimLambdaStreamBatchOutcome, batch: SimLambdaEventSourceStreamProgressBatch): void;
46
46
  /**
47
- * Move past a batch the function took, and read on.
47
+ * Move past a batch that is finished with, and read on.
48
+ *
49
+ * A batch the function took is finished with, and so is one the mapping has
50
+ * given up on.
48
51
  */
49
52
  handled(batch: SimLambdaEventSourceStreamProgressBatch): void;
50
53
  /**
@@ -54,10 +57,11 @@ export declare class SimLambdaStreamProgress {
54
57
  * what AWS does when a stream mapping's error handling runs out. Parking the
55
58
  * shard instead would be a simulator invention.
56
59
  *
57
- * A report naming a record moves the checkpoint before the wait, so what goes
58
- * over again is the batch from that record on. The attempts are still counted
59
- * against the same limit: a batch that keeps failing partway through has as
60
- * many tries as one that keeps failing whole.
60
+ * A batch runs out either by having had its retries or by every record left
61
+ * in it being older than the mapping will carry. Records that aged out of the
62
+ * front of a batch are left behind, and the ones behind them go over again,
63
+ * so a mapping given a record age keeps working through its shard rather than
64
+ * stalling on the oldest record on it.
61
65
  */
62
66
  failed(outcome: SimLambdaStreamBatchOutcome, batch: SimLambdaEventSourceStreamProgressBatch): void;
63
67
  }
@@ -1,7 +1,7 @@
1
1
  import { assertDefined } from "../../../../util/type-guard/defined.js";
2
2
  import { PollSchedule } from "../../../../util/background/poll-schedule.js";
3
3
  import { SimLambdaStreamCheckpoint } from "./sim-lambda-stream-checkpoint.js";
4
- import { SimLambdaStreamRetryBackoff } from "./sim-lambda-stream-retry-backoff.js";
4
+ import { SimLambdaStreamRetry } from "./sim-lambda-stream-retry.js";
5
5
  /**
6
6
  * How far along its stream one mapping has got, and what it does next.
7
7
  *
@@ -15,15 +15,20 @@ import { SimLambdaStreamRetryBackoff } from "./sim-lambda-stream-retry-backoff.j
15
15
  */
16
16
  export class SimLambdaStreamProgress {
17
17
  checkpoint;
18
- backoff = new SimLambdaStreamRetryBackoff();
18
+ retry;
19
19
  schedule;
20
20
  constructor(properties) {
21
21
  // A stream mapping is refused at creation unless it names a starting
22
22
  // position, so one that has got this far without one is the simulator
23
23
  // having gone wrong rather than a request having been wrong.
24
- const { start } = properties.mapping;
24
+ const { start, streamRetryLimits } = properties.mapping;
25
25
  assertDefined(start, "stream mapping start position");
26
+ assertDefined(streamRetryLimits, "stream mapping retry limits");
26
27
  this.checkpoint = new SimLambdaStreamCheckpoint(start);
28
+ this.retry = new SimLambdaStreamRetry({
29
+ limits: streamRetryLimits,
30
+ clock: properties.background,
31
+ });
27
32
  this.schedule = new PollSchedule(properties);
28
33
  }
29
34
  /**
@@ -59,10 +64,13 @@ export class SimLambdaStreamProgress {
59
64
  this.failed(outcome, batch);
60
65
  }
61
66
  /**
62
- * Move past a batch the function took, and read on.
67
+ * Move past a batch that is finished with, and read on.
68
+ *
69
+ * A batch the function took is finished with, and so is one the mapping has
70
+ * given up on.
63
71
  */
64
72
  handled(batch) {
65
- this.backoff.reset();
73
+ this.retry.reset();
66
74
  this.checkpoint.advanceTo(batch.next);
67
75
  if (!batch.drained) {
68
76
  this.schedule.now();
@@ -75,17 +83,19 @@ export class SimLambdaStreamProgress {
75
83
  * what AWS does when a stream mapping's error handling runs out. Parking the
76
84
  * shard instead would be a simulator invention.
77
85
  *
78
- * A report naming a record moves the checkpoint before the wait, so what goes
79
- * over again is the batch from that record on. The attempts are still counted
80
- * against the same limit: a batch that keeps failing partway through has as
81
- * many tries as one that keeps failing whole.
86
+ * A batch runs out either by having had its retries or by every record left
87
+ * in it being older than the mapping will carry. Records that aged out of the
88
+ * front of a batch are left behind, and the ones behind them go over again,
89
+ * so a mapping given a record age keeps working through its shard rather than
90
+ * stalling on the oldest record on it.
82
91
  */
83
92
  failed(outcome, batch) {
84
- if (this.backoff.isExhausted) {
93
+ const again = this.retry.after(outcome, this.checkpoint.position);
94
+ if (again === undefined) {
85
95
  this.handled(batch);
86
96
  return;
87
97
  }
88
- this.checkpoint.retry(outcome);
89
- this.schedule.afterSeconds(this.backoff.nextSeconds());
98
+ this.checkpoint.advanceTo(again.position);
99
+ this.schedule.afterSeconds(again.afterSeconds);
90
100
  }
91
101
  }
@@ -0,0 +1,23 @@
1
+ import type { SimLambdaKinesisStreamRecord } from "../stream/kinesis/sim-lambda-kinesis-streams.js";
2
+ import type { SimLambdaEventSourceStreamRecord } from "../stream/sim-lambda-event-source-streams.js";
3
+ /**
4
+ * One record of a delivered batch, as deciding what to do with a failed batch
5
+ * sees it.
6
+ *
7
+ * Two things about a record matter once its function has failed: the name the
8
+ * mapping can be sent back to, and the instant its age is measured from. Each
9
+ * stream service cuts both out of its own record shape, the way it already does
10
+ * for the sequence numbers a batch item failure report names.
11
+ */
12
+ export interface SimLambdaStreamRecordTime {
13
+ readonly sequenceNumber: string | undefined;
14
+ readonly at: Date | undefined;
15
+ }
16
+ /**
17
+ * What a DynamoDB Streams batch's records are named by and dated from.
18
+ */
19
+ export declare function simLambdaDynamoDbStreamRecordTimes(records: readonly SimLambdaEventSourceStreamRecord[]): readonly SimLambdaStreamRecordTime[];
20
+ /**
21
+ * What a Kinesis batch's records are named by and dated from.
22
+ */
23
+ export declare function simLambdaKinesisStreamRecordTimes(records: readonly SimLambdaKinesisStreamRecord[]): readonly SimLambdaStreamRecordTime[];
@@ -0,0 +1,18 @@
1
+ /**
2
+ * What a DynamoDB Streams batch's records are named by and dated from.
3
+ */
4
+ export function simLambdaDynamoDbStreamRecordTimes(records) {
5
+ return records.map((one) => ({
6
+ sequenceNumber: one.dynamodb?.SequenceNumber,
7
+ at: one.dynamodb?.ApproximateCreationDateTime,
8
+ }));
9
+ }
10
+ /**
11
+ * What a Kinesis batch's records are named by and dated from.
12
+ */
13
+ export function simLambdaKinesisStreamRecordTimes(records) {
14
+ return records.map((one) => ({
15
+ sequenceNumber: one.SequenceNumber,
16
+ at: one.ApproximateArrivalTimestamp,
17
+ }));
18
+ }
@@ -1,25 +1,24 @@
1
1
  /**
2
2
  * How long a mapping waits before handing a failed batch to its function
3
- * again, and when it stops trying.
3
+ * again, and how many waits it has left.
4
4
  *
5
- * Both are simulator constraints rather than AWS behaviour, and both are
6
- * deliberate.
7
- *
8
- * AWS documents no delay between attempts. A delay of zero here would be
9
- * scheduled at the instant the clock already reads, and advancing the clock
10
- * keeps dispatching whatever falls due inside the interval it is moving
5
+ * The delay is a simulator constraint rather than AWS behaviour, and it is
6
+ * deliberate. AWS documents no delay between attempts. A delay of zero here
7
+ * would be scheduled at the instant the clock already reads, and advancing the
8
+ * clock keeps dispatching whatever falls due inside the interval it is moving
11
9
  * through, so a batch the function always throws on would leave `advanceBy`
12
10
  * with work to do forever. The delay is therefore strictly positive and grows
13
- * with each attempt, which is also what a consumer under load actually wants.
11
+ * with each attempt, which is also what a consumer under load actually wants,
12
+ * and it is what lets a test walk through the attempts by advancing the clock.
14
13
  *
15
- * AWS retries a stream batch until the records age out of the stream, which is
16
- * a day. Waiting out a simulated day for a handler that is never going to
17
- * succeed is the same hang with more steps, so the attempts are counted
18
- * instead. What happens at the end is AWS's own behaviour: the records are
19
- * discarded and the mapping carries on with the stream.
14
+ * How many attempts there are belongs to the mapping rather than to this: a
15
+ * mapping that asked for a retry quota gets the quota it asked for, and one
16
+ * that asked for neither limit gets the simulator's own cap.
20
17
  */
21
18
  export declare class SimLambdaStreamRetryBackoff {
19
+ private readonly attemptLimit;
22
20
  private attempts;
21
+ constructor(attemptLimit: number);
23
22
  /**
24
23
  * Whether this batch has had all the attempts it gets.
25
24
  */
@@ -1,41 +1,48 @@
1
1
  /**
2
- * How many times one batch is delivered again before it is given up on.
2
+ * The longest wait, in seconds, the simulation's clock can be scheduled at.
3
+ *
4
+ * A `Date` holds about 275,000 years either side of the epoch, and a wait past
5
+ * that would be scheduled at an instant that is not a date at all. Doubling
6
+ * reaches it on the 44th attempt, which is further than any test can advance
7
+ * the clock, so this is a guard on the arithmetic rather than a wait a mapping
8
+ * meets.
3
9
  */
4
- const attemptLimit = 5;
10
+ const longestWaitSeconds = 2 ** 42;
5
11
  /**
6
12
  * How long a mapping waits before handing a failed batch to its function
7
- * again, and when it stops trying.
8
- *
9
- * Both are simulator constraints rather than AWS behaviour, and both are
10
- * deliberate.
13
+ * again, and how many waits it has left.
11
14
  *
12
- * AWS documents no delay between attempts. A delay of zero here would be
13
- * scheduled at the instant the clock already reads, and advancing the clock
14
- * keeps dispatching whatever falls due inside the interval it is moving
15
+ * The delay is a simulator constraint rather than AWS behaviour, and it is
16
+ * deliberate. AWS documents no delay between attempts. A delay of zero here
17
+ * would be scheduled at the instant the clock already reads, and advancing the
18
+ * clock keeps dispatching whatever falls due inside the interval it is moving
15
19
  * through, so a batch the function always throws on would leave `advanceBy`
16
20
  * with work to do forever. The delay is therefore strictly positive and grows
17
- * with each attempt, which is also what a consumer under load actually wants.
21
+ * with each attempt, which is also what a consumer under load actually wants,
22
+ * and it is what lets a test walk through the attempts by advancing the clock.
18
23
  *
19
- * AWS retries a stream batch until the records age out of the stream, which is
20
- * a day. Waiting out a simulated day for a handler that is never going to
21
- * succeed is the same hang with more steps, so the attempts are counted
22
- * instead. What happens at the end is AWS's own behaviour: the records are
23
- * discarded and the mapping carries on with the stream.
24
+ * How many attempts there are belongs to the mapping rather than to this: a
25
+ * mapping that asked for a retry quota gets the quota it asked for, and one
26
+ * that asked for neither limit gets the simulator's own cap.
24
27
  */
25
28
  export class SimLambdaStreamRetryBackoff {
29
+ attemptLimit;
26
30
  attempts = 0;
31
+ constructor(attemptLimit) {
32
+ this.attemptLimit = attemptLimit;
33
+ }
27
34
  /**
28
35
  * Whether this batch has had all the attempts it gets.
29
36
  */
30
37
  get isExhausted() {
31
- return this.attempts >= attemptLimit;
38
+ return this.attempts >= this.attemptLimit;
32
39
  }
33
40
  /**
34
41
  * How long to wait before the next attempt, in seconds.
35
42
  */
36
43
  nextSeconds() {
37
44
  this.attempts += 1;
38
- return 2 ** (this.attempts - 1);
45
+ return Math.min(2 ** (this.attempts - 1), longestWaitSeconds);
39
46
  }
40
47
  /**
41
48
  * Start counting again, which a batch that is finished with does.
@@ -0,0 +1,64 @@
1
+ import type { SimClock } from "../../../../util/clock/sim-clock.js";
2
+ import type { SimLambdaStreamRetryLimits } from "../sim-lambda-stream-retry-limits.js";
3
+ import type { SimLambdaEventSourceStreamPosition } from "../stream/sim-lambda-event-source-streams.js";
4
+ import type { SimLambdaStreamBatchOutcome } from "./sim-lambda-stream-batch-outcome.js";
5
+ interface SimLambdaStreamRetryProperties {
6
+ readonly limits: SimLambdaStreamRetryLimits;
7
+ readonly clock: SimClock;
8
+ }
9
+ /**
10
+ * One more delivery of a failed batch: where it starts, and how long the
11
+ * mapping waits first.
12
+ */
13
+ export interface SimLambdaStreamRetryAttempt {
14
+ readonly position: SimLambdaEventSourceStreamPosition;
15
+ readonly afterSeconds: number;
16
+ }
17
+ /**
18
+ * Whether a failed batch is handed over again, and from which record.
19
+ *
20
+ * Both of Lambda's failed-batch limits end here because they end the same
21
+ * thing. A batch stops being delivered when it has had its retries, and a
22
+ * record stops being delivered when it is older than the mapping will carry;
23
+ * whichever comes first, what is left of the batch is discarded and the mapping
24
+ * reads on. Records age out of the front of a batch, because a batch is in
25
+ * stream order, so the answer is one record to start from rather than a list of
26
+ * survivors.
27
+ *
28
+ * Ages are read at the instant the next delivery falls due rather than now,
29
+ * because the wait before it is what ages the records out. A record judged now
30
+ * would be handed to the function and only then found to be too old.
31
+ */
32
+ export declare class SimLambdaStreamRetry {
33
+ private readonly limits;
34
+ private readonly clock;
35
+ private readonly backoff;
36
+ constructor(properties: SimLambdaStreamRetryProperties);
37
+ /**
38
+ * The next delivery of a failed batch, or nothing when the batch is finished
39
+ * with.
40
+ */
41
+ after(outcome: SimLambdaStreamBatchOutcome, readFrom: SimLambdaEventSourceStreamPosition): SimLambdaStreamRetryAttempt | undefined;
42
+ /**
43
+ * Start counting again, which a batch that is finished with does.
44
+ */
45
+ reset(): void;
46
+ /**
47
+ * Where the next delivery starts, or nothing when every record left in the
48
+ * batch has aged out.
49
+ */
50
+ private retryPosition;
51
+ /**
52
+ * The first record from `from` on that is still young enough to deliver.
53
+ */
54
+ private firstLiveIndex;
55
+ /**
56
+ * When the next delivery falls due, which is what a record's age is judged
57
+ * against.
58
+ *
59
+ * Judging it now would hand a record over and only then notice that it was
60
+ * too old to be worth handing over, since the wait is what makes it too old.
61
+ */
62
+ private deliveryAt;
63
+ }
64
+ export {};
@@ -0,0 +1,86 @@
1
+ import { SimLambdaStreamRetryBackoff } from "./sim-lambda-stream-retry-backoff.js";
2
+ const millisecondsPerSecond = 1000;
3
+ /**
4
+ * Whether a failed batch is handed over again, and from which record.
5
+ *
6
+ * Both of Lambda's failed-batch limits end here because they end the same
7
+ * thing. A batch stops being delivered when it has had its retries, and a
8
+ * record stops being delivered when it is older than the mapping will carry;
9
+ * whichever comes first, what is left of the batch is discarded and the mapping
10
+ * reads on. Records age out of the front of a batch, because a batch is in
11
+ * stream order, so the answer is one record to start from rather than a list of
12
+ * survivors.
13
+ *
14
+ * Ages are read at the instant the next delivery falls due rather than now,
15
+ * because the wait before it is what ages the records out. A record judged now
16
+ * would be handed to the function and only then found to be too old.
17
+ */
18
+ export class SimLambdaStreamRetry {
19
+ limits;
20
+ clock;
21
+ backoff;
22
+ constructor(properties) {
23
+ this.limits = properties.limits;
24
+ this.clock = properties.clock;
25
+ this.backoff = new SimLambdaStreamRetryBackoff(properties.limits.attemptLimit);
26
+ }
27
+ /**
28
+ * The next delivery of a failed batch, or nothing when the batch is finished
29
+ * with.
30
+ */
31
+ after(outcome, readFrom) {
32
+ if (this.backoff.isExhausted) {
33
+ return undefined;
34
+ }
35
+ const afterSeconds = this.backoff.nextSeconds();
36
+ const deliveryAt = this.deliveryAt(afterSeconds);
37
+ const position = this.retryPosition(outcome, readFrom, deliveryAt);
38
+ if (position === undefined) {
39
+ return undefined;
40
+ }
41
+ return { position, afterSeconds };
42
+ }
43
+ /**
44
+ * Start counting again, which a batch that is finished with does.
45
+ */
46
+ reset() {
47
+ this.backoff.reset();
48
+ }
49
+ /**
50
+ * Where the next delivery starts, or nothing when every record left in the
51
+ * batch has aged out.
52
+ */
53
+ retryPosition(outcome, readFrom, deliveryAt) {
54
+ const { records, retryIndex } = outcome;
55
+ const live = this.firstLiveIndex(records, retryIndex, deliveryAt);
56
+ if (live === undefined) {
57
+ return undefined;
58
+ }
59
+ const sequenceNumber = records.at(live)?.sequenceNumber;
60
+ // Nothing aged out of the front, so the batch goes back exactly where the
61
+ // report left it. A record that aged out but cannot be named leaves the
62
+ // batch where it was too, since skipping past a record the mapping cannot
63
+ // name would skip the records after it as well.
64
+ if (live === retryIndex || sequenceNumber === undefined) {
65
+ return outcome.retryPosition(readFrom);
66
+ }
67
+ return { kind: "sequence", sequenceNumber };
68
+ }
69
+ /**
70
+ * The first record from `from` on that is still young enough to deliver.
71
+ */
72
+ firstLiveIndex(records, from, deliveryAt) {
73
+ const index = records.findIndex((record, position) => position >= from && !this.limits.hasAgedOut(record.at, deliveryAt));
74
+ return index === -1 ? undefined : index;
75
+ }
76
+ /**
77
+ * When the next delivery falls due, which is what a record's age is judged
78
+ * against.
79
+ *
80
+ * Judging it now would hand a record over and only then notice that it was
81
+ * too old to be worth handing over, since the wait is what makes it too old.
82
+ */
83
+ deliveryAt(afterSeconds) {
84
+ return new Date(this.clock.now().getTime() + afterSeconds * millisecondsPerSecond);
85
+ }
86
+ }
@@ -1,4 +1,5 @@
1
1
  import type { SimLambdaEventSourceBatchRules } from "../sim-lambda-event-source-batch-rules.js";
2
+ import type { SimLambdaEventSourceRetryLimitRules } from "../sim-lambda-event-source-retry-limits.js";
2
3
  import { SimLambdaEventSourcePollingPermission } from "../sim-lambda-event-source-polling-permission.js";
3
4
  import type { SimLambdaEventSourceStartingPositionRules } from "../sim-lambda-event-source-starting-position.js";
4
5
  /**
@@ -44,6 +45,11 @@ export declare class SimLambdaSqsEventSourceArn {
44
45
  * is none of them.
45
46
  */
46
47
  get startingPositionRules(): SimLambdaEventSourceStartingPositionRules;
48
+ /**
49
+ * The failed-batch limits a mapping on this queue may be created with, which
50
+ * is neither of them.
51
+ */
52
+ get retryLimitRules(): SimLambdaEventSourceRetryLimitRules;
47
53
  /**
48
54
  * The URL SQS requests name this queue by.
49
55
  */
@@ -1,7 +1,7 @@
1
1
  import { SimLambdaInvalidParameterValueException } from "../../error/sim-lambda.error.js";
2
2
  import { sqsQueueUrl } from "../../../sqs/queue/sim-sqs-queue-arn.js";
3
3
  import { SimLambdaEventSourcePollingPermission } from "../sim-lambda-event-source-polling-permission.js";
4
- import { sqsBatchRules, sqsPollingOperations, sqsStartingPositionRules, } from "./sim-lambda-sqs-event-source-rules.js";
4
+ import { sqsBatchRules, sqsPollingOperations, sqsRetryLimitRules, sqsStartingPositionRules, } from "./sim-lambda-sqs-event-source-rules.js";
5
5
  const queueArnPattern = /^arn:aws:sqs:(?<region>[a-z0-9-]+):(?<account>\d{12}):(?<name>[\w-]{1,80})$/u;
6
6
  /**
7
7
  * The queue ARN an event source mapping is created for.
@@ -68,6 +68,13 @@ export class SimLambdaSqsEventSourceArn {
68
68
  get startingPositionRules() {
69
69
  return sqsStartingPositionRules;
70
70
  }
71
+ /**
72
+ * The failed-batch limits a mapping on this queue may be created with, which
73
+ * is neither of them.
74
+ */
75
+ get retryLimitRules() {
76
+ return sqsRetryLimitRules;
77
+ }
71
78
  /**
72
79
  * The URL SQS requests name this queue by.
73
80
  */
@@ -1,4 +1,5 @@
1
1
  import { SimLambdaEventSourceBatchRules } from "../sim-lambda-event-source-batch-rules.js";
2
+ import { SimLambdaNoRetryLimits } from "../sim-lambda-event-source-retry-limits.js";
2
3
  import { SimLambdaNoStartingPosition } from "../sim-lambda-event-source-starting-position.js";
3
4
  /**
4
5
  * What a function's execution role has to be allowed to do on a queue for
@@ -21,3 +22,8 @@ export declare const sqsBatchRules: SimLambdaEventSourceBatchRules;
21
22
  * front of the queue, and there is nowhere else it could start from.
22
23
  */
23
24
  export declare const sqsStartingPositionRules: SimLambdaNoStartingPosition;
25
+ /**
26
+ * A queue keeps its own count of how often a message has been received, so
27
+ * neither of Lambda's failed-batch limits is a queue mapping's to keep.
28
+ */
29
+ export declare const sqsRetryLimitRules: SimLambdaNoRetryLimits;