@kensio/yulin 1.16.0 → 1.16.2

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 (396) hide show
  1. package/README.md +44 -46
  2. package/dist/sdk/wire/sim-sdk-wire-operation.d.ts +12 -2
  3. package/dist/sdk/wire/sim-sdk-wire-operation.d.ts.map +1 -1
  4. package/dist/sdk/wire/sim-sdk-wire-operation.js.map +1 -1
  5. package/dist/sdk/wire/sim-sdk-wire.types.d.ts +0 -4
  6. package/dist/sdk/wire/sim-sdk-wire.types.d.ts.map +1 -1
  7. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +2 -2
  8. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
  9. package/dist/service/aws/factory/sim-aws-lambda-collaborators.d.ts +8 -0
  10. package/dist/service/aws/factory/sim-aws-lambda-collaborators.d.ts.map +1 -1
  11. package/dist/service/aws/factory/sim-aws-lambda-collaborators.js +13 -0
  12. package/dist/service/aws/factory/sim-aws-lambda-collaborators.js.map +1 -1
  13. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +3 -2
  14. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts.map +1 -1
  15. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js.map +1 -1
  16. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.d.ts +5 -2
  17. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.d.ts.map +1 -1
  18. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.js +38 -2
  19. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.js.map +1 -1
  20. package/dist/service/cloudfront/origin/custom/sim-cf-function-url-origin-template.factory.d.ts.map +1 -1
  21. package/dist/service/cloudfront/origin/custom/sim-cf-function-url-origin-template.factory.js +5 -2
  22. package/dist/service/cloudfront/origin/custom/sim-cf-function-url-origin-template.factory.js.map +1 -1
  23. package/dist/service/cognito/command/auth/sim-cognito-password-sign-in.d.ts.map +1 -1
  24. package/dist/service/cognito/command/auth/sim-cognito-password-sign-in.js +2 -1
  25. package/dist/service/cognito/command/auth/sim-cognito-password-sign-in.js.map +1 -1
  26. package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts +10 -0
  27. package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts.map +1 -1
  28. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts +14 -13
  29. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts.map +1 -1
  30. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js +14 -18
  31. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js.map +1 -1
  32. package/dist/service/cognito/command/hosted/sim-cognito-authorize-request.d.ts +15 -6
  33. package/dist/service/cognito/command/hosted/sim-cognito-authorize-request.d.ts.map +1 -1
  34. package/dist/service/cognito/command/hosted/sim-cognito-authorize-request.js +26 -19
  35. package/dist/service/cognito/command/hosted/sim-cognito-authorize-request.js.map +1 -1
  36. package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.d.ts.map +1 -1
  37. package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js +5 -1
  38. package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js.map +1 -1
  39. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.d.ts +41 -0
  40. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.d.ts.map +1 -0
  41. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.js +72 -0
  42. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.js.map +1 -0
  43. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.d.ts +32 -0
  44. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.d.ts.map +1 -0
  45. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.js +36 -0
  46. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.js.map +1 -0
  47. package/dist/service/cognito/command/sim-cognito-command.types.d.ts +1 -0
  48. package/dist/service/cognito/command/sim-cognito-command.types.d.ts.map +1 -1
  49. package/dist/service/cognito/command/sim-cognito-commands.d.ts +2 -0
  50. package/dist/service/cognito/command/sim-cognito-commands.d.ts.map +1 -1
  51. package/dist/service/cognito/command/sim-cognito-commands.js +8 -0
  52. package/dist/service/cognito/command/sim-cognito-commands.js.map +1 -1
  53. package/dist/service/cognito/command/user/password-reset.command.d.ts +80 -0
  54. package/dist/service/cognito/command/user/password-reset.command.d.ts.map +1 -0
  55. package/dist/service/cognito/command/user/password-reset.command.js +2 -0
  56. package/dist/service/cognito/command/user/password-reset.command.js.map +1 -0
  57. package/dist/service/cognito/command/user/sim-cognito-password-reset-commands.d.ts +74 -0
  58. package/dist/service/cognito/command/user/sim-cognito-password-reset-commands.d.ts.map +1 -0
  59. package/dist/service/cognito/command/user/sim-cognito-password-reset-commands.js +121 -0
  60. package/dist/service/cognito/command/user/sim-cognito-password-reset-commands.js.map +1 -0
  61. package/dist/service/cognito/command/user/sim-cognito-resetting-user.d.ts +34 -0
  62. package/dist/service/cognito/command/user/sim-cognito-resetting-user.d.ts.map +1 -0
  63. package/dist/service/cognito/command/user/sim-cognito-resetting-user.js +54 -0
  64. package/dist/service/cognito/command/user/sim-cognito-resetting-user.js.map +1 -0
  65. package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.d.ts.map +1 -1
  66. package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.js +3 -3
  67. package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.js.map +1 -1
  68. package/dist/service/cognito/command/user/sim-cognito-unsimulated-password-reset-options.d.ts +29 -0
  69. package/dist/service/cognito/command/user/sim-cognito-unsimulated-password-reset-options.d.ts.map +1 -0
  70. package/dist/service/cognito/command/user/sim-cognito-unsimulated-password-reset-options.js +36 -0
  71. package/dist/service/cognito/command/user/sim-cognito-unsimulated-password-reset-options.js.map +1 -0
  72. package/dist/service/cognito/error/sim-cognito-managed-login.error.d.ts +22 -0
  73. package/dist/service/cognito/error/sim-cognito-managed-login.error.d.ts.map +1 -0
  74. package/dist/service/cognito/error/sim-cognito-managed-login.error.js +32 -0
  75. package/dist/service/cognito/error/sim-cognito-managed-login.error.js.map +1 -0
  76. package/dist/service/cognito/error/sim-cognito.error.d.ts +23 -0
  77. package/dist/service/cognito/error/sim-cognito.error.d.ts.map +1 -1
  78. package/dist/service/cognito/error/sim-cognito.error.js +27 -0
  79. package/dist/service/cognito/error/sim-cognito.error.js.map +1 -1
  80. package/dist/service/cognito/index.d.ts +2 -1
  81. package/dist/service/cognito/index.d.ts.map +1 -1
  82. package/dist/service/cognito/index.js +2 -1
  83. package/dist/service/cognito/index.js.map +1 -1
  84. package/dist/service/cognito/sdk/sim-cognito-sdk-directory-routes.d.ts +6 -5
  85. package/dist/service/cognito/sdk/sim-cognito-sdk-directory-routes.d.ts.map +1 -1
  86. package/dist/service/cognito/sdk/sim-cognito-sdk-directory-routes.js +18 -5
  87. package/dist/service/cognito/sdk/sim-cognito-sdk-directory-routes.js.map +1 -1
  88. package/dist/service/cognito/serve/page/sim-cognito-confirm-page.d.ts +29 -0
  89. package/dist/service/cognito/serve/page/sim-cognito-confirm-page.d.ts.map +1 -0
  90. package/dist/service/cognito/serve/page/sim-cognito-confirm-page.js +90 -0
  91. package/dist/service/cognito/serve/page/sim-cognito-confirm-page.js.map +1 -0
  92. package/dist/service/cognito/serve/page/sim-cognito-forgot-password-page.d.ts +26 -0
  93. package/dist/service/cognito/serve/page/sim-cognito-forgot-password-page.d.ts.map +1 -0
  94. package/dist/service/cognito/serve/page/sim-cognito-forgot-password-page.js +57 -0
  95. package/dist/service/cognito/serve/page/sim-cognito-forgot-password-page.js.map +1 -0
  96. package/dist/service/cognito/serve/page/sim-cognito-managed-login.d.ts +41 -0
  97. package/dist/service/cognito/serve/page/sim-cognito-managed-login.d.ts.map +1 -0
  98. package/dist/service/cognito/serve/page/sim-cognito-managed-login.js +77 -0
  99. package/dist/service/cognito/serve/page/sim-cognito-managed-login.js.map +1 -0
  100. package/dist/service/cognito/serve/page/sim-cognito-page-form.d.ts +47 -0
  101. package/dist/service/cognito/serve/page/sim-cognito-page-form.d.ts.map +1 -0
  102. package/dist/service/cognito/serve/page/sim-cognito-page-form.js +76 -0
  103. package/dist/service/cognito/serve/page/sim-cognito-page-form.js.map +1 -0
  104. package/dist/service/cognito/serve/page/sim-cognito-page-markup.d.ts +69 -0
  105. package/dist/service/cognito/serve/page/sim-cognito-page-markup.d.ts.map +1 -0
  106. package/dist/service/cognito/serve/page/sim-cognito-page-markup.js +111 -0
  107. package/dist/service/cognito/serve/page/sim-cognito-page-markup.js.map +1 -0
  108. package/dist/service/cognito/serve/page/sim-cognito-page-paths.d.ts +57 -0
  109. package/dist/service/cognito/serve/page/sim-cognito-page-paths.d.ts.map +1 -0
  110. package/dist/service/cognito/serve/page/sim-cognito-page-paths.js +82 -0
  111. package/dist/service/cognito/serve/page/sim-cognito-page-paths.js.map +1 -0
  112. package/dist/service/cognito/serve/page/sim-cognito-page-request.d.ts +22 -0
  113. package/dist/service/cognito/serve/page/sim-cognito-page-request.d.ts.map +1 -0
  114. package/dist/service/cognito/serve/page/sim-cognito-page-request.js +30 -0
  115. package/dist/service/cognito/serve/page/sim-cognito-page-request.js.map +1 -0
  116. package/dist/service/cognito/serve/page/sim-cognito-provider-links.d.ts +12 -0
  117. package/dist/service/cognito/serve/page/sim-cognito-provider-links.d.ts.map +1 -0
  118. package/dist/service/cognito/serve/page/sim-cognito-provider-links.js +18 -0
  119. package/dist/service/cognito/serve/page/sim-cognito-provider-links.js.map +1 -0
  120. package/dist/service/cognito/serve/page/sim-cognito-reset-password-page.d.ts +27 -0
  121. package/dist/service/cognito/serve/page/sim-cognito-reset-password-page.d.ts.map +1 -0
  122. package/dist/service/cognito/serve/page/sim-cognito-reset-password-page.js +65 -0
  123. package/dist/service/cognito/serve/page/sim-cognito-reset-password-page.js.map +1 -0
  124. package/dist/service/cognito/serve/page/sim-cognito-sign-in-page.d.ts +20 -0
  125. package/dist/service/cognito/serve/page/sim-cognito-sign-in-page.d.ts.map +1 -0
  126. package/dist/service/cognito/serve/page/sim-cognito-sign-in-page.js +40 -0
  127. package/dist/service/cognito/serve/page/sim-cognito-sign-in-page.js.map +1 -0
  128. package/dist/service/cognito/serve/page/sim-cognito-sign-up-page.d.ts +35 -0
  129. package/dist/service/cognito/serve/page/sim-cognito-sign-up-page.d.ts.map +1 -0
  130. package/dist/service/cognito/serve/page/sim-cognito-sign-up-page.js +85 -0
  131. package/dist/service/cognito/serve/page/sim-cognito-sign-up-page.js.map +1 -0
  132. package/dist/service/cognito/serve/sim-cognito-domain-endpoints.d.ts +20 -23
  133. package/dist/service/cognito/serve/sim-cognito-domain-endpoints.d.ts.map +1 -1
  134. package/dist/service/cognito/serve/sim-cognito-domain-endpoints.js +40 -19
  135. package/dist/service/cognito/serve/sim-cognito-domain-endpoints.js.map +1 -1
  136. package/dist/service/cognito/serve/sim-cognito-domain-request.d.ts +14 -0
  137. package/dist/service/cognito/serve/sim-cognito-domain-request.d.ts.map +1 -0
  138. package/dist/service/cognito/serve/sim-cognito-domain-request.js +2 -0
  139. package/dist/service/cognito/serve/sim-cognito-domain-request.js.map +1 -0
  140. package/dist/service/cognito/sim-cognito-user-directory.d.ts +16 -0
  141. package/dist/service/cognito/sim-cognito-user-directory.d.ts.map +1 -1
  142. package/dist/service/cognito/sim-cognito-user-directory.js +25 -0
  143. package/dist/service/cognito/sim-cognito-user-directory.js.map +1 -1
  144. package/dist/service/cognito/user-pool/auth/sim-cognito-sign-in.d.ts +9 -0
  145. package/dist/service/cognito/user-pool/auth/sim-cognito-sign-in.d.ts.map +1 -1
  146. package/dist/service/cognito/user-pool/auth/sim-cognito-sign-in.js +14 -1
  147. package/dist/service/cognito/user-pool/auth/sim-cognito-sign-in.js.map +1 -1
  148. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-identity.d.ts +10 -0
  149. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-identity.d.ts.map +1 -1
  150. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-identity.js +11 -0
  151. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-identity.js.map +1 -1
  152. package/dist/service/cognito/user-pool/message/sim-cognito-code-delivery.d.ts +44 -0
  153. package/dist/service/cognito/user-pool/message/sim-cognito-code-delivery.d.ts.map +1 -0
  154. package/dist/service/cognito/user-pool/message/sim-cognito-code-delivery.js +78 -0
  155. package/dist/service/cognito/user-pool/message/sim-cognito-code-delivery.js.map +1 -0
  156. package/dist/service/cognito/user-pool/message/sim-cognito-message-occasion.d.ts +10 -6
  157. package/dist/service/cognito/user-pool/message/sim-cognito-message-occasion.d.ts.map +1 -1
  158. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.d.ts +5 -2
  159. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.d.ts.map +1 -1
  160. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.js +5 -2
  161. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.js.map +1 -1
  162. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.d.ts +15 -0
  163. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.d.ts.map +1 -1
  164. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.js +18 -0
  165. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.js.map +1 -1
  166. package/dist/service/cognito/user-pool/trigger/sim-cognito-user-pool-triggers.d.ts +4 -1
  167. package/dist/service/cognito/user-pool/trigger/sim-cognito-user-pool-triggers.d.ts.map +1 -1
  168. package/dist/service/cognito/user-pool/trigger/sim-cognito-user-pool-triggers.js +5 -2
  169. package/dist/service/cognito/user-pool/trigger/sim-cognito-user-pool-triggers.js.map +1 -1
  170. package/dist/service/cognito/user-pool/user/sim-cognito-user-confirmation.d.ts +14 -6
  171. package/dist/service/cognito/user-pool/user/sim-cognito-user-confirmation.d.ts.map +1 -1
  172. package/dist/service/cognito/user-pool/user/sim-cognito-user-confirmation.js +20 -9
  173. package/dist/service/cognito/user-pool/user/sim-cognito-user-confirmation.js.map +1 -1
  174. package/dist/service/cognito/user-pool/user/sim-cognito-user-password-reset.d.ts +62 -0
  175. package/dist/service/cognito/user-pool/user/sim-cognito-user-password-reset.d.ts.map +1 -0
  176. package/dist/service/cognito/user-pool/user/sim-cognito-user-password-reset.js +65 -0
  177. package/dist/service/cognito/user-pool/user/sim-cognito-user-password-reset.js.map +1 -0
  178. package/dist/service/cognito/user-pool/user/sim-cognito-user-status.d.ts +55 -11
  179. package/dist/service/cognito/user-pool/user/sim-cognito-user-status.d.ts.map +1 -1
  180. package/dist/service/cognito/user-pool/user/sim-cognito-user-status.js +67 -10
  181. package/dist/service/cognito/user-pool/user/sim-cognito-user-status.js.map +1 -1
  182. package/dist/service/cognito/user-pool/user/sim-cognito-user.d.ts +15 -12
  183. package/dist/service/cognito/user-pool/user/sim-cognito-user.d.ts.map +1 -1
  184. package/dist/service/cognito/user-pool/user/sim-cognito-user.js +31 -20
  185. package/dist/service/cognito/user-pool/user/sim-cognito-user.js.map +1 -1
  186. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts +8 -0
  187. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts.map +1 -1
  188. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js +14 -6
  189. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js.map +1 -1
  190. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  191. package/dist/service/lambda/command/create-function/create-function.handler.d.ts.map +1 -1
  192. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  193. package/dist/service/lambda/command/create-function/create-function.handler.js.map +1 -1
  194. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  195. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts.map +1 -1
  196. package/dist/service/lambda/command/function/sim-lambda-function-commands.js.map +1 -1
  197. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts +7 -0
  198. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts.map +1 -1
  199. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js +1 -0
  200. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js.map +1 -1
  201. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts +3 -0
  202. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts.map +1 -1
  203. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js +3 -0
  204. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js.map +1 -1
  205. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +6 -9
  206. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts.map +1 -1
  207. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +3 -3
  208. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js.map +1 -1
  209. package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.d.ts +11 -3
  210. package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.d.ts.map +1 -1
  211. package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.js +13 -8
  212. package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.js.map +1 -1
  213. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +21 -2
  214. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts.map +1 -1
  215. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +18 -2
  216. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js.map +1 -1
  217. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +26 -0
  218. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts.map +1 -0
  219. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +17 -0
  220. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js.map +1 -0
  221. package/dist/service/lambda/function/invoke/sim-lambda-outbound-clients.d.ts +17 -0
  222. package/dist/service/lambda/function/invoke/sim-lambda-outbound-clients.d.ts.map +1 -0
  223. package/dist/service/lambda/function/invoke/sim-lambda-outbound-clients.js +43 -0
  224. package/dist/service/lambda/function/invoke/sim-lambda-outbound-clients.js.map +1 -0
  225. package/dist/service/lambda/function/invoke/sim-lambda-process-outbound.d.ts +44 -0
  226. package/dist/service/lambda/function/invoke/sim-lambda-process-outbound.d.ts.map +1 -0
  227. package/dist/service/lambda/function/invoke/sim-lambda-process-outbound.js +83 -0
  228. package/dist/service/lambda/function/invoke/sim-lambda-process-outbound.js.map +1 -0
  229. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +50 -0
  230. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts.map +1 -0
  231. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +83 -0
  232. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js.map +1 -0
  233. package/dist/service/lambda/function/outbound/sim-lambda-http-module.d.ts +42 -0
  234. package/dist/service/lambda/function/outbound/sim-lambda-http-module.d.ts.map +1 -0
  235. package/dist/service/lambda/function/outbound/sim-lambda-http-module.js +88 -0
  236. package/dist/service/lambda/function/outbound/sim-lambda-http-module.js.map +1 -0
  237. package/dist/service/lambda/function/{code/vm/http/sim-lambda-vm-wire-request.d.ts → outbound/sim-lambda-http-request.d.ts} +20 -7
  238. package/dist/service/lambda/function/outbound/sim-lambda-http-request.d.ts.map +1 -0
  239. package/dist/service/lambda/function/{code/vm/http/sim-lambda-vm-wire-request.js → outbound/sim-lambda-http-request.js} +27 -29
  240. package/dist/service/lambda/function/outbound/sim-lambda-http-request.js.map +1 -0
  241. package/dist/service/lambda/function/outbound/sim-lambda-http-response.d.ts +18 -0
  242. package/dist/service/lambda/function/outbound/sim-lambda-http-response.d.ts.map +1 -0
  243. package/dist/service/lambda/function/outbound/sim-lambda-http-response.js +23 -0
  244. package/dist/service/lambda/function/outbound/sim-lambda-http-response.js.map +1 -0
  245. package/dist/service/lambda/function/{code/vm/http/sim-lambda-vm-http-target.d.ts → outbound/sim-lambda-http-target.d.ts} +9 -7
  246. package/dist/service/lambda/function/outbound/sim-lambda-http-target.d.ts.map +1 -0
  247. package/dist/service/lambda/function/{code/vm/http/sim-lambda-vm-http-target.js → outbound/sim-lambda-http-target.js} +4 -38
  248. package/dist/service/lambda/function/outbound/sim-lambda-http-target.js.map +1 -0
  249. package/dist/service/lambda/function/outbound/sim-lambda-outbound-fetch.d.ts +15 -0
  250. package/dist/service/lambda/function/outbound/sim-lambda-outbound-fetch.d.ts.map +1 -0
  251. package/dist/service/lambda/function/outbound/sim-lambda-outbound-fetch.js +38 -0
  252. package/dist/service/lambda/function/outbound/sim-lambda-outbound-fetch.js.map +1 -0
  253. package/dist/service/lambda/function/outbound/sim-lambda-outbound-http.d.ts +27 -0
  254. package/dist/service/lambda/function/outbound/sim-lambda-outbound-http.d.ts.map +1 -0
  255. package/dist/service/lambda/function/outbound/sim-lambda-outbound-http.factory.d.ts +13 -0
  256. package/dist/service/lambda/function/outbound/sim-lambda-outbound-http.factory.d.ts.map +1 -0
  257. package/dist/service/lambda/function/outbound/sim-lambda-outbound-http.factory.js +107 -0
  258. package/dist/service/lambda/function/outbound/sim-lambda-outbound-http.factory.js.map +1 -0
  259. package/dist/service/lambda/function/outbound/sim-lambda-outbound-http.js +2 -0
  260. package/dist/service/lambda/function/outbound/sim-lambda-outbound-http.js.map +1 -0
  261. package/dist/service/lambda/function/outbound/sim-lambda-outbound-wire.d.ts +16 -0
  262. package/dist/service/lambda/function/outbound/sim-lambda-outbound-wire.d.ts.map +1 -0
  263. package/dist/service/lambda/function/outbound/sim-lambda-outbound-wire.js +29 -0
  264. package/dist/service/lambda/function/outbound/sim-lambda-outbound-wire.js.map +1 -0
  265. package/dist/service/lambda/function/sim-lambda-function.d.ts +12 -6
  266. package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
  267. package/dist/service/lambda/function/sim-lambda-function.js +9 -10
  268. package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
  269. package/dist/service/lambda/serve/auth/sim-lambda-url-payload-hash.d.ts +28 -0
  270. package/dist/service/lambda/serve/auth/sim-lambda-url-payload-hash.d.ts.map +1 -0
  271. package/dist/service/lambda/serve/auth/sim-lambda-url-payload-hash.js +56 -0
  272. package/dist/service/lambda/serve/auth/sim-lambda-url-payload-hash.js.map +1 -0
  273. package/dist/service/lambda/serve/response/sim-lambda-url-error-response.d.ts +16 -0
  274. package/dist/service/lambda/serve/response/sim-lambda-url-error-response.d.ts.map +1 -1
  275. package/dist/service/lambda/serve/response/sim-lambda-url-error-response.js +24 -0
  276. package/dist/service/lambda/serve/response/sim-lambda-url-error-response.js.map +1 -1
  277. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +6 -0
  278. package/dist/service/lambda/serve/sim-lambda-controller.d.ts.map +1 -1
  279. package/dist/service/lambda/serve/sim-lambda-controller.js +11 -0
  280. package/dist/service/lambda/serve/sim-lambda-controller.js.map +1 -1
  281. package/dist/service/lambda/sim-lambda-commands.d.ts +8 -0
  282. package/dist/service/lambda/sim-lambda-commands.d.ts.map +1 -1
  283. package/dist/service/lambda/sim-lambda-commands.js +2 -1
  284. package/dist/service/lambda/sim-lambda-commands.js.map +1 -1
  285. package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.d.ts.map +1 -1
  286. package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.js.map +1 -1
  287. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-properties.d.ts +4 -3
  288. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-properties.d.ts.map +1 -1
  289. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-properties.js +4 -3
  290. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-properties.js.map +1 -1
  291. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-property-names.d.ts +2 -2
  292. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-property-names.js +2 -2
  293. package/dist/service/sns/command/publish/sim-sns-publish-commands.d.ts +3 -0
  294. package/dist/service/sns/command/publish/sim-sns-publish-commands.d.ts.map +1 -1
  295. package/dist/service/sns/command/publish/sim-sns-publish-commands.js +4 -2
  296. package/dist/service/sns/command/publish/sim-sns-publish-commands.js.map +1 -1
  297. package/dist/service/sns/command/publish/sim-sns-publish-dispatch.d.ts +39 -0
  298. package/dist/service/sns/command/publish/sim-sns-publish-dispatch.d.ts.map +1 -0
  299. package/dist/service/sns/command/publish/sim-sns-publish-dispatch.js +42 -0
  300. package/dist/service/sns/command/publish/sim-sns-publish-dispatch.js.map +1 -0
  301. package/dist/service/sns/command/publish/sim-sns-publish-input.d.ts +3 -3
  302. package/dist/service/sns/command/publish/sim-sns-publish-input.d.ts.map +1 -1
  303. package/dist/service/sns/command/publish/sim-sns-publish-input.js +8 -8
  304. package/dist/service/sns/command/publish/sim-sns-publish-input.js.map +1 -1
  305. package/dist/service/sns/command/publish/sim-sns-publish-sms.d.ts +38 -0
  306. package/dist/service/sns/command/publish/sim-sns-publish-sms.d.ts.map +1 -0
  307. package/dist/service/sns/command/publish/sim-sns-publish-sms.js +53 -0
  308. package/dist/service/sns/command/publish/sim-sns-publish-sms.js.map +1 -0
  309. package/dist/service/sns/command/sim-sns-command.types.d.ts +1 -0
  310. package/dist/service/sns/command/sim-sns-command.types.d.ts.map +1 -1
  311. package/dist/service/sns/command/sim-sns-commands.d.ts +12 -4
  312. package/dist/service/sns/command/sim-sns-commands.d.ts.map +1 -1
  313. package/dist/service/sns/command/sim-sns-commands.js +39 -4
  314. package/dist/service/sns/command/sim-sns-commands.js.map +1 -1
  315. package/dist/service/sns/command/sms/sim-sns-opt-out-commands.d.ts +41 -0
  316. package/dist/service/sns/command/sms/sim-sns-opt-out-commands.d.ts.map +1 -0
  317. package/dist/service/sns/command/sms/sim-sns-opt-out-commands.js +56 -0
  318. package/dist/service/sns/command/sms/sim-sns-opt-out-commands.js.map +1 -0
  319. package/dist/service/sns/command/sms/sms.command.d.ts +50 -0
  320. package/dist/service/sns/command/sms/sms.command.d.ts.map +1 -0
  321. package/dist/service/sns/command/sms/sms.command.js +2 -0
  322. package/dist/service/sns/command/sms/sms.command.js.map +1 -0
  323. package/dist/service/sns/delivery/sim-aws-sns-delivery-endpoints.d.ts +5 -6
  324. package/dist/service/sns/delivery/sim-aws-sns-delivery-endpoints.d.ts.map +1 -1
  325. package/dist/service/sns/delivery/sim-aws-sns-delivery-endpoints.js +8 -12
  326. package/dist/service/sns/delivery/sim-aws-sns-delivery-endpoints.js.map +1 -1
  327. package/dist/service/sns/delivery/sim-sns-no-delivery-endpoints.d.ts +6 -13
  328. package/dist/service/sns/delivery/sim-sns-no-delivery-endpoints.d.ts.map +1 -1
  329. package/dist/service/sns/delivery/sim-sns-no-delivery-endpoints.js +13 -2
  330. package/dist/service/sns/delivery/sim-sns-no-delivery-endpoints.js.map +1 -1
  331. package/dist/service/sns/delivery/sim-sns-protocol-delivery-endpoints.d.ts +10 -1
  332. package/dist/service/sns/delivery/sim-sns-protocol-delivery-endpoints.d.ts.map +1 -1
  333. package/dist/service/sns/delivery/sim-sns-protocol-delivery-endpoints.js.map +1 -1
  334. package/dist/service/sns/delivery/sms/sim-sns-delivery-sms.d.ts +34 -0
  335. package/dist/service/sns/delivery/sms/sim-sns-delivery-sms.d.ts.map +1 -0
  336. package/dist/service/sns/delivery/sms/sim-sns-delivery-sms.js +46 -0
  337. package/dist/service/sns/delivery/sms/sim-sns-delivery-sms.js.map +1 -0
  338. package/dist/service/sns/index.d.ts +5 -1
  339. package/dist/service/sns/index.d.ts.map +1 -1
  340. package/dist/service/sns/index.js +4 -1
  341. package/dist/service/sns/index.js.map +1 -1
  342. package/dist/service/sns/message/sim-sns-message-attribute-rules.d.ts.map +1 -1
  343. package/dist/service/sns/message/sim-sns-message-attribute-rules.js +9 -1
  344. package/dist/service/sns/message/sim-sns-message-attribute-rules.js.map +1 -1
  345. package/dist/service/sns/message/sim-sns-message-attributes.d.ts +8 -0
  346. package/dist/service/sns/message/sim-sns-message-attributes.d.ts.map +1 -1
  347. package/dist/service/sns/message/sim-sns-message-attributes.js +10 -0
  348. package/dist/service/sns/message/sim-sns-message-attributes.js.map +1 -1
  349. package/dist/service/sns/message/sim-sns-sms-attributes.d.ts +25 -0
  350. package/dist/service/sns/message/sim-sns-sms-attributes.d.ts.map +1 -0
  351. package/dist/service/sns/message/sim-sns-sms-attributes.js +46 -0
  352. package/dist/service/sns/message/sim-sns-sms-attributes.js.map +1 -0
  353. package/dist/service/sns/sdk/sim-sns-sdk-command-router.d.ts.map +1 -1
  354. package/dist/service/sns/sdk/sim-sns-sdk-command-router.js +12 -0
  355. package/dist/service/sns/sdk/sim-sns-sdk-command-router.js.map +1 -1
  356. package/dist/service/sns/sim-sns-sms.d.ts +63 -0
  357. package/dist/service/sns/sim-sns-sms.d.ts.map +1 -0
  358. package/dist/service/sns/sim-sns-sms.js +76 -0
  359. package/dist/service/sns/sim-sns-sms.js.map +1 -0
  360. package/dist/service/sns/sim-sns.d.ts +7 -15
  361. package/dist/service/sns/sim-sns.d.ts.map +1 -1
  362. package/dist/service/sns/sim-sns.js +23 -30
  363. package/dist/service/sns/sim-sns.js.map +1 -1
  364. package/dist/service/sns/sms/sim-sns-opt-out-list.d.ts +40 -0
  365. package/dist/service/sns/sms/sim-sns-opt-out-list.d.ts.map +1 -0
  366. package/dist/service/sns/sms/sim-sns-opt-out-list.js +47 -0
  367. package/dist/service/sns/sms/sim-sns-opt-out-list.js.map +1 -0
  368. package/dist/service/sns/sms/sim-sns-phone-number.d.ts +21 -0
  369. package/dist/service/sns/sms/sim-sns-phone-number.d.ts.map +1 -0
  370. package/dist/service/sns/sms/sim-sns-phone-number.js +41 -0
  371. package/dist/service/sns/sms/sim-sns-phone-number.js.map +1 -0
  372. package/dist/service/sns/sms/sim-sns-sent-sms-message.d.ts +69 -0
  373. package/dist/service/sns/sms/sim-sns-sent-sms-message.d.ts.map +1 -0
  374. package/dist/service/sns/sms/sim-sns-sent-sms-message.js +71 -0
  375. package/dist/service/sns/sms/sim-sns-sent-sms-message.js.map +1 -0
  376. package/dist/service/sns/sms/sim-sns-sent-sms-store.d.ts +25 -0
  377. package/dist/service/sns/sms/sim-sns-sent-sms-store.d.ts.map +1 -0
  378. package/dist/service/sns/sms/sim-sns-sent-sms-store.js +28 -0
  379. package/dist/service/sns/sms/sim-sns-sent-sms-store.js.map +1 -0
  380. package/dist/service/sns/subscription/sim-sns-subscription-endpoint.d.ts +9 -7
  381. package/dist/service/sns/subscription/sim-sns-subscription-endpoint.d.ts.map +1 -1
  382. package/dist/service/sns/subscription/sim-sns-subscription-endpoint.js +7 -2
  383. package/dist/service/sns/subscription/sim-sns-subscription-endpoint.js.map +1 -1
  384. package/dist/service/sns/subscription/sim-sns-subscription-protocol.d.ts +19 -1
  385. package/dist/service/sns/subscription/sim-sns-subscription-protocol.d.ts.map +1 -1
  386. package/dist/service/sns/subscription/sim-sns-subscription-protocol.js +26 -5
  387. package/dist/service/sns/subscription/sim-sns-subscription-protocol.js.map +1 -1
  388. package/package.json +2 -2
  389. package/dist/service/lambda/function/code/vm/http/sim-lambda-vm-http-module.d.ts +0 -27
  390. package/dist/service/lambda/function/code/vm/http/sim-lambda-vm-http-module.d.ts.map +0 -1
  391. package/dist/service/lambda/function/code/vm/http/sim-lambda-vm-http-module.js +0 -78
  392. package/dist/service/lambda/function/code/vm/http/sim-lambda-vm-http-module.js.map +0 -1
  393. package/dist/service/lambda/function/code/vm/http/sim-lambda-vm-http-target.d.ts.map +0 -1
  394. package/dist/service/lambda/function/code/vm/http/sim-lambda-vm-http-target.js.map +0 -1
  395. package/dist/service/lambda/function/code/vm/http/sim-lambda-vm-wire-request.d.ts.map +0 -1
  396. package/dist/service/lambda/function/code/vm/http/sim-lambda-vm-wire-request.js.map +0 -1
