@kensio/yulin 1.21.2 → 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 (634) 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/factory/sim-cfn-resource-factory.type.d.ts +9 -0
  120. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  121. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  122. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  123. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  124. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +19 -0
  125. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  126. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  127. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  128. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  129. package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.d.ts +26 -0
  130. package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.js +55 -0
  131. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  132. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  133. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  134. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  135. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  136. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  137. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  138. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  139. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  140. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  141. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  142. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  143. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  144. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  145. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  165. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  166. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  167. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  168. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  169. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  170. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  171. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  172. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  173. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  174. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  175. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  176. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  177. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  178. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  179. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  180. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  181. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  182. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  183. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  184. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  185. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  186. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  187. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  188. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  189. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  190. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  191. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  192. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  193. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  194. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  195. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  196. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  197. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  198. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  199. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  200. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  201. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  202. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  203. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  204. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  205. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  206. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +51 -3
  207. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +84 -6
  208. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  209. package/dist/service/cloudformation/stack/sim-cfn-stack.js +59 -32
  210. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +7 -1
  211. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  212. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  213. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  214. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  215. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  216. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  217. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  218. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  219. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  220. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  221. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  222. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  223. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +16 -1
  224. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +27 -0
  225. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +7 -1
  226. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  227. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  228. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  229. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  230. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  231. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  232. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  233. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  234. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  235. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  236. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  237. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  238. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  239. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  240. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  241. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  242. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  243. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  244. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  245. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  246. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  247. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +5 -0
  248. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +15 -0
  249. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.d.ts +24 -0
  250. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.js +38 -0
  251. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  252. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  253. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  254. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  255. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  256. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  257. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  258. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  259. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  260. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  261. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  262. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  263. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  264. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  265. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  266. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  267. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  268. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  269. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  270. package/dist/service/dynamodb/table/sim-dynamodb-index-update.js +1 -2
  271. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  272. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  273. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  274. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  275. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  276. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  277. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  278. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  279. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  280. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  281. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  282. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  283. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  284. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  285. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  286. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  287. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  288. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  289. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  290. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  291. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  292. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  293. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  294. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  295. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  296. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  297. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  298. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  299. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  300. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  301. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  302. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  303. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  304. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  305. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  306. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  307. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  308. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  309. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  310. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  311. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  312. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  313. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  314. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  315. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  316. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  317. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  318. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  321. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  322. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  323. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  324. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  325. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  326. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  327. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  328. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  329. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  330. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  331. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  332. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  333. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  334. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  335. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  336. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  337. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  338. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  339. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  340. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  341. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  342. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  343. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  344. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  345. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  346. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  347. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  348. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  349. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  350. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  351. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  352. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  353. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  354. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  355. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  356. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  357. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  358. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  359. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  360. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  361. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  362. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  363. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  364. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  365. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  366. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  367. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  368. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  369. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  370. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  371. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  372. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  377. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  378. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  379. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  380. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  381. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  382. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  383. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  384. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  385. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  386. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  387. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  388. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  389. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  390. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  391. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  392. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  393. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  394. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  395. package/dist/service/lambda/index.d.ts +1 -0
  396. package/dist/service/lambda/index.js +1 -0
  397. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  398. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  399. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  400. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  401. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  402. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  403. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  404. package/dist/service/lambda/sim-lambda.js +13 -0
  405. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  406. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  407. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  408. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  409. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  410. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  411. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  412. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  413. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  414. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  415. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  416. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  417. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  418. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  423. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  424. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  425. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  426. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  427. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  428. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  429. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  430. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  431. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  432. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  433. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  434. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  435. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  436. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  437. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  438. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  439. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  440. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  441. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  442. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  443. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  444. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  445. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  446. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  447. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  448. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  449. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  450. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  451. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  452. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  453. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  454. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  455. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  456. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  457. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  458. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  459. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  460. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  461. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  462. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  463. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  464. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  465. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  466. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  467. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  468. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  469. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  470. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  471. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  472. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  473. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  474. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  475. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  476. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  477. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  478. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  479. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  480. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  481. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  482. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  483. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  484. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  485. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  486. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  487. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  488. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  489. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  490. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  491. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  492. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  493. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  494. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  495. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  496. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  497. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  498. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  499. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  500. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  501. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  502. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  503. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  504. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  505. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  506. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  507. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  508. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  509. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  510. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  511. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  512. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  513. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  514. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  515. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  516. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  517. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  518. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  519. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  520. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  521. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  522. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  523. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  524. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  525. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  526. package/dist/service/s3/error/sim-s3.error.js +26 -40
  527. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  528. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  529. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  530. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  531. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  532. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  533. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  534. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  535. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  536. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  537. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  538. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  539. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  540. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  541. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  542. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  543. package/dist/service/s3/object/s3-object-summary.js +1 -10
  544. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  545. package/dist/service/s3/object/s3-object-tags.js +77 -0
  546. package/dist/service/s3/object/s3-object.d.ts +49 -0
  547. package/dist/service/s3/object/s3-object.js +52 -1
  548. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  549. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  550. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  551. package/dist/service/s3/object/s3-storage-class.js +67 -0
  552. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  553. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  554. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  555. package/dist/service/s3/object/s3-write-storage.js +21 -0
  556. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  557. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  558. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  559. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  560. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  561. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  562. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  563. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  564. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  565. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  566. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  567. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  568. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  569. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  570. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  571. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  572. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  573. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  574. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  575. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  576. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  577. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  578. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  579. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  580. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  581. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  582. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  583. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  584. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  585. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  586. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  587. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  588. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  589. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  590. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  591. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  592. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  593. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  594. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  595. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  596. package/dist/service/s3/sim-s3-commands.d.ts +4 -0
  597. package/dist/service/s3/sim-s3-commands.js +6 -0
  598. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  599. package/dist/service/s3/sim-s3-operations.js +17 -4
  600. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  601. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  602. package/dist/service/s3/sim-s3.d.ts +12 -0
  603. package/dist/service/s3/sim-s3.js +13 -0
  604. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  605. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  606. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  607. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  608. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  609. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  610. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  611. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  612. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  613. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  614. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  615. package/dist/util/background/background-clock-waits.d.ts +52 -0
  616. package/dist/util/background/background-clock-waits.js +76 -0
  617. package/dist/util/background/background-jitter.js +1 -0
  618. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  619. package/dist/util/background/background-pending-tasks.js +117 -0
  620. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  621. package/dist/util/background/background-settled-tasks.js +4 -1
  622. package/dist/util/background/background.d.ts +43 -0
  623. package/dist/util/background/background.js +27 -19
  624. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  625. package/dist/util/background/non-deterministic-background.js +24 -20
  626. package/dist/util/clock/sim-clock-control.js +23 -2
  627. package/docs/services/apigateway/README.md +3 -1
  628. package/docs/services/athena/README.md +126 -3
  629. package/docs/services/cloudformation/README.md +775 -65
  630. package/docs/services/cognito/README.md +5 -0
  631. package/docs/services/dynamodb/README.md +86 -11
  632. package/docs/services/lambda/README.md +603 -39
  633. package/docs/services/s3/README.md +688 -57
  634. package/package.json +8 -2
