@kensio/yulin 1.20.1 → 1.20.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 (248) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/service/apigateway/api/sim-rest-api-lambda-proxy.factory.d.ts +2 -5
  6. package/dist/service/apigateway/api/sim-rest-api-lambda-proxy.factory.d.ts.map +1 -1
  7. package/dist/service/apigateway/api/sim-rest-api-lambda-proxy.factory.js +3 -7
  8. package/dist/service/apigateway/api/sim-rest-api-lambda-proxy.factory.js.map +1 -1
  9. package/dist/service/apigateway/api/sim-rest-api-proxy-stage.d.ts +22 -0
  10. package/dist/service/apigateway/api/sim-rest-api-proxy-stage.d.ts.map +1 -0
  11. package/dist/service/apigateway/api/sim-rest-api-proxy-stage.js +31 -0
  12. package/dist/service/apigateway/api/sim-rest-api-proxy-stage.js.map +1 -0
  13. package/dist/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.d.ts +19 -0
  14. package/dist/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.d.ts.map +1 -0
  15. package/dist/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.js +2 -0
  16. package/dist/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.js.map +1 -0
  17. package/dist/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.d.ts +43 -0
  18. package/dist/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.d.ts.map +1 -0
  19. package/dist/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.js +75 -0
  20. package/dist/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.js.map +1 -0
  21. package/dist/service/apigateway/api/stage/sim-rest-api-stage.d.ts +19 -0
  22. package/dist/service/apigateway/api/stage/sim-rest-api-stage.d.ts.map +1 -1
  23. package/dist/service/apigateway/api/stage/sim-rest-api-stage.js +22 -0
  24. package/dist/service/apigateway/api/stage/sim-rest-api-stage.js.map +1 -1
  25. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.d.ts +33 -0
  26. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.d.ts.map +1 -0
  27. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.js +69 -0
  28. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.js.map +1 -0
  29. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.d.ts +4 -1
  30. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.d.ts.map +1 -1
  31. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.js +13 -4
  32. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.js.map +1 -1
  33. package/dist/service/apigateway/command/sim-api-gateway-unsimulated-input.d.ts +6 -1
  34. package/dist/service/apigateway/command/sim-api-gateway-unsimulated-input.d.ts.map +1 -1
  35. package/dist/service/apigateway/command/sim-api-gateway-unsimulated-input.js +8 -3
  36. package/dist/service/apigateway/command/sim-api-gateway-unsimulated-input.js.map +1 -1
  37. package/dist/service/apigateway/command/stage/sim-rest-api-stage-commands.d.ts.map +1 -1
  38. package/dist/service/apigateway/command/stage/sim-rest-api-stage-commands.js +4 -0
  39. package/dist/service/apigateway/command/stage/sim-rest-api-stage-commands.js.map +1 -1
  40. package/dist/service/apigateway/command/stage/sim-rest-api-stage-method-settings-input.d.ts +18 -0
  41. package/dist/service/apigateway/command/stage/sim-rest-api-stage-method-settings-input.d.ts.map +1 -0
  42. package/dist/service/apigateway/command/stage/sim-rest-api-stage-method-settings-input.js +42 -0
  43. package/dist/service/apigateway/command/stage/sim-rest-api-stage-method-settings-input.js.map +1 -0
  44. package/dist/service/apigateway/command/stage/sim-rest-api-stage-publisher.d.ts +9 -0
  45. package/dist/service/apigateway/command/stage/sim-rest-api-stage-publisher.d.ts.map +1 -1
  46. package/dist/service/apigateway/command/stage/sim-rest-api-stage-publisher.js +17 -0
  47. package/dist/service/apigateway/command/stage/sim-rest-api-stage-publisher.js.map +1 -1
  48. package/dist/service/apigateway/command/stage/stage.command.d.ts +11 -0
  49. package/dist/service/apigateway/command/stage/stage.command.d.ts.map +1 -1
  50. package/dist/service/apigateway/index.d.ts +2 -0
  51. package/dist/service/apigateway/index.d.ts.map +1 -1
  52. package/dist/service/apigateway/index.js +1 -0
  53. package/dist/service/apigateway/index.js.map +1 -1
  54. package/dist/service/apigateway/serve/sim-api-gateway-controller.d.ts +4 -1
  55. package/dist/service/apigateway/serve/sim-api-gateway-controller.d.ts.map +1 -1
  56. package/dist/service/apigateway/serve/sim-api-gateway-controller.js +10 -1
  57. package/dist/service/apigateway/serve/sim-api-gateway-controller.js.map +1 -1
  58. package/dist/service/apigateway/serve/sim-api-gateway-error-response.d.ts +8 -0
  59. package/dist/service/apigateway/serve/sim-api-gateway-error-response.d.ts.map +1 -1
  60. package/dist/service/apigateway/serve/sim-api-gateway-error-response.js +10 -0
  61. package/dist/service/apigateway/serve/sim-api-gateway-error-response.js.map +1 -1
  62. package/dist/service/apigatewayv2/api/sim-http-api-lambda-proxy.factory.d.ts +5 -0
  63. package/dist/service/apigatewayv2/api/sim-http-api-lambda-proxy.factory.d.ts.map +1 -1
  64. package/dist/service/apigatewayv2/api/sim-http-api-lambda-proxy.factory.js +4 -0
  65. package/dist/service/apigatewayv2/api/sim-http-api-lambda-proxy.factory.js.map +1 -1
  66. package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-route-settings.type.d.ts +24 -0
  67. package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-route-settings.type.d.ts.map +1 -0
  68. package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-route-settings.type.js +2 -0
  69. package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-route-settings.type.js.map +1 -0
  70. package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-stage-route-settings.d.ts +39 -0
  71. package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-stage-route-settings.d.ts.map +1 -0
  72. package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-stage-route-settings.js +74 -0
  73. package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-stage-route-settings.js.map +1 -0
  74. package/dist/service/apigatewayv2/api/stage/sim-http-api-stage.d.ts +16 -1
  75. package/dist/service/apigatewayv2/api/stage/sim-http-api-stage.d.ts.map +1 -1
  76. package/dist/service/apigatewayv2/api/stage/sim-http-api-stage.js +16 -0
  77. package/dist/service/apigatewayv2/api/stage/sim-http-api-stage.js.map +1 -1
  78. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-route-settings-properties.d.ts +30 -0
  79. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-route-settings-properties.d.ts.map +1 -0
  80. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-route-settings-properties.js +67 -0
  81. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-route-settings-properties.js.map +1 -0
  82. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-properties.d.ts +3 -1
  83. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-properties.d.ts.map +1 -1
  84. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-properties.js +16 -5
  85. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-properties.js.map +1 -1
  86. package/dist/service/apigatewayv2/command/sim-api-gateway-v2-unsimulated-input.d.ts +6 -1
  87. package/dist/service/apigatewayv2/command/sim-api-gateway-v2-unsimulated-input.d.ts.map +1 -1
  88. package/dist/service/apigatewayv2/command/sim-api-gateway-v2-unsimulated-input.js +8 -3
  89. package/dist/service/apigatewayv2/command/sim-api-gateway-v2-unsimulated-input.js.map +1 -1
  90. package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-commands.d.ts.map +1 -1
  91. package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-commands.js +8 -0
  92. package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-commands.js.map +1 -1
  93. package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-route-settings-input.d.ts +18 -0
  94. package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-route-settings-input.d.ts.map +1 -0
  95. package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-route-settings-input.js +32 -0
  96. package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-route-settings-input.js.map +1 -0
  97. package/dist/service/apigatewayv2/command/stage/stage.command.d.ts +3 -0
  98. package/dist/service/apigatewayv2/command/stage/stage.command.d.ts.map +1 -1
  99. package/dist/service/apigatewayv2/index.d.ts +2 -0
  100. package/dist/service/apigatewayv2/index.d.ts.map +1 -1
  101. package/dist/service/apigatewayv2/index.js +1 -0
  102. package/dist/service/apigatewayv2/index.js.map +1 -1
  103. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-controller.d.ts +4 -1
  104. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-controller.d.ts.map +1 -1
  105. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-controller.js +11 -2
  106. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-controller.js.map +1 -1
  107. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-error-response.d.ts +8 -0
  108. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-error-response.d.ts.map +1 -1
  109. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-error-response.js +10 -0
  110. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-error-response.js.map +1 -1
  111. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
  112. package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -0
  113. package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
  114. package/dist/service/cloudformation/template/node/fn/join/sim-cfn-fn-join.d.ts +7 -0
  115. package/dist/service/cloudformation/template/node/fn/join/sim-cfn-fn-join.d.ts.map +1 -1
  116. package/dist/service/cloudformation/template/node/fn/join/sim-cfn-fn-join.js +9 -1
  117. package/dist/service/cloudformation/template/node/fn/join/sim-cfn-fn-join.js.map +1 -1
  118. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +5 -0
  119. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts.map +1 -1
  120. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.js.map +1 -1
  121. package/dist/service/cloudfront/cff/sim-cff-arn.d.ts +13 -0
  122. package/dist/service/cloudfront/cff/sim-cff-arn.d.ts.map +1 -0
  123. package/dist/service/cloudfront/cff/sim-cff-arn.js +18 -0
  124. package/dist/service/cloudfront/cff/sim-cff-arn.js.map +1 -0
  125. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +16 -0
  126. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts.map +1 -1
  127. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +3 -0
  128. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  129. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +11 -4
  130. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  131. package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.d.ts.map +1 -1
  132. package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.js +1 -0
  133. package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.js.map +1 -1
  134. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +3 -0
  135. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts.map +1 -1
  136. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.js +9 -2
  137. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.js.map +1 -1
  138. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +3 -0
  139. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts.map +1 -1
  140. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +6 -0
  141. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js.map +1 -1
  142. package/dist/service/cloudfront/controller/edge/sim-lambda-edge-applicator.d.ts +48 -0
  143. package/dist/service/cloudfront/controller/edge/sim-lambda-edge-applicator.d.ts.map +1 -0
  144. package/dist/service/cloudfront/controller/edge/sim-lambda-edge-applicator.js +66 -0
  145. package/dist/service/cloudfront/controller/edge/sim-lambda-edge-applicator.js.map +1 -0
  146. package/dist/service/cloudfront/controller/edge/sim-lambda-edge-distribution.d.ts +11 -0
  147. package/dist/service/cloudfront/controller/edge/sim-lambda-edge-distribution.d.ts.map +1 -0
  148. package/dist/service/cloudfront/controller/edge/sim-lambda-edge-distribution.js +14 -0
  149. package/dist/service/cloudfront/controller/edge/sim-lambda-edge-distribution.js.map +1 -0
  150. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +5 -0
  151. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts.map +1 -1
  152. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +16 -1
  153. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js.map +1 -1
  154. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts.map +1 -1
  155. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +2 -0
  156. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js.map +1 -1
  157. package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +5 -2
  158. package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts.map +1 -1
  159. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-body.d.ts +24 -0
  160. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-body.d.ts.map +1 -0
  161. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-body.js +51 -0
  162. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-body.js.map +1 -0
  163. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-event-adapter.d.ts +41 -0
  164. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-event-adapter.d.ts.map +1 -0
  165. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-event-adapter.js +78 -0
  166. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-event-adapter.js.map +1 -0
  167. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-headers.d.ts +20 -0
  168. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-headers.d.ts.map +1 -0
  169. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-headers.js +55 -0
  170. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-headers.js.map +1 -0
  171. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-request-adapter.d.ts +30 -0
  172. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-request-adapter.d.ts.map +1 -0
  173. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-request-adapter.js +90 -0
  174. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-request-adapter.js.map +1 -0
  175. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-response-adapter.d.ts +26 -0
  176. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-response-adapter.d.ts.map +1 -0
  177. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-response-adapter.js +47 -0
  178. package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-response-adapter.js.map +1 -0
  179. package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.d.ts +44 -0
  180. package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.d.ts.map +1 -0
  181. package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.js +89 -0
  182. package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.js.map +1 -0
  183. package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.d.ts +7 -0
  184. package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.d.ts.map +1 -0
  185. package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.js +27 -0
  186. package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.js.map +1 -0
  187. package/dist/service/cloudfront/edge/sim-cf-edge-association-checks.d.ts +47 -0
  188. package/dist/service/cloudfront/edge/sim-cf-edge-association-checks.d.ts.map +1 -0
  189. package/dist/service/cloudfront/edge/sim-cf-edge-association-checks.js +71 -0
  190. package/dist/service/cloudfront/edge/sim-cf-edge-association-checks.js.map +1 -0
  191. package/dist/service/cloudfront/edge/sim-cf-edge-association-validator.d.ts +36 -0
  192. package/dist/service/cloudfront/edge/sim-cf-edge-association-validator.d.ts.map +1 -0
  193. package/dist/service/cloudfront/edge/sim-cf-edge-association-validator.js +79 -0
  194. package/dist/service/cloudfront/edge/sim-cf-edge-association-validator.js.map +1 -0
  195. package/dist/service/cloudfront/edge/sim-cf-edge-association.d.ts +23 -0
  196. package/dist/service/cloudfront/edge/sim-cf-edge-association.d.ts.map +1 -0
  197. package/dist/service/cloudfront/edge/sim-cf-edge-association.js +2 -0
  198. package/dist/service/cloudfront/edge/sim-cf-edge-association.js.map +1 -0
  199. package/dist/service/cloudfront/edge/sim-cf-edge-associations-configure.d.ts +14 -0
  200. package/dist/service/cloudfront/edge/sim-cf-edge-associations-configure.d.ts.map +1 -0
  201. package/dist/service/cloudfront/edge/sim-cf-edge-associations-configure.js +36 -0
  202. package/dist/service/cloudfront/edge/sim-cf-edge-associations-configure.js.map +1 -0
  203. package/dist/service/cloudfront/edge/sim-cf-edge-function-arn.d.ts +18 -0
  204. package/dist/service/cloudfront/edge/sim-cf-edge-function-arn.d.ts.map +1 -0
  205. package/dist/service/cloudfront/edge/sim-cf-edge-function-arn.js +47 -0
  206. package/dist/service/cloudfront/edge/sim-cf-edge-function-arn.js.map +1 -0
  207. package/dist/service/cloudfront/edge/sim-cf-edge-functions.d.ts +25 -0
  208. package/dist/service/cloudfront/edge/sim-cf-edge-functions.d.ts.map +1 -0
  209. package/dist/service/cloudfront/edge/sim-cf-edge-functions.js +2 -0
  210. package/dist/service/cloudfront/edge/sim-cf-edge-functions.js.map +1 -0
  211. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +13 -0
  212. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
  213. package/dist/service/cloudfront/error/sim-cloudfront.error.js +15 -0
  214. package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
  215. package/dist/service/cloudfront/index.d.ts +1 -0
  216. package/dist/service/cloudfront/index.d.ts.map +1 -1
  217. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +10 -0
  218. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts.map +1 -1
  219. package/dist/service/cloudfront/sim-cloudfront-commands.js +10 -1
  220. package/dist/service/cloudfront/sim-cloudfront-commands.js.map +1 -1
  221. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  222. package/dist/service/cloudfront/sim-cloudfront.js +3 -8
  223. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  224. package/dist/service/cloudfront/typings/lambda-at-edge.namespace.d.ts +91 -0
  225. package/dist/service/cloudfront/typings/lambda-at-edge.namespace.d.ts.map +1 -0
  226. package/dist/service/cloudfront/typings/lambda-at-edge.namespace.js +2 -0
  227. package/dist/service/cloudfront/typings/lambda-at-edge.namespace.js.map +1 -0
  228. package/dist/service/lambda/function/environment/sim-lambda-environment.d.ts +22 -20
  229. package/dist/service/lambda/function/environment/sim-lambda-environment.d.ts.map +1 -1
  230. package/dist/service/lambda/function/environment/sim-lambda-environment.js +27 -29
  231. package/dist/service/lambda/function/environment/sim-lambda-environment.js.map +1 -1
  232. package/dist/service/lambda/function/environment/sim-lambda-host-backed-variables.d.ts +28 -0
  233. package/dist/service/lambda/function/environment/sim-lambda-host-backed-variables.d.ts.map +1 -0
  234. package/dist/service/lambda/function/environment/sim-lambda-host-backed-variables.js +49 -0
  235. package/dist/service/lambda/function/environment/sim-lambda-host-backed-variables.js.map +1 -0
  236. package/dist/service/lambda/function/environment/sim-lambda-runtime-variables.d.ts +18 -0
  237. package/dist/service/lambda/function/environment/sim-lambda-runtime-variables.d.ts.map +1 -0
  238. package/dist/service/lambda/function/environment/sim-lambda-runtime-variables.js +23 -0
  239. package/dist/service/lambda/function/environment/sim-lambda-runtime-variables.js.map +1 -0
  240. package/dist/util/process/sim-process-environment.d.ts +9 -0
  241. package/dist/util/process/sim-process-environment.d.ts.map +1 -1
  242. package/dist/util/process/sim-process-environment.js +17 -0
  243. package/dist/util/process/sim-process-environment.js.map +1 -1
  244. package/dist/util/throttle/sim-token-bucket.d.ts +32 -0
  245. package/dist/util/throttle/sim-token-bucket.d.ts.map +1 -0
  246. package/dist/util/throttle/sim-token-bucket.js +53 -0
  247. package/dist/util/throttle/sim-token-bucket.js.map +1 -0
  248. package/package.json +1 -1
