@kensio/yulin 1.21.3 → 1.21.4

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 (626) 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/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  40. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  50. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  51. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  52. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  53. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  74. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  75. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  76. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  77. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  78. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +12 -12
  79. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  80. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  81. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  82. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  83. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  84. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  85. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  86. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  87. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  88. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  89. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  90. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  91. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  92. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  93. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  94. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  95. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  96. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  97. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  98. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  99. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  100. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  101. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  102. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  103. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  104. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  105. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  106. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  107. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  108. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +8 -15
  109. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  110. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  111. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  112. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  113. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  114. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  115. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  116. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  117. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  118. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  119. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  120. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  121. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  122. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  123. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
  124. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  125. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  126. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  127. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  128. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  129. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  130. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  131. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  132. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  133. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  134. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  135. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  136. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  137. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  138. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  139. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  140. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  141. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  142. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  143. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  144. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  145. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  162. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  163. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  164. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  165. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  166. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  167. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  168. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  169. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  170. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  171. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  172. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  173. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  174. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  175. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  176. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  177. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  178. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  179. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  180. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  181. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  182. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  183. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  184. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  185. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  186. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  187. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  188. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  189. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  190. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  191. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  192. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  193. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  194. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  195. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  196. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  197. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  198. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  199. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  200. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  201. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  202. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  203. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +46 -3
  204. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +67 -6
  205. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  206. package/dist/service/cloudformation/stack/sim-cfn-stack.js +59 -32
  207. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +7 -1
  208. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  209. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  210. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  211. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  212. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  213. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  214. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  215. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  216. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  217. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  218. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  219. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  220. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
  221. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
  222. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
  223. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  224. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  225. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  226. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  227. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  228. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  229. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  230. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  231. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  232. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  233. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  234. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  235. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  236. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  237. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  238. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  239. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  240. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  241. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  242. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  243. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  244. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  245. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  246. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  247. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  248. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  249. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  250. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  251. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  252. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  253. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  254. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  255. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  256. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  257. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  258. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  259. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  260. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  261. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  262. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  263. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  264. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  265. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  266. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  267. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  268. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  269. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  270. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  271. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  272. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  273. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  274. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  275. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  276. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  277. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  278. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  279. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  280. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  281. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  282. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  283. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  284. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  285. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  286. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  287. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  288. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  289. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  290. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  291. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  292. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  293. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  294. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  295. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  296. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  297. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  298. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  299. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  300. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  301. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  302. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  303. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  304. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  305. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  306. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  307. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  308. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  309. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  310. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  311. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  312. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  313. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  314. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  315. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  316. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  317. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  318. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  319. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  320. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  321. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  322. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  323. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  324. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  325. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  326. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  327. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  328. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  329. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  330. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  331. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  332. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  333. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  334. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  335. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  336. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  337. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  338. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  339. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  340. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  341. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  342. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  343. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  344. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  345. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  346. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  347. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  348. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  349. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  350. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  351. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  352. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  353. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  354. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  355. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  356. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  357. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  358. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  359. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  360. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  361. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  362. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  363. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  364. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  365. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  366. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  367. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  368. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  369. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  370. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  371. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  372. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  373. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  374. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  375. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  376. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  377. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  378. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  379. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  380. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  381. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  382. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  383. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  384. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  385. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  386. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  387. package/dist/service/lambda/index.d.ts +1 -0
  388. package/dist/service/lambda/index.js +1 -0
  389. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  390. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  391. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  392. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  393. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  394. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  395. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  396. package/dist/service/lambda/sim-lambda.js +13 -0
  397. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  398. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  399. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  400. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  401. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  402. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  403. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  404. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  405. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  406. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  407. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  408. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  409. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  410. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  411. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  412. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  413. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  414. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  415. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  416. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  417. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  418. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  419. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  420. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  421. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  422. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  423. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  424. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  425. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  426. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  427. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  428. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  429. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  430. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  431. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  432. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  433. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  434. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  435. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  436. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  437. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  438. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  439. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  440. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  441. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  442. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  443. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  444. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  445. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  446. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  447. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  448. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  449. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  450. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  451. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  452. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  453. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  454. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  455. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  456. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  457. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  458. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  459. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  460. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  461. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  462. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  463. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  464. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  465. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  466. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  467. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  468. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  469. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  470. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  471. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  472. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  473. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  474. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  475. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  476. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  477. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  478. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  479. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  480. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  481. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  482. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  483. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  484. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  485. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  486. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  487. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  488. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  489. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  490. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  491. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  492. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  493. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  494. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  495. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  496. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  497. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  498. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  499. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  500. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  501. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  502. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  503. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  504. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  505. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  506. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  507. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  508. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  509. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  510. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  511. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  512. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  513. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  514. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  515. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  516. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  517. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  518. package/dist/service/s3/error/sim-s3.error.js +26 -40
  519. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  520. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  521. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  522. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  523. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  524. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  525. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  526. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  527. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  528. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  529. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  530. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  531. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  532. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  533. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  534. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  535. package/dist/service/s3/object/s3-object-summary.js +1 -10
  536. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  537. package/dist/service/s3/object/s3-object-tags.js +77 -0
  538. package/dist/service/s3/object/s3-object.d.ts +49 -0
  539. package/dist/service/s3/object/s3-object.js +52 -1
  540. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  541. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  542. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  543. package/dist/service/s3/object/s3-storage-class.js +67 -0
  544. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  545. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  546. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  547. package/dist/service/s3/object/s3-write-storage.js +21 -0
  548. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  549. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  550. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  551. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  552. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  553. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  554. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  555. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  556. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  557. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  558. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  559. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  560. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  561. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  562. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  563. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  564. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  565. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  566. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  567. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  568. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  569. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  570. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  571. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  572. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  573. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  574. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  575. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  576. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  577. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  578. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  579. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  580. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  581. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  582. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  583. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  584. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  585. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  586. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  587. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  588. package/dist/service/s3/sim-s3-commands.d.ts +4 -0
  589. package/dist/service/s3/sim-s3-commands.js +6 -0
  590. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  591. package/dist/service/s3/sim-s3-operations.js +17 -4
  592. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  593. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  594. package/dist/service/s3/sim-s3.d.ts +12 -0
  595. package/dist/service/s3/sim-s3.js +13 -0
  596. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  597. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  598. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  599. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  600. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  601. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  602. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  603. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  604. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  605. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  606. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  607. package/dist/util/background/background-clock-waits.d.ts +52 -0
  608. package/dist/util/background/background-clock-waits.js +76 -0
  609. package/dist/util/background/background-jitter.js +1 -0
  610. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  611. package/dist/util/background/background-pending-tasks.js +117 -0
  612. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  613. package/dist/util/background/background-settled-tasks.js +4 -1
  614. package/dist/util/background/background.d.ts +43 -0
  615. package/dist/util/background/background.js +27 -19
  616. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  617. package/dist/util/background/non-deterministic-background.js +24 -20
  618. package/dist/util/clock/sim-clock-control.js +23 -2
  619. package/docs/services/apigateway/README.md +3 -1
  620. package/docs/services/athena/README.md +126 -3
  621. package/docs/services/cloudformation/README.md +775 -65
  622. package/docs/services/cognito/README.md +5 -0
  623. package/docs/services/dynamodb/README.md +86 -11
  624. package/docs/services/lambda/README.md +603 -39
  625. package/docs/services/s3/README.md +688 -57
  626. package/package.json +7 -1