@@ -1,4 +1,5 @@
1
1
  import { SimLambdaEventSourceBatchRules } from "../../sim-lambda-event-source-batch-rules.js";
2
+ import { SimLambdaStreamRetryLimitRules } from "../../sim-lambda-event-source-retry-limits.js";
2
3
  import { SimLambdaStreamStartingPosition } 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 stream for
@@ -25,3 +26,8 @@ export declare const kinesisStreamBatchRules: SimLambdaEventSourceBatchRules;
25
26
  * its records carry the instant they arrived.
26
27
  */
27
28
  export declare const kinesisStreamStartingPositionRules: SimLambdaStreamStartingPosition;
29
+ /**
30
+ * A Kinesis stream mapping counts a failed batch's attempts itself, so it takes
31
+ * both of Lambda's failed-batch limits.
32
+ */
33
+ export declare const kinesisStreamRetryLimitRules: SimLambdaStreamRetryLimitRules;
@@ -1,4 +1,5 @@
1
1
  import { SimLambdaEventSourceBatchRules } from "../../sim-lambda-event-source-batch-rules.js";
2
+ import { SimLambdaStreamRetryLimitRules } from "../../sim-lambda-event-source-retry-limits.js";
2
3
  import { SimLambdaStreamStartingPosition } 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 stream for
@@ -37,3 +38,8 @@ export const kinesisStreamStartingPositionRules = new SimLambdaStreamStartingPos
37
38
  positions: ["TRIM_HORIZON", "LATEST", "AT_TIMESTAMP"],
38
39
  sourceDescription: "a Kinesis stream",
39
40
  });
41
+ /**
42
+ * A Kinesis stream mapping counts a failed batch's attempts itself, so it takes
43
+ * both of Lambda's failed-batch limits.
44
+ */
45
+ export const kinesisStreamRetryLimitRules = new SimLambdaStreamRetryLimitRules();
@@ -1,5 +1,6 @@
1
1
  import type { SimLambdaEventSourceBatchRules } from "../sim-lambda-event-source-batch-rules.js";
2
- import { SimLambdaEventSourcePollingPermission } from "../sim-lambda-event-source-polling-permission.js";
2
+ import type { SimLambdaEventSourcePollingPermission } from "../sim-lambda-event-source-polling-permission.js";
3
+ import type { SimLambdaEventSourceRetryLimitRules } from "../sim-lambda-event-source-retry-limits.js";
3
4
  import type { SimLambdaEventSourceStartingPositionRules } from "../sim-lambda-event-source-starting-position.js";
4
5
  /**
5
6
  * The DynamoDB stream ARN an event source mapping is created for.
@@ -44,6 +45,10 @@ export declare class SimLambdaDynamoDbStreamEventSourceArn {
44
45
  * The starting positions a mapping on this stream may be created with.
45
46
  */
46
47
  get startingPositionRules(): SimLambdaEventSourceStartingPositionRules;
48
+ /**
49
+ * The failed-batch limits a mapping on this stream may be created with.
50
+ */
51
+ get retryLimitRules(): SimLambdaEventSourceRetryLimitRules;
47
52
  /**
48
53
  * Whether this stream is in an Account and Region.
49
54
  */
