@kensio/yulin 0.12.0 → 0.14.0

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 (278) hide show
  1. package/README.md +22 -24
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/serve/controller/sim-aws-service-controller-container.d.ts +6 -2
  5. package/dist/serve/controller/sim-aws-service-controller-container.d.ts.map +1 -1
  6. package/dist/serve/controller/sim-aws-service-controller-container.js +4 -2
  7. package/dist/serve/controller/sim-aws-service-controller-container.js.map +1 -1
  8. package/dist/serve/http/sim-aws-http.d.ts +5 -2
  9. package/dist/serve/http/sim-aws-http.d.ts.map +1 -1
  10. package/dist/serve/http/sim-aws-http.js +3 -4
  11. package/dist/serve/http/sim-aws-http.js.map +1 -1
  12. package/dist/serve/http/sim-aws-local-server.d.ts +10 -3
  13. package/dist/serve/http/sim-aws-local-server.d.ts.map +1 -1
  14. package/dist/serve/http/sim-aws-local-server.js +7 -7
  15. package/dist/serve/http/sim-aws-local-server.js.map +1 -1
  16. package/dist/serve/http/sim-aws-local-url.d.ts +6 -1
  17. package/dist/serve/http/sim-aws-local-url.d.ts.map +1 -1
  18. package/dist/serve/http/sim-aws-local-url.js +4 -4
  19. package/dist/serve/http/sim-aws-local-url.js.map +1 -1
  20. package/dist/service/aws/arn.d.ts +1 -1
  21. package/dist/service/aws/arn.d.ts.map +1 -1
  22. package/dist/service/aws/arn.js +1 -1
  23. package/dist/service/aws/arn.js.map +1 -1
  24. package/dist/service/aws/sim-aws-account-region-scope.d.ts +23 -9
  25. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  26. package/dist/service/aws/sim-aws-account-region-scope.js +23 -8
  27. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  28. package/dist/service/aws/sim-aws-account.d.ts +23 -9
  29. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  30. package/dist/service/aws/sim-aws-account.js +21 -9
  31. package/dist/service/aws/sim-aws-account.js.map +1 -1
  32. package/dist/service/aws/sim-aws-region.d.ts +23 -9
  33. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  34. package/dist/service/aws/sim-aws-region.js +21 -9
  35. package/dist/service/aws/sim-aws-region.js.map +1 -1
  36. package/dist/service/aws/sim-aws.d.ts +49 -30
  37. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  38. package/dist/service/aws/sim-aws.js +92 -42
  39. package/dist/service/aws/sim-aws.js.map +1 -1
  40. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +5 -0
  41. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts.map +1 -1
  42. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.js.map +1 -1
  43. package/dist/service/cloudfront/cff/adapter/sim-cff-event-adapter.d.ts +36 -0
  44. package/dist/service/cloudfront/cff/adapter/sim-cff-event-adapter.d.ts.map +1 -0
  45. package/dist/service/cloudfront/cff/adapter/sim-cff-event-adapter.js +177 -0
  46. package/dist/service/cloudfront/cff/adapter/sim-cff-event-adapter.js.map +1 -0
  47. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +38 -0
  48. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts.map +1 -0
  49. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +69 -0
  50. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js.map +1 -0
  51. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +48 -0
  52. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts.map +1 -0
  53. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +66 -0
  54. package/dist/service/cloudfront/cff/sim-cloudfront-function.js.map +1 -0
  55. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts +100 -0
  56. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts.map +1 -0
  57. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.js +2 -0
  58. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.js.map +1 -0
  59. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +16 -12
  60. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  61. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +23 -78
  62. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  63. package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts +43 -0
  64. package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts.map +1 -0
  65. package/dist/service/cloudfront/command/create-function/create-function.cmd.js +5 -0
  66. package/dist/service/cloudfront/command/create-function/create-function.cmd.js.map +1 -0
  67. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts +28 -0
  68. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -0
  69. package/dist/service/cloudfront/command/create-function/create-function.handler.js +49 -0
  70. package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -0
  71. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts +29 -0
  72. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts.map +1 -0
  73. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.js +2 -0
  74. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.js.map +1 -0
  75. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts +21 -0
  76. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts.map +1 -0
  77. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js +40 -0
  78. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js.map +1 -0
  79. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts +20 -4
  80. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts.map +1 -1
  81. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js +52 -7
  82. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js.map +1 -1
  83. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +21 -0
  84. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts.map +1 -0
  85. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +90 -0
  86. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js.map +1 -0
  87. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +17 -0
  88. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts.map +1 -0
  89. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +28 -0
  90. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js.map +1 -0
  91. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +15 -0
  92. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts.map +1 -0
  93. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +26 -0
  94. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js.map +1 -0
  95. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +23 -1
  96. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts.map +1 -1
  97. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +23 -1
  98. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js.map +1 -1
  99. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
  100. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -0
  101. package/dist/service/cloudfront/error/sim-cloudfront.error.js +20 -0
  102. package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -0
  103. package/dist/service/cloudfront/factory/cloudfront-functions.factory.d.ts +15 -2
  104. package/dist/service/cloudfront/factory/cloudfront-functions.factory.d.ts.map +1 -1
  105. package/dist/service/cloudfront/factory/cloudfront-functions.factory.js +22 -12
  106. package/dist/service/cloudfront/factory/cloudfront-functions.factory.js.map +1 -1
  107. package/dist/service/cloudfront/index.d.ts +1 -0
  108. package/dist/service/cloudfront/index.d.ts.map +1 -1
  109. package/dist/service/cloudfront/index.js +1 -0
  110. package/dist/service/cloudfront/index.js.map +1 -1
  111. package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.d.ts +7 -4
  112. package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.d.ts.map +1 -1
  113. package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.js +5 -5
  114. package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.js.map +1 -1
  115. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js +2 -2
  116. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js.map +1 -1
  117. package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.d.ts +6 -2
  118. package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.d.ts.map +1 -1
  119. package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.js +3 -3
  120. package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.js.map +1 -1
  121. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts +24 -2
  122. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  123. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +61 -10
  124. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  125. package/dist/service/cloudfront/sim-cloud-front-registry.d.ts +8 -0
  126. package/dist/service/cloudfront/sim-cloud-front-registry.d.ts.map +1 -1
  127. package/dist/service/cloudfront/sim-cloud-front-registry.js +12 -0
  128. package/dist/service/cloudfront/sim-cloud-front-registry.js.map +1 -1
  129. package/dist/service/cloudfront/sim-cloudfront.d.ts +34 -4
  130. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  131. package/dist/service/cloudfront/sim-cloudfront.js +55 -3
  132. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  133. package/dist/service/cloudfront/typings/cloudfront-functions.namespace.d.ts +22 -3
  134. package/dist/service/cloudfront/typings/cloudfront-functions.namespace.d.ts.map +1 -1
  135. package/dist/service/dynamodb/command/create-table/create-table.cmd.d.ts +61 -0
  136. package/dist/service/dynamodb/command/create-table/create-table.cmd.d.ts.map +1 -0
  137. package/dist/service/dynamodb/command/create-table/create-table.cmd.js +2 -0
  138. package/dist/service/dynamodb/command/create-table/create-table.cmd.js.map +1 -0
  139. package/dist/service/dynamodb/command/create-table/create-table.handler.d.ts +10 -4
  140. package/dist/service/dynamodb/command/create-table/create-table.handler.d.ts.map +1 -1
  141. package/dist/service/dynamodb/command/create-table/create-table.handler.js +12 -11
  142. package/dist/service/dynamodb/command/create-table/create-table.handler.js.map +1 -1
  143. package/dist/service/dynamodb/command/describe-table/describe-table.cmd.d.ts +21 -0
  144. package/dist/service/dynamodb/command/describe-table/describe-table.cmd.d.ts.map +1 -0
  145. package/dist/service/dynamodb/command/describe-table/describe-table.cmd.js +2 -0
  146. package/dist/service/dynamodb/command/describe-table/describe-table.cmd.js.map +1 -0
  147. package/dist/service/dynamodb/command/describe-table/describe-table.handler.d.ts +8 -4
  148. package/dist/service/dynamodb/command/describe-table/describe-table.handler.d.ts.map +1 -1
  149. package/dist/service/dynamodb/command/describe-table/describe-table.handler.js +5 -7
  150. package/dist/service/dynamodb/command/describe-table/describe-table.handler.js.map +1 -1
  151. package/dist/service/dynamodb/command/list-tables/list-tables.cmd.d.ts +22 -0
  152. package/dist/service/dynamodb/command/list-tables/list-tables.cmd.d.ts.map +1 -0
  153. package/dist/service/dynamodb/command/list-tables/list-tables.cmd.js +2 -0
  154. package/dist/service/dynamodb/command/list-tables/list-tables.cmd.js.map +1 -0
  155. package/dist/service/dynamodb/command/list-tables/list-tables.handler.d.ts +8 -4
  156. package/dist/service/dynamodb/command/list-tables/list-tables.handler.d.ts.map +1 -1
  157. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js +3 -2
  158. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js.map +1 -1
  159. package/dist/service/dynamodb/command/put-item/put-item.cmd.d.ts +135 -0
  160. package/dist/service/dynamodb/command/put-item/put-item.cmd.d.ts.map +1 -0
  161. package/dist/service/dynamodb/command/put-item/put-item.cmd.js +2 -0
  162. package/dist/service/dynamodb/command/put-item/put-item.cmd.js.map +1 -0
  163. package/dist/service/dynamodb/command/put-item/put-item.handler.d.ts +8 -4
  164. package/dist/service/dynamodb/command/put-item/put-item.handler.d.ts.map +1 -1
  165. package/dist/service/dynamodb/command/put-item/put-item.handler.js +4 -7
  166. package/dist/service/dynamodb/command/put-item/put-item.handler.js.map +1 -1
  167. package/dist/service/dynamodb/error/dynamodb.error.d.ts +28 -0
  168. package/dist/service/dynamodb/error/dynamodb.error.d.ts.map +1 -0
  169. package/dist/service/dynamodb/error/dynamodb.error.js +29 -0
  170. package/dist/service/dynamodb/error/dynamodb.error.js.map +1 -0
  171. package/dist/service/dynamodb/index.d.ts +0 -1
  172. package/dist/service/dynamodb/index.d.ts.map +1 -1
  173. package/dist/service/dynamodb/index.js +0 -1
  174. package/dist/service/dynamodb/index.js.map +1 -1
  175. package/dist/service/dynamodb/item/dynamodb-item-attribute.d.ts +3 -3
  176. package/dist/service/dynamodb/item/dynamodb-item-attribute.d.ts.map +1 -1
  177. package/dist/service/dynamodb/item/dynamodb-item-attribute.js +10 -10
  178. package/dist/service/dynamodb/item/dynamodb-item-attribute.js.map +1 -1
  179. package/dist/service/dynamodb/item/dynamodb-item.d.ts +3 -3
  180. package/dist/service/dynamodb/item/dynamodb-item.d.ts.map +1 -1
  181. package/dist/service/dynamodb/item/dynamodb-item.js.map +1 -1
  182. package/dist/service/dynamodb/sim-dynamodb.d.ts +15 -7
  183. package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
  184. package/dist/service/dynamodb/sim-dynamodb.js +11 -6
  185. package/dist/service/dynamodb/sim-dynamodb.js.map +1 -1
  186. package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts +9 -15
  187. package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts.map +1 -1
  188. package/dist/service/dynamodb/table/dynamodb-key-schema.js +29 -35
  189. package/dist/service/dynamodb/table/dynamodb-key-schema.js.map +1 -1
  190. package/dist/service/dynamodb/table/dynamodb-table.d.ts +14 -8
  191. package/dist/service/dynamodb/table/dynamodb-table.d.ts.map +1 -1
  192. package/dist/service/dynamodb/table/dynamodb-table.js +9 -7
  193. package/dist/service/dynamodb/table/dynamodb-table.js.map +1 -1
  194. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +9 -6
  195. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  196. package/dist/service/s3/bucket/sim-s3-bucket.js +4 -5
  197. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  198. package/dist/service/s3/bucket/website/s3-bucket-website.d.ts +2 -2
  199. package/dist/service/s3/bucket/website/s3-bucket-website.d.ts.map +1 -1
  200. package/dist/service/s3/bucket/website/s3-bucket-website.js.map +1 -1
  201. package/dist/service/s3/command/create-bucket/create-bucket.cmd.d.ts +21 -0
  202. package/dist/service/s3/command/create-bucket/create-bucket.cmd.d.ts.map +1 -0
  203. package/dist/service/s3/command/create-bucket/create-bucket.cmd.js +2 -0
  204. package/dist/service/s3/command/create-bucket/create-bucket.cmd.js.map +1 -0
  205. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +10 -4
  206. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts.map +1 -1
  207. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +12 -18
  208. package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
  209. package/dist/service/s3/command/get-object/get-object.cmd.d.ts +23 -0
  210. package/dist/service/s3/command/get-object/get-object.cmd.d.ts.map +1 -0
  211. package/dist/service/s3/command/get-object/get-object.cmd.js +2 -0
  212. package/dist/service/s3/command/get-object/get-object.cmd.js.map +1 -0
  213. package/dist/service/s3/command/get-object/get-object.handler.d.ts +8 -4
  214. package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
  215. package/dist/service/s3/command/get-object/get-object.handler.js +5 -11
  216. package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
  217. package/dist/service/s3/command/list-buckets/list-buckets.cmd.d.ts +30 -0
  218. package/dist/service/s3/command/list-buckets/list-buckets.cmd.d.ts.map +1 -0
  219. package/dist/service/s3/command/list-buckets/list-buckets.cmd.js +2 -0
  220. package/dist/service/s3/command/list-buckets/list-buckets.cmd.js.map +1 -0
  221. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts +8 -4
  222. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts.map +1 -1
  223. package/dist/service/s3/command/list-buckets/list-buckets.handler.js +2 -2
  224. package/dist/service/s3/command/list-buckets/list-buckets.handler.js.map +1 -1
  225. package/dist/service/s3/command/list-objects/list-objects.cmd.d.ts +36 -0
  226. package/dist/service/s3/command/list-objects/list-objects.cmd.d.ts.map +1 -0
  227. package/dist/service/s3/command/list-objects/list-objects.cmd.js +2 -0
  228. package/dist/service/s3/command/list-objects/list-objects.cmd.js.map +1 -0
  229. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts +8 -4
  230. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts.map +1 -1
  231. package/dist/service/s3/command/list-objects/list-objects.handler.js +4 -7
  232. package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
  233. package/dist/service/s3/command/put-bucket-website/put-bucket-website.cmd.d.ts +72 -0
  234. package/dist/service/s3/command/put-bucket-website/put-bucket-website.cmd.d.ts.map +1 -0
  235. package/dist/service/s3/command/put-bucket-website/put-bucket-website.cmd.js +2 -0
  236. package/dist/service/s3/command/put-bucket-website/put-bucket-website.cmd.js.map +1 -0
  237. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts +8 -4
  238. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts.map +1 -1
  239. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js +4 -7
  240. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js.map +1 -1
  241. package/dist/service/s3/command/put-object/put-object.cmd.d.ts +30 -0
  242. package/dist/service/s3/command/put-object/put-object.cmd.d.ts.map +1 -0
  243. package/dist/service/s3/command/put-object/put-object.cmd.js +2 -0
  244. package/dist/service/s3/command/put-object/put-object.cmd.js.map +1 -0
  245. package/dist/service/s3/command/put-object/put-object.handler.d.ts +8 -4
  246. package/dist/service/s3/command/put-object/put-object.handler.d.ts.map +1 -1
  247. package/dist/service/s3/command/put-object/put-object.handler.js +9 -8
  248. package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -1
  249. package/dist/service/s3/error/s3.error.d.ts +42 -0
  250. package/dist/service/s3/error/s3.error.d.ts.map +1 -0
  251. package/dist/service/s3/error/s3.error.js +47 -0
  252. package/dist/service/s3/error/s3.error.js.map +1 -0
  253. package/dist/service/s3/index.d.ts +0 -1
  254. package/dist/service/s3/index.d.ts.map +1 -1
  255. package/dist/service/s3/index.js +0 -1
  256. package/dist/service/s3/index.js.map +1 -1
  257. package/dist/service/s3/object/s3-object.d.ts +7 -1
  258. package/dist/service/s3/object/s3-object.d.ts.map +1 -1
  259. package/dist/service/s3/object/s3-object.js +2 -1
  260. package/dist/service/s3/object/s3-object.js.map +1 -1
  261. package/dist/service/s3/serve/sim-s3-controller.d.ts +6 -3
  262. package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
  263. package/dist/service/s3/serve/sim-s3-controller.js +4 -2
  264. package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
  265. package/dist/service/s3/serve/sim-s3-req-router.d.ts +6 -3
  266. package/dist/service/s3/serve/sim-s3-req-router.d.ts.map +1 -1
  267. package/dist/service/s3/serve/sim-s3-req-router.js +5 -3
  268. package/dist/service/s3/serve/sim-s3-req-router.js.map +1 -1
  269. package/dist/service/s3/sim-s3.d.ts +19 -9
  270. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  271. package/dist/service/s3/sim-s3.js +16 -9
  272. package/dist/service/s3/sim-s3.js.map +1 -1
  273. package/dist/service/s3/storage/s3-filesystem-storage.d.ts +6 -1
  274. package/dist/service/s3/storage/s3-filesystem-storage.d.ts.map +1 -1
  275. package/dist/service/s3/storage/s3-filesystem-storage.js +10 -6
  276. package/dist/service/s3/storage/s3-filesystem-storage.js.map +1 -1
  277. package/dist/tsconfig.tsbuildinfo +1 -0
  278. package/package.json +11 -26