@@ -1,5 +1,6 @@
1
1
  import { simLambdaEventTooOld, simLambdaRetryDueTime, } from "../../../function/event-invoke/sim-lambda-event-invoke-settings.js";
2
2
  import { simLambdaAbandonedOutcome, SimLambdaAsyncOutcomeDelivery, simLambdaSuccessOutcome, } from "./sim-lambda-async-outcome.js";
3
+ import { simLambdaHandlerAttempt } from "./sim-lambda-handler-attempt.js";
3
4
  /**
4
5
  * One asynchronous invocation of a simulated Lambda function, from the first
5
6
  * attempt to wherever its result ends up.
@@ -22,19 +23,17 @@ export class SimLambdaAsyncInvocation {
22
23
  * Accept the invocation and let it run behind the caller.
23
24
  */
24
25
  start() {
25
- this.properties.background.schedule(async () => {
26
- await this.attempt();
27
- });
26
+ this.properties.background.schedule(() => this.attempt());
28
27
  }
29
28
  async attempt() {
30
29
  const { simFunction, event } = this.properties;
31
30
  this.attemptCount += 1;
32
- try {
33
- await this.outcomes.deliver(simLambdaSuccessOutcome(await simFunction.invoke(event)), this.attemptCount);
34
- }
35
- catch (error) {
36
- await this.failed(error);
31
+ const attempt = await simLambdaHandlerAttempt(simFunction, event);
32
+ if (!attempt.succeeded) {
33
+ await this.failed(attempt.error);
34
+ return;
37
35
  }
36
+ await this.outcomes.deliver(simLambdaSuccessOutcome(attempt.result), this.attemptCount);
38
37
  }
39
38
  /**
40
39
  * Retry the attempt that threw, or give up where the last one has been
@@ -46,11 +45,9 @@ export class SimLambdaAsyncInvocation {
46
45
  await this.abandon(error, "RetriesExhausted");
47
46
  return;
48
47
  }
49
- background.scheduleAt(simLambdaRetryDueTime(background.now(), this.attemptCount), async () => {
50
- await (simLambdaEventTooOld(this.startedAt, background.now(), settings)
51
- ? this.abandon(error, "EventAgeExceeded")
52
- : this.attempt());
53
- });
48
+ background.scheduleAt(simLambdaRetryDueTime(background.now(), this.attemptCount), () => simLambdaEventTooOld(this.startedAt, background.now(), settings)
49
+ ? this.abandon(error, "EventAgeExceeded")
50
+ : this.attempt());
54
51
  }
55
52
  /**
56
53
  * Give up on the invocation, telling its failure destination why and
@@ -58,6 +58,7 @@ export class SimLambdaAsyncOutcomeDelivery {
58
58
  await destinations.deliver({
59
59
  destinationArn: SimLambdaDestinationArn.of(destination),
60
60
  sourceFunctionArn: simFunction.arn,
61
+ sourceFunctionRoleArn: simFunction.roleArn,
61
62
  record: makeSimLambdaDestinationRecord({
62
63
  requestId: this.requestId,
63
64
  functionArn: simFunction.arn,
@@ -82,6 +83,7 @@ export class SimLambdaAsyncOutcomeDelivery {
82
83
  targetArn: SimLambdaDestinationArn.of(settings.deadLetterArn),
83
84
  payload: event,
84
85
  sourceFunctionArn: simFunction.arn,
86
+ sourceFunctionRoleArn: simFunction.roleArn,
85
87
  });
86
88
  }
87
89
  }
@@ -0,0 +1,13 @@
1
+ import type { SimLambdaFunction } from "../../../function/sim-lambda-function.js";
2
+ export type SimLambdaHandlerAttempt = {
3
+ readonly succeeded: true;
4
+ readonly result: unknown;
5
+ } | {
6
+ readonly succeeded: false;
7
+ readonly error: unknown;
8
+ };
9
+ /**
10
+ * Invoke a function handler while keeping its error separate from later
11
+ * destination delivery errors.
12
+ */
13
+ export declare function simLambdaHandlerAttempt(simFunction: SimLambdaFunction, event: unknown): Promise<SimLambdaHandlerAttempt>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Invoke a function handler while keeping its error separate from later
3
+ * destination delivery errors.
4
+ */
5
+ export async function simLambdaHandlerAttempt(simFunction, event) {
6
+ try {
7
+ return { succeeded: true, result: await simFunction.invoke(event) };
8
+ }
9
+ catch (error) {
10
+ return { succeeded: false, error };
11
+ }
12
+ }
@@ -2,6 +2,7 @@
2
2
  * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/lambda/command/UpdateFunctionUrlConfigCommand/
3
3
  */
4
4
  import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
5
+ import type { SimLambdaFunctionUrlCors } from "../../function/url/sim-lambda-function-url-cors.js";
5
6
  import type { SimLambdaFunctionUrlAuthType, SimLambdaFunctionUrlConfiguration, SimLambdaFunctionUrlInvokeMode } from "../../function/url/sim-lambda-function-url.js";
6
7
  /**
7
8
  * Minimal structural sim Lambda UpdateFunctionUrlConfig command.
@@ -19,6 +20,7 @@ export interface SimUpdateFunctionUrlConfigCommandInput {
19
20
  readonly FunctionName?: string | undefined;
20
21
  readonly AuthType?: SimLambdaFunctionUrlAuthType | undefined;
21
22
  readonly InvokeMode?: SimLambdaFunctionUrlInvokeMode | undefined;
23
+ readonly Cors?: SimLambdaFunctionUrlCors | undefined;
22
24
  }
23
25
  /**
24
26
  * Minimal structural sim Lambda UpdateFunctionUrlConfig output.
@@ -38,6 +38,7 @@ export class UpdateFunctionUrlConfigCommandHandler {
38
38
  functionUrl.update({
39
39
  authType: this.inputParser.parseOptionalAuthType(command.input.AuthType),
40
40
  invokeMode: this.inputParser.parseOptionalInvokeMode(command.input.InvokeMode),
41
+ cors: this.inputParser.parseOptionalCors(command.input.Cors),
41
42
  });
42
43
  return {
43
44
  $metadata: {},
@@ -25,6 +25,6 @@ export class SimLambdaDestinationBus {
25
25
  },
26
26
  ],
27
27
  },
28
- });
28
+ }, { caller: { kind: "arn", arn: request.sourceFunctionRoleArn } });
29
29
  }
30
30
  }
@@ -1,4 +1,3 @@
1
- import { SimLambdaError } from "../../error/sim-lambda.error.js";
2
1
  /**
3
2
  * A function a function is sending an asynchronous invocation result to, in
4
3
  * the Account and Region the destination ARN names.
@@ -9,16 +8,13 @@ export class SimLambdaDestinationFunction {
9
8
  */
10
9
  async deliver(scope, request) {
11
10
  const { destinationArn: arn } = request;
12
- const target = scope
13
- .lambda()
14
- .getSimFunctionTarget(arn.functionName, arn.functionQualifier);
15
- if (target === undefined) {
16
- throw new SimLambdaError(`${arn.value} is not a simulated Lambda function.`);
17
- }
18
- // Invoked directly rather than through an Invoke command, because this is
19
- // already inside the background task standing for the asynchronous
20
- // invocation, and because a delivery failure has to reach the caller who
21
- // advanced the clock rather than being swallowed a second time.
22
- await target.simFunction.invoke(request.record);
11
+ await scope.lambda().invoke({
12
+ input: {
13
+ FunctionName: arn.functionName,
14
+ Qualifier: arn.functionQualifier,
15
+ InvocationType: "Event",
16
+ Payload: JSON.stringify(request.record),
17
+ },
18
+ }, { caller: { kind: "arn", arn: request.sourceFunctionRoleArn } });
23
19
  }
24
20
  }