package/README.md CHANGED
@@ -54,9 +54,9 @@ npm i -D @kensio/yulin
54
54
 
55
55
  ### Intercept AWS SDK clients
56
56
 
57
- If your code uses the AWS SDK, you can intercept AWS SDK clients and route their Commands to
58
- simulated AWS services. Your implementation code uses the SDK as normal and never needs to know that
59
- it's dealing with a simulator behind the scenes:
57
+ If your code uses the AWS SDK, you can intercept its clients and route their Commands to simulated
58
+ AWS services. Your implementation code uses the SDK as normal and never needs to know a simulator is
59
+ answering:
60
60
 
61
61
  ```typescript
62
62
  import {
@@ -90,9 +90,9 @@ simSdk.restoreAll(); // Or `using simSdk = new SimSdk();` to restore on scope ex
90
90
  ```
91
91
 
92
92
  You can intercept a client class, as above, or a single client instance. The simulated Account and
93
- Region scope is resolved per send: the Region comes from the sending client's configuration, and
94
- the Account from the ambient `simAws.runAs(...)` caller when one is set, falling back to the
95
- simulation defaults.
93
+ Region scope is resolved per send. The Region comes from the sending client's configuration, and the
94
+ Account from the ambient `simAws.runAs(...)` caller when one is set, falling back to the simulation
95
+ defaults.
96
96
 
