@kensio/yulin 1.21.3 → 1.21.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
  2. package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
  3. package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
  4. package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
  5. package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
  6. package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
  7. package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
  8. package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
  9. package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
  10. package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
  11. package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
  12. package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
  13. package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
  14. package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
  15. package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
  16. package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
  17. package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
  18. package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
  19. package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
  20. package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
  21. package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
  22. package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
  23. package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
  24. package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
  25. package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
  26. package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
  27. package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
  28. package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
  29. package/dist/service/athena/index.d.ts +1 -1
  30. package/dist/service/athena/index.js +1 -1
  31. package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
  32. package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
  33. package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
  34. package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
  35. package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
  36. package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
  37. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
  38. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
  39. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +18 -13
  40. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +16 -24
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  50. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  51. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  52. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.d.ts +12 -0
  53. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.js +16 -7
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  74. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  75. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  76. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  77. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  78. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  79. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  80. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  81. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  82. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +3 -0
  83. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +16 -13
  84. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  85. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  86. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  87. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  88. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  89. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  90. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  91. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  92. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  93. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  94. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  95. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  96. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  97. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  98. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  99. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  100. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  101. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  102. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  103. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  104. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  105. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  106. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  107. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  108. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  109. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  110. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  111. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  112. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  113. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +6 -0
  114. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +15 -16
  115. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  116. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.d.ts +10 -0
  117. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.js +14 -0
  118. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -1
  119. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +3 -2
  120. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +5 -8
  121. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +0 -14
  122. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +9 -0
  123. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +2 -0
  124. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +10 -0
  125. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  126. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
  127. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  128. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  129. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  130. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  131. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  132. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  133. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  134. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  135. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  136. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  137. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  138. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  139. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  140. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  141. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
  142. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  143. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  144. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  145. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  165. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  166. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  167. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  168. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  169. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  170. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  171. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  172. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  173. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  174. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  175. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  176. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  177. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  178. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  179. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  180. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  181. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  182. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  183. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  184. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  185. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  186. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  187. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  188. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  189. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  190. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  191. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  192. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  193. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  194. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  195. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  196. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  197. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  198. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  199. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  200. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  201. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  202. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  203. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  204. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  205. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  206. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  207. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  208. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  209. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  210. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  211. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  212. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  213. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  214. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  215. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  216. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  217. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  218. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  219. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.d.ts +47 -0
  220. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.js +46 -0
  221. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  222. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  223. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +53 -20
  224. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +79 -32
  225. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  226. package/dist/service/cloudformation/stack/sim-cfn-stack.js +60 -32
  227. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +21 -1
  228. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  229. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  230. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  231. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  232. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  233. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  234. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  235. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  236. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  237. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  238. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  239. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  240. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
  241. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
  242. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
  243. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  244. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  245. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  246. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  247. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  248. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  249. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  250. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  251. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  252. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  253. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  254. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  255. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  256. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  257. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  258. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  259. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  260. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  261. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  262. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  263. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  264. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  265. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  266. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  267. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  268. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  269. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  270. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  271. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  272. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  273. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  274. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  275. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  276. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  277. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  278. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  279. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  280. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  281. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  282. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  283. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  284. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  285. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  286. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  287. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  288. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  289. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  290. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  291. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  292. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  293. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  294. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  295. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  296. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  297. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  298. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  299. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  300. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  301. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  302. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  303. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  304. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  305. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  306. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  307. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  308. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  309. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  310. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  311. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  312. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  313. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  314. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  315. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  316. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  317. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  318. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  321. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  322. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  323. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  324. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  325. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  326. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  327. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  328. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  329. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  330. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  331. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  332. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  333. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  334. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  335. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  336. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  337. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  338. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  339. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  340. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  341. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  342. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  343. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  344. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  345. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  346. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  347. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  348. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  349. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  350. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  351. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  352. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  353. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  354. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  355. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  356. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  357. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  358. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  359. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  360. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  361. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  362. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  363. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  364. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  365. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  366. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  367. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  368. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  369. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  370. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  371. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  372. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  377. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  378. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  379. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  380. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  381. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  382. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  383. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  384. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  385. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  386. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  387. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  388. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  389. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  390. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  391. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  392. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  393. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  394. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  395. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  396. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  397. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  398. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  399. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  400. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  401. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  402. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  403. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  404. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  405. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  406. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  407. package/dist/service/lambda/index.d.ts +1 -0
  408. package/dist/service/lambda/index.js +1 -0
  409. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  410. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  411. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  412. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  413. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  414. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  415. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  416. package/dist/service/lambda/sim-lambda.js +13 -0
  417. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  418. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  423. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  424. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  425. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  426. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  427. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  428. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  429. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  430. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  431. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  432. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  433. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  434. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  435. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  436. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  437. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  438. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  439. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  440. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  441. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  442. package/dist/service/s3/bucket/sim-s3-bucket-maker.d.ts +31 -0
  443. package/dist/service/s3/bucket/sim-s3-bucket-maker.js +41 -0
  444. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  445. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  446. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  447. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  448. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  449. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  450. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  451. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  452. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  453. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  454. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  455. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  456. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  457. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  458. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  459. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  460. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  461. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  462. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  463. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  464. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  465. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  466. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  467. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  468. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  469. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  470. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  471. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  472. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  473. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  474. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +2 -2
  475. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +4 -12
  476. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  477. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  478. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  479. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  480. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  481. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  482. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  483. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  484. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  485. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  486. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  487. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  488. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  489. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  490. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  491. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  492. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  493. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  494. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  495. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  496. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  497. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  498. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  499. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  500. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  501. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  502. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  503. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  504. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  505. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  506. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  507. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  508. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  509. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  510. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  511. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  512. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  513. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  514. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  515. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  516. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  517. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  518. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  519. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  520. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  521. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  522. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  523. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  524. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  525. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  526. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  527. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  528. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  529. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  530. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  531. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  532. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  533. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  534. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  535. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  536. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  537. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  538. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  539. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  540. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  541. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  542. package/dist/service/s3/error/sim-s3.error.js +26 -40
  543. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  544. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  545. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  546. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  547. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  548. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  549. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  550. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  551. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  552. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  553. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  554. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  555. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  556. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  557. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  558. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  559. package/dist/service/s3/object/s3-object-summary.js +1 -10
  560. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  561. package/dist/service/s3/object/s3-object-tags.js +77 -0
  562. package/dist/service/s3/object/s3-object.d.ts +49 -0
  563. package/dist/service/s3/object/s3-object.js +52 -1
  564. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  565. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  566. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  567. package/dist/service/s3/object/s3-storage-class.js +67 -0
  568. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  569. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  570. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  571. package/dist/service/s3/object/s3-write-storage.js +21 -0
  572. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  573. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  574. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  575. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  576. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  577. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  578. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  579. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  580. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  581. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  582. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  583. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  584. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  585. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  586. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  587. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  588. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  589. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  590. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  591. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  592. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  593. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  594. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  595. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  596. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  597. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  598. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  599. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  600. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  601. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  602. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  603. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  604. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  605. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  606. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  607. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  608. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  609. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  610. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  611. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  612. package/dist/service/s3/sim-s3-commands.d.ts +10 -0
  613. package/dist/service/s3/sim-s3-commands.js +13 -0
  614. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  615. package/dist/service/s3/sim-s3-operations.js +17 -4
  616. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  617. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  618. package/dist/service/s3/sim-s3.d.ts +28 -0
  619. package/dist/service/s3/sim-s3.js +38 -0
  620. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  621. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  622. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  623. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  624. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  625. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  626. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  627. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  628. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  629. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  630. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  631. package/dist/util/background/background-clock-waits.d.ts +52 -0
  632. package/dist/util/background/background-clock-waits.js +76 -0
  633. package/dist/util/background/background-jitter.js +1 -0
  634. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  635. package/dist/util/background/background-pending-tasks.js +117 -0
  636. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  637. package/dist/util/background/background-settled-tasks.js +4 -1
  638. package/dist/util/background/background.d.ts +43 -0
  639. package/dist/util/background/background.js +27 -19
  640. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  641. package/dist/util/background/non-deterministic-background.js +24 -20
  642. package/dist/util/clock/sim-clock-control.js +23 -2
  643. package/docs/services/apigateway/README.md +3 -1
  644. package/docs/services/athena/README.md +126 -3
  645. package/docs/services/cloudformation/README.md +831 -67
  646. package/docs/services/cognito/README.md +5 -0
  647. package/docs/services/dynamodb/README.md +86 -11
  648. package/docs/services/lambda/README.md +603 -39
  649. package/docs/services/s3/README.md +688 -57
  650. package/package.json +8 -2