@@ -17,8 +17,9 @@ export class SimLambdaDestinationQueue {
17
17
  }
18
18
  // Sent through the ordinary SendMessage path, so what arrives is the same
19
19
  // thing an SDK caller would have sent.
20
- await send.scope
21
- .sqs()
22
- .sendMessage({ input: { QueueUrl: queue.arn.url, MessageBody: send.body } }, { sourceArn: send.sourceFunctionArn });
20
+ await send.scope.sqs().sendMessage({ input: { QueueUrl: queue.arn.url, MessageBody: send.body } }, {
21
+ caller: { kind: "arn", arn: send.sourceFunctionRoleArn },
22
+ sourceArn: send.sourceFunctionArn,
23
+ });
23
24
  }
24
25
  }
@@ -11,4 +11,6 @@ export interface SimLambdaDestinationSend {
11
11
  * The function this came from, supplied to IAM as `aws:SourceArn`.
12
12
  */
13
13
  readonly sourceFunctionArn: string;
14
+ /** The execution Role Lambda uses to send the document. */
15
+ readonly sourceFunctionRoleArn: string;
14
16
  }
@@ -15,8 +15,9 @@ export class SimLambdaDestinationTopic {
15
15
  if (topic === undefined) {
16
16
  throw new SimLambdaError(`${send.arn.value} is not a simulated SNS topic.`);
17
17
  }
18
- await send.scope
19
- .sns()
20
- .publish({ input: { TopicArn: topic.arn.value, Message: send.body } }, { sourceArn: send.sourceFunctionArn });
18
+ await send.scope.sns().publish({ input: { TopicArn: topic.arn.value, Message: send.body } }, {
19
+ caller: { kind: "arn", arn: send.sourceFunctionRoleArn },
20
+ sourceArn: send.sourceFunctionArn,
21
+ });
21
22
  }