97
97
  Each `SimSdk` owns its own isolated simulated AWS, available as `simSdk.simAws` when a test needs
98
98
  to seed or inspect simulated state directly. To share state with an existing simulation, wrap it
@@ -130,8 +130,8 @@ await simAws.region("eu-west-2").dynamoDb().createTable({ ... });
130
130
  await simAws.account("111111111111").region("eu-west-2").dynamoDb().createTable({ ... });
131
131
  ```
132
132
 
133
- AWS state is simulated internally, so you can test realistic interactions with multiple AWS
134
- services.
133
+ AWS state is simulated internally. A test can drive realistic interactions across several AWS
134
+ services at once.
135
135
 
136
136
  An Account ID is a plain string wherever one is accepted. Code that wants to name the type can get a
137
137
  `SimAwsAccountId` from `simAwsAccountId(...)`, which refuses anything that is not a 12-digit AWS
@@ -144,8 +144,8 @@ const accountId = simAwsAccountId("111111111111");
144
144
  const someOtherAccountId = makeSimAwsAccountId();
145
145
  ```
146
146
 
147
- Each instance of `SimAws` is cheap and encapsulated so you can create them wherever you need them.
148
- It's fine to create a new instance of `SimAws` in every test case or in shared test setup.
147
+ Each instance of `SimAws` is cheap and encapsulated. Make one wherever you need it, in every test
148
+ case or in shared test setup, whichever suits.
149
149
 