@@ -1,8 +1,8 @@
1
- import { readSimDynamoDbFilter } from "../../expression/filter/sim-dynamodb-filter-expression.js";
2
1
  import { SimDynamoDbItemPage } from "../item/sim-dynamodb-item-page.js";
3
2
  import { SimDynamoDbReadAnswer } from "../read/sim-dynamodb-read-answer.js";
4
3
  import { assertSimDynamoDbConsistentReadAnswerable } from "../read/sim-dynamodb-consistent-read.js";
5
4
  import { SimDynamoDbSelect } from "../read/sim-dynamodb-select.js";
5
+ import { readSimDynamoDbScanExpressions } from "./sim-dynamodb-scan-expressions.js";
6
6
  import { readSimDynamoDbScanSegment } from "./sim-dynamodb-scan-segment-input.js";
7
7
  import { readSimDynamoDbScanStartKey } from "./sim-dynamodb-scan-start-key.js";
8
8
  import { refuseUnsimulatedScanInput } from "./sim-dynamodb-unsimulated-scan-input.js";
@@ -33,12 +33,12 @@ export class SimDynamoDbScan {
33
33
  // for at all.
34
34
  const select = SimDynamoDbSelect.from(input);
35
35
  refuseUnsimulatedScanInput(input);
36
- // The segment and the filter are read before the table is reached, so
36
+ // The segment and the expressions are read before the table is reached, so
37
37
  // input DynamoDB would refuse is refused whether or not the table is
38
38
  // there. A scan narrows nothing, so unlike a query its filter may name any
39
39
  // attribute, including a key attribute, and needs no key schema to check.
40
40
  const segment = readSimDynamoDbScanSegment(input);
41
- const filter = readSimDynamoDbFilter(input);
41
+ const expressions = readSimDynamoDbScanExpressions(input);
42
42
  const table = this.access.required("dynamodb:Scan", input.TableName, options?.caller);
43
43
  // What is being read is settled here: the table, or one of its indexes.
44
44
  const view = table.view(input.IndexName);
@@ -47,7 +47,8 @@ export class SimDynamoDbScan {
47
47
  // two index kinds is being read, so it waits for the view.
48
48
  assertSimDynamoDbConsistentReadAnswerable(input, view);
49
49
  select.assertAnswerableBy(view);
50
- filter?.assertNamesOnlyCarried(view);
50
+ expressions.filter?.assertNamesOnlyCarried(view);
51
+ expressions.projection?.assertNamesOnlyCarried(view);
51
52
  // The token names a place in this view's scan order, so it can only be
52
53
  // checked once that order is known.
53
54
  const after = readSimDynamoDbScanStartKey({
@@ -62,7 +63,13 @@ export class SimDynamoDbScan {
62
63
  view,
63
64
  });
64
65
  return {
65
- ...new SimDynamoDbReadAnswer({ page, filter, select, view }).fields(),
66
+ ...new SimDynamoDbReadAnswer({
67
+ page,
68
+ filter: expressions.filter,
69
+ projection: expressions.projection,
70
+ select,
71
+ view,
72
+ }).fields(),
66
73
  $metadata: {},
67
74
  };
68
75
  }
@@ -8,8 +8,8 @@ import type { SimScanCommandInput } from "./scan.command.js";
8
8
  * application reading the page.
9
9
  *
10
10
  * `ExpressionAttributeNames` and `ExpressionAttributeValues` are not among
11
- * them. They are the placeholders of the `FilterExpression`, and a request
12
- * carrying them with no expression to use them in is a ValidationException the
13
- * way it is on AWS.
11
+ * them. They are the placeholders of the `FilterExpression` and the
12
+ * `ProjectionExpression`, and a request carrying them with neither expression
13
+ * to use them in is a ValidationException the way it is on AWS.
14
14
  */
15
15
  export declare function refuseUnsimulatedScanInput(input: SimScanCommandInput): void;
@@ -8,13 +8,12 @@ import { SimDynamoDbUnsimulatedInput } from "../item/sim-dynamodb-unsimulated-in
8
8
  * application reading the page.
9
9
  *
10
10
  * `ExpressionAttributeNames` and `ExpressionAttributeValues` are not among
11
- * them. They are the placeholders of the `FilterExpression`, and a request
12
- * carrying them with no expression to use them in is a ValidationException the
13
- * way it is on AWS.
11
+ * them. They are the placeholders of the `FilterExpression` and the
12
+ * `ProjectionExpression`, and a request carrying them with neither expression
13
+ * to use them in is a ValidationException the way it is on AWS.
14
14
  */
15
15
  export function refuseUnsimulatedScanInput(input) {
16
16
  const unsimulated = new SimDynamoDbUnsimulatedInput("Scan");
17
- unsimulated.refuse(input.ProjectionExpression !== undefined, "ProjectionExpression", "answering with whole items where part of them was asked for");
18
17
  unsimulated.refuse((input.AttributesToGet ?? []).length > 0, "AttributesToGet", "answering with whole items where part of them was asked for");
19
18
  unsimulated.refuseNamed(input.ScanFilter, "ScanFilter", "answering with the items a legacy filter would have dropped");
20
19
  unsimulated.refuse(input.ConditionalOperator !== undefined, "ConditionalOperator", "joining the legacy conditions it applies to");
@@ -1,23 +1,12 @@
1
- import type { SimDynamoDbExpressionParameterInput } from "../sim-dynamodb-expression-parameters.js";
2
- import { SimDynamoDbExpressionParameters } from "../sim-dynamodb-expression-parameters.js";
1
+ import type { SimDynamoDbExpressionParameters } from "../sim-dynamodb-expression-parameters.js";
3
2
  import { SimDynamoDbFilter } from "./sim-dynamodb-filter.js";
4
- interface SimDynamoDbFilterRequest extends SimDynamoDbExpressionParameterInput {
5
- readonly FilterExpression?: string | undefined;
6
- }
7
- /**
8
- * Read the filter a read drops items by, if it names one.
9
- *
10
- * A request with no FilterExpression answers with every item it read, so there
11
- * is nothing to drop by.
12
- */
13
- export declare function readSimDynamoDbFilter(request: SimDynamoDbFilterRequest): SimDynamoDbFilter | undefined;
14
3
  /**
15
4
  * Read one FilterExpression against placeholders that have already been
16
5
  * gathered.
17
6
  *
18
- * A query carries a key condition alongside its filter, and both draw on the
19
- * same `ExpressionAttributeNames` and `ExpressionAttributeValues`, so the
20
- * placeholders are checked once both expressions have been read.
7
+ * Every read that can carry a filter can carry another expression alongside it,
8
+ * and they draw on the same `ExpressionAttributeNames` and
9
+ * `ExpressionAttributeValues`, so the placeholders are gathered by the caller
10
+ * and checked once every expression has been read.
21
11
  */
22
12
  export declare function parseSimDynamoDbFilter(expression: string, parameters: SimDynamoDbExpressionParameters): SimDynamoDbFilter;
23
- export {};
@@ -1,31 +1,14 @@
1
1
  import { simDynamoDbConditionParser } from "../condition/sim-dynamodb-condition-grammar.js";
2
- import { SimDynamoDbExpressionParameters } from "../sim-dynamodb-expression-parameters.js";
3
2
  import { SimDynamoDbFilter } from "./sim-dynamodb-filter.js";
4
3
  const expressionName = "FilterExpression";
5
- /**
6
- * Read the filter a read drops items by, if it names one.
7
- *
8
- * A request with no FilterExpression answers with every item it read, so there
9
- * is nothing to drop by.
10
- */
11
- export function readSimDynamoDbFilter(request) {
12
- const expression = request.FilterExpression;
13
- if (expression === undefined) {
14
- SimDynamoDbExpressionParameters.assertNoneWithout(request);
15
- return undefined;
16
- }
17
- const parameters = new SimDynamoDbExpressionParameters(request);
18
- const filter = parseSimDynamoDbFilter(expression, parameters);
19
- parameters.assertAllUsed();
20
- return filter;
21
- }
22
4
  /**
23
5
  * Read one FilterExpression against placeholders that have already been
24
6
  * gathered.
25
7
  *
26
- * A query carries a key condition alongside its filter, and both draw on the
27
- * same `ExpressionAttributeNames` and `ExpressionAttributeValues`, so the
28
- * placeholders are checked once both expressions have been read.
8
+ * Every read that can carry a filter can carry another expression alongside it,
9
+ * and they draw on the same `ExpressionAttributeNames` and
10
+ * `ExpressionAttributeValues`, so the placeholders are gathered by the caller
11
+ * and checked once every expression has been read.
29
12
  */
30
13
  export function parseSimDynamoDbFilter(expression, parameters) {
31
14
  const parser = simDynamoDbConditionParser(expressionName, expression, parameters);
@@ -1,4 +1,5 @@
1
1
  import type { SimDynamoDbExpressionParameterInput } from "../sim-dynamodb-expression-parameters.js";
2
+ import { SimDynamoDbExpressionParameters } from "../sim-dynamodb-expression-parameters.js";
2
3
  import { SimDynamoDbProjection } from "./sim-dynamodb-projection.js";
3
4
  interface SimDynamoDbProjectionRequest extends SimDynamoDbExpressionParameterInput {
4
5
  readonly ProjectionExpression?: string | undefined;
@@ -8,6 +9,20 @@ interface SimDynamoDbProjectionRequest extends SimDynamoDbExpressionParameterInp
8
9
  *
9
10
  * A request with no ProjectionExpression asks for the whole item, so there is
10
11
  * nothing to project.
12
+ *
13
+ * This is the form for a request whose projection is its only expression, which
14
+ * is every read that names one item or a list of them. A query or a scan can
15
+ * carry a filter alongside its projection, and reads both against one set of
16
+ * placeholders through `parseSimDynamoDbProjection`.
11
17
  */
12
18
  export declare function readSimDynamoDbProjection(request: SimDynamoDbProjectionRequest): SimDynamoDbProjection | undefined;
19
+ /**
20
+ * Read one ProjectionExpression against placeholders that have already been
21
+ * gathered.
22
+ *
23
+ * A query carries a key condition and may carry a filter alongside its
24
+ * projection, and all three draw on the same `ExpressionAttributeNames`, so the
25
+ * placeholders are checked once every expression has been read.
26
+ */
27
+ export declare function parseSimDynamoDbProjection(expression: string, parameters: SimDynamoDbExpressionParameters): SimDynamoDbProjection;
13
28
  export {};
@@ -9,6 +9,11 @@ const expressionName = "ProjectionExpression";
9
9
  *
10
10
  * A request with no ProjectionExpression asks for the whole item, so there is
11
11
  * nothing to project.
12
+ *
13
+ * This is the form for a request whose projection is its only expression, which
14
+ * is every read that names one item or a list of them. A query or a scan can
15
+ * carry a filter alongside its projection, and reads both against one set of
16
+ * placeholders through `parseSimDynamoDbProjection`.
12
17
  */
13
18
  export function readSimDynamoDbProjection(request) {
14
19
  const expression = request.ProjectionExpression;
@@ -17,8 +22,20 @@ export function readSimDynamoDbProjection(request) {
17
22
  return undefined;
18
23
  }
19
24
  const parameters = new SimDynamoDbExpressionParameters(request);
20
- const paths = projectedPaths(SimDynamoDbExpressionTokens.of(expressionName, expression, "the expression names no attributes, and an expression cannot be empty"), parameters.names);
25
+ const projection = parseSimDynamoDbProjection(expression, parameters);
21
26
  parameters.assertAllUsed();
27
+ return projection;
28
+ }
29
+ /**
30
+ * Read one ProjectionExpression against placeholders that have already been
31
+ * gathered.
32
+ *
33
+ * A query carries a key condition and may carry a filter alongside its
34
+ * projection, and all three draw on the same `ExpressionAttributeNames`, so the
35
+ * placeholders are checked once every expression has been read.
36
+ */
37
+ export function parseSimDynamoDbProjection(expression, parameters) {
38
+ const paths = projectedPaths(SimDynamoDbExpressionTokens.of(expressionName, expression, "the expression names no attributes, and an expression cannot be empty"), parameters.names);
22
39
  return new SimDynamoDbProjection({ expressionName, paths });
23
40
  }
24
41
  /**
@@ -1,4 +1,5 @@
1
1
  import { SimDynamoDbItem } from "../../item/sim-dynamodb-item.js";
2
+ import type { SimDynamoDbReadView } from "../../table/sim-dynamodb-read-view.js";
2
3
  import type { SimDynamoDbDocumentPath } from "../sim-dynamodb-document-path.js";
3
4
  interface SimDynamoDbProjectionProperties {
4
5
  readonly expressionName: string;
@@ -12,7 +13,19 @@ interface SimDynamoDbProjectionProperties {
12
13
  */
13
14
  export declare class SimDynamoDbProjection {
14
15
  private readonly root;
16
+ private readonly paths;
15
17
  constructor(properties: SimDynamoDbProjectionProperties);
18
+ /**
19
+ * Refuse a projection naming an attribute the view being read does not carry.
20
+ *
21
+ * A global secondary index holds only what it projects, so a path outside
22
+ * that would leave the attribute out of every item it answers with. An
23
+ * attribute quietly missing reads as an item that happens not to have it,
24
+ * which is the answer a projection used as an allow-list must never give. A
25
+ * local secondary index fetches from the base table, so any path is nameable
26
+ * there.
27
+ */
28
+ assertNamesOnlyCarried(view: SimDynamoDbReadView): void;
16
29
  /**
17
30
  * Cut an item down to what this projection asked for.
18
31
  *
@@ -8,12 +8,27 @@ import { SimDynamoDbProjectionNode } from "./sim-dynamodb-projection-node.js";
8
8
  */
9
9
  export class SimDynamoDbProjection {
10
10
  root;
11
+ paths;
11
12
  constructor(properties) {
12
13
  this.root = new SimDynamoDbProjectionNode(properties.expressionName);
14
+ this.paths = properties.paths;
13
15
  for (const path of properties.paths) {
14
16
  this.root.add(path);
15
17
  }
16
18
  }
19
+ /**
20
+ * Refuse a projection naming an attribute the view being read does not carry.
21
+ *
22
+ * A global secondary index holds only what it projects, so a path outside
23
+ * that would leave the attribute out of every item it answers with. An
24
+ * attribute quietly missing reads as an item that happens not to have it,
25
+ * which is the answer a projection used as an allow-list must never give. A
26
+ * local secondary index fetches from the base table, so any path is nameable
27
+ * there.
28
+ */
29
+ assertNamesOnlyCarried(view) {
30
+ view.assertCarriesPaths(this.paths);
31
+ }
17
32
  /**
18
33
  * Cut an item down to what this projection asked for.
19
34
  *
@@ -38,6 +38,8 @@ export class SimCfnLambdaEventSourceMappingProperties {
38
38
  BatchSize: this.parser.optionalNumber(this.resource, this.properties["BatchSize"], "BatchSize"),
39
39
  Enabled: this.parser.optionalBoolean(this.resource, this.properties["Enabled"], "Enabled"),
40
40
  MaximumBatchingWindowInSeconds: this.parser.optionalNumber(this.resource, this.properties["MaximumBatchingWindowInSeconds"], "MaximumBatchingWindowInSeconds"),
41
+ MaximumRetryAttempts: this.parser.optionalNumber(this.resource, this.properties["MaximumRetryAttempts"], "MaximumRetryAttempts"),
42
+ MaximumRecordAgeInSeconds: this.parser.optionalNumber(this.resource, this.properties["MaximumRecordAgeInSeconds"], "MaximumRecordAgeInSeconds"),
41
43
  StartingPosition: this.parser.optionalString(this.resource, this.properties["StartingPosition"], "StartingPosition"),
42
44
  StartingPositionTimestamp: this.startingPositionTimestamp(),
43
45
  FunctionResponseTypes: this.functionResponseTypes(),
@@ -5,7 +5,9 @@
5
5
  * unsimulated ones because whether a mapping may carry one is the event
6
6
  * source's own rule: a stream has to be given a position and a queue is refused
7
7
  * for naming one. That is decided by CreateEventSourceMapping, which knows
8
- * which source the ARN names, so both are read and passed on.
8
+ * which source the ARN names, so both are read and passed on. The two
9
+ * failed-batch limits are read for the same reason: a stream mapping keeps them
10
+ * and a queue mapping is refused for naming one.
9
11
  */
10
12
  const simulatedPropertyNames = new Set([
11
13
  "BatchSize",
@@ -14,6 +16,8 @@ const simulatedPropertyNames = new Set([
14
16
  "FunctionName",
15
17
  "FunctionResponseTypes",
16
18
  "MaximumBatchingWindowInSeconds",
19
+ "MaximumRecordAgeInSeconds",
20
+ "MaximumRetryAttempts",
17
21
  "StartingPosition",
18
22
  "StartingPositionTimestamp",
19
23
  ]);
@@ -32,8 +36,6 @@ const unsimulatedPropertyNames = new Set([
32
36
  "DocumentDBEventSourceConfig",
33
37
  "FilterCriteria",
34
38
  "KmsKeyArn",
35
- "MaximumRecordAgeInSeconds",
36
- "MaximumRetryAttempts",
37
39
  "MetricsConfig",
38
40
  "ParallelizationFactor",
39
41
  "ProvisionedPollerConfig",
@@ -0,0 +1,21 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValue } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ import type { SimLambdaFunctionUrlCors } from "../../function/url/sim-lambda-function-url-cors.js";
4
+ import type { SimCfnLambdaPropertyParser } from "../function/sim-cfn-lambda-property-parser.js";
5
+ interface SimCfnLambdaUrlCorsProperties {
6
+ readonly parser: SimCfnLambdaPropertyParser;
7
+ readonly resource: SimCfnResource;
8
+ readonly value: SimCfnTemplateValue | undefined;
9
+ }
10
+ /**
11
+ * Read the `Cors` block of an `AWS::Lambda::Url` Resource.
12
+ *
13
+ * The members go to `CreateFunctionUrlConfig` as they are written. The bounds
14
+ * Lambda puts on them are applied there, once. This reader settles only the
15
+ * template question, whether each property is the shape CloudFormation says it
16
+ * is.
17
+ *
18
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html
19
+ */
20
+ export declare function simCfnLambdaUrlCors(properties: SimCfnLambdaUrlCorsProperties): SimLambdaFunctionUrlCors | undefined;
21
+ export {};
@@ -0,0 +1,37 @@
1
+ import { isRecord } from "../../../../util/type-guard/record.js";
2
+ /**
3
+ * Read the `Cors` block of an `AWS::Lambda::Url` Resource.
4
+ *
5
+ * The members go to `CreateFunctionUrlConfig` as they are written. The bounds
6
+ * Lambda puts on them are applied there, once. This reader settles only the
7
+ * template question, whether each property is the shape CloudFormation says it
8
+ * is.
9
+ *
10
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html
11
+ */
12
+ export function simCfnLambdaUrlCors(properties) {
13
+ const { parser, resource, value } = properties;
14
+ if (value === undefined) {
15
+ return undefined;
16
+ }
17
+ if (!isRecord(value)) {
18
+ throw parser.invalidPropertyError(resource, "Cors", "an object");
19
+ }
20
+ const cors = value;
21
+ // A member the template said nothing about is left out. What the Lambda API
22
+ // reports back is then what the template wrote.
23
+ return withoutAbsentMembers({
24
+ AllowCredentials: parser.optionalBoolean(resource, cors["AllowCredentials"], "Cors.AllowCredentials"),
25
+ AllowHeaders: parser.optionalStringList(resource, cors["AllowHeaders"], "Cors.AllowHeaders"),
26
+ AllowMethods: parser.optionalStringList(resource, cors["AllowMethods"], "Cors.AllowMethods"),
27
+ AllowOrigins: parser.optionalStringList(resource, cors["AllowOrigins"], "Cors.AllowOrigins"),
28
+ ExposeHeaders: parser.optionalStringList(resource, cors["ExposeHeaders"], "Cors.ExposeHeaders"),
29
+ MaxAge: parser.optionalNumber(resource, cors["MaxAge"], "Cors.MaxAge"),
30
+ });
31
+ }
32
+ /**
33
+ * Drop the members the template did not state.
34
+ */
35
+ function withoutAbsentMembers(cors) {
36
+ return Object.fromEntries(Object.entries(cors).filter(([, member]) => member !== undefined));
37
+ }
@@ -1,5 +1,6 @@
1
1
  import { assertDefined } from "../../../../util/type-guard/defined.js";
2
2
  import { SimCfnLambdaPropertyParser } from "../function/sim-cfn-lambda-property-parser.js";
3
+ import { simCfnLambdaUrlCors } from "./sim-cfn-lambda-url-cors.js";
3
4
  import { simCfnLambdaTargetFunctionName } from "../function/sim-cfn-lambda-target-function.js";
4
5
  /**
5
6
  * Creates simulated Lambda Function URLs from CloudFormation Resources.
@@ -25,6 +26,11 @@ export class SimCfnLambdaUrlCreator {
25
26
  FunctionName: functionName,
26
27
  AuthType: this.propertyParser.requiredString(resource, properties["AuthType"], "AuthType"),
27
28
  InvokeMode: this.propertyParser.optionalString(resource, properties["InvokeMode"], "InvokeMode"),
29
+ Cors: simCfnLambdaUrlCors({
30
+ parser: this.propertyParser,
31
+ resource,
32
+ value: properties["Cors"],
33
+ }),
28
34
  },
29
35
  }, options);
30
36
  const functionUrl = this.lambda.getSimFunctionUrl(functionName);
@@ -8,6 +8,7 @@ import type { SimLambdaContainerImages } from "../../function/code/image/sim-lam
8
8
  import type { SimLambdaCodeStore } from "../../function/code/store/sim-lambda-code-store.js";
9
9
  import type { SimLambdaVmSdkModuleProvider } from "../../function/code/vm/sdk/sim-lambda-vm-sdk-module-provider.js";
10
10
  import type { SimCloudWatchServiceWriter } from "../../../cloudwatch/write/sim-cloudwatch-service-writer.js";
11
+ import type { SimLambdaOutput } from "../../function/logging/sim-lambda-output.js";
11
12
  import type { SimLogsServiceWriter } from "../../../logs/write/sim-logs-service-writer.js";
12
13
  import type { SimLambdaOutboundHttp } from "../../function/outbound/sim-lambda-outbound-http.js";
13
14
  import { SimLambdaEnvironmentConflicts } from "../../function/environment/sim-lambda-environment-conflicts.js";
@@ -24,6 +25,7 @@ interface CreateFunctionCommandHandlerProperties {
24
25
  vmSdkModuleProvider?: SimLambdaVmSdkModuleProvider | undefined;
25
26
  environmentConflicts?: SimLambdaEnvironmentConflicts;
26
27
  logs?: SimLogsServiceWriter | undefined;
28
+ output?: SimLambdaOutput | undefined;
27
29
  metrics?: SimCloudWatchServiceWriter | undefined;
28
30
  outboundHttp?: SimLambdaOutboundHttp | undefined;
29
31
  }
@@ -44,6 +46,7 @@ export declare class CreateFunctionCommandHandler implements CommandHandler<SimC
44
46
  private readonly codeResolver;
45
47
  private readonly environmentConflicts;
46
48
  private readonly logs;
49
+ private readonly output;
47
50
  private readonly metrics;
48
51
  private readonly outboundHttp;
49
52
  constructor(properties: CreateFunctionCommandHandlerProperties);
@@ -22,10 +22,11 @@ export class CreateFunctionCommandHandler {
22
22
  codeResolver;
23
23
  environmentConflicts;
24
24
  logs;
25
+ output;
25
26
  metrics;
26
27
  outboundHttp;
27
28
  constructor(properties) {
28
- const { accountRegionScope, functions, runAsOwner, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), codeStore, containerImages, vmSdkModuleProvider, environmentConflicts = new SimLambdaEnvironmentConflicts(), logs, metrics, outboundHttp, } = properties;
29
+ const { accountRegionScope, functions, runAsOwner, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), codeStore, containerImages, vmSdkModuleProvider, environmentConflicts = new SimLambdaEnvironmentConflicts(), logs, output, metrics, outboundHttp, } = properties;
29
30
  this.accountRegionScope = accountRegionScope;
30
31
  this.functions = functions;
31
32
  this.runAsOwner = runAsOwner;
@@ -42,6 +43,7 @@ export class CreateFunctionCommandHandler {
42
43
  });
43
44
  this.environmentConflicts = environmentConflicts;
44
45
  this.logs = logs;
46
+ this.output = output;
45
47
  this.metrics = metrics;
46
48
  this.outboundHttp = outboundHttp;
47
49
  }
@@ -71,7 +73,9 @@ export class CreateFunctionCommandHandler {
71
73
  accountRegionScope: this.accountRegionScope,
72
74
  runAsOwner: this.runAsOwner,
73
75
  clock: this.background,
76
+ background: this.background,
74
77
  logs: this.logs,
78
+ output: this.output,
75
79
  metrics: this.metrics,
76
80
  outboundHttp: this.outboundHttp,
77
81
  });
@@ -2,6 +2,7 @@
2
2
  * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/lambda/command/CreateFunctionUrlConfigCommand/
3
3
  */
4
4
  import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
5
+ import type { SimLambdaFunctionUrlCors } from "../../function/url/sim-lambda-function-url-cors.js";
5
6
  import type { SimLambdaFunctionUrlAuthType, SimLambdaFunctionUrlConfiguration, SimLambdaFunctionUrlInvokeMode } from "../../function/url/sim-lambda-function-url.js";
6
7
  /**
7
8
  * Minimal structural sim Lambda CreateFunctionUrlConfig command.
@@ -11,14 +12,12 @@ export interface SimCreateFunctionUrlConfigCommand {
11
12
  }
12
13
  /**
13
14
  * Minimal structural sim Lambda CreateFunctionUrlConfig input.
14
- *
15
- * The Cors block real Lambda accepts here is not simulated, so it is left out
16
- * rather than accepted and ignored.
17
15
  */
18
16
  export interface SimCreateFunctionUrlConfigCommandInput {
19
17
  readonly FunctionName?: string | undefined;
20
18
  readonly AuthType?: SimLambdaFunctionUrlAuthType | undefined;
21
19
  readonly InvokeMode?: SimLambdaFunctionUrlInvokeMode | undefined;
20
+ readonly Cors?: SimLambdaFunctionUrlCors | undefined;
22
21
  }
23
22
  /**
24
23
  * Minimal structural sim Lambda CreateFunctionUrlConfig output.
@@ -37,6 +37,7 @@ export class CreateFunctionUrlConfigCommandHandler {
37
37
  simFunction: this.functions.require(functionName),
38
38
  authType: this.inputParser.requireAuthType(command.input.AuthType),
39
39
  invokeMode: this.inputParser.parseOptionalInvokeMode(command.input.InvokeMode),
40
+ cors: this.inputParser.parseOptionalCors(command.input.Cors),
40
41
  });
41
42
  return {
42
43
  $metadata: {},
@@ -1,6 +1,7 @@
1
1
  import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
2
2
  import { type SimLambdaEventSourceArn } from "../../event-source/sim-lambda-event-source-arn.js";
3
3
  import type { SimLambdaFunctionResponseType } from "../../event-source/sim-lambda-event-source-mapping.js";
4
+ import type { SimLambdaStreamRetryLimits } from "../../event-source/sim-lambda-stream-retry-limits.js";
4
5
  import type { SimLambdaEventSourceStart } from "../../event-source/sim-lambda-event-source-starting-position.js";
5
6
  import type { SimCreateEventSourceMappingCommandInput } from "./event-source-mapping.command.js";
6
7
  /**
@@ -28,6 +29,11 @@ export declare class SimLambdaEventSourceMappingInput {
28
29
  readonly start: SimLambdaEventSourceStart | undefined;
29
30
  readonly enabled: boolean;
30
31
  readonly functionResponseTypes: readonly SimLambdaFunctionResponseType[];
32
+ /**
33
+ * When a failed batch stops being delivered again, for a source that leaves
34
+ * the counting to the mapping.
35
+ */
36
+ readonly streamRetryLimits: SimLambdaStreamRetryLimits | undefined;
31
37
  private constructor();
32
38
  /**
33
39
  * Read a CreateEventSourceMapping request, refusing what this simulation
@@ -28,6 +28,11 @@ export class SimLambdaEventSourceMappingInput {
28
28
  start;
29
29
  enabled;
30
30
  functionResponseTypes;
31
+ /**
32
+ * When a failed batch stops being delivered again, for a source that leaves
33
+ * the counting to the mapping.
34
+ */
35
+ streamRetryLimits;
31
36
  constructor(properties) {
32
37
  this.eventSourceArn = properties.eventSourceArn;
33
38
  this.functionName = properties.functionName;
@@ -36,6 +41,7 @@ export class SimLambdaEventSourceMappingInput {
36
41
  this.start = properties.start;
37
42
  this.enabled = properties.enabled;
38
43
  this.functionResponseTypes = properties.functionResponseTypes;
44
+ this.streamRetryLimits = properties.streamRetryLimits;
39
45
  }
40
46
  /**
41
47
  * Read a CreateEventSourceMapping request, refusing what this simulation
@@ -55,6 +61,10 @@ export class SimLambdaEventSourceMappingInput {
55
61
  }),
56
62
  enabled: input.Enabled ?? true,
57
63
  functionResponseTypes: functionResponseTypesIn(input),
64
+ streamRetryLimits: eventSourceArn.retryLimitRules.limitsIn({
65
+ maximumRetryAttempts: input.MaximumRetryAttempts,
66
+ maximumRecordAgeInSeconds: input.MaximumRecordAgeInSeconds,
67
+ }),
58
68
  });
59
69
  }
60
70
  }
@@ -17,11 +17,6 @@ const unsimulatedInputs = new Map([
17
17
  "failure destinations are not simulated, so a stream batch that runs out " +
18
18
  "of attempts is discarded rather than sent anywhere",
19
19
  ],
20
- [
21
- "MaximumRetryAttempts",
22
- "the number of times a stream batch is delivered again is fixed",
23
- ],
24
- ["MaximumRecordAgeInSeconds", "record ages are not simulated"],
25
20
  [
26
21
  "BisectBatchOnFunctionError",
27
22
  "batch bisection is not simulated, so a failing stream batch is retried " +
@@ -51,7 +46,8 @@ const unsimulatedInputs = new Map([
51
46
  *
52
47
  * `StartingPosition` is not among them, because whether a source has one is the
53
48
  * source's own rule: a stream is refused without it and a queue is refused with
54
- * it.
49
+ * it. The two failed-batch limits are left out for the same reason: a stream
50
+ * mapping keeps them and a queue mapping is refused for naming one.
55
51
  */
56
52
  const unsupportedEventSourceInputs = new Set([
57
53
  "Topics",
@@ -80,6 +80,7 @@ export class CreateEventSourceMappingCommandHandler {
80
80
  start: input.start,
81
81
  enabled: input.enabled,
82
82
  functionResponseTypes: input.functionResponseTypes,
83
+ streamRetryLimits: input.streamRetryLimits,
83
84
  createdAt: this.properties.background.now(),
84
85
  });
85
86
  this.properties.mappings.add(mapping);
@@ -7,6 +7,7 @@ import type { SimLambdaContainerImages } from "../../function/code/image/sim-lam
7
7
  import type { SimLambdaCodeStore } from "../../function/code/store/sim-lambda-code-store.js";
8
8
  import type { SimLambdaVmSdkModuleProvider } from "../../function/code/vm/sdk/sim-lambda-vm-sdk-module-provider.js";
9
9
  import type { SimCloudWatchServiceWriter } from "../../../cloudwatch/write/sim-cloudwatch-service-writer.js";
10
+ import type { SimLambdaOutput } from "../../function/logging/sim-lambda-output.js";
10
11
  import type { SimLogsServiceWriter } from "../../../logs/write/sim-logs-service-writer.js";
11
12
  import type { SimLambdaOutboundHttp } from "../../function/outbound/sim-lambda-outbound-http.js";
12
13
  import type { SimLambdaDestinationTargets } from "../../destination/sim-lambda-destination-targets.js";
@@ -39,6 +40,7 @@ interface SimLambdaFunctionCommandsProperties {
39
40
  readonly containerImages?: SimLambdaContainerImages | undefined;
40
41
  readonly vmSdkModuleProvider?: SimLambdaVmSdkModuleProvider | undefined;
41
42
  readonly logs?: SimLogsServiceWriter | undefined;
43
+ readonly output?: SimLambdaOutput | undefined;
42
44
  readonly metrics?: SimCloudWatchServiceWriter | undefined;
43
45
  readonly outboundHttp?: SimLambdaOutboundHttp | undefined;
44
46
  }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * One list member of a `Cors` block and the bounds Lambda puts on it.
3
+ *
4
+ * `AllowMethods` is capped at six characters. That is what leaves `OPTIONS`
5
+ * out of the list a caller may state, since Lambda answers the preflight
6
+ * itself.
7
+ *
8
+ * https://docs.aws.amazon.com/lambda/latest/api/API_Cors.html
9
+ */
10
+ export interface CorsListConstraint {
11
+ readonly member: "AllowHeaders" | "AllowMethods" | "AllowOrigins" | "ExposeHeaders";
12
+ readonly field: string;
13
+ readonly maxItems: number;
14
+ readonly minLength: number;
15
+ readonly maxLength: number;
16
+ }
17
+ /**
18
+ * The bounds Lambda publishes for each list member of a `Cors` block.
19
+ */
20
+ export declare const corsListConstraints: readonly CorsListConstraint[];
21
+ /**
22
+ * The bound a list broke, worded as Lambda words it, or nothing when the list
23
+ * is within every bound.
24
+ */
25
+ export declare function corsListViolation(values: readonly string[], constraint: CorsListConstraint): string | undefined;