@@ -1,7 +1,9 @@
1
1
  import { jitter } from "../../../../util/sleep.js";
2
2
  import { SimCloudFrontDistribution, } from "../../distribution/sim-cloudfront-distribution.js";
3
3
  import { assertDefined } from "../../../../util/defined/defined.js";
4
- import { SimCloudFrontS3Origin, } from "../../origin/sim-cloudfront-s3-origin.js";
4
+ import { SimCloudFrontOriginConfigurator } from "../../distribution/configurator/sim-cloud-front-origin-configurator.js";
5
+ import { SimCloudFrontBehaviorConfigurator } from "../../distribution/configurator/sim-cloud-front-behavior-configurator.js";
6
+ import { SimCloudFrontDistributionConfigurator } from "../../distribution/configurator/sim-cloud-front-distribution-configurator.js";
5
7
  /**
6
8
  * CloudFront CreateDistributionCommand handler.
7
9
  *
@@ -11,12 +13,14 @@ export class CreateDistributionCommandHandler {
11
13
  accountId;
12
14
  distributions;
13
15
  cloudFrontRegistry;
14
- s3OriginResolver;
15
- constructor(accountId, distributions, cloudFrontRegistry, s3OriginResolver) {
16
- this.accountId = accountId;
17
- this.distributions = distributions;
18
- this.cloudFrontRegistry = cloudFrontRegistry;
19
- this.s3OriginResolver = s3OriginResolver;
16
+ distributionConfigurator;
17
+ background;
18
+ constructor(props) {
19
+ this.accountId = props.accountId;
20
+ this.distributions = props.distributions;
21
+ this.cloudFrontRegistry = props.cloudFrontRegistry;
22
+ this.distributionConfigurator = new SimCloudFrontDistributionConfigurator(new SimCloudFrontOriginConfigurator(props.s3OriginResolver), new SimCloudFrontBehaviorConfigurator());
23
+ this.background = props.background;
20
24
  }
21
25
  /**
22
26
  * Handle creation of a new CloudFront Distribution.
@@ -26,89 +30,30 @@ export class CreateDistributionCommandHandler {
26
30
  const distributionConfig = cmd.input.DistributionConfig;
27
31
  assertDefined(distributionConfig, "CreateDistributionCommand.DistributionConfig");
28
32
  const distributionId = this.cloudFrontRegistry.allocateDistributionId();
29
- const distribution = new SimCloudFrontDistribution(distributionId);
30
- this.configureDistribution(distribution, distributionConfig);
33
+ const distribution = new SimCloudFrontDistribution({
34
+ distributionId,
35
+ distributionConfig,
36
+ status: "Deploying",
37
+ accountId: this.accountId,
38
+ });
39
+ this.distributionConfigurator.configure(distribution, distributionConfig);
31
40
  this.distributions.set(distribution.distributionId, distribution);
32
41
  this.cloudFrontRegistry.registerDistribution(distribution.distributionId, this.accountId);
42
+ // Schedule background task to complete deployment of the sim Distribution.
43
+ this.background.schedule(() => distribution.completeDeployment());
33
44
  return {
34
45
  Distribution: {
35
46
  Id: distribution.distributionId,
36
47
  ARN: `arn:aws:cloudfront::${this.accountId}:distribution/${distribution.distributionId}`,
37
- Status: "Deployed",
38
- LastModifiedTime: new Date(),
48
+ Status: distribution.status,
49
+ LastModifiedTime: distribution.lastModifiedTime,
39
50
  InProgressInvalidationBatches: 0,
40
51
  DomainName: `${distribution.distributionId.toLowerCase()}.cloudfront.net`,
41
- DistributionConfig: cmd.input.DistributionConfig,
52
+ DistributionConfig: distribution.distributionConfig,
42
53
  },
43
54
  Location: `https://cloudfront.amazonaws.com/2020-05-31/distribution/${distribution.distributionId}`,
44
55
  $metadata: {},
45
56
  };
46
57
  }
47
- configureDistribution(distribution, distributionConfig) {
48
- for (const alias of distributionConfig.Aliases?.Items ?? []) {
49
- distribution.addAlternateDomainName(alias);
50
- }
51
- for (const origin of distributionConfig.Origins?.Items ?? []) {
52
- this.configureOrigin(distribution, origin);
53
- }
54
- distribution.addBehavior(this.behaviorFromDefaultCacheBehavior(distributionConfig.DefaultCacheBehavior));
55
- for (const cacheBehavior of distributionConfig.CacheBehaviors?.Items ??
56
- []) {
57
- distribution.addBehavior(this.behaviorFromCacheBehavior(cacheBehavior));
58
- }
59
- }
60
- configureOrigin(distribution, origin) {
61
- assertDefined(origin.Id, "CloudFront Origin Id");
62
- assertDefined(origin.DomainName, "CloudFront Origin DomainName");
63
- if (origin.S3OriginConfig !== undefined) {
64
- const bucket = this.s3OriginResolver(origin.DomainName);
65
- assertDefined(bucket, `Sim S3 Bucket for CloudFront Origin ${origin.DomainName}`);
66
- distribution.addOrigin(origin.Id, new SimCloudFrontS3Origin(bucket, origin.OriginPath));
67
- return;
68
- }
69
- throw new Error(`Unsupported sim CloudFront Origin type for Origin ${origin.Id}`);
70
- }
71
- behaviorFromDefaultCacheBehavior(cacheBehavior) {
72
- assertDefined(cacheBehavior, "CloudFront DefaultCacheBehavior");
73
- return {
74
- targetOriginName: this.requiredTargetOriginId(cacheBehavior.TargetOriginId),
75
- allowedMethods: this.methods(cacheBehavior.AllowedMethods, [
76
- "GET",
77
- "HEAD",
78
- ]),
79
- cachedMethods: this.methods(cacheBehavior.AllowedMethods?.CachedMethods, [
80
- "GET",
81
- "HEAD",
82
- ]),
83
- ...(cacheBehavior.ViewerProtocolPolicy === undefined
84
- ? {}
85
- : { viewerProtocolPolicy: cacheBehavior.ViewerProtocolPolicy }),
86
- };
87
- }
88
- behaviorFromCacheBehavior(cacheBehavior) {
89
- assertDefined(cacheBehavior.PathPattern, "CloudFront CacheBehavior PathPattern");
90
- return {
91
- pathPattern: cacheBehavior.PathPattern,
92
- targetOriginName: this.requiredTargetOriginId(cacheBehavior.TargetOriginId),
93
- allowedMethods: this.methods(cacheBehavior.AllowedMethods, [
94
- "GET",
95
- "HEAD",
96
- ]),
97
- cachedMethods: this.methods(cacheBehavior.AllowedMethods?.CachedMethods, [
98
- "GET",
99
- "HEAD",
100
- ]),
101
- ...(cacheBehavior.ViewerProtocolPolicy === undefined
102
- ? {}
103
- : { viewerProtocolPolicy: cacheBehavior.ViewerProtocolPolicy }),
104
- };
105
- }
106
- requiredTargetOriginId(targetOriginId) {
107
- assertDefined(targetOriginId, "CloudFront CacheBehavior TargetOriginId");
108
- return targetOriginId;
109
- }
110
- methods(methods, fallback) {
111
- return new Set(methods?.Items ?? fallback);
112
- }
113
58
  }
114
59
  //# sourceMappingURL=create-distribution.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-distribution.handler.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-distribution/create-distribution.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-distribution.handler.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-distribution/create-distribution.handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EACL,yBAAyB,GAE1B,MAAM,mDAAmD,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wEAAwE,CAAC;AACzH,OAAO,EAAE,iCAAiC,EAAE,MAAM,0EAA0E,CAAC;AAC7H,OAAO,EAAE,qCAAqC,EAAE,MAAM,8EAA8E,CAAC;AAarI;;;;GAIG;AACH,MAAM,OAAO,gCAAgC;IAI1B,SAAS,CAAkB;IAC3B,aAAa,CAG5B;IACe,kBAAkB,CAAwB;IAC1C,wBAAwB,CAAwC;IAChE,UAAU,CAAsB;IAEjD,YAAY,KAA4C;QACtD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;QACnD,IAAI,CAAC,wBAAwB,GAAG,IAAI,qCAAqC,CACvE,IAAI,+BAA+B,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAC3D,IAAI,iCAAiC,EAAE,CACxC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAAiC;QAEjC,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,kBAAkB,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACxD,aAAa,CACX,kBAAkB,EAClB,8CAA8C,CAC/C,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;QACxE,MAAM,YAAY,GAAG,IAAI,yBAAyB,CAAC;YACjD,cAAc;YACd,kBAAkB;YAClB,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAE1E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAC1C,YAAY,CAAC,cAAc,EAC3B,IAAI,CAAC,SAAS,CACf,CAAC;QAEF,2EAA2E;QAC3E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAElE,OAAO;YACL,YAAY,EAAE;gBACZ,EAAE,EAAE,YAAY,CAAC,cAAc;gBAC/B,GAAG,EAAE,uBAAuB,IAAI,CAAC,SAAS,iBAAiB,YAAY,CAAC,cAAc,EAAE;gBACxF,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,6BAA6B,EAAE,CAAC;gBAChC,UAAU,EAAE,GAAG,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,iBAAiB;gBACzE,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;aACpD;YACD,QAAQ,EAAE,4DAA4D,YAAY,CAAC,cAAc,EAAE;YACnG,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/CreateFunctionCommand/
3
+ */
4
+ import type { SimArn } from "../../../aws/arn.js";
5
+ /**
6
+ * Minimal structural sim CloudFront CreateFunction command.
7
+ */
8
+ export interface SimCreateFunctionCommand {
9
+ readonly input: SimCreateFunctionCommandInput;
10
+ }
11
+ /**
12
+ * Minimal structural sim CloudFront CreateFunction input.
13
+ */
14
+ export interface SimCreateFunctionCommandInput {
15
+ readonly Name?: string | undefined;
16
+ FunctionConfig?: {
17
+ Comment?: string | undefined;
18
+ Runtime?: "cloudfront-js-1.0" | "cloudfront-js-2.0" | undefined;
19
+ } | undefined;
20
+ FunctionCode?: Uint8Array | undefined;
21
+ }
22
+ /**
23
+ * Minimal structural sim CloudFront CreateFunction output.
24
+ */
25
+ export interface SimCreateFunctionCommandOutput {
26
+ readonly $metadata: Record<string, unknown>;
27
+ FunctionSummary: SimCloudFrontFunctionSummary;
28
+ FunctionMetadata: SimCloudFrontFunctionMetadata;
29
+ }
30
+ /**
31
+ * Minimal structural sim CloudFront Function summary.
32
+ */
33
+ export interface SimCloudFrontFunctionSummary {
34
+ Name: string;
35
+ Status: string;
36
+ }
37
+ /**
38
+ * Minimal structural sim CloudFront Function metadata.
39
+ */
40
+ export interface SimCloudFrontFunctionMetadata {
41
+ FunctionARN: SimArn;
42
+ }
43
+ //# sourceMappingURL=create-function.cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-function.cmd.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-function/create-function.cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,6BAA6B,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EACX;QACE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,SAAS,CAAC;KACjE,GACD,SAAS,CAAC;IACd,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,eAAe,EAAE,4BAA4B,CAAC;IAC9C,gBAAgB,EAAE,6BAA6B,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/CreateFunctionCommand/
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=create-function.cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-function.cmd.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-function/create-function.cmd.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,28 @@
1
+ import type { CommandHandler } from "../../../../command/command-handler.js";
2
+ import type { SimCreateFunctionCommand, SimCreateFunctionCommandOutput } from "./create-function.cmd.js";
3
+ import { SimCloudFrontFunction, type SimCloudFrontFunctionName } from "../../cff/sim-cloudfront-function.js";
4
+ import { type BackgroundScheduler } from "../../../../util/background/background.js";
5
+ import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
6
+ export type SimCloudFrontFunctionMap = Map<SimCloudFrontFunctionName, SimCloudFrontFunction>;
7
+ interface CreateFunctionCommandHandlerProps {
8
+ accountId: SimAwsAccountId;
9
+ cloudFrontFunctions?: SimCloudFrontFunctionMap;
10
+ background?: BackgroundScheduler;
11
+ }
12
+ /**
13
+ * Simulated CloudFront CreateFunctionCommand handler.
14
+ *
15
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/CreateFunctionCommand/
16
+ */
17
+ export declare class CreateFunctionCommandHandler implements CommandHandler<SimCreateFunctionCommand, SimCreateFunctionCommandOutput> {
18
+ private readonly accountId;
19
+ private readonly cloudFrontFunctions;
20
+ private readonly background;
21
+ constructor(props: CreateFunctionCommandHandlerProps);
22
+ /**
23
+ * Create a sim CloudFront Function.
24
+ */
25
+ handle(cmd: SimCreateFunctionCommand): Promise<SimCreateFunctionCommandOutput>;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=create-function.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-function.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-function/create-function.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC/B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,MAAM,wBAAwB,GAAG,GAAG,CACxC,yBAAyB,EACzB,qBAAqB,CACtB,CAAC;AAEF,UAAU,iCAAiC;IACzC,SAAS,EAAE,eAAe,CAAC;IAC3B,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;;;GAIG;AACH,qBAAa,4BAA6B,YAAW,cAAc,CACjE,wBAAwB,EACxB,8BAA8B,CAC/B;IACC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,KAAK,EAAE,iCAAiC;IAWpD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAAC,8BAA8B,CAAC;CAkC3C"}
@@ -0,0 +1,49 @@
1
+ import { jitter } from "../../../../util/sleep.js";
2
+ import { assertDefined } from "../../../../util/defined/defined.js";
3
+ import { SimCloudFrontFunction, } from "../../cff/sim-cloudfront-function.js";
4
+ import { CffUint8ArrayFunctionCodeExtractor } from "../../cff/function-code-input/cff-function-code-input.js";
5
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
6
+ /**
7
+ * Simulated CloudFront CreateFunctionCommand handler.
8
+ *
9
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/CreateFunctionCommand/
10
+ */
11
+ export class CreateFunctionCommandHandler {
12
+ accountId;
13
+ cloudFrontFunctions;
14
+ background;
15
+ constructor(props) {
16
+ const { accountId, cloudFrontFunctions = new Map(), background = new BackgroundTasks(), } = props;
17
+ this.accountId = accountId;
18
+ this.cloudFrontFunctions = cloudFrontFunctions;
19
+ this.background = background;
20
+ }
21
+ /**
22
+ * Create a sim CloudFront Function.
23
+ */
24
+ async handle(cmd) {
25
+ assertDefined(cmd.input.Name, "CreateFunctionCommand.input.Name");
26
+ assertDefined(cmd.input.FunctionCode, "CreateFunctionCommand.input.FunctionCode");
27
+ await jitter();
28
+ const handlerFunction = new CffUint8ArrayFunctionCodeExtractor(cmd.input.FunctionCode).extractHandlerFunction();
29
+ const simCff = new SimCloudFrontFunction({
30
+ name: cmd.input.Name,
31
+ accountId: this.accountId,
32
+ handlerFunction,
33
+ });
34
+ this.cloudFrontFunctions.set(simCff.name, simCff);
35
+ // New CFF becomes available async in background.
36
+ this.background.schedule(() => simCff.publish());
37
+ return {
38
+ $metadata: {},
39
+ FunctionSummary: {
40
+ Name: simCff.name,
41
+ Status: simCff.status,
42
+ },
43
+ FunctionMetadata: {
44
+ FunctionARN: simCff.arn,
45
+ },
46
+ };
47
+ }
48
+ }
49
+ //# sourceMappingURL=create-function.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-function.handler.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-function/create-function.handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EACL,qBAAqB,GAEtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,kCAAkC,EAAE,MAAM,0DAA0D,CAAC;AAC9G,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AAcnD;;;;GAIG;AACH,MAAM,OAAO,4BAA4B;IAItB,SAAS,CAAkB;IAC3B,mBAAmB,CAA2B;IAC9C,UAAU,CAAsB;IAEjD,YAAY,KAAwC;QAClD,MAAM,EACJ,SAAS,EACT,mBAAmB,GAAG,IAAI,GAAG,EAA8B,EAC3D,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,KAAK,CAAC;QACV,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA6B;QAE7B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;QAClE,aAAa,CACX,GAAG,CAAC,KAAK,CAAC,YAAY,EACtB,0CAA0C,CAC3C,CAAC;QAEF,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,eAAe,GAAG,IAAI,kCAAkC,CAC5D,GAAG,CAAC,KAAK,CAAC,YAAY,CACvB,CAAC,sBAAsB,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC;YACvC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElD,iDAAiD;QACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjD,OAAO;YACL,SAAS,EAAE,EAAE;YACb,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;YACD,gBAAgB,EAAE;gBAChB,WAAW,EAAE,MAAM,CAAC,GAAG;aACxB;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ import type { SimCloudFrontDistributionConfig } from "../create-distribution/create-distribution.cmd.js";
2
+ /**
3
+ * Minimal structural sim CloudFront GetDistribution command.
4
+ */
5
+ export interface SimGetDistributionCommand {
6
+ readonly input: SimGetDistributionCommandInput;
7
+ }
8
+ /**
9
+ * Minimal structural sim CloudFront GetDistribution input.
10
+ */
11
+ export interface SimGetDistributionCommandInput {
12
+ readonly Id?: string | undefined;
13
+ }
14
+ /**
15
+ * Minimal structural sim CloudFront GetDistribution output.
16
+ */
17
+ export interface SimGetDistributionCommandOutput {
18
+ readonly Distribution?: {
19
+ readonly Id?: string | undefined;
20
+ readonly ARN?: string | undefined;
21
+ readonly Status?: string | undefined;
22
+ readonly LastModifiedTime?: Date | undefined;
23
+ readonly InProgressInvalidationBatches?: number | undefined;
24
+ readonly DomainName?: string | undefined;
25
+ readonly DistributionConfig?: SimCloudFrontDistributionConfig | undefined;
26
+ } | undefined;
27
+ readonly $metadata: Record<string, unknown>;
28
+ }
29
+ //# sourceMappingURL=get-distribution.cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-distribution.cmd.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/get-distribution/get-distribution.cmd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,8BAA8B,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAClB;QACE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;QAC7C,QAAQ,CAAC,6BAA6B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACzC,QAAQ,CAAC,kBAAkB,CAAC,EACxB,+BAA+B,GAC/B,SAAS,CAAC;KACf,GACD,SAAS,CAAC;IACd,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=get-distribution.cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-distribution.cmd.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/get-distribution/get-distribution.cmd.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import type { SimGetDistributionCommand, SimGetDistributionCommandOutput } from "./get-distribution.cmd.js";
2
+ import type { CommandHandler } from "../../../../command/command-handler.js";
3
+ import type { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "../../distribution/sim-cloudfront-distribution.js";
4
+ interface GetDistributionCommandHandlerProps {
5
+ readonly distributions: Map<SimCloudFrontDistributionId, SimCloudFrontDistribution>;
6
+ }
7
+ /**
8
+ * CloudFront GetDistributionCommand handler.
9
+ *
10
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetDistributionCommand/
11
+ */
12
+ export declare class GetDistributionCommandHandler implements CommandHandler<SimGetDistributionCommand, SimGetDistributionCommandOutput> {
13
+ private readonly distributions;
14
+ constructor(props: GetDistributionCommandHandlerProps);
15
+ /**
16
+ * Handle getting a CloudFront Distribution.
17
+ */
18
+ handle(cmd: SimGetDistributionCommand): Promise<SimGetDistributionCommandOutput>;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=get-distribution.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-distribution.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/get-distribution/get-distribution.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,mDAAmD,CAAC;AAG3D,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,aAAa,EAAE,GAAG,CACzB,2BAA2B,EAC3B,yBAAyB,CAC1B,CAAC;CACH;AAED;;;;GAIG;AACH,qBAAa,6BAA8B,YAAW,cAAc,CAClE,yBAAyB,EACzB,+BAA+B,CAChC;IACC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;gBAEU,KAAK,EAAE,kCAAkC;IAIrD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,yBAAyB,GAC7B,OAAO,CAAC,+BAA+B,CAAC;CA4B5C"}
@@ -0,0 +1,40 @@
1
+ import { jitter } from "../../../../util/sleep.js";
2
+ import { SimCloudFrontResourceNotFoundException } from "../../error/sim-cloudfront.error.js";
3
+ /**
4
+ * CloudFront GetDistributionCommand handler.
5
+ *
6
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetDistributionCommand/
7
+ */
8
+ export class GetDistributionCommandHandler {
9
+ distributions;
10
+ constructor(props) {
11
+ this.distributions = props.distributions;
12
+ }
13
+ /**
14
+ * Handle getting a CloudFront Distribution.
15
+ */
16
+ async handle(cmd) {
17
+ if (cmd.input.Id === undefined) {
18
+ throw new Error("GetDistributionCommand.input.Id is required");
19
+ }
20
+ const distributionId = cmd.input.Id;
21
+ await jitter();
22
+ const distribution = this.distributions.get(distributionId);
23
+ if (distribution === undefined) {
24
+ throw new SimCloudFrontResourceNotFoundException(`No sim CloudFront Distribution with ID ${distributionId}`);
25
+ }
26
+ return {
27
+ Distribution: {
28
+ Id: distribution.distributionId,
29
+ ARN: `arn:aws:cloudfront::${distribution.accountId}:distribution/${distribution.distributionId}`,
30
+ Status: distribution.status,
31
+ LastModifiedTime: distribution.lastModifiedTime,
32
+ InProgressInvalidationBatches: 0,
33
+ DomainName: `${distribution.distributionId.toLowerCase()}.cloudfront.net`,
34
+ DistributionConfig: distribution.distributionConfig,
35
+ },
36
+ $metadata: {},
37
+ };
38
+ }
39
+ }
40
+ //# sourceMappingURL=get-distribution.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-distribution.handler.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/get-distribution/get-distribution.handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,OAAO,EAAE,sCAAsC,EAAE,MAAM,qCAAqC,CAAC;AAS7F;;;;GAIG;AACH,MAAM,OAAO,6BAA6B;IAIvB,aAAa,CAG5B;IAEF,YAAY,KAAyC;QACnD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA8B;QAE9B,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,EAAiC,CAAC;QAEnE,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,sCAAsC,CAC9C,0CAA0C,cAAc,EAAE,CAC3D,CAAC;QACJ,CAAC;QAED,OAAO;YACL,YAAY,EAAE;gBACZ,EAAE,EAAE,YAAY,CAAC,cAAc;gBAC/B,GAAG,EAAE,uBAAuB,YAAY,CAAC,SAAS,iBAAiB,YAAY,CAAC,cAAc,EAAE;gBAChG,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,6BAA6B,EAAE,CAAC;gBAChC,UAAU,EAAE,GAAG,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,iBAAiB;gBACzE,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;aACpD;YACD,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -1,20 +1,36 @@
1
1
  import type { SimAwsServiceController, SimAwsServiceTarget } from "../../../serve/controller/sim-service-controller.js";
2
2
  import type { SimCloudFrontDistroRouter } from "../router/sim-cloud-front-distro-router.js";
3
3
  import type { SimCloudFrontBehaviorResolver } from "../resolver/sim-cloud-front-behavior-resolver.js";
4
- import { SimCloudFront } from "../sim-cloudfront.js";
4
+ import { SimAws } from "../../aws/sim-aws.js";
5
+ import type { SimCloudFrontRegistry } from "../sim-cloud-front-registry.js";
6
+ interface SimCloudFrontServiceControllerProps {
7
+ readonly simAws?: SimAws;
8
+ readonly cloudFrontRegistry?: SimCloudFrontRegistry;
9
+ readonly distroRouter?: SimCloudFrontDistroRouter;
10
+ readonly behaviourResolver?: SimCloudFrontBehaviorResolver;
11
+ }
5
12
  /**
6
- * Root CloudFront request controller within an Account scope.
13
+ * Root CloudFront request controller.
7
14
  * Controls the request processing workflow across the other simulated
8
15
  * CloudFront components.
9
16
  */
10
17
  export declare class SimCloudFrontServiceController implements SimAwsServiceController {
11
18
  private readonly distroRouter;
12
19
  private readonly behaviourResolver;
13
- constructor(cloudFront?: SimCloudFront, distroRouter?: SimCloudFrontDistroRouter, behaviourResolver?: SimCloudFrontBehaviorResolver);
20
+ constructor(props?: SimCloudFrontServiceControllerProps);
14
21
  /**
15
22
  * Handle a sim CloudFront request by coordinating across other sim CloudFront
16
23
  * components.
17
24
  */
18
- handleRequest(_target: SimAwsServiceTarget, req: Request): Promise<Response>;
25
+ handleRequest(_target: SimAwsServiceTarget, request: Request): Promise<Response>;
26
+ /**
27
+ * Apply viewer request CloudFront Function if configured.
28
+ */
29
+ private applyViewerRequestCff;
30
+ /**
31
+ * Apply viewer response CloudFront Function if configured.
32
+ */
33
+ private applyViewerResponseCff;
19
34
  }
35
+ export {};
20
36
  //# sourceMappingURL=sim-cloudfront-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront-controller.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/controller/sim-cloudfront-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,qDAAqD,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAE5F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AAEtG,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;GAIG;AACH,qBAAa,8BAA+B,YAAW,uBAAuB;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;gBAGhE,UAAU,GAAE,aAAmC,EAC/C,YAAY,GAAE,yBAEb,EACD,iBAAiB,GAAE,6BAA0E;IAM/F;;;OAGG;IACG,aAAa,CACjB,OAAO,EAAE,mBAAmB,EAC5B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,QAAQ,CAAC;CA2BrB"}
1
+ {"version":3,"file":"sim-cloudfront-controller.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/controller/sim-cloudfront-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,qDAAqD,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAE5F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AAKtG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,UAAU,mCAAmC;IAC3C,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,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;CAC5D;AAED;;;;GAIG;AACH,qBAAa,8BAA+B,YAAW,uBAAuB;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;gBAEtD,KAAK,GAAE,mCAAwC;IAiB3D;;;OAGG;IACG,aAAa,CACjB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC;IA0CpB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAoB/B"}
@@ -1,15 +1,22 @@
1
1
  import { SimCloudFrontDistroRouter as DefaultSimCloudFrontDistroRouter } from "../router/sim-cloud-front-distro-router.js";
2
2
  import { SimCloudFrontBehaviorResolver as DefaultSimCloudFrontBehaviorResolver } from "../resolver/sim-cloud-front-behavior-resolver.js";
3
- import { SimCloudFront } from "../sim-cloudfront.js";
3
+ import { assertDefined } from "../../../util/defined/defined.js";
4
+ import { SimAws } from "../../aws/sim-aws.js";
4
5
  /**
5
- * Root CloudFront request controller within an Account scope.
6
+ * Root CloudFront request controller.
6
7
  * Controls the request processing workflow across the other simulated
7
8
  * CloudFront components.
8
9
  */
9
10
  export class SimCloudFrontServiceController {
10
11
  distroRouter;
11
12
  behaviourResolver;
12
- constructor(cloudFront = new SimCloudFront(), distroRouter = new DefaultSimCloudFrontDistroRouter(cloudFront.getDistributions()), behaviourResolver = new DefaultSimCloudFrontBehaviorResolver()) {
13
+ constructor(props = {}) {
14
+ const simAws = props.simAws ?? new SimAws();
15
+ const cloudFrontRegistry = props.cloudFrontRegistry ?? simAws._cloudFrontRegistry();
16
+ const { distroRouter = new DefaultSimCloudFrontDistroRouter({
17
+ simAws,
18
+ cloudFrontRegistry,
19
+ }), behaviourResolver = new DefaultSimCloudFrontBehaviorResolver(), } = props;
13
20
  this.distroRouter = distroRouter;
14
21
  this.behaviourResolver = behaviourResolver;
15
22
  }
@@ -17,25 +24,63 @@ export class SimCloudFrontServiceController {
17
24
  * Handle a sim CloudFront request by coordinating across other sim CloudFront
18
25
  * components.
19
26
  */
20
- async handleRequest(_target, req) {
21
- const distro = this.distroRouter.distroForRequest(req);
22
- if (distro === undefined) {
27
+ async handleRequest(_target, request) {
28
+ let req = request;
29
+ const route = this.distroRouter.routeForRequest(req);
30
+ if (route === undefined) {
23
31
  return new Response("Suitable sim CloudFront Distribution not found", {
24
32
  status: 404,
25
33
  });
26
34
  }
35
+ const { cloudFront, distribution: distro } = route;
27
36
  const behaviour = this.behaviourResolver.resolve(req, distro);
37
+ // Handle viewer-request CFF, if any.
38
+ const cffResult = this.applyViewerRequestCff(cloudFront, req, behaviour);
39
+ if (cffResult instanceof Response) {
40
+ return cffResult;
41
+ }
42
+ req = cffResult;
28
43
  const origin = distro.getOrigin(behaviour.targetOriginName);
29
44
  if (origin === undefined) {
30
45
  return new Response(`Sim CloudFront Distribution misconfigured for Origin ${behaviour.targetOriginName}`, {
31
46
  status: 501,
32
47
  });
33
48
  }
34
- return await origin.fetch({
49
+ const res = await origin.fetch({
35
50
  req,
36
51
  distribution: distro,
37
52
  behavior: behaviour,
38
53
  });
54
+ // Handle viewer-response CFF, if any.
55
+ return this.applyViewerResponseCff(cloudFront, req, res, behaviour);
56
+ }
57
+ /**
58
+ * Apply viewer request CloudFront Function if configured.
59
+ */
60
+ applyViewerRequestCff(cloudFront, req, behaviour) {
61
+ const viewerRequestCffArn = behaviour.functionAssociations?.viewerRequest;
62
+ if (viewerRequestCffArn === undefined) {
63
+ return req;
64
+ }
65
+ const viewerRequestCff = cloudFront.getCloudFrontFunctionByArn(viewerRequestCffArn);
66
+ assertDefined(viewerRequestCff, `CloudFront Function ${viewerRequestCffArn} for viewer-request`);
67
+ const viewerRequestCffResult = viewerRequestCff.handleViewerRequest(req);
68
+ if (viewerRequestCffResult instanceof Response) {
69
+ return viewerRequestCffResult;
70
+ }
71
+ return viewerRequestCffResult;
72
+ }
73
+ /**
74
+ * Apply viewer response CloudFront Function if configured.
75
+ */
76
+ applyViewerResponseCff(cloudFront, req, res, behaviour) {
77
+ const viewerResponseCffArn = behaviour.functionAssociations?.viewerResponse;
78
+ if (viewerResponseCffArn === undefined) {
79
+ return res;
80
+ }
81
+ const viewerResponseCff = cloudFront.getCloudFrontFunctionByArn(viewerResponseCffArn);
82
+ assertDefined(viewerResponseCff, `CloudFront Function ${viewerResponseCffArn} for viewer-response`);
83
+ return viewerResponseCff.handleViewerResponse(req, res);
39
84
  }
40
85
  }
41
86
  //# sourceMappingURL=sim-cloudfront-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront-controller.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/controller/sim-cloudfront-controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,IAAI,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;AAE3H,OAAO,EAAE,6BAA6B,IAAI,oCAAoC,EAAE,MAAM,kDAAkD,CAAC;AACzI,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;GAIG;AACH,MAAM,OAAO,8BAA8B;IACxB,YAAY,CAA4B;IACxC,iBAAiB,CAAgC;IAElE,YACE,aAA4B,IAAI,aAAa,EAAE,EAC/C,eAA0C,IAAI,gCAAgC,CAC5E,UAAU,CAAC,gBAAgB,EAAE,CAC9B,EACD,oBAAmD,IAAI,oCAAoC,EAAE;QAE7F,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,OAA4B,EAC5B,GAAY;QAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEvD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,QAAQ,CAAC,gDAAgD,EAAE;gBACpE,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,QAAQ,CACjB,wDAAwD,SAAS,CAAC,gBAAgB,EAAE,EACpF;gBACE,MAAM,EAAE,GAAG;aACZ,CACF,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC;YACxB,GAAG;YACH,YAAY,EAAE,MAAM;YACpB,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cloudfront-controller.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/controller/sim-cloudfront-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { SimCloudFrontCacheBehaviorConfig, SimCloudFrontDefaultCacheBehaviorConfig } from "../../command/create-distribution/create-distribution.cmd.js";
2
+ import type { SimCloudFrontDistribution } from "../sim-cloudfront-distribution.js";
3
+ /**
4
+ * Applies Cache Behavior configuration to a sim CloudFront Distribution.
5
+ */
6
+ export declare class SimCloudFrontBehaviorConfigurator {
7
+ /**
8
+ * Configure the default Cache Behavior on a Distribution.
9
+ */
10
+ configureDefaultCacheBehavior(distribution: SimCloudFrontDistribution, cacheBehavior: SimCloudFrontDefaultCacheBehaviorConfig | undefined): void;
11
+ /**
12
+ * Configure a Cache Behavior on a Distribution.
13
+ */
14
+ configureCacheBehavior(distribution: SimCloudFrontDistribution, cacheBehavior: SimCloudFrontCacheBehaviorConfig): void;
15
+ private behaviorFromDefaultCacheBehavior;
16
+ private behaviorFromCacheBehavior;
17
+ private functionAssociationsFromCacheBehavior;
18
+ private requiredTargetOriginId;
19
+ private methods;
20
+ }
21
+ //# sourceMappingURL=sim-cloud-front-behavior-configurator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cloud-front-behavior-configurator.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gCAAgC,EAChC,uCAAuC,EAExC,MAAM,8DAA8D,CAAC;AAItE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF;;GAEG;AACH,qBAAa,iCAAiC;IAC5C;;OAEG;IACH,6BAA6B,CAC3B,YAAY,EAAE,yBAAyB,EACvC,aAAa,EAAE,uCAAuC,GAAG,SAAS,GACjE,IAAI;IAMP;;OAEG;IACH,sBAAsB,CACpB,YAAY,EAAE,yBAAyB,EACvC,aAAa,EAAE,gCAAgC,GAC9C,IAAI;IAIP,OAAO,CAAC,gCAAgC;IAyBxC,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,qCAAqC;IA4C7C,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,OAAO;CAMhB"}