@@ -1,6 +1,5 @@
1
1
  import { SimLambdaInvalidParameterValueException } from "../../error/sim-lambda.error.js";
2
- import { SimLambdaEventSourcePollingPermission } from "../sim-lambda-event-source-polling-permission.js";
3
- import { dynamoDbStreamBatchRules, dynamoDbStreamPollingOperations, dynamoDbStreamStartingPositionRules, } from "./sim-lambda-dynamodb-stream-event-source-rules.js";
2
+ import { dynamoDbStreamBatchRules, dynamoDbStreamPollingPermissions, dynamoDbStreamRetryLimitRules, dynamoDbStreamStartingPositionRules, } from "./sim-lambda-dynamodb-stream-event-source-rules.js";
4
3
  /**
5
4
  * A stream ARN is a table ARN with a label after it, and the label is an ISO
6
5
  * timestamp carrying two colons of its own. Splitting the ARN on colons
@@ -37,10 +36,7 @@ export class SimLambdaDynamoDbStreamEventSourceArn {
37
36
  this.accountId = parts["account"] ?? "";
38
37
  this.tableName = parts["table"] ?? "";
39
38
  this.label = parts["label"] ?? "";
40
- this.pollingPermissions = [
41
- ...dynamoDbStreamPollingOperations.map((operation) => new SimLambdaEventSourcePollingPermission(`dynamodb:${operation}`, value)),
42
- new SimLambdaEventSourcePollingPermission("dynamodb:ListStreams", "*"),
43
- ];
39
+ this.pollingPermissions = dynamoDbStreamPollingPermissions(value);
44
40
  }
45
41
  /**
46
42
  * Read a stream ARN, answering with nothing when the ARN names something
@@ -78,6 +74,12 @@ export class SimLambdaDynamoDbStreamEventSourceArn {
78
74
  get startingPositionRules() {
79
75
  return dynamoDbStreamStartingPositionRules;
80
76
  }
77
+ /**
78
+ * The failed-batch limits a mapping on this stream may be created with.
79
+ */
80
+ get retryLimitRules() {
81
+ return dynamoDbStreamRetryLimitRules;
82
+ }
81
83
  /**
82
84
  * Whether this stream is in an Account and Region.
83
85
  */
@@ -1,15 +1,12 @@
1
1
  import { SimLambdaEventSourceBatchRules } from "../sim-lambda-event-source-batch-rules.js";
2
+ import { SimLambdaEventSourcePollingPermission } from "../sim-lambda-event-source-polling-permission.js";
3
+ import { SimLambdaStreamRetryLimitRules } from "../sim-lambda-event-source-retry-limits.js";
2
4
  import { SimLambdaStreamStartingPosition } from "../sim-lambda-event-source-starting-position.js";
3
5
  /**
4
- * What a function's execution role has to be allowed to do on a stream for
5
- * Lambda to poll it.
6
- *
7
- * These are the three operations a poller performs on the stream itself.
8
- * `ListStreams` goes with them, on every stream rather than on one: nothing
9
- * here ever calls it, but both the AWS managed policy and CDK's own grant
10
- * include it, so a role that would work on AWS is a role that works here.
6
+ * What an execution role has to be allowed before a mapping on one stream can
7
+ * be created, as the permissions simulated IAM is asked for.
11
8
  */
12
- export declare const dynamoDbStreamPollingOperations: readonly ["DescribeStream", "GetRecords", "GetShardIterator"];
9
+ export declare function dynamoDbStreamPollingPermissions(streamArn: string): readonly SimLambdaEventSourcePollingPermission[];
13
10
  /**
14
11
  * The batch sizes a DynamoDB stream event source delivers with.
15
12
  *
@@ -25,3 +22,8 @@ export declare const dynamoDbStreamBatchRules: SimLambdaEventSourceBatchRules;
25
22
  * Kinesis stream, and real Lambda refuses it here.
26
23
  */
27
24
  export declare const dynamoDbStreamStartingPositionRules: SimLambdaStreamStartingPosition;
25
+ /**
26
+ * A DynamoDB stream mapping counts a failed batch's attempts itself, so it
27
+ * takes both of Lambda's failed-batch limits.
28
+ */
29
+ export declare const dynamoDbStreamRetryLimitRules: SimLambdaStreamRetryLimitRules;
@@ -1,4 +1,6 @@
1
1
  import { SimLambdaEventSourceBatchRules } from "../sim-lambda-event-source-batch-rules.js";
2
+ import { SimLambdaEventSourcePollingPermission } from "../sim-lambda-event-source-polling-permission.js";
3
+ import { SimLambdaStreamRetryLimitRules } from "../sim-lambda-event-source-retry-limits.js";
2
4
  import { SimLambdaStreamStartingPosition } from "../sim-lambda-event-source-starting-position.js";
3
5
  /**
4
6
  * What a function's execution role has to be allowed to do on a stream for
@@ -9,11 +11,21 @@ import { SimLambdaStreamStartingPosition } from "../sim-lambda-event-source-star
9
11
  * here ever calls it, but both the AWS managed policy and CDK's own grant
10
12
  * include it, so a role that would work on AWS is a role that works here.
11
13
  */