@@ -5,6 +5,7 @@ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
5
5
  import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
6
6
  import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
7
7
  import type { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "../../distribution/sim-cloudfront-distribution.js";
8
+ import type { SimCfEdgeFunctions } from "../../edge/sim-cf-edge-functions.js";
8
9
  import type { SimCfCustomOriginDispatcher } from "../../origin/custom/sim-cf-custom-origin-dispatcher.js";
9
10
  import type { SimCloudFrontS3OriginResolver } from "../../origin/s3/sim-cloudfront-s3-origin.js";
10
11
  import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-access-control/sim-cf-origin-access-control-registry.js";
@@ -23,6 +24,7 @@ interface UpdateDistributionCommandHandlerProperties {
23
24
  readonly webAclResolver?: SimCfWebAclResolver | undefined;
24
25
  readonly iam?: SimIamInterServiceAuthZ;
25
26
  readonly acmRegistry?: SimAcmRegistry | undefined;
27
+ readonly edgeFunctions?: SimCfEdgeFunctions | undefined;
26
28
  readonly background?: BackgroundScheduler;
27
29
  }
28
30
  interface UpdateDistributionCommandHandlerOptions {
@@ -37,6 +39,7 @@ export declare class UpdateDistributionCommandHandler implements CommandHandler<
37
39
  private readonly distributions;
38
40
  private readonly reconfigurer;
39
41
  private readonly viewerCertificateValidator;
42
+ private readonly edgeAssociationValidator;
40
43
  private readonly authorizer;
41
44
  private readonly background;
42
45
  constructor(properties: UpdateDistributionCommandHandlerProperties);
@@ -1 +1 @@
1
- {"version":3,"file":"update-distribution.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/update-distribution/update-distribution.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAGhE,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,mDAAmD,CAAC;AAG3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AAC1G,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AACjG,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,sEAAsE,CAAC;AACrI,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,0EAA0E,CAAC;AAC3I,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAGxF,OAAO,KAAK,EACV,4BAA4B,EAC5B,kCAAkC,EACnC,MAAM,kCAAkC,CAAC;AAE1C,UAAU,0CAA0C;IAClD,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,GAAG,CACzB,2BAA2B,EAC3B,yBAAyB,CAC1B,CAAC;IACF,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IACzD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAC1E,QAAQ,CAAC,oBAAoB,EAAE,wCAAwC,CAAC;IACxE,QAAQ,CAAC,uBAAuB,EAAE,0CAA0C,CAAC;IAC7E,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,UAAU,uCAAuC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,gCAAiC,YAAW,cAAc,CACrE,4BAA4B,EAC5B,kCAAkC,CACnC;IACC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IACrE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA0C;IACrF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,UAAU,EAAE,0CAA0C,EAajE;IAED;;;;;;;OAOG;IACG,MAAM,CACV,OAAO,EAAE,4BAA4B,EACrC,OAAO,CAAC,EAAE,uCAAuC,GAChD,OAAO,CAAC,kCAAkC,CAAC,CAoC7C;CACF"}
1
+ {"version":3,"file":"update-distribution.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/update-distribution/update-distribution.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAGhE,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,mDAAmD,CAAC;AAG3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AAC1G,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AACjG,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,sEAAsE,CAAC;AACrI,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,0EAA0E,CAAC;AAC3I,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAGxF,OAAO,KAAK,EACV,4BAA4B,EAC5B,kCAAkC,EACnC,MAAM,kCAAkC,CAAC;AAE1C,UAAU,0CAA0C;IAClD,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,GAAG,CACzB,2BAA2B,EAC3B,yBAAyB,CAC1B,CAAC;IACF,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IACzD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAC1E,QAAQ,CAAC,oBAAoB,EAAE,wCAAwC,CAAC;IACxE,QAAQ,CAAC,uBAAuB,EAAE,0CAA0C,CAAC;IAC7E,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,UAAU,uCAAuC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,gCAAiC,YAAW,cAAc,CACrE,4BAA4B,EAC5B,kCAAkC,CACnC;IACC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IACrE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA0C;IACrF,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAgC;IACzE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,UAAU,EAAE,0CAA0C,EAiBjE;IAED;;;;;;;OAOG;IACG,MAAM,CACV,OAAO,EAAE,4BAA4B,EACrC,OAAO,CAAC,EAAE,uCAAuC,GAChD,OAAO,CAAC,kCAAkC,CAAC,CAwC7C;CACF"}
@@ -4,6 +4,7 @@ import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-servic
4
4
  import { SimCloudFrontDistributionReconfigurer } from "../../distribution/sim-cf-distribution-reconfigurer.js";
5
5
  import { simCloudFrontDistributionView } from "../../distribution/sim-cf-distribution-view.js";
6
6
  import { SimCloudFrontViewerCertificateValidator } from "../../distribution/viewer-certificate/sim-cf-viewer-certificate-validator.js";
7
+ import { SimCfEdgeAssociationValidator } from "../../edge/sim-cf-edge-association-validator.js";
7
8
  import { SimCloudFrontNoSuchDistribution } from "../../error/sim-cloudfront.error.js";
8
9
  import { SimCloudFrontDistributionConfigNormalizer } from "../create-distribution/sim-cf-distro-config-normalizer.js";
9
10
  import { UpdateDistributionAuthorizer } from "./update-distribution-authorizer.js";
@@ -16,6 +17,7 @@ export class UpdateDistributionCommandHandler {
16
17
  distributions;
17
18
  reconfigurer;
18
19
  viewerCertificateValidator;
20
+ edgeAssociationValidator;
19
21
  authorizer;
20
22
  background;
21
23
  constructor(properties) {
@@ -24,6 +26,10 @@ export class UpdateDistributionCommandHandler {
24
26
  this.reconfigurer = new SimCloudFrontDistributionReconfigurer(properties);
25
27
  this.viewerCertificateValidator =
26
28
  new SimCloudFrontViewerCertificateValidator(properties);
29
+ this.edgeAssociationValidator = new SimCfEdgeAssociationValidator({
30
+ iam,
31
+ edgeFunctions: properties.edgeFunctions,
32
+ });
27
33
  this.authorizer = new UpdateDistributionAuthorizer({ accountId, iam });
28
34
  this.background = background;
29
35
  }
@@ -48,9 +54,10 @@ export class UpdateDistributionCommandHandler {
48
54
  if (distribution === undefined) {
49
55
  throw new SimCloudFrontNoSuchDistribution(`No sim CloudFront Distribution with ID ${distributionId}`);
50
56
  }
51
- // Reject an unusable viewer certificate before the Distribution is
52
- // touched, as CloudFront rejects the whole request.
57
+ // Reject an unusable viewer certificate or Lambda@Edge association before
58
+ // the Distribution is touched, as CloudFront rejects the whole request.
53
59
  this.viewerCertificateValidator.validate(distributionConfig);
60
+ await this.edgeAssociationValidator.validate(distributionConfig, options?.caller);
54
61
  this.reconfigurer.reconfigure(distribution, distributionConfig);
55
62
  // Schedule background task to complete deployment of the sim Distribution.
56
63
  this.background.schedule(() => distribution.completeDeployment());
@@ -1 +1 @@
1
- {"version":3,"file":"update-distribution.handler.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/update-distribution/update-distribution.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAIvE,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,MAAM,wDAAwD,CAAC;AAC/G,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAK/F,OAAO,EAAE,uCAAuC,EAAE,MAAM,8EAA8E,CAAC;AACvI,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AAOtF,OAAO,EAAE,yCAAyC,EAAE,MAAM,2DAA2D,CAAC;AACtH,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AA2BnF;;;;GAIG;AACH,MAAM,OAAO,gCAAgC;IAI1B,aAAa,CAG5B;IACe,YAAY,CAAwC;IACpD,0BAA0B,CAA0C;IACpE,UAAU,CAA+B;IACzC,UAAU,CAAsB;IAEjD,YAAY,UAAsD;QAChE,MAAM,EACJ,SAAS,EACT,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,qCAAqC,CAAC,UAAU,CAAC,CAAC;QAC1E,IAAI,CAAC,0BAA0B;YAC7B,IAAI,uCAAuC,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,4BAA4B,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,OAAqC,EACrC,OAAiD;QAEjD,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7D,aAAa,CAAC,EAAE,EAAE,oCAAoC,CAAC,CAAC;QACxD,aAAa,CAAC,MAAM,EAAE,oDAAoD,CAAC,CAAC;QAE5E,MAAM,cAAc,GAAG,EAAiC,CAAC;QACzD,MAAM,kBAAkB,GAAG,IAAI,yCAAyC,CACtE,MAAM,CACP,CAAC,SAAS,EAAE,CAAC;QAEd,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,+BAA+B,CACvC,0CAA0C,cAAc,EAAE,CAC3D,CAAC;QACJ,CAAC;QAED,mEAAmE;QACnE,oDAAoD;QACpD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAE7D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAEhE,2EAA2E;QAC3E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAElE,OAAO;YACL,YAAY,EAAE,6BAA6B,CAAC,YAAY,CAAC;YACzD,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"update-distribution.handler.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/update-distribution/update-distribution.handler.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { SimCloudFrontRegistry } from "../../registry/sim-cloud-front-regis
3
3
  import type { SimCloudFrontDistroRouter } from "../../router/sim-cloud-front-distro-router.js";
4
4
  import type { SimCloudFrontBehaviorResolver } from "../../resolver/sim-cloud-front-behavior-resolver.js";
5
5
  import { SimCffApplicator } from "../cff/sim-cff-applicator.js";
6
+ import { SimLambdaEdgeApplicator } from "../edge/sim-lambda-edge-applicator.js";
6
7
  import { SimCloudFrontOriginFetcher } from "../origin/sim-cloudfront-origin-fetcher.js";
7
8
  import { SimCfCustomErrorResponder } from "../error/sim-cf-custom-error-responder.js";
8
9
  import { SimCfResponseHeadersApplicator } from "../response-headers/sim-cf-response-headers-applicator.js";
@@ -14,6 +15,7 @@ export interface SimCloudFrontServiceControllerProperties {
14
15
  readonly webAclGuard?: SimCfWebAclGuard;
15
16
  readonly behaviourResolver?: SimCloudFrontBehaviorResolver;
16
17
  readonly cffApplicator?: SimCffApplicator;
18
+ readonly edgeApplicator?: SimLambdaEdgeApplicator;
17
19
  readonly originFetcher?: SimCloudFrontOriginFetcher;
18
20
  readonly customErrorResponder?: SimCfCustomErrorResponder;
19
21
  readonly responseHeadersApplicator?: SimCfResponseHeadersApplicator;
@@ -23,6 +25,7 @@ export interface SimCloudFrontControllerDependencies {
23
25
  readonly webAclGuard: SimCfWebAclGuard;
24
26
  readonly behaviourResolver: SimCloudFrontBehaviorResolver;
25
27
  readonly cffApplicator: SimCffApplicator;
28
+ readonly edgeApplicator: SimLambdaEdgeApplicator;
26
29
  readonly originFetcher: SimCloudFrontOriginFetcher;
27
30
  readonly customErrorResponder: SimCfCustomErrorResponder;
28
31
  readonly responseHeadersApplicator: SimCfResponseHeadersApplicator;
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-controller-dependency.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/dependency/sim-cf-controller-dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAE/F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AAEzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAGtE,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,yBAAyB,CAAC;IAC1D,QAAQ,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC;CACrE;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;IAC1D,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;IACzD,QAAQ,CAAC,yBAAyB,EAAE,8BAA8B,CAAC;CACpE;AAED;;GAEG;AACH,qBAAa,0CAA0C;IACrD;;OAEG;IACH,IAAI,CACF,UAAU,GAAE,wCAA6C,GACxD,mCAAmC,CAkCrC;CACF"}
1
+ {"version":3,"file":"sim-cf-controller-dependency.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/dependency/sim-cf-controller-dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAE/F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AAEzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAGtE,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,yBAAyB,CAAC;IAC1D,QAAQ,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC;CACrE;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;IAC1D,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjD,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;IACzD,QAAQ,CAAC,yBAAyB,EAAE,8BAA8B,CAAC;CACpE;AAED;;GAEG;AACH,qBAAa,0CAA0C;IACrD;;OAEG;IACH,IAAI,CACF,UAAU,GAAE,wCAA6C,GACxD,mCAAmC,CAuCrC;CACF"}
@@ -2,6 +2,8 @@ import { SimAws } from "../../../aws/sim-aws.js";
2
2
  import { SimCloudFrontDistroRouter as DefaultSimCloudFrontDistroRouter } from "../../router/sim-cloud-front-distro-router.js";
3
3
  import { SimCloudFrontBehaviorResolver as DefaultSimCloudFrontBehaviorResolver } from "../../resolver/sim-cloud-front-behavior-resolver.js";
4
4
  import { SimCffApplicator } from "../cff/sim-cff-applicator.js";
5
+ import { SimLambdaEdgeApplicator } from "../edge/sim-lambda-edge-applicator.js";
6
+ import { SimAwsCfEdgeFunctions } from "../../edge/sim-aws-cf-edge-functions.js";
5
7
  import { SimCloudFrontOriginFetcher } from "../origin/sim-cloudfront-origin-fetcher.js";
6
8
  import { SimCfCustomErrorResponder } from "../error/sim-cf-custom-error-responder.js";
7
9
  import { SimCfResponseHeadersApplicator } from "../response-headers/sim-cf-response-headers-applicator.js";
@@ -33,6 +35,10 @@ export class SimCloudFrontControllerDependenciesFactory {
33
35
  new SimCfWebAclGuard(makeSimCfWebAclResolver(simAws)),
34
36
  behaviourResolver,
35
37
  cffApplicator: properties.cffApplicator ?? new SimCffApplicator(),
38
+ edgeApplicator: properties.edgeApplicator ??
39
+ new SimLambdaEdgeApplicator({
40
+ edgeFunctions: new SimAwsCfEdgeFunctions(simAws),
41
+ }),
36
42
  originFetcher,
37
43
  customErrorResponder: properties.customErrorResponder ??
38
44
  new SimCfCustomErrorResponder({ behaviourResolver, originFetcher }),
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-controller-dependency.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/dependency/sim-cf-controller-dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGjD,OAAO,EAAE,yBAAyB,IAAI,gCAAgC,EAAE,MAAM,+CAA+C,CAAC;AAE9H,OAAO,EAAE,6BAA6B,IAAI,oCAAoC,EAAE,MAAM,qDAAqD,CAAC;AAC5I,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAwB3F;;GAEG;AACH,MAAM,OAAO,0CAA0C;IACrD;;OAEG;IACH,IAAI,CACF,UAAU,GAA6C,EAAE;QAEzD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACjD,MAAM,kBAAkB,GACtB,UAAU,CAAC,kBAAkB,IAAI,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC;QAE5E,wEAAwE;QACxE,yEAAyE;QACzE,qDAAqD;QACrD,MAAM,iBAAiB,GACrB,UAAU,CAAC,iBAAiB;YAC5B,IAAI,oCAAoC,EAAE,CAAC;QAC7C,MAAM,aAAa,GACjB,UAAU,CAAC,aAAa,IAAI,IAAI,0BAA0B,EAAE,CAAC;QAE/D,OAAO;YACL,YAAY,EACV,UAAU,CAAC,YAAY;gBACvB,IAAI,gCAAgC,CAAC;oBACnC,MAAM;oBACN,kBAAkB;iBACnB,CAAC;YACJ,WAAW,EACT,UAAU,CAAC,WAAW;gBACtB,IAAI,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACvD,iBAAiB;YACjB,aAAa,EAAE,UAAU,CAAC,aAAa,IAAI,IAAI,gBAAgB,EAAE;YACjE,aAAa;YACb,oBAAoB,EAClB,UAAU,CAAC,oBAAoB;gBAC/B,IAAI,yBAAyB,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;YACrE,yBAAyB,EACvB,UAAU,CAAC,yBAAyB;gBACpC,IAAI,8BAA8B,EAAE;SACvC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cf-controller-dependency.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/dependency/sim-cf-controller-dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGjD,OAAO,EAAE,yBAAyB,IAAI,gCAAgC,EAAE,MAAM,+CAA+C,CAAC;AAE9H,OAAO,EAAE,6BAA6B,IAAI,oCAAoC,EAAE,MAAM,qDAAqD,CAAC;AAC5I,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AA0B3F;;GAEG;AACH,MAAM,OAAO,0CAA0C;IACrD;;OAEG;IACH,IAAI,CACF,UAAU,GAA6C,EAAE;QAEzD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACjD,MAAM,kBAAkB,GACtB,UAAU,CAAC,kBAAkB,IAAI,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC;QAE5E,wEAAwE;QACxE,yEAAyE;QACzE,qDAAqD;QACrD,MAAM,iBAAiB,GACrB,UAAU,CAAC,iBAAiB;YAC5B,IAAI,oCAAoC,EAAE,CAAC;QAC7C,MAAM,aAAa,GACjB,UAAU,CAAC,aAAa,IAAI,IAAI,0BAA0B,EAAE,CAAC;QAE/D,OAAO;YACL,YAAY,EACV,UAAU,CAAC,YAAY;gBACvB,IAAI,gCAAgC,CAAC;oBACnC,MAAM;oBACN,kBAAkB;iBACnB,CAAC;YACJ,WAAW,EACT,UAAU,CAAC,WAAW;gBACtB,IAAI,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACvD,iBAAiB;YACjB,aAAa,EAAE,UAAU,CAAC,aAAa,IAAI,IAAI,gBAAgB,EAAE;YACjE,cAAc,EACZ,UAAU,CAAC,cAAc;gBACzB,IAAI,uBAAuB,CAAC;oBAC1B,aAAa,EAAE,IAAI,qBAAqB,CAAC,MAAM,CAAC;iBACjD,CAAC;YACJ,aAAa;YACb,oBAAoB,EAClB,UAAU,CAAC,oBAAoB;gBAC/B,IAAI,yBAAyB,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;YACrE,yBAAyB,EACvB,UAAU,CAAC,yBAAyB;gBACpC,IAAI,8BAA8B,EAAE;SACvC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,48 @@
1
+ import type { SimCloudFrontBehavior } from "../../behaviour/sim-cloud-front-behavior.js";
2
+ import type { SimCloudFrontDistribution } from "../../distribution/sim-cloudfront-distribution.js";
3
+ import type { SimCfEdgeFunctions } from "../../edge/sim-cf-edge-functions.js";
4
+ interface SimLambdaEdgeApplicatorProperties {
5
+ /**
6
+ * Where the associated function versions are found and run.
7
+ *
8
+ * A controller built without a simulated Lambda to reach has none, and a
9
+ * Behavior associating a function answers the viewer with a 502.
10
+ */
11
+ readonly edgeFunctions?: SimCfEdgeFunctions | undefined;
12
+ }
13
+ /**
14
+ * Runs the Lambda@Edge functions a resolved Behavior associates.
15
+ *
16
+ * A function that throws answers the viewer with a 502 and takes the request
17
+ * no further, which is what CloudFront does with a failed edge function. The
18
+ * error itself reaches the function's own logs and nothing else, here as
19
+ * there.
20
+ */
21
+ export declare class SimLambdaEdgeApplicator {
22
+ private readonly eventAdapter;
23
+ private readonly edgeFunctions;
24
+ constructor(properties?: SimLambdaEdgeApplicatorProperties);
25
+ /**
26
+ * Run the viewer-request function, if the Behavior associates one.
27
+ *
28
+ * Answers with the request to carry on to the Origin with, or the response a
29
+ * function generated instead.
30
+ */
31
+ applyViewerRequest(request: Request, distribution: SimCloudFrontDistribution, behaviour: SimCloudFrontBehavior): Promise<Request | Response>;
32
+ /**
33
+ * Run the viewer-response function, if the Behavior associates one.
34
+ */
35
+ applyViewerResponse(request: Request, response: Response, distribution: SimCloudFrontDistribution, behaviour: SimCloudFrontBehavior): Promise<Response>;
36
+ /**
37
+ * Run one edge function, answering with the 502 a failed one gets.
38
+ *
39
+ * A handler that threw, a handler that answered with something the adapter
40
+ * cannot read as a request or a response, and a request whose body could not
41
+ * be read into the event, are all the same thing to CloudFront. Each is a
42
+ * failure at the edge the viewer sees as a 502, which is why building the
43
+ * event happens in here rather than before it.
44
+ */
45
+ private running;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=sim-lambda-edge-applicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-edge-applicator.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/edge/sim-lambda-edge-applicator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AAGnG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAG9E,UAAU,iCAAiC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAE/D,YAAY,UAAU,GAAE,iCAAsC,EAE7D;IAED;;;;;OAKG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,yBAAyB,EACvC,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,CAuB7B;IAED;;OAEG;IACG,mBAAmB,CACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,yBAAyB,EACvC,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAuBnB;IAED;;;;;;;;OAQG;YACW,OAAO;CAatB"}
@@ -0,0 +1,66 @@
1
+ import { SimLambdaEdgeEventAdapter } from "../../edge/adapter/sim-lambda-edge-event-adapter.js";
2
+ import { simCfEdgeDistributionConfig } from "./sim-lambda-edge-distribution.js";
3
+ /**
4
+ * Runs the Lambda@Edge functions a resolved Behavior associates.
5
+ *
6
+ * A function that throws answers the viewer with a 502 and takes the request
7
+ * no further, which is what CloudFront does with a failed edge function. The
8
+ * error itself reaches the function's own logs and nothing else, here as
9
+ * there.
10
+ */
11
+ export class SimLambdaEdgeApplicator {
12
+ eventAdapter = new SimLambdaEdgeEventAdapter();
13
+ edgeFunctions;
14
+ constructor(properties = {}) {
15
+ this.edgeFunctions = properties.edgeFunctions;
16
+ }
17
+ /**
18
+ * Run the viewer-request function, if the Behavior associates one.
19
+ *
20
+ * Answers with the request to carry on to the Origin with, or the response a
21
+ * function generated instead.
22
+ */
23
+ async applyViewerRequest(request, distribution, behaviour) {
24
+ const association = behaviour.lambdaFunctionAssociations?.viewerRequest;
25
+ const edgeFunctions = this.edgeFunctions;
26
+ if (association === undefined || edgeFunctions === undefined) {
27
+ return request;
28
+ }
29
+ return await this.running(association, async () => {
30
+ const event = await this.eventAdapter.toRequestEvent(request, association.includeBody, simCfEdgeDistributionConfig(distribution));
31
+ return this.eventAdapter.fromRequestResult((await edgeFunctions.invoke(association.functionArn, event)), request);
32
+ });
33
+ }
34
+ /**
35
+ * Run the viewer-response function, if the Behavior associates one.
36
+ */
37
+ async applyViewerResponse(request, response, distribution, behaviour) {
38
+ const association = behaviour.lambdaFunctionAssociations?.viewerResponse;
39
+ const edgeFunctions = this.edgeFunctions;
40
+ if (association === undefined || edgeFunctions === undefined) {
41
+ return response;
42
+ }
43
+ return await this.running(association, async () => {
44
+ const event = await this.eventAdapter.toResponseEvent(request, response, simCfEdgeDistributionConfig(distribution));
45
+ return this.eventAdapter.fromResponseResult((await edgeFunctions.invoke(association.functionArn, event)), response);
46
+ });
47
+ }
48
+ /**
49
+ * Run one edge function, answering with the 502 a failed one gets.
50
+ *
51
+ * A handler that threw, a handler that answered with something the adapter
52
+ * cannot read as a request or a response, and a request whose body could not
53
+ * be read into the event, are all the same thing to CloudFront. Each is a
54
+ * failure at the edge the viewer sees as a 502, which is why building the
55
+ * event happens in here rather than before it.
56
+ */
57
+ async running(association, run) {
58
+ try {
59
+ return await run();
60
+ }
61
+ catch {
62
+ return new Response(`The Lambda@Edge function ${association.functionArn} failed`, { status: 502 });
63
+ }
64
+ }
65
+ }
66
+ //# sourceMappingURL=sim-lambda-edge-applicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-edge-applicator.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/edge/sim-lambda-edge-applicator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAGhG,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAYhF;;;;;;;GAOG;AACH,MAAM,OAAO,uBAAuB;IACjB,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAC/C,aAAa,CAAiC;IAE/D,YAAY,UAAU,GAAsC,EAAE;QAC5D,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CACtB,OAAgB,EAChB,YAAuC,EACvC,SAAgC;QAEhC,MAAM,WAAW,GAAG,SAAS,CAAC,0BAA0B,EAAE,aAAa,CAAC;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,IAAI,WAAW,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC7D,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAClD,OAAO,EACP,WAAW,CAAC,WAAW,EACvB,2BAA2B,CAAC,YAAY,CAAC,CAC1C,CAAC;YAEF,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,CACxC,CAAC,MAAM,aAAa,CAAC,MAAM,CACzB,WAAW,CAAC,WAAW,EACvB,KAAK,CACN,CAA+B,EAChC,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,OAAgB,EAChB,QAAkB,EAClB,YAAuC,EACvC,SAAgC;QAEhC,MAAM,WAAW,GAAG,SAAS,CAAC,0BAA0B,EAAE,cAAc,CAAC;QACzE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,IAAI,WAAW,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC7D,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CACnD,OAAO,EACP,QAAQ,EACR,2BAA2B,CAAC,YAAY,CAAC,CAC1C,CAAC;YAEF,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CACzC,CAAC,MAAM,aAAa,CAAC,MAAM,CACzB,WAAW,CAAC,WAAW,EACvB,KAAK,CACN,CAA0B,EAC3B,QAAQ,CACT,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,OAAO,CACnB,WAAiC,EACjC,GAA2B;QAE3B,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,QAAQ,CACjB,4BAA4B,WAAW,CAAC,WAAW,SAAS,EAC5D,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import type { SimCloudFrontDistribution } from "../../distribution/sim-cloudfront-distribution.js";
2
+ import type { SimLambdaEdgeDistributionConfig } from "../../edge/adapter/sim-lambda-edge-event-adapter.js";
3
+ /**
4
+ * What an edge function is told about the Distribution it is running for.
5
+ *
6
+ * The domain name is derived the same way the Distribution view derives it, so
7
+ * a handler reading `config.distributionDomainName` sees the hostname
8
+ * `GetDistribution` reports.
9
+ */
10
+ export declare function simCfEdgeDistributionConfig(distribution: SimCloudFrontDistribution): SimLambdaEdgeDistributionConfig;
11
+ //# sourceMappingURL=sim-lambda-edge-distribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-edge-distribution.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/edge/sim-lambda-edge-distribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AAE3G;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,yBAAyB,GACtC,+BAA+B,CAKjC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * What an edge function is told about the Distribution it is running for.
3
+ *
4
+ * The domain name is derived the same way the Distribution view derives it, so
5
+ * a handler reading `config.distributionDomainName` sees the hostname
6
+ * `GetDistribution` reports.
7
+ */
8
+ export function simCfEdgeDistributionConfig(distribution) {
9
+ return {
10
+ distributionId: distribution.distributionId,
11
+ distributionDomainName: `${distribution.distributionId.toLowerCase()}.cloudfront.net`,
12
+ };
13
+ }
14
+ //# sourceMappingURL=sim-lambda-edge-distribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-edge-distribution.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/edge/sim-lambda-edge-distribution.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,YAAuC;IAEvC,OAAO;QACL,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,sBAAsB,EAAE,GAAG,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,iBAAiB;KACtF,CAAC;AACJ,CAAC"}
@@ -7,6 +7,11 @@ import type { SimCloudFrontControllerDependencies } from "./dependency/sim-cf-co
7
7
  * the Distribution's custom error page, apply the Behavior's response headers
8
8
  * policy, then run viewer-response hooks.
9
9
  *
10
+ * A viewer hook is a CloudFront Function or a Lambda@Edge function. A Behavior
11
+ * carries at most one of the two kinds at the viewer events, which
12
+ * `SimCfEdgeAssociationValidator` refuses to configure otherwise. The two
13
+ * applicators below run one after the other and only one of them acts.
14
+ *
10
15
  * This is the request-processing core, kept separate from the service
11
16
  * controller so the controller stays a thin adapter to the shared
12
17
  * service-controller interface and this class stays focused on the ordered
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront-request-pipeline.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/controller/sim-cloudfront-request-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,8CAA8C,CAAC;AAGxG;;;;;;;;;;;;GAYG;AACH,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,mCAAmC,EAAI;IAE5E;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiFhD;CACF"}
1
+ {"version":3,"file":"sim-cloudfront-request-pipeline.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/controller/sim-cloudfront-request-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,8CAA8C,CAAC;AAGxG;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,mCAAmC,EAAI;IAE5E;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsGhD;CACF"}
@@ -7,6 +7,11 @@ import { simCfDefaultRootObjectRequest } from "./root-object/sim-cf-default-root
7
7
  * the Distribution's custom error page, apply the Behavior's response headers
8
8
  * policy, then run viewer-response hooks.
9
9
  *
10
+ * A viewer hook is a CloudFront Function or a Lambda@Edge function. A Behavior
11
+ * carries at most one of the two kinds at the viewer events, which
12
+ * `SimCfEdgeAssociationValidator` refuses to configure otherwise. The two
13
+ * applicators below run one after the other and only one of them acts.
14
+ *
10
15
  * This is the request-processing core, kept separate from the service
11
16
  * controller so the controller stays a thin adapter to the shared
12
17
  * service-controller interface and this class stays focused on the ordered
@@ -48,6 +53,14 @@ export class SimCloudFrontRequestPipeline {
48
53
  return cffResult;
49
54
  }
50
55
  requestReference = cffResult;
56
+ // Handle viewer-request Lambda@Edge, if any. A handler answers with the
57
+ // request to send to the Origin or with a response of its own, the same
58
+ // two outcomes a CloudFront Function has.
59
+ const edgeResult = await this.stages.edgeApplicator.applyViewerRequest(requestReference, distro, behaviour);
60
+ if (edgeResult instanceof Response) {
61
+ return edgeResult;
62
+ }
63
+ requestReference = edgeResult;
51
64
  const originResponse = await this.stages.originFetcher.fetch(requestReference, distro, behaviour);
52
65
  // Replace an Origin error with the Distribution's custom error page, if it
53
66
  // configures one for that status. This happens before the viewer-response
@@ -61,7 +74,9 @@ export class SimCloudFrontRequestPipeline {
61
74
  // Handle viewer-response CFF, if any.
62
75
  // A viewer-response CFF can inspect the original request and replace or
63
76
  // modify the Origin response before it is returned to the caller.
64
- return await this.stages.cffApplicator.applyViewerResponse(cloudFront, requestReference, response, behaviour);
77
+ const cffResponse = await this.stages.cffApplicator.applyViewerResponse(cloudFront, requestReference, response, behaviour);
78
+ // Handle viewer-response Lambda@Edge, if any.
79
+ return await this.stages.edgeApplicator.applyViewerResponse(requestReference, cffResponse, distro, behaviour);
65
80
  }
66
81
  }
67
82
  //# sourceMappingURL=sim-cloudfront-request-pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront-request-pipeline.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/controller/sim-cloudfront-request-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AAEpG;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,4BAA4B;IACV,MAAM;IAAnC,YAA6B,MAA2C;sBAA3C,MAAM;IAAwC,CAAC;IAE5E;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAAgB;QAC3B,IAAI,gBAAgB,GAAG,OAAO,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAEzE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,QAAQ,CAAC,gDAAgD,EAAE;gBACpE,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAEnD,qEAAqE;QACrE,2EAA2E;QAC3E,wEAAwE;QACxE,yBAAyB;QACzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CACtD,gBAAgB,EAChB,MAAM,CACP,CAAC;QACF,IAAI,YAAY,YAAY,QAAQ,EAAE,CAAC;YACrC,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,gBAAgB,GAAG,YAAY,CAAC;QAEhC,gBAAgB,GAAG,6BAA6B,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAE3E,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CACrD,gBAAgB,EAChB,MAAM,CACP,CAAC;QAEF,qCAAqC;QACrC,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAClE,UAAU,EACV,gBAAgB,EAChB,SAAS,CACV,CAAC;QACF,IAAI,SAAS,YAAY,QAAQ,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,gBAAgB,GAAG,SAAS,CAAC;QAE7B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAC1D,gBAAgB,EAChB,MAAM,EACN,SAAS,CACV,CAAC;QAEF,2EAA2E;QAC3E,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAChE,gBAAgB,EAChB,MAAM,EACN,cAAc,CACf,CAAC;QAEF,4EAA4E;QAC5E,+DAA+D;QAC/D,oEAAoE;QACpE,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAC1D,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,SAAS,CACV,CAAC;QAEF,sCAAsC;QACtC,wEAAwE;QACxE,kEAAkE;QAClE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,CACxD,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,SAAS,CACV,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cloudfront-request-pipeline.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/controller/sim-cloudfront-request-pipeline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-behavior-properties.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gCAAgC,EAChC,uCAAuC,EAExC,MAAM,kEAAkE,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAEzF,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAIvG;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EACT,uCAAuC,GACvC,gCAAgC,EACpC,qBAAqB,EAAE,kCAAkC,GACxD,qBAAqB,CA0BvB"}
1
+ {"version":3,"file":"sim-cf-behavior-properties.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gCAAgC,EAChC,uCAAuC,EAExC,MAAM,kEAAkE,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAEzF,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAKvG;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EACT,uCAAuC,GACvC,gCAAgC,EACpC,qBAAqB,EAAE,kCAAkC,GACxD,qBAAqB,CA2BvB"}
@@ -1,5 +1,6 @@
1
1
  import { assertDefined } from "../../../../util/type-guard/defined.js";
2
2
  import { configureCffAssociations } from "./sim-cff-associations-configure.js";
3
+ import { configureEdgeAssociations } from "../../edge/sim-cf-edge-associations-configure.js";
3
4
  import { assertConsistentQuantity } from "../../command/sim-cf-list-quantity.js";
4
5
  /**
5
6
  * Build the Behavior properties common to both the default Cache Behavior and
@@ -23,6 +24,7 @@ export function simCfBehaviorProperties(cacheBehavior, responseHeadersPolicy) {
23
24
  responseHeadersPolicyId: ResponseHeadersPolicyId,
24
25
  }),
25
26
  functionAssociations: configureCffAssociations(cacheBehavior),
27
+ lambdaFunctionAssociations: configureEdgeAssociations(cacheBehavior),
26
28
  };
27
29
  }
28
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-behavior-properties.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAEoC,EACpC,qBAAyD;IAEzD,MAAM,EAAE,cAAc,EAAE,uBAAuB,EAAE,GAAG,aAAa,CAAC;IAElE,aAAa,CAAC,cAAc,EAAE,yCAAyC,CAAC,CAAC;IAEzE,qBAAqB,CAAC,YAAY,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;IAE5E,OAAO;QACL,gBAAgB,EAAE,cAAc;QAChC,cAAc,EAAE,UAAU,CAAC,gBAAgB,EAAE,aAAa,CAAC,cAAc,EAAE;YACzE,KAAK;YACL,MAAM;SACP,CAAC;QACF,aAAa,EAAE,UAAU,CACvB,eAAe,EACf,aAAa,CAAC,cAAc,EAAE,aAAa,EAC3C,CAAC,KAAK,EAAE,MAAM,CAAC,CAChB;QACD,GAAG,CAAC,aAAa,CAAC,oBAAoB,KAAK,SAAS,IAAI;YACtD,oBAAoB,EAAE,aAAa,CAAC,oBAAoB;SACzD,CAAC;QACF,GAAG,CAAC,uBAAuB,KAAK,SAAS,IAAI;YAC3C,uBAAuB,EAAE,uBAAuB;SACjD,CAAC;QACF,oBAAoB,EAAE,wBAAwB,CAAC,aAAa,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CACjB,QAAgB,EAChB,OAA4C,EAC5C,QAAkB;IAElB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE5C,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"sim-cf-behavior-properties.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAEoC,EACpC,qBAAyD;IAEzD,MAAM,EAAE,cAAc,EAAE,uBAAuB,EAAE,GAAG,aAAa,CAAC;IAElE,aAAa,CAAC,cAAc,EAAE,yCAAyC,CAAC,CAAC;IAEzE,qBAAqB,CAAC,YAAY,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;IAE5E,OAAO;QACL,gBAAgB,EAAE,cAAc;QAChC,cAAc,EAAE,UAAU,CAAC,gBAAgB,EAAE,aAAa,CAAC,cAAc,EAAE;YACzE,KAAK;YACL,MAAM;SACP,CAAC;QACF,aAAa,EAAE,UAAU,CACvB,eAAe,EACf,aAAa,CAAC,cAAc,EAAE,aAAa,EAC3C,CAAC,KAAK,EAAE,MAAM,CAAC,CAChB;QACD,GAAG,CAAC,aAAa,CAAC,oBAAoB,KAAK,SAAS,IAAI;YACtD,oBAAoB,EAAE,aAAa,CAAC,oBAAoB;SACzD,CAAC;QACF,GAAG,CAAC,uBAAuB,KAAK,SAAS,IAAI;YAC3C,uBAAuB,EAAE,uBAAuB;SACjD,CAAC;QACF,oBAAoB,EAAE,wBAAwB,CAAC,aAAa,CAAC;QAC7D,0BAA0B,EAAE,yBAAyB,CAAC,aAAa,CAAC;KACrE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CACjB,QAAgB,EAChB,OAA4C,EAC5C,QAAkB;IAElB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE5C,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
@@ -4,14 +4,16 @@ import type { SimCloudFrontS3OriginResolver } from "../origin/s3/sim-cloudfront-
4
4
  import type { SimCloudFrontOriginAccessControlRegistry } from "../origin-access-control/sim-cf-origin-access-control-registry.js";
5
5
  import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../response-headers-policy/sim-cf-response-headers-policy-registry.js";
6
6
  import type { SimCfWebAclResolver } from "../web-acl/sim-cf-web-acl.js";
7
+ import type { SimCfEdgeFunctions } from "../edge/sim-cf-edge-functions.js";
7
8
  /**
8
9
  * How the commands that configure a Distribution reach everything a
9
10
  * DistributionConfig names outside itself.
10
11
  *
11
12
  * A DistributionConfig is mostly references: a Bucket or a hostname per
12
13
  * Origin, a certificate, an origin access control, a response headers policy,
13
- * a web ACL. None of them belongs to CloudFront, and creation and update
14
- * resolve every one of them the same way, so they travel together.
14
+ * a web ACL, a Lambda@Edge function version. None of them belongs to
15
+ * CloudFront, and creation and update resolve every one of them the same way,
16
+ * so they travel together.
15
17
  */
16
18
  export interface SimCfDistributionConfigurationState {
17
19
  readonly s3OriginResolver: SimCloudFrontS3OriginResolver;
@@ -20,5 +22,6 @@ export interface SimCfDistributionConfigurationState {
20
22
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
21
23
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
22
24
  readonly webAclResolver: SimCfWebAclResolver | undefined;
25
+ readonly edgeFunctions: SimCfEdgeFunctions | undefined;
23
26
  }
24
27
  //# sourceMappingURL=sim-cf-distribution-configuration-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-distribution-configuration-state.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/distribution/sim-cf-distribution-configuration-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qDAAqD,CAAC;AACvG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,mEAAmE,CAAC;AAClI,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,uEAAuE,CAAC;AACxI,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE;;;;;;;;GAQG;AACH,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IACzD,QAAQ,CAAC,sBAAsB,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACzE,QAAQ,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,oBAAoB,EAAE,wCAAwC,CAAC;IACxE,QAAQ,CAAC,uBAAuB,EAAE,0CAA0C,CAAC;IAC7E,QAAQ,CAAC,cAAc,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC1D"}
1
+ {"version":3,"file":"sim-cf-distribution-configuration-state.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/distribution/sim-cf-distribution-configuration-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qDAAqD,CAAC;AACvG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,mEAAmE,CAAC;AAClI,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,uEAAuE,CAAC;AACxI,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IACzD,QAAQ,CAAC,sBAAsB,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACzE,QAAQ,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,oBAAoB,EAAE,wCAAwC,CAAC;IACxE,QAAQ,CAAC,uBAAuB,EAAE,0CAA0C,CAAC;IAC7E,QAAQ,CAAC,cAAc,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,aAAa,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACxD"}
@@ -0,0 +1,24 @@
1
+ import type { LambdaAtEdge } from "../../typings/lambda-at-edge.namespace.js";
2
+ /**
3
+ * Reading and writing the bodies an edge function sees and produces.
4
+ */
5
+ /**
6
+ * The body a viewer-request event carries when `IncludeBody` is set.
7
+ *
8
+ * CloudFront sends it base64 encoded, and reports whether it had to truncate
9
+ * it. Nothing here truncates, so a simulated body is always whole.
10
+ */
11
+ export declare function edgeRequestBody(request: Request): Promise<LambdaAtEdge.Body>;
12
+ /**
13
+ * The body the request carries on to the origin with.
14
+ *
15
+ * A handler that set the body action to `replace` has written the body it
16
+ * wants sent. Anything else leaves the viewer's own body in place, including a
17
+ * handler that read the body and handed the event back untouched.
18
+ */
19
+ export declare function replacementBody(edgeRequest: LambdaAtEdge.Request, originalRequest: Request): NonNullable<RequestInit["body"]> | null;
20
+ /**
21
+ * The body of a response an edge function wrote.
22
+ */
23
+ export declare function edgeResponseBody(edgeResponse: LambdaAtEdge.Response): Buffer | string | null;
24
+ //# sourceMappingURL=sim-lambda-edge-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-edge-body.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/edge/adapter/sim-lambda-edge-body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E;;GAEG;AAEH;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAY5B;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,YAAY,CAAC,OAAO,EACjC,eAAe,EAAE,OAAO,GACvB,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAczC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,YAAY,CAAC,QAAQ,GAClC,MAAM,GAAG,MAAM,GAAG,IAAI,CAQxB"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Reading and writing the bodies an edge function sees and produces.
3
+ */
4
+ /**
5
+ * The body a viewer-request event carries when `IncludeBody` is set.
6
+ *
7
+ * CloudFront sends it base64 encoded, and reports whether it had to truncate
8
+ * it. Nothing here truncates, so a simulated body is always whole.
9
+ */
10
+ export async function edgeRequestBody(request) {
11
+ const bytes = request.body === null
12
+ ? new Uint8Array()
13
+ : new Uint8Array(await request.clone().arrayBuffer());
14
+ return {
15
+ inputTruncated: false,
16
+ action: "read-only",
17
+ encoding: "base64",
18
+ data: Buffer.from(bytes).toString("base64"),
19
+ };
20
+ }
21
+ /**
22
+ * The body the request carries on to the origin with.
23
+ *
24
+ * A handler that set the body action to `replace` has written the body it
25
+ * wants sent. Anything else leaves the viewer's own body in place, including a
26
+ * handler that read the body and handed the event back untouched.
27
+ */
28
+ export function replacementBody(edgeRequest, originalRequest) {
29
+ if (/^(?:get|head)$/iu.test(edgeRequest.method)) {
30
+ return null;
31
+ }
32
+ const body = edgeRequest.body;
33
+ if (body?.action !== "replace") {
34
+ return originalRequest.clone().body;
35
+ }
36
+ return body.encoding === "base64"
37
+ ? Buffer.from(body.data, "base64")
38
+ : body.data;
39
+ }
40
+ /**
41
+ * The body of a response an edge function wrote.
42
+ */
43
+ export function edgeResponseBody(edgeResponse) {
44
+ if (edgeResponse.body === undefined) {
45
+ return null;
46
+ }
47
+ return edgeResponse.bodyEncoding === "base64"
48
+ ? Buffer.from(edgeResponse.body, "base64")
49
+ : edgeResponse.body;
50
+ }
51
+ //# sourceMappingURL=sim-lambda-edge-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-edge-body.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/edge/adapter/sim-lambda-edge-body.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB;IAEhB,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,KAAK,IAAI;QACnB,CAAC,CAAC,IAAI,UAAU,EAAE;QAClB,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1D,OAAO;QACL,cAAc,EAAE,KAAK;QACrB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,WAAiC,EACjC,eAAwB;IAExB,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAE9B,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;QAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,YAAmC;IAEnC,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,YAAY,CAAC,YAAY,KAAK,QAAQ;QAC3C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC1C,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;AACxB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { LambdaAtEdge } from "../../typings/lambda-at-edge.namespace.js";
2
+ /**
3
+ * Which Distribution an edge function is told it is running for.
4
+ */
5
+ export interface SimLambdaEdgeDistributionConfig {
6
+ readonly distributionId: string;
7
+ readonly distributionDomainName: string;
8
+ }
9
+ /**
10
+ * Converts between native Fetch API Request and Response objects and the
11
+ * Lambda@Edge event and result shapes.
12
+ */
13
+ export declare class SimLambdaEdgeEventAdapter {
14
+ private readonly requestAdapter;
15
+ private readonly responseAdapter;
16
+ /**
17
+ * Build the event a viewer-request function is invoked with.
18
+ */
19
+ toRequestEvent(request: Request, includeBody: boolean, distribution: SimLambdaEdgeDistributionConfig): Promise<LambdaAtEdge.RequestEvent>;
20
+ /**
21
+ * Build the event a viewer-response function is invoked with.
22
+ *
23
+ * The request travels with the response, and it never carries a body. Real
24
+ * CloudFront has already forwarded the request by this point, and
25
+ * `IncludeBody` applies to viewer-request and origin-request events only.
26
+ */
27
+ toResponseEvent(request: Request, response: Response, distribution: SimLambdaEdgeDistributionConfig): Promise<LambdaAtEdge.ResponseEvent>;
28
+ /**
29
+ * Read what a viewer-request handler answered with.
30
+ *
31
+ * A result carrying a status is a response the viewer gets. Anything else is
32
+ * the request carrying on to the origin.
33
+ */
34
+ fromRequestResult(result: LambdaAtEdge.RequestResult, originalRequest: Request): Request | Response;
35
+ /**
36
+ * Read what a viewer-response handler answered with.
37
+ */
38
+ fromResponseResult(result: LambdaAtEdge.Response, originalResponse: Response): Response;
39
+ private config;
40
+ }
41
+ //# sourceMappingURL=sim-lambda-edge-event-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-lambda-edge-event-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/edge/adapter/sim-lambda-edge-event-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAI9E;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;CACzC;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IAEtE;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,+BAA+B,GAC5C,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAcpC;IAED;;;;;;OAMG;IACG,eAAe,CACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,+BAA+B,GAC5C,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAYrC;IAED;;;;;OAKG;IACH,iBAAiB,CACf,MAAM,EAAE,YAAY,CAAC,aAAa,EAClC,eAAe,EAAE,OAAO,GACvB,OAAO,GAAG,QAAQ,CAIpB;IAED;;OAEG;IACH,kBAAkB,CAChB,MAAM,EAAE,YAAY,CAAC,QAAQ,EAC7B,gBAAgB,EAAE,QAAQ,GACzB,QAAQ,CAKV;IAED,OAAO,CAAC,MAAM;CAWf"}