150
150
  If you prefer, you can also instantiate simulated services individually:
151
151
 
@@ -209,7 +209,7 @@ const res = await fetch(new URL("/foo/", bucketWebsiteUrl));
209
209
  #### Send requests without a port
210
210
 
211
211
  A test usually wants the same requests with nothing listening. `SimAwsHttp` answers a Fetch API
212
- `Request` with a `Response` in process, so there is no port for parallel test files to collide over,
212
+ `Request` with a `Response` in process. There is no port for parallel test files to collide over,
213
213
  and no server to start or tear down:
214
214
 
215
215
  ```typescript
@@ -224,24 +224,24 @@ const simAwsHttp = new SimAwsHttp({ simAws });
224
224
  const response = await simAwsHttp.fetch("https://www.example.com/");
225
225
  ```
226
226
 
227
- Nothing binds a port, so a URL a simulated service gives out is fetched as it is, with no
228
- `localUrl(...)` adapting, and a hostname a simulated Route53 answers for is requested by its own
229
- name. Both routes go through the same authentication, routing and service code, so `serveSimAws` is
230
- what you want only when the request comes from outside the process. See the
231
- [serving docs](./docs/serve "Serving simulated AWS on localhost docs") for which to reach for.
227
+ A URL a simulated service gives out is fetched as it is, with no `localUrl(...)` adapting, and a
228
+ hostname a simulated Route53 answers for is requested by its own name. Both routes go through the
229
+ same authentication, routing and service code. Reach for `serveSimAws` when the request comes from
230
+ outside the process. See the
231
+ [serving docs](./docs/serve "Serving simulated AWS on localhost docs") for how to choose.
232
232
 
233
233
  #### Restarting a served environment
234
234
 
235
- A served environment takes an available port by default, so the URL changes every time the process
235
+ A served environment takes an available port by default. The URL changes every time the process
236
236
  starts. Pin a port to keep the URL the same across restarts:
237
237
 
238
238
  ```typescript
239
239
  const srv = await serveSimAws({ simAws, port: 4599 });
240
240
  ```
241
241
 
242
- Closing the server ends the connections it is holding, so the process can exit rather than being
243
- kept alive by a browser tab. Yulin does not install signal handlers, so call `close()` from your
244
- own:
242
+ Closing the server ends the connections it is holding, and the process can then exit. An open
243
+ browser tab would otherwise keep it alive. Yulin installs no signal handlers, so call `close()` from
244
+ your own:
245
245
 
246
246
  ```typescript
247
247
  process.on("SIGTERM", () => {
@@ -250,12 +250,12 @@ process.on("SIGTERM", () => {
250
250
  ```
251
251
 
252
252
  A restart usually overlaps the process it is replacing. `listen` waits a couple of seconds for a
253
- pinned port that is still held, then throws `SimAwsLocalPortInUse` naming the port, which means
254
- something other than the outgoing process owns it.
253
+ pinned port that is still held, then throws `SimAwsLocalPortInUse` naming the port. Something other
254
+ than the outgoing process owns it by then.
255
255
 