12
- export const dynamoDbStreamPollingOperations = [
14
+ const dynamoDbStreamPollingOperations = [
13
15
  "DescribeStream",
14
16
  "GetRecords",
15
17
  "GetShardIterator",
16
18
  ];
19
+ /**
20
+ * What an execution role has to be allowed before a mapping on one stream can
21
+ * be created, as the permissions simulated IAM is asked for.
22
+ */
23
+ export function dynamoDbStreamPollingPermissions(streamArn) {
24
+ return [
25
+ ...dynamoDbStreamPollingOperations.map((operation) => new SimLambdaEventSourcePollingPermission(`dynamodb:${operation}`, streamArn)),
26
+ new SimLambdaEventSourcePollingPermission("dynamodb:ListStreams", "*"),
27
+ ];
28
+ }
17
29
  /**
18
30
  * The batch sizes a DynamoDB stream event source delivers with.
19
31
  *
@@ -38,3 +50,8 @@ export const dynamoDbStreamStartingPositionRules = new SimLambdaStreamStartingPo
38
50
  sourceDescription: "a DynamoDB stream",
39
51
  positionElsewhere: "AT_TIMESTAMP is for a Kinesis stream",
40
52
  });
53
+ /**
54
+ * A DynamoDB stream mapping counts a failed batch's attempts itself, so it
55
+ * takes both of Lambda's failed-batch limits.
56
+ */
57
+ export const dynamoDbStreamRetryLimitRules = new SimLambdaStreamRetryLimitRules();
@@ -1,4 +1,5 @@
1
1
  import type { SimLambdaEnvironment } from "../environment/sim-lambda-environment.js";
2
+ import type { SimLambdaOutput } from "../logging/sim-lambda-output.js";
2
3
  import type { SimLambdaOutputSink } from "../logging/sim-lambda-output-sink.js";
3
4
  import type { SimLambdaHandler } from "../sim-lambda-handler.type.js";
4
5
  /**
@@ -32,8 +33,12 @@ export interface SimLambdaExecutableCode {
32
33
  /**
33
34
  * Record what this code writes to its standard streams, so an invocation's
34
35
  * output reaches the function's log group.
36
+ *
37
+ * The output settings come with the sink because they decide what happens to
38
+ * a line once it has been recorded, and only code with somewhere to record
39
+ * is ever given either.
35
40
  */
36
- recordOutputTo(sink: SimLambdaOutputSink): void;
41
+ recordOutputTo(sink: SimLambdaOutputSink, output: SimLambdaOutput): void;
37
42
  /**
38
43
  * This code under changed function settings, cold rather than warm.
39
44
  *
@@ -63,7 +68,8 @@ export declare class SimLambdaHandlerReferenceCode implements SimLambdaExecutabl
63
68
  * function closing over the test's own module scope, and it prints through
64
69
  * the process console and the process standard streams. Its invocation is
65
70
  * run with those bridged to the function's sink instead, the way the clock
66
- * and process.env are bridged for the same code.
71
+ * and process.env are bridged for the same code. The output settings reach
72
+ * that bridge by the same route.
67
73
  */
68
74
  recordOutputTo(): void;
69
75
  /**
@@ -18,7 +18,8 @@ export class SimLambdaHandlerReferenceCode {
18
18
  * function closing over the test's own module scope, and it prints through
19
19
  * the process console and the process standard streams. Its invocation is
20
20
  * run with those bridged to the function's sink instead, the way the clock
21
- * and process.env are bridged for the same code.
21
+ * and process.env are bridged for the same code. The output settings reach
22
+ * that bridge by the same route.
22
23
  */
23
24
  recordOutputTo() {
24
25
  // Recorded by the invocation, from the process globals.
@@ -3,6 +3,7 @@ import type { SimLambdaHandler } from "../sim-lambda-handler.type.js";
3
3
  import { type SimLambdaVmSdkModuleProvider } from "./vm/sdk/sim-lambda-vm-sdk-module-provider.js";
4
4
  import type { SimLambdaCodeConfiguration, SimLambdaExecutableCode } from "./sim-lambda-executable-code.js";
5
5
  import { type SimLambdaVmContextProperties } from "./vm/sim-lambda-vm-context.js";
6
+ import type { SimLambdaOutput } from "../logging/sim-lambda-output.js";
6
7
  import { type SimLambdaOutputSink } from "../logging/sim-lambda-output-sink.js";
7
8
  /**
8
9
  * The archive and handler this code runs, on top of everything its sandbox is
@@ -37,7 +38,7 @@ export declare class SimLambdaVmZipCode implements SimLambdaExecutableCode {
37
38
  * asks for the handler, so the streams function code is handed already carry
38
39
  * the sink by the time any of it runs.
39
40
  */
40
- recordOutputTo(sink: SimLambdaOutputSink): void;
41
+ recordOutputTo(sink: SimLambdaOutputSink, output: SimLambdaOutput): void;
41
42
  /**
42
43
  * This archive under changed function settings, ready to cold start again.
43
44
  *
@@ -53,15 +54,5 @@ export declare class SimLambdaVmZipCode implements SimLambdaExecutableCode {
53
54
  */
54
55
  handlerFunction(): SimLambdaHandler;
55
56
  private coldStart;
56
- /**
57
- * Look up the handler export, tolerating a module that exported a nullish
58
- * value so the lookup still reports Runtime.HandlerNotFound.
59
- *
60
- * Only own exports count. Walking the prototype chain would let a handler
61
- * name like `index.constructor` resolve to an `Object.prototype` member and
62
- * be invoked as the handler, where real Lambda reports HandlerNotFound.
63
- */
64
- private exportedHandler;
65
- private importHandlerModule;
66
57
  }
67
58
  export {};
@@ -4,6 +4,7 @@ import { parseLambdaHandlerName } from "./sim-lambda-handler-name.js";
4
4
  import { makeSimLambdaVmContext, } from "./vm/sim-lambda-vm-context.js";
5
5
  import { simLambdaNoOutputSink, } from "../logging/sim-lambda-output-sink.js";
6
6
  import { SimLambdaVmModules } from "./vm/sim-lambda-vm-modules.js";
7
+ import { importSimLambdaHandlerModule, simLambdaExportedHandler, } from "./vm/sim-lambda-vm-handler-lookup.js";
7
8
  /**
8
9
  * Executable sim Lambda code compiled from a zip archive in a vm context.
9
10
  *
@@ -20,7 +21,10 @@ export class SimLambdaVmZipCode {
20
21
  */
21
22
  runsInHostScope = false;
22
23
  #handler;
23
- #sink = simLambdaNoOutputSink;
24
+ /** Where this execution environment's output goes, and what happens to it. */
25
+ #recording = {
26
+ sink: simLambdaNoOutputSink,
27
+ };
24
28
  constructor(properties) {
25
29
  this.properties = properties;
26
30
  }