22
23
  }
@@ -11,12 +11,10 @@ interface SimAwsLambdaDestinationsProperties {
11
11
  * built: reaching another service while this one is being constructed is a
12
12
  * cycle with no bottom to it.
13
13
  *
14
- * Real Lambda delivers under the function's own execution role, and delivers
15
- * nothing when that role cannot write to the destination. The permission is
16
- * left unchecked here, so a delivery is made as the destination Account's own
17
- * root. A record that silently goes nowhere is the harder failure to find, and
18
- * a destination needs no resource policy on real AWS either, so nothing about
19
- * the destination itself has to be set up for a record to arrive.
14
+ * Every delivery uses the source function's execution Role as its caller. The
15
+ * destination service applies its ordinary IAM checks to that Role before it
16
+ * changes any state.
17
+ * @see https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html
20
18
  */
21
19
  export declare class SimAwsLambdaDestinations implements SimLambdaDestinationTargets {
22
20
  private readonly simAws;
@@ -10,12 +10,10 @@ import { SimLambdaDestinationTopic } from "./deliver/sim-lambda-destination-topi
10
10
  * built: reaching another service while this one is being constructed is a
11
11
  * cycle with no bottom to it.
12
12
  *
13
- * Real Lambda delivers under the function's own execution role, and delivers
14
- * nothing when that role cannot write to the destination. The permission is
15
- * left unchecked here, so a delivery is made as the destination Account's own
16
- * root. A record that silently goes nowhere is the harder failure to find, and
17
- * a destination needs no resource policy on real AWS either, so nothing about
18
- * the destination itself has to be set up for a record to arrive.
13
+ * Every delivery uses the source function's execution Role as its caller. The
14
+ * destination service applies its ordinary IAM checks to that Role before it
15
+ * changes any state.
16
+ * @see https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html
19
17
  */
20
18
  export class SimAwsLambdaDestinations {
21
19
  simAws;
@@ -58,6 +56,7 @@ export class SimAwsLambdaDestinations {
58
56
  arn: request.targetArn,
59
57
  body: JSON.stringify(request.payload),
60
58
  sourceFunctionArn: request.sourceFunctionArn,
59
+ sourceFunctionRoleArn: request.sourceFunctionRoleArn,
61
60
  };
62
61
  await (request.targetArn.service === "sqs"
63
62
  ? this.queue.deliver(send)
@@ -69,6 +68,7 @@ export class SimAwsLambdaDestinations {
69
68
  arn: request.destinationArn,
70
69
  body: JSON.stringify(request.record),
71
70
  sourceFunctionArn: request.sourceFunctionArn,
71
+ sourceFunctionRoleArn: request.sourceFunctionRoleArn,
72
72
  };
73
73
  }
74
74
  scopeOf(arn) {
@@ -11,6 +11,8 @@ export interface SimLambdaDestinationDeliveryRequest {
11
11
  * delivery is attributed to.
12
12
  */
13
13
  readonly sourceFunctionArn: string;
14
+ /** The execution Role Lambda uses to deliver this record. */
15
+ readonly sourceFunctionRoleArn: string;
14
16
  }
15
17
  /**
16
18
  * One asynchronous invocation's event on its way to a dead-letter target.
@@ -23,6 +25,7 @@ export interface SimLambdaDeadLetterRequest {
23
25
  readonly targetArn: SimLambdaDestinationArn;
24
26
  readonly payload: unknown;
25
27
  readonly sourceFunctionArn: string;
28
+ readonly sourceFunctionRoleArn: string;
26
29
  }
27
30
  /**
28
31
  * Everywhere a simulated function's asynchronous invocation results can go.
@@ -1,6 +1,6 @@
1
1
  import { SimLambdaStreamCascadeGuard } from "../../stream/sim-lambda-stream-cascade-guard.js";
2
2
  import { countSimLambdaKinesisIteratorAge } from "../sim-lambda-stream-iterator-age.js";
3
- import { simLambdaStreamSequenceNumbers } from "../sim-lambda-stream-sequence-numbers.js";
3
+ import { simLambdaKinesisStreamRecordTimes } from "../sim-lambda-stream-record-times.js";
4
4
  import { SimLambdaStreamBatchResponse } from "../sim-lambda-stream-batch-response.js";
5
5
  import { SimLambdaKinesisStreamEventBuilder } from "./sim-lambda-kinesis-stream-event.js";
6
6
  /**
@@ -50,22 +50,17 @@ export class SimLambdaKinesisStreamDelivery {
50
50
  return this.cascade.noteRecordWritten();
51
51
  }
52
52
  async handled(simFunction, records) {
53
+ const times = simLambdaKinesisStreamRecordTimes(records);
53
54
  try {
54
- return this.batchResponse.handled(sequenceNumbersOf(records), await simFunction.invoke(this.eventBuilder.of(records)));
55
+ return this.batchResponse.handled(times, await simFunction.invoke(this.eventBuilder.of(records)));
55
56
  }
56
57
  catch {
57
58
  // As on real Lambda, the handler error goes to the function's logs. What
58
59
  // the stream sees is the batch being tried again.
59
- return this.batchResponse.failed();
60
+ return this.batchResponse.failed(times);
60
61
  }
61
62
  finally {
62
63
  countSimLambdaKinesisIteratorAge(simFunction, records);
63
64
  }
64
65
  }
65
66
  }
66
- /**
67
- * The sequence numbers this batch's records can be named by.
68
- */
69
- function sequenceNumbersOf(records) {
70
- return simLambdaStreamSequenceNumbers(records.map((one) => one.SequenceNumber));
71
- }
@@ -1,7 +1,7 @@
1
1
  import { SimLambdaStreamCascadeGuard } from "../stream/sim-lambda-stream-cascade-guard.js";
2
2
  import { SimLambdaDynamoDbStreamEventBuilder } from "./sim-lambda-dynamodb-stream-event.js";
3
3
  import { countSimLambdaDynamoDbIteratorAge } from "./sim-lambda-stream-iterator-age.js";
4
- import { simLambdaStreamSequenceNumbers } from "./sim-lambda-stream-sequence-numbers.js";
4
+ import { simLambdaDynamoDbStreamRecordTimes } from "./sim-lambda-stream-record-times.js";
5
5
  import { SimLambdaStreamBatchResponse } from "./sim-lambda-stream-batch-response.js";
6
6
  /**
7
7
  * Hands one batch of stream records to a function and says what became of it.
@@ -49,22 +49,17 @@ export class SimLambdaDynamoDbStreamDelivery {
49
49
  return this.cascade.noteRecordWritten();
50
50
  }
51
51
  async handled(simFunction, records) {
52
+ const times = simLambdaDynamoDbStreamRecordTimes(records);
52
53
  try {
53
- return this.batchResponse.handled(sequenceNumbersOf(records), await simFunction.invoke(this.eventBuilder.of(records)));
54
+ return this.batchResponse.handled(times, await simFunction.invoke(this.eventBuilder.of(records)));
54
55
  }
55
56
  catch {
56
57
  // As on real Lambda, the handler error goes to the function's logs. What
57
58
  // the table sees is the batch being tried again.
58
- return this.batchResponse.failed();
59
+ return this.batchResponse.failed(times);
59
60
  }
60
61
  finally {
61
62
  countSimLambdaDynamoDbIteratorAge(simFunction, records);
62
63
  }
63
64
  }
64
65
  }
65
- /**
66
- * The sequence numbers this batch's records can be named by.
67
- */
68
- function sequenceNumbersOf(records) {
69
- return simLambdaStreamSequenceNumbers(records.map((one) => one.dynamodb?.SequenceNumber));
70
- }
@@ -1,4 +1,5 @@
1
1
  import type { SimLambdaEventSourceStreamPosition } from "../stream/sim-lambda-event-source-streams.js";
2
+ import type { SimLambdaStreamRecordTime } from "./sim-lambda-stream-record-times.js";
2
3
  /**
3
4
  * What became of one batch of stream records handed to a function.
4
5
  *
@@ -7,24 +8,42 @@ import type { SimLambdaEventSourceStreamPosition } from "../stream/sim-lambda-ev
7
8
  * batch does not split. The mapping holds one place on the shard, so the answer
8
9
  * is one place: either the batch is finished with, or reading goes back to a
9
10
  * record and everything from there is delivered again.
11
+ *
12
+ * The batch's own records travel with the answer, because what happens to a
13
+ * batch that failed depends on them: they carry the names it can be sent back
14
+ * to and the instants its records are aged from.
10
15
  */
11
16
  export declare class SimLambdaStreamBatchOutcome {
12
17
  readonly isHandled: boolean;
18
+ /**
19
+ * The records the batch carried, in stream order.
20
+ */
21
+ readonly records: readonly SimLambdaStreamRecordTime[];
13
22
  private readonly rewindTo;
14
23
  private constructor();
15
24
  /**
16
25
  * A batch the function took in full.
17
26
  */
18
- static handled(): SimLambdaStreamBatchOutcome;
27
+ static handled(records: readonly SimLambdaStreamRecordTime[]): SimLambdaStreamBatchOutcome;
19
28
  /**
20
29
  * A batch the function did not take, which is read again from where it was.
21
30
  */
22
- static failed(): SimLambdaStreamBatchOutcome;
31
+ static failed(records: readonly SimLambdaStreamRecordTime[]): SimLambdaStreamBatchOutcome;
23
32
  /**
24
33
  * A batch the function reported failing partway through, which is read again
25
34
  * from the record it named.
26
35
  */
27
- static failedFrom(sequenceNumber: string): SimLambdaStreamBatchOutcome;
36
+ static failedFrom(records: readonly SimLambdaStreamRecordTime[], sequenceNumber: string): SimLambdaStreamBatchOutcome;
37
+ /**
38
+ * Where in the batch the next delivery starts, as a position in the records
39
+ * the batch carried.
40
+ *
41
+ * A batch that failed whole starts at the first record. One the function
42
+ * reported on starts at the record it named, which the batch response has
43
+ * already checked was in the batch, so a name that is not there is the whole
44
+ * batch again rather than a guess.
45
+ */
46
+ get retryIndex(): number;
28
47
  /**
29
48
  * Where the next read starts when the batch goes back.
30
49
  *
@@ -6,32 +6,62 @@
6
6
  * batch does not split. The mapping holds one place on the shard, so the answer
7
7
  * is one place: either the batch is finished with, or reading goes back to a
8
8
  * record and everything from there is delivered again.
9
+ *
10
+ * The batch's own records travel with the answer, because what happens to a
11
+ * batch that failed depends on them: they carry the names it can be sent back
12
+ * to and the instants its records are aged from.
9
13
  */
10
14
  export class SimLambdaStreamBatchOutcome {
11
15
  isHandled;
16
+ /**
17
+ * The records the batch carried, in stream order.
18
+ */
19
+ records;
12
20
  rewindTo;
13
- constructor(isHandled, rewindTo) {
14
- this.isHandled = isHandled;
15
- this.rewindTo = rewindTo;
21
+ constructor(properties) {
22
+ this.isHandled = properties.isHandled;
23
+ this.records = properties.records;
24
+ this.rewindTo = properties.rewindTo;
16
25
  }
17
26
  /**
18
27
  * A batch the function took in full.
19
28
  */
20
- static handled() {
21
- return new SimLambdaStreamBatchOutcome(true, undefined);
29
+ static handled(records) {
30
+ return new SimLambdaStreamBatchOutcome({ isHandled: true, records });
22
31
  }
23
32
  /**
24
33
  * A batch the function did not take, which is read again from where it was.
25
34
  */
26
- static failed() {
27
- return new SimLambdaStreamBatchOutcome(false, undefined);
35
+ static failed(records) {
36
+ return new SimLambdaStreamBatchOutcome({ isHandled: false, records });
28
37
  }
29
38
  /**
30
39
  * A batch the function reported failing partway through, which is read again
31
40
  * from the record it named.
32
41
  */
33
- static failedFrom(sequenceNumber) {
34
- return new SimLambdaStreamBatchOutcome(false, sequenceNumber);
42
+ static failedFrom(records, sequenceNumber) {
43
+ return new SimLambdaStreamBatchOutcome({
44
+ isHandled: false,
45
+ records,
46
+ rewindTo: sequenceNumber,
47
+ });
48
+ }
49
+ /**
50
+ * Where in the batch the next delivery starts, as a position in the records
51
+ * the batch carried.
52
+ *
53
+ * A batch that failed whole starts at the first record. One the function
54
+ * reported on starts at the record it named, which the batch response has
55
+ * already checked was in the batch, so a name that is not there is the whole
56
+ * batch again rather than a guess.
57
+ */
58
+ get retryIndex() {
59
+ const sequenceNumber = this.rewindTo;
60
+ if (sequenceNumber === undefined) {
61
+ return 0;
62
+ }
63
+ const index = this.records.findIndex((record) => record.sequenceNumber === sequenceNumber);
64
+ return index === -1 ? 0 : index;
35
65
  }
36
66
  /**
37
67
  * Where the next read starts when the batch goes back.
@@ -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
  }