256
256
  #### Reload the browser on a restart
257
257
 
258
- Yulin is the only thing in the response path of a page it serves, so it can tell the browser to
258
+ Yulin is the only thing in the response path of a page it serves, and it can tell the browser to
259
259
  reload. Turning `liveReload` on puts a small script into the HTML pages served to browsers, and the
260
260
  page reloads itself when the process restarts:
261
261
 
@@ -273,16 +273,15 @@ the page refreshed:
273
273
  yulin watch -- tsx dev.ts
274
274
  ```
275
275
 
276
- It watches the working directory, plus the paths Yulin is holding that a module graph never mentions:
277
- a directory mounted into a Bucket, and a synthesized template. See the
276
+ It watches the working directory. It also watches the paths Yulin is holding that a module graph
277
+ never mentions, a directory mounted into a Bucket and a synthesized template. See the
278
278
  [serving docs](./docs/serve "Serving simulated AWS on localhost docs") for what gets the script, what
279
279
  is watched, and what is not.
280
280
 
281
281
  #### Update a stack when its template changes
282
282
 
283
- A synthesized template is data rather than code, so a change to one does not need the process
284
- restarted. Deploy it with `watch` and Yulin applies the file again whenever it changes, updating the
285
- stack in place:
283
+ A synthesized template is data, and a change to one needs no restart. Deploy it with `watch` and
284
+ Yulin applies the file again whenever it changes, updating the stack in place:
286
285
 
287
286
  ```typescript