@@ -31,8 +35,8 @@ export class SimLambdaVmZipCode {
31
35
  * asks for the handler, so the streams function code is handed already carry
32
36
  * the sink by the time any of it runs.
33
37
  */
34
- recordOutputTo(sink) {
35
- this.#sink = sink;
38
+ recordOutputTo(sink, output) {
39
+ this.#recording = { sink, output };
36
40
  }
37
41
  /**
38
42
  * This archive under changed function settings, ready to cold start again.
@@ -62,47 +66,17 @@ export class SimLambdaVmZipCode {
62
66
  const parsedName = parseLambdaHandlerName(handlerName);
63
67
  const modules = new SimLambdaVmModules({
64
68
  archive,
65
- context: makeSimLambdaVmContext({ ...this.properties, sink: this.#sink }),
69
+ context: makeSimLambdaVmContext({
70
+ ...this.properties,
71
+ ...this.#recording,
72
+ }),
66
73
  sdkModuleProvider: sdkModuleProvider ?? new SimLambdaNoVmSdkModuleProvider(),
67
74
  });
68
- const moduleExports = this.importHandlerModule(modules, parsedName.modulePath);
69
- const handler = this.exportedHandler(moduleExports, parsedName.exportName);
75
+ const moduleExports = importSimLambdaHandlerModule(modules, parsedName.modulePath);
76
+ const handler = simLambdaExportedHandler(moduleExports, parsedName.exportName);
70
77
  if (typeof handler !== "function") {
71
78
  throw new SimLambdaRuntimeError("Runtime.HandlerNotFound", `${handlerName} is undefined or not exported by ${parsedName.modulePath}`);
72
79
  }
73
80
  return handler;
74
81
  }
75
- /**
76
- * Look up the handler export, tolerating a module that exported a nullish
77
- * value so the lookup still reports Runtime.HandlerNotFound.
78
- *
79
- * Only own exports count. Walking the prototype chain would let a handler
80
- * name like `index.constructor` resolve to an `Object.prototype` member and
81
- * be invoked as the handler, where real Lambda reports HandlerNotFound.
82
- */
83
- exportedHandler(moduleExports, exportName) {
84
- if (moduleExports === null || moduleExports === undefined) {
85
- return undefined;
86
- }
87
- const exportedValues = moduleExports;
88
- if (!Object.hasOwn(exportedValues, exportName)) {
89
- return undefined;
90
- }
91
- return Reflect.get(exportedValues, exportName);
92
- }
93
- importHandlerModule(modules, modulePath) {
94
- try {
95
- return modules.requireModule(`./${modulePath}`);
96
- }
97
- catch (error) {
98
- if (error instanceof SimLambdaRuntimeError) {
99
- throw error;
100
- }
101
- let message = String(error);
102
- if (error instanceof Error) {
103
- message = error.message;
104
- }
105
- throw new SimLambdaRuntimeError("Runtime.ImportModuleError", message);
106
- }
107
- }
108
82
  }
@@ -1,6 +1,7 @@
1
1
  import vm from "node:vm";
2
2
  import { type SimClock } from "../../../../../util/clock/sim-clock.js";
3
3
  import type { SimLambdaEnvironment } from "../../environment/sim-lambda-environment.js";
4
+ import type { SimLambdaOutput } from "../../logging/sim-lambda-output.js";
4
5
  import { type SimLambdaOutputSink } from "../../logging/sim-lambda-output-sink.js";
5
6
  import type { SimLambdaOutboundHttp } from "../../outbound/sim-lambda-outbound-http.js";
6
7
  /**
@@ -12,6 +13,12 @@ export interface SimLambdaVmContextProperties {
12
13
  readonly clock?: SimClock | undefined;
13
14
  /** Where the sandbox's output is recorded, nowhere by default. */
14
15
  readonly sink?: SimLambdaOutputSink | undefined;
16
+ /**
17
+ * Whether what the sandbox prints also reaches the host standard streams.
18
+ * A sandbox given none forwards everything, which is what a function with
19
+ * nowhere to record its output needs.
20
+ */
21
+ readonly output?: SimLambdaOutput | undefined;
15
22
  /**
16
23
  * Where the sandbox's `fetch` requests to hostnames the simulation serves
17
24
  * are answered. Without one every request reaches the network, as the host
@@ -4,6 +4,8 @@ import { makeSimClockDate } from "../../../../../util/clock/sim-clock-date.js";
4
4
  import { SimRealClock, } from "../../../../../util/clock/sim-clock.js";
5
5
  import { simLambdaNoOutputSink, } from "../../logging/sim-lambda-output-sink.js";
6
6
  import { makeSimLambdaOutboundFetch } from "../../outbound/sim-lambda-outbound-fetch.js";
7
+ import { simLambdaClearInterval, simLambdaClearTimeout, } from "../../invoke/timer/sim-lambda-clear-timer.js";
8
+ import { simLambdaSetInterval, simLambdaSetTimeout, } from "../../invoke/timer/sim-lambda-process-timers.js";
7
9
  import { SimLambdaVmOutputStream } from "./sim-lambda-vm-output-stream.js";
8
10
  /**
9
11
  * Create the sandbox vm context that sim Lambda function code runs in.
@@ -22,12 +24,12 @@ import { SimLambdaVmOutputStream } from "./sim-lambda-vm-output-stream.js";
22
24
  * from the simulation for the hostnames the simulation serves.
23
25
  */
24
26
  export function makeSimLambdaVmContext(properties) {
25
- const { environment, clock = new SimRealClock(), sink = simLambdaNoOutputSink, outboundHttp, } = properties;
27
+ const { environment, clock = new SimRealClock(), sink = simLambdaNoOutputSink, output, outboundHttp, } = properties;
26
28
  // Writable standard streams, as the real runtime provides. Code that builds
27
29
  // its own console over them, as AWS Lambda Powertools' logger does, throws
28
30
  // at module load without them.
29
- const stdout = new SimLambdaVmOutputStream(() => process.stdout);
30
- const stderr = new SimLambdaVmOutputStream(() => process.stderr);
31
+ const stdout = new SimLambdaVmOutputStream(() => process.stdout, output);
32
+ const stderr = new SimLambdaVmOutputStream(() => process.stderr, output);
31
33
  // What function code writes reaches the function's log group through here.
32
34
  stdout.recordTo(sink);
33
35
  stderr.recordTo(sink);
@@ -45,10 +47,14 @@ export function makeSimLambdaVmContext(properties) {
45
47
  // Function code asking JavaScript for the time gets the simulation's
46
48
  // time, so a frozen or advanced clock reaches the code under test.
47
49
  Date: makeSimClockDate(clock),
48
- setTimeout,
49
- clearTimeout,
50
- setInterval,
51
- clearInterval,
50
+ // Timers wait on the simulation's clock too, so a sandboxed handler that
51
+ // sleeps is released by a test advancing time rather than by the host.
52
+ // They belong to whichever invocation is running in the sandbox, which is
53
+ // why they are resolved per call rather than built into it.
54
+ setTimeout: simLambdaSetTimeout,
55
+ clearTimeout: simLambdaClearTimeout,
56
+ setInterval: simLambdaSetInterval,
57
+ clearInterval: simLambdaClearInterval,
52
58
  setImmediate,
53
59
  queueMicrotask,
54
60
  TextEncoder,
@@ -0,0 +1,23 @@
1
+ import type { SimLambdaVmModules } from "./sim-lambda-vm-modules.js";
2
+ /**
3
+ * Importing a function's handler module and finding the export it names.
4
+ *
5
+ * Both steps report the AWS-like `Runtime.*` error a real cold start reports,
6
+ * which is why they sit together.
7
+ */
8
+ /**
9
+ * Import the module a handler name points at.
10
+ *
11
+ * Anything the import threw that is not already a runtime error becomes a
12
+ * `Runtime.ImportModuleError`, as it does on real Lambda.
13
+ */
14
+ export declare function importSimLambdaHandlerModule(modules: SimLambdaVmModules, modulePath: string): unknown;
15
+ /**
16
+ * Look up the handler export, tolerating a module that exported a nullish
17
+ * value so the lookup still reports Runtime.HandlerNotFound.
18
+ *
19
+ * Only own exports count. Walking the prototype chain would let a handler
20
+ * name like `index.constructor` resolve to an `Object.prototype` member and
21
+ * be invoked as the handler, where real Lambda reports HandlerNotFound.
22
+ */
23
+ export declare function simLambdaExportedHandler(moduleExports: unknown, exportName: string): unknown;
@@ -0,0 +1,42 @@
1
+ import { SimLambdaRuntimeError } from "../../../error/sim-lambda-runtime.error.js";
2
+ /**
3
+ * Importing a function's handler module and finding the export it names.
4
+ *
5
+ * Both steps report the AWS-like `Runtime.*` error a real cold start reports,
6
+ * which is why they sit together.
7
+ */
8
+ /**
9
+ * Import the module a handler name points at.
10
+ *
11
+ * Anything the import threw that is not already a runtime error becomes a
12
+ * `Runtime.ImportModuleError`, as it does on real Lambda.
13
+ */
14
+ export function importSimLambdaHandlerModule(modules, modulePath) {
15
+ try {
16
+ return modules.requireModule(`./${modulePath}`);
17
+ }
18
+ catch (error) {
19
+ if (error instanceof SimLambdaRuntimeError) {
20
+ throw error;
21
+ }
22
+ throw new SimLambdaRuntimeError("Runtime.ImportModuleError", error instanceof Error ? error.message : String(error));
23
+ }
24
+ }
25
+ /**
26
+ * Look up the handler export, tolerating a module that exported a nullish
27
+ * value so the lookup still reports Runtime.HandlerNotFound.
28
+ *
29
+ * Only own exports count. Walking the prototype chain would let a handler
30
+ * name like `index.constructor` resolve to an `Object.prototype` member and
31
+ * be invoked as the handler, where real Lambda reports HandlerNotFound.
32
+ */
33
+ export function simLambdaExportedHandler(moduleExports, exportName) {
34
+ if (moduleExports === null || moduleExports === undefined) {
35
+ return undefined;
36
+ }
37
+ const exportedValues = moduleExports;
38
+ if (!Object.hasOwn(exportedValues, exportName)) {
39
+ return undefined;
40
+ }
41
+ return Reflect.get(exportedValues, exportName);
42
+ }
@@ -1,4 +1,5 @@
1
1
  import { Writable } from "node:stream";
2
+ import type { SimLambdaOutput } from "../../logging/sim-lambda-output.js";
2
3
  import { type SimLambdaOutputSink } from "../../logging/sim-lambda-output-sink.js";
3
4
  /**
4
5
  * One of the standard output streams the sim Lambda vm sandbox gives function
@@ -20,19 +21,26 @@ import { type SimLambdaOutputSink } from "../../logging/sim-lambda-output-sink.j
20
21
  * standard output to standard output and standard error to standard error, and
21
22
  * recorded to the sink the code was given, which is what puts a handler's
22
23
  * output in its log group. Forwarding to the host is a tee rather than a
23
- * redirect: real Lambda sends output to CloudWatch Logs and nowhere else, but
24
- * a test tool that swallowed it would make a failing test harder to debug than
25
- * it is with none of this.
24
+ * redirect. Real Lambda sends output to CloudWatch Logs and nowhere else, and a
25
+ * test tool that swallowed it would make a failing test harder to debug than it
26
+ * is with none of this.
26
27
  * The sandbox's own console is built over these streams too, so a handler's
27
28
  * output arrives there whether it printed through the console or wrote to the
28
29
  * stream itself, instead of one of the two disappearing. The host stream is
29
30
  * read per write, so a test that starts capturing host output after the
30
31
  * function has cold-started still sees what the handler writes.
32
+ *
33
+ * A simulated Lambda told to capture only (see `SimLambdaOutput`) drops the
34
+ * forwarding and carries on recording. Those settings are read per write as
35
+ * well, so a sandbox that has already cold started follows a change. A stream
36
+ * built without them forwards everything, which is what a function with
37
+ * nowhere to record its output needs.
31
38
  */
32
39
  export declare class SimLambdaVmOutputStream extends Writable {
33
40
  #private;
34
41
  private readonly hostStream;
35
- constructor(hostStream: () => NodeJS.WritableStream);
42
+ private readonly output?;
43
+ constructor(hostStream: () => NodeJS.WritableStream, output?: SimLambdaOutput | undefined);
36
44
  /**
37
45
  * Record everything written here to a sink from now on.
38
46
  */
@@ -21,17 +21,24 @@ import { simLambdaNoOutputSink, } from "../../logging/sim-lambda-output-sink.js"
21
21
  * standard output to standard output and standard error to standard error, and
22
22
  * recorded to the sink the code was given, which is what puts a handler's
23
23
  * output in its log group. Forwarding to the host is a tee rather than a
24
- * redirect: real Lambda sends output to CloudWatch Logs and nowhere else, but
25
- * a test tool that swallowed it would make a failing test harder to debug than
26
- * it is with none of this.
24
+ * redirect. Real Lambda sends output to CloudWatch Logs and nowhere else, and a
25
+ * test tool that swallowed it would make a failing test harder to debug than it
26
+ * is with none of this.
27
27
  * The sandbox's own console is built over these streams too, so a handler's
28
28
  * output arrives there whether it printed through the console or wrote to the
29
29
  * stream itself, instead of one of the two disappearing. The host stream is
30
30
  * read per write, so a test that starts capturing host output after the
31
31
  * function has cold-started still sees what the handler writes.
32
+ *
33
+ * A simulated Lambda told to capture only (see `SimLambdaOutput`) drops the
34
+ * forwarding and carries on recording. Those settings are read per write as
35
+ * well, so a sandbox that has already cold started follows a change. A stream
36
+ * built without them forwards everything, which is what a function with
37
+ * nowhere to record its output needs.
32
38
  */
33
39
  export class SimLambdaVmOutputStream extends Writable {
34
40
  hostStream;
41
+ output;
35
42
  #sink = simLambdaNoOutputSink;
36
43
  /**
37
44
  * Decodes what is recorded, rather than each chunk being decoded on its own.
@@ -44,9 +51,10 @@ export class SimLambdaVmOutputStream extends Writable {
44
51
  * bytes left over at the end of an invocation belong to the next one.
45
52
  */
46
53
  #decoder = new StringDecoder("utf8");
47
- constructor(hostStream) {
54
+ constructor(hostStream, output) {
48
55
  super();
49
56
  this.hostStream = hostStream;
57
+ this.output = output;
50
58
  }
51
59
  /**
52
60
  * Record everything written here to a sink from now on.
@@ -65,7 +73,9 @@ export class SimLambdaVmOutputStream extends Writable {
65
73
  */
66
74
  _write(chunk, _encoding, done) {
67
75
  this.#sink.write(this.#decoder.write(chunk));
68
- this.hostStream().write(chunk);
76
+ if (this.output?.reachesHost() ?? true) {
77
+ this.hostStream().write(chunk);
78
+ }
69
79
  done();
70
80
  }
71
81
  }
@@ -1,4 +1,5 @@
1
1
  import type { SimClock } from "../../../../util/clock/sim-clock.js";
2
+ import type { SimLambdaOutput } from "../logging/sim-lambda-output.js";
2
3
  import type { SimLambdaOutputSink } from "../logging/sim-lambda-output-sink.js";
3
4
  import type { SimLambdaOutboundHttp } from "../outbound/sim-lambda-outbound-http.js";
4
5
  /**
@@ -19,6 +20,12 @@ interface SimLambdaHostScope {
19
20
  * and its output reaches the host console alone.
20
21
  */
21
22
  readonly output: SimLambdaOutputSink | undefined;
23
+ /**
24
+ * Whether what the invocation prints also reaches the host console once it
25
+ * has been recorded. Read only where there is a sink, because a function
26
+ * with nowhere to record has the host console alone.
27
+ */
28
+ readonly outputSettings: SimLambdaOutput;
22
29
  }
23
30
  /**
24
31
  * Run an invocation of code in the host scope with the process globals it
@@ -1,6 +1,7 @@
1
1
  import { simLambdaProcessClock } from "./sim-lambda-process-clock.js";
2
2
  import { simLambdaProcessOutbound } from "./sim-lambda-process-outbound.js";
3
3
  import { simLambdaProcessOutput } from "./sim-lambda-process-output.js";
4
+ import { simLambdaProcessTimers } from "./timer/sim-lambda-process-timers.js";
4
5
  /**
5
6
  * Run an invocation of code in the host scope with the process globals it
6
7
  * reads bridged to its simulation.
@@ -11,10 +12,13 @@ import { simLambdaProcessOutput } from "./sim-lambda-process-output.js";
11
12
  * here.
12
13
  */
13
14
  export async function runSimLambdaInHostScope(scope, run) {
14
- const { clock, outboundHttp, output } = scope;
15
+ const { clock, outboundHttp, output, outputSettings } = scope;
16
+ // Host-scope code reaches for the global timer functions, so the invocation
17
+ // its handler runs in has to be findable from them.
18
+ simLambdaProcessTimers.install();
15
19
  const recording = output === undefined
16
20
  ? run
17
- : async () => await simLambdaProcessOutput.run(output, run);
21
+ : async () => await simLambdaProcessOutput.run(output, outputSettings, run);
18
22
  const reachingTheSimulation = outboundHttp === undefined
19
23
  ? recording
20
24
  : async () => await simLambdaProcessOutbound.run(outboundHttp, recording);
@@ -0,0 +1,26 @@
1
+ import type { BackgroundScheduler } from "../../../../util/background/background.js";
2
+ interface SimLambdaInvocationDeadlineProperties {
3
+ readonly background: BackgroundScheduler;
4
+ readonly timeoutSeconds: number;
5
+ readonly awsRequestId: string;
6
+ }
7
+ /**
8
+ * The time one invocation has to finish in, and the timers it gets while it
9
+ * runs.
10
+ *
11
+ * Both wait on the simulation's clock. Whichever arrives first decides: a
12
+ * handler that answers in time is answered with, and a deadline that arrives
13
+ * first ends the invocation in the timeout error real Lambda reports. Nothing
14
+ * waits for a handler that has been timed out, and what it goes on to do
15
+ * reaches nobody, which is the closest an in-process simulation gets to an
16
+ * execution environment being taken away.
17
+ */
18
+ export declare class SimLambdaInvocationDeadline {
19
+ #private;
20
+ constructor(properties: SimLambdaInvocationDeadlineProperties);
21
+ /**
22
+ * Run the handler with timers of its own, up to this deadline.
23
+ */
24
+ around<T>(handler: () => Promise<T>): Promise<T>;
25
+ }
26
+ export {};