@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
@@ -16,9 +16,9 @@ interface SimCfnConditionExpressionProperties {
16
16
  *
17
17
  * The tree is `Fn::Equals` at the leaves and `Fn::And`, `Fn::Or` and `Fn::Not`
18
18
  * above them, with `{ "Condition": "OtherCondition" }` handing off to the
19
- * Condition of that name. Where that other Condition comes from is the
20
- * evaluator's business, so it arrives as a reader rather than being looked up
21
- * here.
19
+ * Condition of that name. `Fn::If` picks one of two conditions by the answer to
20
+ * a third. Where a named Condition comes from is the evaluator's business, so it
21
+ * arrives as a reader rather than being looked up here.
22
22
  *
23
23
  * A function name this simulation has no behaviour for is refused rather than
24
24
  * read as false, which would deploy a Stack the template did not describe. The
@@ -39,6 +39,15 @@ export declare class SimCfnConditionExpression {
39
39
  evaluate(expression: SimCfnTemplateValue): boolean;
40
40
  private apply;
41
41
  private operands;
42
+ /**
43
+ * Evaluate whichever of an `Fn::If`'s two conditions its Condition selects.
44
+ *
45
+ * Only the selected one is evaluated, as CloudFormation resolves only the
46
+ * branch it takes. The name goes through the same reader a
47
+ * `{ "Condition": ... }` reference uses, so an `Fn::If` that closes a cycle
48
+ * is caught by the chain the evaluator carries rather than recursing.
49
+ */
50
+ private selected;
42
51
  private negated;
43
52
  }
44
53
  export {};
@@ -5,9 +5,9 @@ import { SimCfnValueShape, } from "../value/sim-cfn-value-shape.js";
5
5
  *
6
6
  * The tree is `Fn::Equals` at the leaves and `Fn::And`, `Fn::Or` and `Fn::Not`
7
7
  * above them, with `{ "Condition": "OtherCondition" }` handing off to the
8
- * Condition of that name. Where that other Condition comes from is the
9
- * evaluator's business, so it arrives as a reader rather than being looked up
10
- * here.
8
+ * Condition of that name. `Fn::If` picks one of two conditions by the answer to
9
+ * a third. Where a named Condition comes from is the evaluator's business, so it
10
+ * arrives as a reader rather than being looked up here.
11
11
  *
12
12
  * A function name this simulation has no behaviour for is refused rather than
13
13
  * read as false, which would deploy a Stack the template did not describe. The
@@ -54,6 +54,9 @@ export class SimCfnConditionExpression {
54
54
  if (functionName === "Fn::Not") {
55
55
  return this.negated(value);
56
56
  }
57
+ if (functionName === "Fn::If") {
58
+ return this.selected(value);
59
+ }
57
60
  if (functionName === "Condition") {
58
61
  return this.named(this.shape.string(value, `${this.label} Condition reference`));
59
62
  }
@@ -67,6 +70,29 @@ export class SimCfnConditionExpression {
67
70
  }
68
71
  return listed.map((operand) => this.evaluate(operand));
69
72
  }
73
+ /**
74
+ * Evaluate whichever of an `Fn::If`'s two conditions its Condition selects.
75
+ *
76
+ * Only the selected one is evaluated, as CloudFormation resolves only the
77
+ * branch it takes. The name goes through the same reader a
78
+ * `{ "Condition": ... }` reference uses, so an `Fn::If` that closes a cycle
79
+ * is caught by the chain the evaluator carries rather than recursing.
80
+ */
81
+ selected(value) {
82
+ const listed = this.shape.list(value, `${this.label} Fn::If`);
83
+ if (listed.length !== 3) {
84
+ throw this.error(`${this.label} Fn::If must be a list of a Condition name and two ` +
85
+ "conditions");
86
+ }
87
+ const conditionName = listed[0];
88
+ const whenTrue = listed[1];
89
+ const whenFalse = listed[2];
90
+ assertDefined(conditionName, `${this.label} Fn::If Condition name`);
91
+ assertDefined(whenTrue, `${this.label} Fn::If condition if true`);
92
+ assertDefined(whenFalse, `${this.label} Fn::If condition if false`);
93
+ const selected = this.named(this.shape.string(conditionName, `${this.label} Fn::If Condition name`));
94
+ return this.evaluate(selected ? whenTrue : whenFalse);
95
+ }
70
96
  negated(value) {
71
97
  const listed = this.shape.list(value, `${this.label} Fn::Not`);
72
98
  if (listed.length !== 1) {
@@ -0,0 +1,28 @@
1
+ import type { SimCfnTemplateValueRecord } from "../value/sim-cfn-template-value.js";
2
+ import type { SimCfnConditions } from "./sim-cfn-conditions.js";
3
+ interface SimCfnOutputConditionsProperties {
4
+ readonly conditions: SimCfnConditions;
5
+ readonly stackName?: string | undefined;
6
+ }
7
+ /**
8
+ * Applies the Output-level `Condition` attribute to a template's Outputs.
9
+ *
10
+ * An Output whose Condition is false is left out of the Stack altogether. It is
11
+ * never resolved, so it is absent from `stack.outputs` and from `DescribeStacks`,
12
+ * and the export name it carries is never published for another Stack to import.
13
+ *
14
+ * Naming a Condition the template does not define fails the deployment, the way
15
+ * it does on a Resource. An Output that quietly disappeared because its
16
+ * Condition was misspelled is worse than a Stack that refuses to deploy.
17
+ */
18
+ export declare class SimCfnOutputConditions {
19
+ private readonly conditions;
20
+ private readonly stackName;
21
+ constructor(properties: SimCfnOutputConditionsProperties);
22
+ /**
23
+ * Whether the template asked for this Output but its Condition is false.
24
+ */
25
+ excludes(outputKey: string, outputTemplate: SimCfnTemplateValueRecord): boolean;
26
+ private error;
27
+ }
28
+ export {};
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Applies the Output-level `Condition` attribute to a template's Outputs.
3
+ *
4
+ * An Output whose Condition is false is left out of the Stack altogether. It is
5
+ * never resolved, so it is absent from `stack.outputs` and from `DescribeStacks`,
6
+ * and the export name it carries is never published for another Stack to import.
7
+ *
8
+ * Naming a Condition the template does not define fails the deployment, the way
9
+ * it does on a Resource. An Output that quietly disappeared because its
10
+ * Condition was misspelled is worse than a Stack that refuses to deploy.
11
+ */
12
+ export class SimCfnOutputConditions {
13
+ conditions;
14
+ stackName;
15
+ constructor(properties) {
16
+ this.conditions = properties.conditions;
17
+ this.stackName = properties.stackName;
18
+ }
19
+ /**
20
+ * Whether the template asked for this Output but its Condition is false.
21
+ */
22
+ excludes(outputKey, outputTemplate) {
23
+ const conditionName = outputTemplate["Condition"];
24
+ if (conditionName === undefined) {
25
+ return false;
26
+ }
27
+ if (typeof conditionName !== "string") {
28
+ throw this.error(`Output ${outputKey} Condition must be a string`);
29
+ }
30
+ if (!this.conditions.has(conditionName)) {
31
+ throw this.error(`Output ${outputKey} names Condition ${conditionName}, which the ` +
32
+ "template does not define");
33
+ }
34
+ return !this.conditions.value(conditionName);
35
+ }
36
+ error(detail) {
37
+ return new Error(`Sim CloudFormation Stack ${this.stackName ?? "unknown"} ${detail}`);
38
+ }
39
+ }
@@ -1,14 +1,26 @@
1
1
  import { SimCfnNode } from "../../sim-cfn-node.js";
2
2
  import type { SimCfnResolveContext } from "../../../resolve/sim-cfn-resolve-context.js";
3
3
  import type { SimCfnTemplateValue } from "../../../value/sim-cfn-template-value.js";
4
+ interface SimCfnFnFindInMapProperties {
5
+ readonly mapName: SimCfnNode;
6
+ readonly topLevelKey: SimCfnNode;
7
+ readonly secondLevelKey: SimCfnNode;
8
+ readonly defaultValue?: SimCfnNode | undefined;
9
+ }
4
10
  /**
5
11
  * Simulated CloudFormation `Fn::FindInMap` intrinsic function.
12
+ *
13
+ * The fourth argument a template can carry, `{ "DefaultValue": ... }`, answers
14
+ * a lookup the Mappings section has no value for. Without it a missing map or
15
+ * key fails the Resource, because a template that reads a key it never wrote is
16
+ * a mistake worth being told about.
6
17
  */
7
18
  export declare class SimCfnFnFindInMap extends SimCfnNode {
8
19
  private readonly mapName;
9
20
  private readonly topLevelKey;
10
21
  private readonly secondLevelKey;
11
- constructor(mapName: SimCfnNode, topLevelKey: SimCfnNode, secondLevelKey: SimCfnNode);
22
+ private readonly defaultValue;
23
+ constructor(properties: SimCfnFnFindInMapProperties);
12
24
  /**
13
25
  * Resolve a value from the template Mappings section.
14
26
  */
@@ -17,6 +29,18 @@ export declare class SimCfnFnFindInMap extends SimCfnNode {
17
29
  * Collect referenced names from every key expression.
18
30
  */
19
31
  referencedNames(): string[];
32
+ /**
33
+ * The `DefaultValue` a lookup falls back to, or a failure naming the path.
34
+ */
35
+ private missing;
36
+ /**
37
+ * The expression left for a later pass, once a key can be a string.
38
+ *
39
+ * The `DefaultValue` goes back with it, so the lookup that eventually reads
40
+ * the Mappings still has the answer for a key that is not there.
41
+ */
42
+ private unresolved;
20
43
  private resolveKey;
21
44
  private isResolvedKey;
22
45
  }
46
+ export {};
@@ -1,19 +1,25 @@
1
1
  import { SimCfnNode } from "../../sim-cfn-node.js";
2
2
  import { isRecord } from "../../../../../../util/type-guard/record.js";
3
- import { assertDefined } from "../../../../../../util/type-guard/defined.js";
4
3
  import { isSimCfnUnresolvedExpression } from "../../../value/sim-cfn-unresolved-expression.js";
5
4
  /**
6
5
  * Simulated CloudFormation `Fn::FindInMap` intrinsic function.
6
+ *
7
+ * The fourth argument a template can carry, `{ "DefaultValue": ... }`, answers
8
+ * a lookup the Mappings section has no value for. Without it a missing map or
9
+ * key fails the Resource, because a template that reads a key it never wrote is
10
+ * a mistake worth being told about.
7
11
  */
8
12
  export class SimCfnFnFindInMap extends SimCfnNode {
9
13
  mapName;
10
14
  topLevelKey;
11
15
  secondLevelKey;
12
- constructor(mapName, topLevelKey, secondLevelKey) {
16
+ defaultValue;
17
+ constructor(properties) {
13
18
  super();
14
- this.mapName = mapName;
15
- this.topLevelKey = topLevelKey;
16
- this.secondLevelKey = secondLevelKey;
19
+ this.mapName = properties.mapName;
20
+ this.topLevelKey = properties.topLevelKey;
21
+ this.secondLevelKey = properties.secondLevelKey;
22
+ this.defaultValue = properties.defaultValue;
17
23
  }
18
24
  /**
19
25
  * Resolve a value from the template Mappings section.
@@ -25,19 +31,18 @@ export class SimCfnFnFindInMap extends SimCfnNode {
25
31
  if (!this.isResolvedKey(mapName) ||
26
32
  !this.isResolvedKey(topLevelKey) ||
27
33
  !this.isResolvedKey(secondLevelKey)) {
28
- return {
29
- "Fn::FindInMap": [mapName, topLevelKey, secondLevelKey],
30
- };
34
+ return this.unresolved([mapName, topLevelKey, secondLevelKey], context);
31
35
  }
32
36
  // oxlint-disable-next-line security/detect-object-injection
33
37
  const topLevel = context.mappings?.[mapName]?.[topLevelKey];
34
- /* v8 ignore if -- defensive */
35
38
  if (!isRecord(topLevel)) {
36
- throw new Error(`Sim CloudFormation Fn::FindInMap could not find map ${mapName}.${topLevelKey}`);
39
+ return this.missing(`${mapName}.${topLevelKey}`, context);
37
40
  }
38
41
  // oxlint-disable-next-line security/detect-object-injection
39
42
  const value = topLevel[secondLevelKey];
40
- assertDefined(value, `Sim CloudFormation Fn::FindInMap could not find map ${mapName}.${topLevelKey}.${secondLevelKey}`);
43
+ if (value === undefined) {
44
+ return this.missing(`${mapName}.${topLevelKey}.${secondLevelKey}`, context);
45
+ }
41
46
  return value;
42
47
  }
43
48
  /**
@@ -49,8 +54,35 @@ export class SimCfnFnFindInMap extends SimCfnNode {
49
54
  ...this.mapName.referencedNames(),
50
55
  ...this.topLevelKey.referencedNames(),
51
56
  ...this.secondLevelKey.referencedNames(),
57
+ ...(this.defaultValue?.referencedNames() ?? []),
52
58
  ];
53
59
  }
60
+ /**
61
+ * The `DefaultValue` a lookup falls back to, or a failure naming the path.
62
+ */
63
+ missing(path, context) {
64
+ if (this.defaultValue !== undefined) {
65
+ return this.defaultValue.resolve(context);
66
+ }
67
+ throw new Error(`Sim CloudFormation Fn::FindInMap could not find map ${path}`);
68
+ }
69
+ /**
70
+ * The expression left for a later pass, once a key can be a string.
71
+ *
72
+ * The `DefaultValue` goes back with it, so the lookup that eventually reads
73
+ * the Mappings still has the answer for a key that is not there.
74
+ */
75
+ unresolved(keys, context) {
76
+ if (this.defaultValue === undefined) {
77
+ return { "Fn::FindInMap": [...keys] };
78
+ }
79
+ return {
80
+ "Fn::FindInMap": [
81
+ ...keys,
82
+ { DefaultValue: this.defaultValue.resolve(context) },
83
+ ],
84
+ };
85
+ }
54
86
  resolveKey(node, context) {
55
87
  const value = node.resolve(context);
56
88
  if (typeof value === "string") {
@@ -9,6 +9,13 @@ export declare class SimCfnFnFindInMapParser {
9
9
  constructor(valueParser: SimCfnValueParser);
10
10
  /**
11
11
  * Parse and validate the value inside a Fn::FindInMap expression.
12
+ *
13
+ * The optional fourth argument is the `{ "DefaultValue": ... }` object
14
+ * CloudFormation answers a missing map or key with.
12
15
  */
13
16
  parse(value: SimCfnTemplateValue): SimCfnFunctionFindInMap;
17
+ /**
18
+ * Parse the fourth argument, which the template need not carry.
19
+ */
20
+ private defaultValue;
14
21
  }
@@ -1,5 +1,6 @@
1
1
  import { SimCfnFnFindInMap as SimCfnFunctionFindInMap } from "../../../node/fn/find-in-map/sim-cfn-fn-find-in-map.js";
2
2
  import { assertDefined } from "../../../../../../util/type-guard/defined.js";
3
+ import { isRecord } from "../../../../../../util/type-guard/record.js";
3
4
  /**
4
5
  * Parses CloudFormation Fn::FindInMap values.
5
6
  */
@@ -10,10 +11,14 @@ export class SimCfnFnFindInMapParser {
10
11
  }
11
12
  /**
12
13
  * Parse and validate the value inside a Fn::FindInMap expression.
14
+ *
15
+ * The optional fourth argument is the `{ "DefaultValue": ... }` object
16
+ * CloudFormation answers a missing map or key with.
13
17
  */
14
18
  parse(value) {
15
- if (!Array.isArray(value) || value.length !== 3) {
16
- throw new Error("Sim CloudFormation Fn::FindInMap value must be [mapName, topLevelKey, secondLevelKey]");
19
+ if (!Array.isArray(value) || value.length < 3 || value.length > 4) {
20
+ throw new Error("Sim CloudFormation Fn::FindInMap value must be [mapName, " +
21
+ 'topLevelKey, secondLevelKey] with an optional { "DefaultValue": ... }');
17
22
  }
18
23
  const mapName = value[0];
19
24
  const topLevelKey = value[1];
@@ -21,6 +26,27 @@ export class SimCfnFnFindInMapParser {
21
26
  assertDefined(mapName, "Fn::FindInMap map name");
22
27
  assertDefined(topLevelKey, "Fn::FindInMap top level key");
23
28
  assertDefined(secondLevelKey, "Fn::FindInMap second level key");
24
- return new SimCfnFunctionFindInMap(this.valueParser.parse(mapName), this.valueParser.parse(topLevelKey), this.valueParser.parse(secondLevelKey));
29
+ return new SimCfnFunctionFindInMap({
30
+ mapName: this.valueParser.parse(mapName),
31
+ topLevelKey: this.valueParser.parse(topLevelKey),
32
+ secondLevelKey: this.valueParser.parse(secondLevelKey),
33
+ defaultValue: this.defaultValue(value[3]),
34
+ });
35
+ }
36
+ /**
37
+ * Parse the fourth argument, which the template need not carry.
38
+ */
39
+ defaultValue(value) {
40
+ if (value === undefined) {
41
+ return undefined;
42
+ }
43
+ if (!isRecord(value) ||
44
+ Object.keys(value).length !== 1 ||
45
+ !("DefaultValue" in value)) {
46
+ throw new Error('Sim CloudFormation Fn::FindInMap fourth value must be { "DefaultValue": ... }');
47
+ }
48
+ const defaultValue = value["DefaultValue"];
49
+ assertDefined(defaultValue, "Fn::FindInMap DefaultValue");
50
+ return this.valueParser.parse(defaultValue);
25
51
  }
26
52
  }
@@ -0,0 +1,40 @@
1
+ import type { SimAws } from "../../aws/sim-aws.js";
2
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
3
+ import type { SimCloudFormationStackName } from "../stack/sim-cfn-stack.type.js";
4
+ import type { SimCfnExports } from "../export/sim-cfn-exports.js";
5
+ import type { SimCloudFormationParameterInput } from "../parameters/sim-cfn-parameters.type.js";
6
+ import { type CfnTemplateBodyRecord, SimCfnTemplate } from "./sim-cfn-template.js";
7
+ interface SimCfnCommandTemplateContext {
8
+ readonly simAws: SimAws;
9
+ readonly accountRegionScope: SimAwsAccountRegionScope;
10
+ readonly stackName: SimCloudFormationStackName;
11
+ /** The ID of the Stack the template is for, where the Stack has one yet. */
12
+ readonly stackId?: string | undefined;
13
+ /** The command input the template's Parameter values are read from. */
14
+ readonly input: SimCloudFormationParameterInput;
15
+ readonly exports?: SimCfnExports | undefined;
16
+ }
17
+ interface SimCfnCommandTemplateProperties extends SimCfnCommandTemplateContext {
18
+ readonly templateBody: string;
19
+ }
20
+ interface SimCfnHeldTemplateProperties extends SimCfnCommandTemplateContext {
21
+ /** The parsed template the Stack is already deployed from. */
22
+ readonly template: CfnTemplateBodyRecord;
23
+ }
24
+ /**
25
+ * The template a Stack command was sent, parsed against its Parameter values.
26
+ *
27
+ * A Parameter of type `AWS::SSM::Parameter::Value` reads simulated Parameter
28
+ * Store, so parsing needs the simulation the command arrived at as well as the
29
+ * body it carried.
30
+ */
31
+ export declare function simCfnCommandTemplate(properties: SimCfnCommandTemplateProperties): SimCfnTemplate;
32
+ /**
33
+ * The template a Stack already holds, read against new Parameter values.
34
+ *
35
+ * What `UsePreviousTemplate` updates from. The Stack holds the template parsed
36
+ * rather than as a body, so this takes the parsed one straight back rather than
37
+ * putting it through the parsing and SAM expansion it has already been through.
38
+ */
39
+ export declare function simCfnHeldTemplate(properties: SimCfnHeldTemplateProperties): SimCfnTemplate;
40
+ export {};
@@ -0,0 +1,45 @@
1
+ import { SimCfnParameters } from "../parameters/sim-cfn-parameters.js";
2
+ import { makeSimCfnParameterStore } from "../parameters/store/sim-cfn-parameter-store.js";
3
+ import { SimCfnTemplate, } from "./sim-cfn-template.js";
4
+ /**
5
+ * The template a Stack command was sent, parsed against its Parameter values.
6
+ *
7
+ * A Parameter of type `AWS::SSM::Parameter::Value` reads simulated Parameter
8
+ * Store, so parsing needs the simulation the command arrived at as well as the
9
+ * body it carried.
10
+ */
11
+ export function simCfnCommandTemplate(properties) {
12
+ const { stackName, stackId, accountRegionScope, exports } = properties;
13
+ return SimCfnTemplate.fromTemplateBody(properties.templateBody, {
14
+ stackName,
15
+ stackId,
16
+ parameters: commandParameters(properties),
17
+ accountRegionScope,
18
+ exports,
19
+ });
20
+ }
21
+ /**
22
+ * The template a Stack already holds, read against new Parameter values.
23
+ *
24
+ * What `UsePreviousTemplate` updates from. The Stack holds the template parsed
25
+ * rather than as a body, so this takes the parsed one straight back rather than
26
+ * putting it through the parsing and SAM expansion it has already been through.
27
+ */
28
+ export function simCfnHeldTemplate(properties) {
29
+ const { template, stackName, stackId, accountRegionScope, exports } = properties;
30
+ return new SimCfnTemplate({
31
+ template,
32
+ stackName,
33
+ stackId,
34
+ parameters: commandParameters(properties),
35
+ accountRegionScope,
36
+ exports,
37
+ });
38
+ }
39
+ function commandParameters(properties) {
40
+ const { simAws, accountRegionScope, stackName } = properties;
41
+ return SimCfnParameters.fromInput(properties.input, {
42
+ stackName,
43
+ parameterStore: makeSimCfnParameterStore({ simAws, accountRegionScope }),
44
+ });
45
+ }
@@ -31,11 +31,13 @@ interface SimCfnTemplateProperties {
31
31
  readonly template: CfnTemplateBodyRecord;
32
32
  readonly parameters?: SimCfnParameters | undefined;
33
33
  readonly stackName?: string | undefined;
34
+ readonly stackId?: string | undefined;
34
35
  readonly accountRegionScope?: SimAwsAccountRegionScope | undefined;
35
36
  readonly exports?: SimCfnExports | undefined;
36
37
  }
37
38
  interface SimCfnTemplateFromBodyProperties {
38
39
  readonly stackName?: string | undefined;
40
+ readonly stackId?: string | undefined;
39
41
  readonly parameters?: SimCfnParameters | undefined;
40
42
  readonly accountRegionScope?: SimAwsAccountRegionScope | undefined;
41
43
  readonly exports?: SimCfnExports | undefined;
@@ -48,6 +50,8 @@ interface SimCfnTemplateFromBodyProperties {
48
50
  export declare class SimCfnTemplate {
49
51
  readonly template: CfnTemplateBodyRecord;
50
52
  readonly stackName: string | undefined;
53
+ /** The unique ID of the Stack this template is being deployed as. */
54
+ readonly stackId: string | undefined;
51
55
  readonly parameters: SimCfnParameters;
52
56
  /** The export names a Stack deployed from this template can import. */
53
57
  readonly exports: SimCfnExports | undefined;
@@ -81,6 +85,9 @@ export declare class SimCfnTemplate {
81
85
  *
82
86
  * Resource-backed intrinsic functions are left unresolved here because
83
87
  * Outputs are resolved after Resource creation.
88
+ *
89
+ * An Output whose `Condition` attribute is false is left out entirely, so it
90
+ * never reaches the Stack's Outputs and publishes no export.
84
91
  */
85
92
  outputTemplates(): SimCfnOutputTemplateRecord[];
86
93
  /**
@@ -5,6 +5,7 @@ import { SimCfnTemplateBodyValidator } from "./sim-cfn-template-body-validator.j
5
5
  import { parseSimCfnTemplateBody } from "./sim-cfn-template-body-parse.js";
6
6
  import { SimCfnPseudoParameters } from "../parameters/pseudo/sim-cfn-pseudo-parameters.js";
7
7
  import { SimCfnConditionEvaluator } from "./condition/sim-cfn-condition-evaluator.js";
8
+ import { SimCfnOutputConditions } from "./condition/sim-cfn-output-conditions.js";
8
9
  import { SimCfnResourceConditions } from "./condition/sim-cfn-resource-conditions.js";
9
10
  import { samExpandedTemplate } from "../sam/sim-cfn-sam-expansion.js";
10
11
  /**
@@ -15,15 +16,18 @@ import { samExpandedTemplate } from "../sam/sim-cfn-sam-expansion.js";
15
16
  export class SimCfnTemplate {
16
17
  template;
17
18
  stackName;
19
+ /** The unique ID of the Stack this template is being deployed as. */
20
+ stackId;
18
21
  parameters;
19
22
  /** The export names a Stack deployed from this template can import. */
20
23
  exports;
21
24
  accountRegionScope;
22
25
  evaluatedConditions;
23
26
  constructor(properties) {
24
- const { template, parameters, stackName, accountRegionScope, exports } = properties;
27
+ const { template, parameters, stackName, stackId, accountRegionScope, exports, } = properties;
25
28
  this.template = template;
26
29
  this.stackName = stackName;
30
+ this.stackId = stackId;
27
31
  this.accountRegionScope = accountRegionScope;
28
32
  this.exports = exports;
29
33
  const validator = new SimCfnTemplateBodyValidator({ template, stackName });
@@ -49,6 +53,7 @@ export class SimCfnTemplate {
49
53
  template: samExpandedTemplate(template),
50
54
  parameters: properties.parameters,
51
55
  stackName: properties.stackName,
56
+ stackId: properties.stackId,
52
57
  accountRegionScope: properties.accountRegionScope,
53
58
  exports: properties.exports,
54
59
  });
@@ -86,13 +91,21 @@ export class SimCfnTemplate {
86
91
  *
87
92
  * Resource-backed intrinsic functions are left unresolved here because
88
93
  * Outputs are resolved after Resource creation.
94
+ *
95
+ * An Output whose `Condition` attribute is false is left out entirely, so it
96
+ * never reaches the Stack's Outputs and publishes no export.
89
97
  */
90
98
  outputTemplates() {
91
99
  const valueResolver = this.valueResolver();
100
+ const outputConditions = new SimCfnOutputConditions({
101
+ conditions: this.conditions(),
102
+ stackName: this.stackName,
103
+ });
92
104
  return Object.entries(this.template.Outputs ?? {})
93
105
  .filter((entry) => {
94
106
  return isRecord(entry[1]);
95
107
  })
108
+ .filter(([outputKey, outputTemplate]) => !outputConditions.excludes(outputKey, outputTemplate))
96
109
  .map(([outputKey, outputTemplate]) => ({
97
110
  outputKey,
98
111
  template: valueResolver.resolveRecordFor(`Sim CloudFormation Output ${outputKey}`, outputTemplate),
@@ -107,6 +120,7 @@ export class SimCfnTemplate {
107
120
  return new SimCfnPseudoParameters({
108
121
  accountRegionScope: this.accountRegionScope,
109
122
  stackName: this.stackName,
123
+ stackId: this.stackId,
110
124
  });
111
125
  }
112
126
  /**
@@ -1,8 +1,10 @@
1
+ import type { SimCloudFrontBehavior } from "../../behaviour/sim-cloud-front-behavior.js";
1
2
  import type { SimCfForwardedToOrigin } from "../../origin-request-policy/sim-cf-forwarded-to-origin.js";
2
3
  interface SimCfCustomOriginRequestProperties {
3
4
  readonly domainName: string;
4
5
  readonly originPath: string;
5
6
  readonly request: Request;
7
+ readonly viewerProtocolPolicy?: SimCloudFrontBehavior["viewerProtocolPolicy"] | undefined;
6
8
  /**
7
9
  * What the Behavior's cache policy and origin request policy carry to the
8
10
  * Origin between them.
@@ -1,4 +1,5 @@
1
1
  import { SimAwsLocalUrl } from "../../../../serve/http/url/sim-aws-local-url.js";
2
+ import { isSimAwsLocalRequest, simAwsRequestHostname, } from "../../../../serve/http/url/sim-aws-request-hostname.js";
2
3
  import { stripSimAwsControlHeaders } from "../../../iam/request/sim-aws-control-headers.js";
3
4
  import { simCfForwardedOriginHeaders, simCfForwardedOriginSearch, } from "./sim-cf-custom-origin-forwarding.js";
4
5
  /**
@@ -23,6 +24,7 @@ export function simCfCustomOriginRequest(properties) {
23
24
  originUrl.pathname = originRequestPath(properties.originPath, viewerUrl.pathname);
24
25
  originUrl.search = simCfForwardedOriginSearch(viewerUrl.search, forwarded);
25
26
  const headers = simCfForwardedOriginHeaders(request.headers, forwarded);
27
+ applyAwsFacingViewerOrigin(headers, request, properties.viewerProtocolPolicy);
26
28
  headers.set("host", originUrl.host);
27
29
  // Who the Origin request is from is the Origin's business, not the viewer's,
28
30
  // so a viewer's own control headers are dropped before the Origin's are
@@ -51,6 +53,53 @@ export function simCfCustomOriginRequest(properties) {
51
53
  signal: request.signal,
52
54
  });
53
55
  }
56
+ /**
57
+ * Replace the local same-origin value a browser sends with the origin the
58
+ * viewer would use against CloudFront.
59
+ *
60
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html
61
+ */
62
+ function applyAwsFacingViewerOrigin(headers, viewerRequest, viewerProtocolPolicy) {
63
+ const value = headers.get("origin");
64
+ if (value === null || !isSimAwsLocalRequest(viewerRequest)) {
65
+ return;
66
+ }
67
+ const origin = originUrl(value);
68
+ if (origin === undefined || origin.origin !== viewerOrigin(viewerRequest)) {
69
+ return;
70
+ }
71
+ origin.hostname = simAwsRequestHostname(viewerRequest);
72
+ origin.port = "";
73
+ if (viewerProtocolPolicy === "redirect-to-https" ||
74
+ viewerProtocolPolicy === "https-only") {
75
+ origin.protocol = "https:";
76
+ }
77
+ headers.set("origin", origin.origin);
78
+ }
79
+ /**
80
+ * The local origin the viewer used, including the Host header when it differs
81
+ * from the Request URL.
82
+ */
83
+ function viewerOrigin(request) {
84
+ const url = new URL(request.url);
85
+ const host = request.headers.get("host");
86
+ if (host !== null) {
87
+ url.host = host;
88
+ }
89
+ return url.origin;
90
+ }
91
+ /**
92
+ * Read a serialized Origin without rejecting the request when it is `null` or
93
+ * malformed. CloudFront forwards those values unchanged.
94
+ */
95
+ function originUrl(value) {
96
+ try {
97
+ return new URL(value);
98
+ }
99
+ catch {
100
+ return undefined;
101
+ }
102
+ }
54
103
  /**
55
104
  * Prefix the Origin path to the request path, as CloudFront does.
56
105
  */
@@ -60,6 +60,7 @@ export class SimCloudFrontCustomOrigin {
60
60
  domainName: this.domainName,
61
61
  originPath: this.originPath,
62
62
  request: request.req,
63
+ viewerProtocolPolicy: request.behavior.viewerProtocolPolicy,
63
64
  forwarded: simCfBehaviorForwardedToOrigin(request.behavior, this.policies),
64
65
  customHeaders: this.customHeaders,
65
66
  signingHeaders: this.signer.forRequest(request),
@@ -21,6 +21,7 @@ export class SimCfS3OriginResponses {
21
21
  foundObject(object, request) {
22
22
  const headers = simS3ObjectResponseHeaders({
23
23
  metadata: object.metadata.values,
24
+ userMetadata: object.metadata.userDefined,
24
25
  bodyLength: object.body.length,
25
26
  etag: simS3QuotedETag(object.etag),
26
27
  lastModified: object.lastModified,
@@ -44,7 +44,7 @@ export class SimCognitoProviderPage {
44
44
  */
45
45
  claimFields(provider) {
46
46
  return simCognitoMappedClaimNames(provider)
47
- .map((claimName) => this.markup.field(`${simCognitoClaimFieldPrefix}${claimName}`, `${claimName} claim`, "text", simCognitoDefaultClaim(claimName)))
47
+ .map((claimName) => this.markup.field(`${simCognitoClaimFieldPrefix}${claimName}`, `${claimName} claim`, "text", simCognitoDefaultClaim(provider, claimName)))
48
48
  .join("");
49
49
  }
50
50
  }