288
287
  await simAws.cloudFormation().deployTemplateFile({
@@ -296,8 +295,8 @@ await simAws.cloudFormation().deployTemplateFile({
296
295
  ```
297
296
 
298
297
  Resources the change left alone keep what they hold, so simulated S3, DynamoDB and SQS survive a
299
- `cdk synth`. Under `yulin watch` the template is left to the process watching it rather than being a
300
- reason to restart. See the
298
+ `cdk synth`. Under `yulin watch` the template is left to the process watching it, and never triggers
299
+ a restart. See the
301
300
  [CloudFormation docs](./docs/services/cloudformation "Simulated CloudFormation docs") for what an
302
301
  update does to each resource.
303
302
 
@@ -328,37 +327,36 @@ await simAws.clock().advanceBy({ minutes: 20 });
328
327
  // Those session credentials have now expired.
329
328
  ```
330
329
 
331
- Advancing runs whatever falls due during the interval and returns once the simulation has settled,
332
- so the next line can assert. Time belongs to the `SimAws` instance, so moving it never disturbs
333
- another simulation, or the real clock. See the
330
+ Advancing runs whatever falls due during the interval and returns once the simulation has settled.
331
+ The next line can assert. Time belongs to the `SimAws` instance, so moving it never disturbs another
332
+ simulation, or the real clock. See the
334
333
  [simulated time docs](./docs/time "Simulated time docs") for full usage.
335
334
 
336
- ## What is yulin?
335
+ ## What is Yulin?
337
336
 
338
- TLDR: yulin is an AWS simulator for testing Node.js applications.
337
+ TLDR: Yulin is an AWS simulator for testing Node.js applications.
339
338
 
340
- The simulation is not only local to the machine, but in the same single process
341
- with the test and application under test. No network or external i/o is
342
- involved. This is what "isolated" refers to.
339
+ The simulation runs in the same single process as the test and the application
340
+ under test, and not just on the same machine. No network or external i/o is
341
+ involved. That is what "isolated" refers to.
343
342
 
344
343
  This "isolated system" approach to testing has a few advantages:
345
344
 
346
345
  - Tests run fast as everything is in memory with no real networking.
347
- - Test set-up is fast and uncomplicated, as there are no containers or extra
346
+ - Test set-up is quick and uncomplicated, as there are no containers or extra
348
347
  dependencies to manage.
349
348
  - It's straightforward to use multiple other mocks and simulators alongside
350
- yulin, such as [nock](https://github.com/nock/nock), as yulin makes no
349
+ Yulin, such as [nock](https://github.com/nock/nock), as Yulin makes no
351
350
  assumptions about the environment.
352
- - You can control everything in each isolated test process, such as controlling
353
- the current time, even when multiple different AWS services are simulated.
351
+ - You can control everything in each isolated test process, including the
352
+ current time, even when multiple different AWS services are simulated.
354
353
  - One test can cover **meaningful system behaviour** across multiple AWS
355
354
  services and applications, such as Lambdas sending events to SQS queues to be
356
355
  picked up by other Lambdas, or DynamoDB streams triggering Lambdas.
357
356
 
358
- That last point is the most important. The motivation behind yulin is to enable
359
- efficient tests that cover the logical behaviour of a system. That is in
360
- contrast to less valuable microscopic unit tests with fiddly mocks and brittle
361
- assertions. The goal of yulin is to allow you to test system behaviours that are
357
+ That last point matters most. Yulin exists to make efficient tests that cover
358
+ the logical behaviour of a system, in contrast to microscopic unit tests with
359
+ fiddly mocks and brittle assertions. The behaviours worth testing are the ones
362
360
  meaningful to users and stakeholders.
363
361
 
364
362
  ## What's in a name?
@@ -1,4 +1,13 @@
1
1
  import type { SimSdkWireRequest } from "./sim-sdk-wire.types.js";
2
+ /**
3
+ * The part of a wire request the two readers below need.
4
+ *
5
+ * An AWS API request says which operation it is and what it was signed for in
6
+ * its headers, so neither question needs the body. That leaves both of them
7
+ * answerable for a request whose body has not been read, which is what a
8
+ * client holding an outgoing request has.
9
+ */
10
+ type SimSdkWireRequestHeaders = Pick<SimSdkWireRequest, "headers">;
2
11
  /**
3
12
  * Which simulated service operation a wire request is asking for.
4
13
  */
@@ -15,7 +24,7 @@ export interface SimSdkWireOperation {
15
24
  * protocol request addressed to a service with no simulated equivalent, since
16
25
  * neither can be answered from the simulation.
17
26
  */
18
- export declare function readSimSdkWireOperation(request: SimSdkWireRequest): SimSdkWireOperation | undefined;
27
+ export declare function readSimSdkWireOperation(request: SimSdkWireRequestHeaders): SimSdkWireOperation | undefined;
19
28
  /**
20
29
  * The credential scope of a SigV4-signed request: the Region and the signing
21
30
  * service name the request was signed for.
@@ -33,5 +42,6 @@ export interface SimSdkWireCredentialScope {
33
42
  * pointed anywhere, and it is present whatever protocol the service speaks, so
34
43
  * an unsupported request can still say which service it was for.
35
44
  */
36
- export declare function readSimSdkWireCredentialScope(request: SimSdkWireRequest): SimSdkWireCredentialScope | undefined;
45
+ export declare function readSimSdkWireCredentialScope(request: SimSdkWireRequestHeaders): SimSdkWireCredentialScope | undefined;
46
+ export {};
37
47
  //# sourceMappingURL=sim-sdk-wire-operation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-sdk-wire-operation.d.ts","sourceRoot":"","sources":["../../../src/sdk/wire/sim-sdk-wire-operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAwCjE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GACzB,mBAAmB,GAAG,SAAS,CAmBjC;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,iBAAiB,GACzB,yBAAyB,GAAG,SAAS,CAYvC"}
1
+ {"version":3,"file":"sim-sdk-wire-operation.d.ts","sourceRoot":"","sources":["../../../src/sdk/wire/sim-sdk-wire-operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAwCjE;;;;;;;GAOG;AACH,KAAK,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,mBAAmB,GAAG,SAAS,CAmBjC;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,wBAAwB,GAChC,yBAAyB,GAAG,SAAS,CAYvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-sdk-wire-operation.js","sourceRoot":"","sources":["../../../src/sdk/wire/sim-sdk-wire-operation.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,sBAAsB,GAAgC,IAAI,GAAG,CAAC;IAClE,CAAC,mCAAmC,EAAE,2BAA2B,CAAC;IAClE,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,oCAAoC,EAAE,KAAK,CAAC;IAC7C,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,oBAAoB,EAAE,KAAK,CAAC;IAC7B,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;IAChD,CAAC,mBAAmB,EAAE,UAAU,CAAC;IACjC,CAAC,eAAe,EAAE,iBAAiB,CAAC;IACpC,CAAC,oBAAoB,EAAE,aAAa,CAAC;IACrC,CAAC,cAAc,EAAE,KAAK,CAAC;IACvB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;CACtC,CAAC,CAAC;AAYH;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAA0B;IAE1B,oGAAoG;IACpG,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,SAAS,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa,SAAS,EAAE,CAAC;AAC/D,CAAC;AAWD;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAA0B;IAE1B,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,qCAAqC,CAAC,IAAI,CAC3D,aAAa,IAAI,EAAE,CACpB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;IAErB,MAAM,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACjE,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"sim-sdk-wire-operation.js","sourceRoot":"","sources":["../../../src/sdk/wire/sim-sdk-wire-operation.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,sBAAsB,GAAgC,IAAI,GAAG,CAAC;IAClE,CAAC,mCAAmC,EAAE,2BAA2B,CAAC;IAClE,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,oCAAoC,EAAE,KAAK,CAAC;IAC7C,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,oBAAoB,EAAE,KAAK,CAAC;IAC7B,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;IAChD,CAAC,mBAAmB,EAAE,UAAU,CAAC;IACjC,CAAC,eAAe,EAAE,iBAAiB,CAAC;IACpC,CAAC,oBAAoB,EAAE,aAAa,CAAC;IACrC,CAAC,cAAc,EAAE,KAAK,CAAC;IACvB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;CACtC,CAAC,CAAC;AAsBH;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAiC;IAEjC,oGAAoG;IACpG,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,SAAS,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa,SAAS,EAAE,CAAC;AAC/D,CAAC;AAWD;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAiC;IAEjC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,qCAAqC,CAAC,IAAI,CAC3D,aAAa,IAAI,EAAE,CACpB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;IAErB,MAAM,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACjE,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACrC,CAAC"}
@@ -25,8 +25,4 @@ export interface SimSdkWireResponse {
25
25
  readonly headers: Readonly<Record<string, string>>;
26
26
  readonly body: Uint8Array;
27
27
  }
28
- /**
29
- * Answer an AWS API request from a simulated AWS environment.
30
- */
31
- export type SimSdkWireHandler = (request: SimSdkWireRequest) => Promise<SimSdkWireResponse>;
32
28
  //# sourceMappingURL=sim-sdk-wire.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-sdk-wire.types.d.ts","sourceRoot":"","sources":["../../../src/sdk/wire/sim-sdk-wire.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,iBAAiB,KACvB,OAAO,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"sim-sdk-wire.types.d.ts","sourceRoot":"","sources":["../../../src/sdk/wire/sim-sdk-wire.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B"}
@@ -16,7 +16,7 @@ import { simAwsEcsCollaborators } from "./sim-aws-ecs-collaborators.js";
16
16
  import { simAwsLambdaCollaborators } from "./sim-aws-lambda-collaborators.js";
17
17
  import { simAwsS3NotificationDestinations } from "./sim-aws-s3-notification-destinations.js";
18
18
  import { SimSns } from "../../sns/index.js";
19
- import { SimAwsSnsDeliveryEndpoints } from "../../sns/delivery/sim-aws-sns-delivery-endpoints.js";
19
+ import { simAwsSnsDeliveryEndpoints } from "../../sns/delivery/sim-aws-sns-delivery-endpoints.js";
20
20
  import { SimSts } from "../../sts/sim-sts.js";
21
21
  /**
22
22
  * Builder for simulated AWS services scoped to one Account and Region.
@@ -172,7 +172,7 @@ export class SimAwsAccountRegionServiceBuilder {
172
172
  * and are resolved on delivery rather than here.
173
173
  */
174
174
  createSns(scope) {
175
- const endpoints = new SimAwsSnsDeliveryEndpoints({ simAws: this.simAws });
175
+ const endpoints = simAwsSnsDeliveryEndpoints({ simAws: this.simAws });
176
176
  return new SimSns({ ...this.scoped(scope), deliveryEndpoints: endpoints });
177
177
  }
178
178
  /** Create simulated EventBridge Scheduler for an Account Region scope. */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-aws-account-region-service-builder.js","sourceRoot":"","sources":["../../../../src/service/aws/factory/sim-aws-account-region-service-builder.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,sEAAsE,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAc9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,iCAAiC;IAC3B,MAAM,CAAS;IACf,UAAU,CAA4C;IACtD,UAAU,CAAgC;IAC1C,WAAW,CAAiB;IAC5B,iBAAiB,CAAuB;IACxC,eAAe,CAA4B;IAE5D,YAAY,UAAuD;QACjE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;IACpD,CAAC;IAED,wDAAwD;IACxD,mEAAmE;IACnE,oBAAoB,CAAC,KAAmC;QACtD,OAAO,IAAI,iBAAiB,CAAC;YAC3B,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAmC;QAClD,OAAO,IAAI,aAAa,CAAC;YACvB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,GAAG,6BAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,6BAA6B,CAC3B,KAAmC;QAEnC,OAAO,IAAI,0BAA0B,CAAC;YACpC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;YACzC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc;YAC9C,gBAAgB,EAAE,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,SAAS,CAAC,KAAmC;QAC3C,OAAO,IAAI,MAAM,CAAC;YAChB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,KAAmC;QACnD,OAAO,IAAI,cAAc,CAAC;YACxB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,eAAe,EAAE,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,UAAU,CAAC,KAAmC;QAC5C,OAAO,IAAI,OAAO,CAAC;YACjB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC;SAClE,CAAC,CAAC;IACL,CAAC;IAED,2DAA2D;IAC3D,YAAY,CAAC,KAAmC;QAC9C,OAAO,IAAI,SAAS,CAAC;YACnB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,GAAG,yBAAyB,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK;gBACL,WAAW,EAAE,IAAI,CAAC,iBAAiB;gBACnC,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,KAAmC;QACnD,OAAO,IAAI,cAAc,CAAC;YACxB,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,KAAmC;QAC1C,OAAO,IAAI,KAAK,CAAC;YACf,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;YACpC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,wBAAwB,EAAE,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,KAAmC;QAC3C,MAAM,SAAS,GAAG,IAAI,0BAA0B,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE1E,OAAO,IAAI,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,0EAA0E;IAC1E,eAAe,CAAC,KAAmC;QACjD,OAAO,IAAI,YAAY,CAAC;YACtB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,eAAe,EAAE,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,SAAS,CAAC,KAAmC;QAC3C,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEtC,OAAO,IAAI,MAAM,CAAC;YAChB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,MAAM,CACZ,KAAmC;QAEnC,OAAO,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"sim-aws-account-region-service-builder.js","sourceRoot":"","sources":["../../../../src/service/aws/factory/sim-aws-account-region-service-builder.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,sEAAsE,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAc9C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,iCAAiC;IAC3B,MAAM,CAAS;IACf,UAAU,CAA4C;IACtD,UAAU,CAAgC;IAC1C,WAAW,CAAiB;IAC5B,iBAAiB,CAAuB;IACxC,eAAe,CAA4B;IAE5D,YAAY,UAAuD;QACjE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;IACpD,CAAC;IAED,wDAAwD;IACxD,mEAAmE;IACnE,oBAAoB,CAAC,KAAmC;QACtD,OAAO,IAAI,iBAAiB,CAAC;YAC3B,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAmC;QAClD,OAAO,IAAI,aAAa,CAAC;YACvB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,GAAG,6BAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,6BAA6B,CAC3B,KAAmC;QAEnC,OAAO,IAAI,0BAA0B,CAAC;YACpC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;YACzC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc;YAC9C,gBAAgB,EAAE,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,SAAS,CAAC,KAAmC;QAC3C,OAAO,IAAI,MAAM,CAAC;YAChB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,KAAmC;QACnD,OAAO,IAAI,cAAc,CAAC;YACxB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,eAAe,EAAE,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,UAAU,CAAC,KAAmC;QAC5C,OAAO,IAAI,OAAO,CAAC;YACjB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC;SAClE,CAAC,CAAC;IACL,CAAC;IAED,2DAA2D;IAC3D,YAAY,CAAC,KAAmC;QAC9C,OAAO,IAAI,SAAS,CAAC;YACnB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,GAAG,yBAAyB,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK;gBACL,WAAW,EAAE,IAAI,CAAC,iBAAiB;gBACnC,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,KAAmC;QACnD,OAAO,IAAI,cAAc,CAAC;YACxB,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,KAAmC;QAC1C,OAAO,IAAI,KAAK,CAAC;YACf,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;YACpC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,wBAAwB,EAAE,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,KAAmC;QAC3C,MAAM,SAAS,GAAG,0BAA0B,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAEtE,OAAO,IAAI,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,0EAA0E;IAC1E,eAAe,CAAC,KAAmC;QACjD,OAAO,IAAI,YAAY,CAAC;YACtB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,eAAe,EAAE,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,SAAS,CAAC,KAAmC;QAC3C,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEtC,OAAO,IAAI,MAAM,CAAC;YAChB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,MAAM,CACZ,KAAmC;QAEnC,OAAO,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -3,6 +3,7 @@ import { SimSqsEventSourceQueues } from "../../lambda/event-source/queue/sim-sqs
3
3
  import { SimEcrLambdaContainerImages } from "../../lambda/function/code/image/sim-ecr-lambda-container-images.js";
4
4
  import { SimS3LambdaCodeStore } from "../../lambda/function/code/store/sim-s3-lambda-code-store.js";
5
5
  import { SimSdkLambdaVmModuleProvider } from "../../lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.js";
6
+ import type { SimLambdaOutboundHttp } from "../../lambda/function/outbound/sim-lambda-outbound-http.js";
6
7
  import type { SimLambdaUrlRegistry } from "../../lambda/registry/sim-lambda-url-registry.js";
7
8
  import type { SimLogsServiceWriter } from "../../logs/write/sim-logs-service-writer.js";
8
9
  import type { SimAwsScopedServiceRegistries } from "./sim-aws-scoped-service-registries.js";
@@ -25,6 +26,7 @@ interface SimAwsLambdaCollaborators {
25
26
  readonly eventSourceQueues: SimSqsEventSourceQueues;
26
27
  readonly eventSourceStreams: SimDynamoDbEventSourceStreams;
27
28
  readonly vmSdkModuleProvider: SimSdkLambdaVmModuleProvider;
29
+ readonly outboundHttp: SimLambdaOutboundHttp;
28
30
  readonly logs: SimLogsServiceWriter;
29
31
  }
30
32
  /**
@@ -47,6 +49,12 @@ interface SimAwsLambdaCollaborators {
47
49
  * Handler output is recorded to the same Account/Region scope's simulated
48
50
  * CloudWatch Logs, since that is where `/aws/lambda/<name>` lives for a
49
51
  * function in this scope.
52
+ *
53
+ * The HTTP requests function code makes are answered by this whole SimAws
54
+ * rather than by this scope, because a hostname says which Account and Region
55
+ * serves it: an AWS API request carries the Region it was signed for, and
56
+ * every other hostname is resolved by simulated Route53, which is
57
+ * simulation-wide.
50
58
  */
51
59
  export declare function simAwsLambdaCollaborators(properties: SimAwsLambdaCollaboratorsProperties): SimAwsLambdaCollaborators;
52
60
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"sim-aws-lambda-collaborators.d.ts","sourceRoot":"","sources":["../../../../src/service/aws/factory/sim-aws-lambda-collaborators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gEAAgE,CAAC;AACzG,OAAO,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AACpG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AACtH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;CACpD;AAED;;GAEG;AACH,UAAU,yBAAyB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;IACpD,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,CAAC;IAC3D,QAAQ,CAAC,mBAAmB,EAAE,4BAA4B,CAAC;IAC3D,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,mCAAmC,GAC9C,yBAAyB,CAoB3B"}
1
+ {"version":3,"file":"sim-aws-lambda-collaborators.d.ts","sourceRoot":"","sources":["../../../../src/service/aws/factory/sim-aws-lambda-collaborators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gEAAgE,CAAC;AACzG,OAAO,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AACpG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAEtH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;CACpD;AAED;;GAEG;AACH,UAAU,yBAAyB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;IACpD,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,CAAC;IAC3D,QAAQ,CAAC,mBAAmB,EAAE,4BAA4B,CAAC;IAC3D,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,mCAAmC,GAC9C,yBAAyB,CA0B3B"}
@@ -3,6 +3,7 @@ import { SimSqsEventSourceQueues } from "../../lambda/event-source/queue/sim-sqs
3
3
  import { SimEcrLambdaContainerImages } from "../../lambda/function/code/image/sim-ecr-lambda-container-images.js";
4
4
  import { SimS3LambdaCodeStore } from "../../lambda/function/code/store/sim-s3-lambda-code-store.js";
5
5
  import { SimSdkLambdaVmModuleProvider } from "../../lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.js";
6
+ import { makeSimLambdaOutboundHttp } from "../../lambda/function/outbound/sim-lambda-outbound-http.factory.js";
6
7
  /**
7
8
  * Build the collaborators simulated Lambda takes beyond the scoped ones every
8
9
  * service gets.
@@ -23,10 +24,21 @@ import { SimSdkLambdaVmModuleProvider } from "../../lambda/function/code/vm/sdk/
23
24
  * Handler output is recorded to the same Account/Region scope's simulated
24
25
  * CloudWatch Logs, since that is where `/aws/lambda/<name>` lives for a
25
26
  * function in this scope.
27
+ *
28
+ * The HTTP requests function code makes are answered by this whole SimAws
29
+ * rather than by this scope, because a hostname says which Account and Region
30
+ * serves it: an AWS API request carries the Region it was signed for, and
31
+ * every other hostname is resolved by simulated Route53, which is
32
+ * simulation-wide.
26
33
  */
27
34
  export function simAwsLambdaCollaborators(properties) {
28
35
  const { simAws, scope } = properties;
36
+ const outboundHttp = makeSimLambdaOutboundHttp({
37
+ simAws,
38
+ regionName: scope.accountRegionScope.regionName,
39
+ });
29
40
  return {
41
+ outboundHttp,
30
42
  runAsOwner: simAws,
31
43
  logs: scope.logs().serviceWriter(),
32
44
  urlRegistry: properties.urlRegistry,
@@ -41,6 +53,7 @@ export function simAwsLambdaCollaborators(properties) {
41
53
  vmSdkModuleProvider: new SimSdkLambdaVmModuleProvider({
42
54
  simAws,
43
55
  regionName: scope.accountRegionScope.regionName,
56
+ outboundHttp,
44
57
  }),
45
58
  };
46
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-aws-lambda-collaborators.js","sourceRoot":"","sources":["../../../../src/service/aws/factory/sim-aws-lambda-collaborators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gEAAgE,CAAC;AACzG,OAAO,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AACpG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AA4BtH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAA+C;IAE/C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;IAErC,OAAO;QACL,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;QAClC,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,SAAS,EAAE,IAAI,oBAAoB,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACvD,eAAe,EAAE,IAAI,2BAA2B,CAAC;YAC/C,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG;SACxC,CAAC;QACF,iBAAiB,EAAE,IAAI,uBAAuB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QACpE,kBAAkB,EAAE,IAAI,6BAA6B,CAAC;YACpD,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;SAC3B,CAAC;QACF,mBAAmB,EAAE,IAAI,4BAA4B,CAAC;YACpD,MAAM;YACN,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,UAAU;SAChD,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sim-aws-lambda-collaborators.js","sourceRoot":"","sources":["../../../../src/service/aws/factory/sim-aws-lambda-collaborators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gEAAgE,CAAC;AACzG,OAAO,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AACpG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AACtH,OAAO,EAAE,yBAAyB,EAAE,MAAM,oEAAoE,CAAC;AA8B/G;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAA+C;IAE/C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;IACrC,MAAM,YAAY,GAAG,yBAAyB,CAAC;QAC7C,MAAM;QACN,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,UAAU;KAChD,CAAC,CAAC;IAEH,OAAO;QACL,YAAY;QACZ,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;QAClC,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,SAAS,EAAE,IAAI,oBAAoB,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACvD,eAAe,EAAE,IAAI,2BAA2B,CAAC;YAC/C,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG;SACxC,CAAC;QACF,iBAAiB,EAAE,IAAI,uBAAuB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QACpE,kBAAkB,EAAE,IAAI,6BAA6B,CAAC;YACpD,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;SAC3B,CAAC;QACF,mBAAmB,EAAE,IAAI,4BAA4B,CAAC;YACpD,MAAM;YACN,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,UAAU;YAC/C,YAAY;SACb,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -3,8 +3,9 @@ interface SimCfCustomOriginRequestProperties {
3
3
  readonly originPath: string;
4
4
  readonly request: Request;
5
5
  /**
6
- * Headers stating who the Origin request is from, which an Origin whose
7
- * origin access control signs carries and an anonymous one does not.
6
+ * Headers stating who the Origin request is from and what its signature
7
+ * covers, which an Origin whose origin access control signs carries and an
8
+ * anonymous one does not.
8
9
  */
9
10
  readonly signingHeaders?: Readonly<Record<string, string>> | undefined;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-custom-origin-request.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-custom-origin-request.ts"],"names":[],"mappings":"AAGA,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,kCAAkC,GAC7C,OAAO,CAuCT"}
1
+ {"version":3,"file":"sim-cf-custom-origin-request.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-custom-origin-request.ts"],"names":[],"mappings":"AAGA,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,kCAAkC,GAC7C,OAAO,CAuCT"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-custom-origin-request.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-custom-origin-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAa5F;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAA8C;IAE9C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC;QACnC,KAAK,EAAE,WAAW,UAAU,CAAC,UAAU,EAAE;KAC1C,CAAC,CAAC,KAAK,EAAE,CAAC;IACX,SAAS,CAAC,QAAQ,GAAG,iBAAiB,CACpC,UAAU,CAAC,UAAU,EACrB,SAAS,CAAC,QAAQ,CACnB,CAAC;IACF,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAEpC,6EAA6E;IAC7E,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,0DAA0D;IAC1D,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAEvE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACjD,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,UAAkB,EAAE,UAAkB;IAC/D,OAAO,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"sim-cf-custom-origin-request.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-custom-origin-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAc5F;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAA8C;IAE9C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC;QACnC,KAAK,EAAE,WAAW,UAAU,CAAC,UAAU,EAAE;KAC1C,CAAC,CAAC,KAAK,EAAE,CAAC;IACX,SAAS,CAAC,QAAQ,GAAG,iBAAiB,CACpC,UAAU,CAAC,UAAU,EACrB,SAAS,CAAC,QAAQ,CACnB,CAAC;IACF,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAEpC,6EAA6E;IAC7E,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,0DAA0D;IAC1D,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAEvE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACjD,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,UAAkB,EAAE,UAAkB;IAC/D,OAAO,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC"}
@@ -14,6 +14,9 @@ import type { SimCloudFrontOriginRequest } from "../sim-cloudfront-request-respo
14
14
  * the same way anything else calling into simulated AWS in process says who it
15
15
  * is.
16
16
  *
17
+ * The payload hash a real signature covers is stated as itself, since it is
18
+ * the one part of a signature an Origin turns a request away over.
19
+ *
17
20
  * Which Distribution the request belongs to is only known per request, so this
18
21
  * answers per fetch rather than when the Origin is built.
19
22
  */
@@ -21,8 +24,8 @@ export declare class SimCfCustomOriginSigner {
21
24
  private readonly originAccessControl;
22
25
  constructor(originAccessControl?: SimCloudFrontOriginAccessControl);
23
26
  /**
24
- * The headers stating who one Origin request is from, which are none when the
25
- * Origin is reached anonymously.
27
+ * The headers stating who one Origin request is from and what its signature
28
+ * covers, which are none when the Origin is reached anonymously.
26
29
  */
27
30
  forRequest(request: SimCloudFrontOriginRequest): Record<string, string>;
28
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-custom-origin-signer.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6DAA6D,CAAC;AAEpH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAExF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAEtB;IAEd,YAAY,mBAAmB,CAAC,EAAE,gCAAgC,EAEjE;IAED;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAetE;CACF"}
1
+ {"version":3,"file":"sim-cf-custom-origin-signer.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6DAA6D,CAAC;AAEpH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAYxF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAEtB;IAEd,YAAY,mBAAmB,CAAC,EAAE,gCAAgC,EAEjE;IAED;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBtE;CACF"}
@@ -1,7 +1,17 @@
1
1
  import { simAwsCallerHeaderName, simAwsCallerHeaderValue, } from "../../../iam/request/sim-aws-caller-header.js";
2
2
  import { simAwsSourceAccountHeaderName, simAwsSourceArnHeaderName, } from "../../../iam/request/sim-aws-request-source.js";
3
+ import { simIamSigV4ContentSha256Header, simIamSigV4UnsignedPayload, } from "../../../iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js";
3
4
  import { simCloudFrontDistributionArn } from "../../distribution/sim-cf-distribution-view.js";
4
5
  import { simCloudFrontServicePrincipal } from "../../sim-cloudfront-service-principal.js";
6
+ /**
7
+ * The viewer methods CloudFront has a body to hash for.
8
+ *
9
+ * These are the two AWS names on the Function URL Origin documentation, and
10
+ * the two a viewer sends a body with in practice. Anything else is left alone
11
+ * rather than guessed at, since refusing a method real CloudFront lets through
12
+ * would be the more expensive mistake.
13
+ */
14
+ const bodyCarryingMethods = new Set(["POST", "PUT"]);
5
15
  /**
6
16
  * Who a CloudFront custom Origin is reached as.
7
17
  *
@@ -16,6 +26,9 @@ import { simCloudFrontServicePrincipal } from "../../sim-cloudfront-service-prin
16
26
  * the same way anything else calling into simulated AWS in process says who it
17
27
  * is.
18
28
  *
29
+ * The payload hash a real signature covers is stated as itself, since it is
30
+ * the one part of a signature an Origin turns a request away over.
31
+ *
19
32
  * Which Distribution the request belongs to is only known per request, so this
20
33
  * answers per fetch rather than when the Origin is built.
21
34
  */
@@ -25,8 +38,8 @@ export class SimCfCustomOriginSigner {
25
38
  this.originAccessControl = originAccessControl;
26
39
  }
27
40
  /**
28
- * The headers stating who one Origin request is from, which are none when the
29
- * Origin is reached anonymously.
41
+ * The headers stating who one Origin request is from and what its signature
42
+ * covers, which are none when the Origin is reached anonymously.
30
43
  */
31
44
  forRequest(request) {
32
45
  if (this.originAccessControl?.signs !== true) {
@@ -39,7 +52,30 @@ export class SimCfCustomOriginSigner {
39
52
  }),
40
53
  [simAwsSourceArnHeaderName]: simCloudFrontDistributionArn(request.distribution),
41
54
  [simAwsSourceAccountHeaderName]: request.distribution.accountId,
55
+ ...payloadDeclaration(request.req),
42
56
  };
43
57
  }
44
58
  }
59
+ /**
60
+ * What the signature says the Origin request body hashes to.
61
+ *
62
+ * CloudFront streams the viewer's body on to the Origin rather than buffering
63
+ * it, so it has no hash of its own to sign with. It signs the viewer's
64
+ * `x-amz-content-sha256` when the viewer sent one, and `UNSIGNED-PAYLOAD` when
65
+ * it did not. A Lambda Function URL does not accept an unsigned payload, so a
66
+ * POST or PUT that carried no hash through a signing origin access control is
67
+ * refused at the Origin, which is what real CloudFront and Lambda do with one.
68
+ *
69
+ * A viewer's own header travels with the rest of its headers, so nothing is
70
+ * stated for it here.
71
+ *
72
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-lambda.html
73
+ */
74
+ function payloadDeclaration(viewerRequest) {
75
+ if (!bodyCarryingMethods.has(viewerRequest.method.toUpperCase()) ||
76
+ viewerRequest.headers.has(simIamSigV4ContentSha256Header)) {
77
+ return {};
78
+ }
79
+ return { [simIamSigV4ContentSha256Header]: simIamSigV4UnsignedPayload };
80
+ }
45
81
  //# sourceMappingURL=sim-cf-custom-origin-signer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-custom-origin-signer.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAE9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAG1F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,uBAAuB;IACjB,mBAAmB,CAEtB;IAEd,YAAY,mBAAsD;QAChE,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAAmC;QAC5C,IAAI,IAAI,CAAC,mBAAmB,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,CAAC,sBAAsB,CAAC,EAAE,uBAAuB,CAAC;gBAChD,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,6BAA6B;aACvC,CAAC;YACF,CAAC,yBAAyB,CAAC,EAAE,4BAA4B,CACvD,OAAO,CAAC,YAAY,CACrB;YACD,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,SAAS;SAChE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cf-custom-origin-signer.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,4DAA4D,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAE9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAG1F;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,uBAAuB;IACjB,mBAAmB,CAEtB;IAEd,YAAY,mBAAsD;QAChE,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAAmC;QAC5C,IAAI,IAAI,CAAC,mBAAmB,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,CAAC,sBAAsB,CAAC,EAAE,uBAAuB,CAAC;gBAChD,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,6BAA6B;aACvC,CAAC;YACF,CAAC,yBAAyB,CAAC,EAAE,4BAA4B,CACvD,OAAO,CAAC,YAAY,CACrB;YACD,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,SAAS;YAC/D,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC;SACnC,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,kBAAkB,CAAC,aAAsB;IAChD,IACE,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5D,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,EACzD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,EAAE,CAAC,8BAA8B,CAAC,EAAE,0BAA0B,EAAE,CAAC;AAC1E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-function-url-origin-template.factory.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-function-url-origin-template.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EACL,KAAK,mCAAmC,EAEzC,MAAM,2CAA2C,CAAC;AAanD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAUlC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qCAAqC,sFAmFjD,CAAC"}
1
+ {"version":3,"file":"sim-cf-function-url-origin-template.factory.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-function-url-origin-template.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EACL,KAAK,mCAAmC,EAEzC,MAAM,2CAA2C,CAAC;AAanD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAUlC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qCAAqC,sFAsFjD,CAAC"}
@@ -60,8 +60,11 @@ export const simCfFunctionUrlOriginTemplateFactory = new MappedFactory(() => ({
60
60
  FunctionName: "greeter",
61
61
  Role: { "Fn::GetAtt": ["GreeterRole", "Arn"] },
62
62
  Code: {
63
- ZipFile: "exports.handler = async () => " +
64
- "({ statusCode: 200, body: 'Hello from behind CloudFront' });",
63
+ // The handler answers with whatever it was sent, so a test about a
64
+ // request with a body can see that the body reached it, and one
65
+ // about a request without stays as readable as it was.
66
+ ZipFile: "exports.handler = async (event) => ({ statusCode: 200, " +
67
+ "body: event.body ?? 'Hello from behind CloudFront' });",
65
68
  },
66
69
  Handler: "index.handler",
67
70
  Runtime: "nodejs22.x",
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-function-url-origin-template.factory.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-function-url-origin-template.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cf-function-url-origin-template.factory.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/origin/custom/sim-cf-function-url-origin-template.factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cognito-password-sign-in.d.ts","sourceRoot":"","sources":["../../../../../src/service/cognito/command/auth/sim-cognito-password-sign-in.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAEnF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AAC5G,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAExE,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACxE;AAED;;;;;;;;GAQG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,YAAY,UAAU,EAAE,kCAAkC,EAKzD;IAED;;;;;;;;;;;;OAYG;IACG,MAAM,CACV,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,8BAA8B,CAAC,CAiCzC;CACF"}
1
+ {"version":3,"file":"sim-cognito-password-sign-in.d.ts","sourceRoot":"","sources":["../../../../../src/service/cognito/command/auth/sim-cognito-password-sign-in.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAEnF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AAC5G,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAExE,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACxE;AAED;;;;;;;;GAQG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,YAAY,UAAU,EAAE,kCAAkC,EAKzD;IAED;;;;;;;;;;;;OAYG;IACG,MAAM,CACV,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,8BAA8B,CAAC,CAkCzC;CACF"}
@@ -1,4 +1,4 @@
1
- import { requireSimCognitoConfirmed, requireSimCognitoSignIn, requireSimCognitoSignInUser, } from "../../user-pool/auth/sim-cognito-sign-in.js";
1
+ import { requireSimCognitoConfirmed, requireSimCognitoPasswordSet, requireSimCognitoSignIn, requireSimCognitoSignInUser, } from "../../user-pool/auth/sim-cognito-sign-in.js";
2
2
  import { SimCognitoTriggerOccasion } from "../../user-pool/trigger/sim-cognito-trigger-occasion.js";
3
3
  /**
4
4
  * Signing a user in with a username and password.
@@ -45,6 +45,7 @@ export class SimCognitoPasswordSignIn {
45
45
  });
46
46
  requireSimCognitoSignIn(user, parameters.require("PASSWORD"));
47
47
  requireSimCognitoConfirmed(user);
48
+ requireSimCognitoPasswordSet(user);
48
49
  if (user.status.mustChangePassword) {
49
50
  return this.challenge.issue({ pool, clientId: client.id, user });
50
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cognito-password-sign-in.js","sourceRoot":"","sources":["../../../../../src/service/cognito/command/auth/sim-cognito-password-sign-in.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AA8BpG;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAClB,YAAY,CAAyB;IACrC,UAAU,CAA6B;IACvC,SAAS,CAAiC;IAC1C,QAAQ,CAA6B;IAEtD,YAAY,UAA8C;QACxD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,CACV,OAA8B;QAE9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEjE,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACpC,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,cAAc;SACf,CAAC,CAAC;QAEH,uBAAuB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9D,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,uEAAuE;QACvE,6DAA6D;QAC7D,4BAA4B;QAC5B,EAAE;QACF,yEAAyE;QACzE,uEAAuE;QACvE,8CAA8C;QAC9C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAC/C,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,QAAQ,EAAE,yBAAyB,CAAC,eAAe;YACnD,cAAc;SACf,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cognito-password-sign-in.js","sourceRoot":"","sources":["../../../../../src/service/cognito/command/auth/sim-cognito-password-sign-in.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AA8BpG;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAClB,YAAY,CAAyB;IACrC,UAAU,CAA6B;IACvC,SAAS,CAAiC;IAC1C,QAAQ,CAA6B;IAEtD,YAAY,UAA8C;QACxD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,CACV,OAA8B;QAE9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEjE,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACpC,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,cAAc;SACf,CAAC,CAAC;QAEH,uBAAuB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9D,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,uEAAuE;QACvE,6DAA6D;QAC7D,4BAA4B;QAC5B,EAAE;QACF,yEAAyE;QACzE,uEAAuE;QACvE,8CAA8C;QAC9C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAC/C,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,QAAQ,EAAE,yBAAyB,CAAC,eAAe;YACnD,cAAc;SACf,CAAC,CAAC;IACL,CAAC;CACF"}