@kensio/yulin 0.13.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 (212) hide show
  1. package/README.md +21 -19
  2. package/dist/serve/controller/sim-aws-service-controller-container.d.ts +6 -2
  3. package/dist/serve/controller/sim-aws-service-controller-container.d.ts.map +1 -1
  4. package/dist/serve/controller/sim-aws-service-controller-container.js +4 -2
  5. package/dist/serve/controller/sim-aws-service-controller-container.js.map +1 -1
  6. package/dist/serve/http/sim-aws-http.d.ts +5 -2
  7. package/dist/serve/http/sim-aws-http.d.ts.map +1 -1
  8. package/dist/serve/http/sim-aws-http.js +3 -4
  9. package/dist/serve/http/sim-aws-http.js.map +1 -1
  10. package/dist/serve/http/sim-aws-local-server.d.ts +10 -3
  11. package/dist/serve/http/sim-aws-local-server.d.ts.map +1 -1
  12. package/dist/serve/http/sim-aws-local-server.js +7 -7
  13. package/dist/serve/http/sim-aws-local-server.js.map +1 -1
  14. package/dist/serve/http/sim-aws-local-url.d.ts +6 -1
  15. package/dist/serve/http/sim-aws-local-url.d.ts.map +1 -1
  16. package/dist/serve/http/sim-aws-local-url.js +4 -4
  17. package/dist/serve/http/sim-aws-local-url.js.map +1 -1
  18. package/dist/service/aws/arn.d.ts +1 -1
  19. package/dist/service/aws/arn.d.ts.map +1 -1
  20. package/dist/service/aws/arn.js +1 -1
  21. package/dist/service/aws/arn.js.map +1 -1
  22. package/dist/service/aws/sim-aws-account-region-scope.d.ts +7 -1
  23. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  24. package/dist/service/aws/sim-aws-account-region-scope.js +11 -6
  25. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  26. package/dist/service/aws/sim-aws-account.d.ts +8 -3
  27. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  28. package/dist/service/aws/sim-aws-account.js +3 -1
  29. package/dist/service/aws/sim-aws-account.js.map +1 -1
  30. package/dist/service/aws/sim-aws-region.d.ts +8 -3
  31. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  32. package/dist/service/aws/sim-aws-region.js +6 -4
  33. package/dist/service/aws/sim-aws-region.js.map +1 -1
  34. package/dist/service/aws/sim-aws.d.ts +21 -7
  35. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  36. package/dist/service/aws/sim-aws.js +46 -13
  37. package/dist/service/aws/sim-aws.js.map +1 -1
  38. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +5 -0
  39. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts.map +1 -1
  40. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.js.map +1 -1
  41. package/dist/service/cloudfront/cff/adapter/sim-cff-event-adapter.d.ts +36 -0
  42. package/dist/service/cloudfront/cff/adapter/sim-cff-event-adapter.d.ts.map +1 -0
  43. package/dist/service/cloudfront/cff/adapter/sim-cff-event-adapter.js +177 -0
  44. package/dist/service/cloudfront/cff/adapter/sim-cff-event-adapter.js.map +1 -0
  45. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +38 -0
  46. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts.map +1 -0
  47. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +69 -0
  48. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js.map +1 -0
  49. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +48 -0
  50. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts.map +1 -0
  51. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +66 -0
  52. package/dist/service/cloudfront/cff/sim-cloudfront-function.js.map +1 -0
  53. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts +44 -28
  54. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts.map +1 -1
  55. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +13 -9
  56. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  57. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +23 -78
  58. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  59. package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts +43 -0
  60. package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts.map +1 -0
  61. package/dist/service/cloudfront/command/create-function/create-function.cmd.js +5 -0
  62. package/dist/service/cloudfront/command/create-function/create-function.cmd.js.map +1 -0
  63. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts +28 -0
  64. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -0
  65. package/dist/service/cloudfront/command/create-function/create-function.handler.js +49 -0
  66. package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -0
  67. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts +29 -0
  68. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts.map +1 -0
  69. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.js +2 -0
  70. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.js.map +1 -0
  71. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts +21 -0
  72. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts.map +1 -0
  73. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js +40 -0
  74. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js.map +1 -0
  75. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts +20 -4
  76. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts.map +1 -1
  77. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js +52 -7
  78. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js.map +1 -1
  79. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +21 -0
  80. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts.map +1 -0
  81. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +90 -0
  82. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js.map +1 -0
  83. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +17 -0
  84. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts.map +1 -0
  85. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +28 -0
  86. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js.map +1 -0
  87. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +15 -0
  88. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts.map +1 -0
  89. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +26 -0
  90. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js.map +1 -0
  91. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +23 -1
  92. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts.map +1 -1
  93. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +23 -1
  94. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js.map +1 -1
  95. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
  96. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -0
  97. package/dist/service/cloudfront/error/sim-cloudfront.error.js +20 -0
  98. package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -0
  99. package/dist/service/cloudfront/factory/cloudfront-functions.factory.d.ts +15 -2
  100. package/dist/service/cloudfront/factory/cloudfront-functions.factory.d.ts.map +1 -1
  101. package/dist/service/cloudfront/factory/cloudfront-functions.factory.js +22 -12
  102. package/dist/service/cloudfront/factory/cloudfront-functions.factory.js.map +1 -1
  103. package/dist/service/cloudfront/index.d.ts +1 -0
  104. package/dist/service/cloudfront/index.d.ts.map +1 -1
  105. package/dist/service/cloudfront/index.js +1 -0
  106. package/dist/service/cloudfront/index.js.map +1 -1
  107. package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.d.ts +6 -1
  108. package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.d.ts.map +1 -1
  109. package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.js +3 -3
  110. package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.js.map +1 -1
  111. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js +2 -2
  112. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js.map +1 -1
  113. package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.d.ts +6 -2
  114. package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.d.ts.map +1 -1
  115. package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.js +3 -3
  116. package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.js.map +1 -1
  117. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts +24 -2
  118. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  119. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +61 -10
  120. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  121. package/dist/service/cloudfront/sim-cloud-front-registry.d.ts +8 -0
  122. package/dist/service/cloudfront/sim-cloud-front-registry.d.ts.map +1 -1
  123. package/dist/service/cloudfront/sim-cloud-front-registry.js +12 -0
  124. package/dist/service/cloudfront/sim-cloud-front-registry.js.map +1 -1
  125. package/dist/service/cloudfront/sim-cloudfront.d.ts +32 -2
  126. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  127. package/dist/service/cloudfront/sim-cloudfront.js +55 -3
  128. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  129. package/dist/service/cloudfront/typings/cloudfront-functions.namespace.d.ts +22 -3
  130. package/dist/service/cloudfront/typings/cloudfront-functions.namespace.d.ts.map +1 -1
  131. package/dist/service/dynamodb/command/create-table/create-table.handler.d.ts +7 -1
  132. package/dist/service/dynamodb/command/create-table/create-table.handler.d.ts.map +1 -1
  133. package/dist/service/dynamodb/command/create-table/create-table.handler.js +10 -6
  134. package/dist/service/dynamodb/command/create-table/create-table.handler.js.map +1 -1
  135. package/dist/service/dynamodb/command/describe-table/describe-table.handler.d.ts +5 -1
  136. package/dist/service/dynamodb/command/describe-table/describe-table.handler.d.ts.map +1 -1
  137. package/dist/service/dynamodb/command/describe-table/describe-table.handler.js +2 -2
  138. package/dist/service/dynamodb/command/describe-table/describe-table.handler.js.map +1 -1
  139. package/dist/service/dynamodb/command/list-tables/list-tables.handler.d.ts +5 -1
  140. package/dist/service/dynamodb/command/list-tables/list-tables.handler.d.ts.map +1 -1
  141. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js +2 -2
  142. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js.map +1 -1
  143. package/dist/service/dynamodb/command/put-item/put-item.cmd.d.ts +93 -3
  144. package/dist/service/dynamodb/command/put-item/put-item.cmd.d.ts.map +1 -1
  145. package/dist/service/dynamodb/command/put-item/put-item.handler.d.ts +5 -1
  146. package/dist/service/dynamodb/command/put-item/put-item.handler.d.ts.map +1 -1
  147. package/dist/service/dynamodb/command/put-item/put-item.handler.js +2 -2
  148. package/dist/service/dynamodb/command/put-item/put-item.handler.js.map +1 -1
  149. package/dist/service/dynamodb/sim-dynamodb.d.ts +7 -2
  150. package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
  151. package/dist/service/dynamodb/sim-dynamodb.js +11 -6
  152. package/dist/service/dynamodb/sim-dynamodb.js.map +1 -1
  153. package/dist/service/dynamodb/table/dynamodb-table.d.ts +10 -4
  154. package/dist/service/dynamodb/table/dynamodb-table.d.ts.map +1 -1
  155. package/dist/service/dynamodb/table/dynamodb-table.js +6 -4
  156. package/dist/service/dynamodb/table/dynamodb-table.js.map +1 -1
  157. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +9 -6
  158. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  159. package/dist/service/s3/bucket/sim-s3-bucket.js +4 -5
  160. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  161. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +7 -1
  162. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts.map +1 -1
  163. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +8 -5
  164. package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
  165. package/dist/service/s3/command/get-object/get-object.cmd.d.ts +2 -2
  166. package/dist/service/s3/command/get-object/get-object.cmd.d.ts.map +1 -1
  167. package/dist/service/s3/command/get-object/get-object.handler.d.ts +5 -1
  168. package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
  169. package/dist/service/s3/command/get-object/get-object.handler.js +2 -2
  170. package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
  171. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts +5 -1
  172. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts.map +1 -1
  173. package/dist/service/s3/command/list-buckets/list-buckets.handler.js +2 -2
  174. package/dist/service/s3/command/list-buckets/list-buckets.handler.js.map +1 -1
  175. package/dist/service/s3/command/list-objects/list-objects.cmd.d.ts +4 -4
  176. package/dist/service/s3/command/list-objects/list-objects.cmd.d.ts.map +1 -1
  177. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts +5 -1
  178. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts.map +1 -1
  179. package/dist/service/s3/command/list-objects/list-objects.handler.js +2 -2
  180. package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
  181. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts +5 -1
  182. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts.map +1 -1
  183. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js +2 -2
  184. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js.map +1 -1
  185. package/dist/service/s3/command/put-object/put-object.cmd.d.ts +8 -5
  186. package/dist/service/s3/command/put-object/put-object.cmd.d.ts.map +1 -1
  187. package/dist/service/s3/command/put-object/put-object.handler.d.ts +5 -1
  188. package/dist/service/s3/command/put-object/put-object.handler.d.ts.map +1 -1
  189. package/dist/service/s3/command/put-object/put-object.handler.js +7 -3
  190. package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -1
  191. package/dist/service/s3/object/s3-object.d.ts +7 -1
  192. package/dist/service/s3/object/s3-object.d.ts.map +1 -1
  193. package/dist/service/s3/object/s3-object.js +2 -1
  194. package/dist/service/s3/object/s3-object.js.map +1 -1
  195. package/dist/service/s3/serve/sim-s3-controller.d.ts +6 -2
  196. package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
  197. package/dist/service/s3/serve/sim-s3-controller.js +4 -2
  198. package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
  199. package/dist/service/s3/serve/sim-s3-req-router.d.ts +6 -2
  200. package/dist/service/s3/serve/sim-s3-req-router.d.ts.map +1 -1
  201. package/dist/service/s3/serve/sim-s3-req-router.js +3 -1
  202. package/dist/service/s3/serve/sim-s3-req-router.js.map +1 -1
  203. package/dist/service/s3/sim-s3.d.ts +7 -2
  204. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  205. package/dist/service/s3/sim-s3.js +16 -9
  206. package/dist/service/s3/sim-s3.js.map +1 -1
  207. package/dist/service/s3/storage/s3-filesystem-storage.d.ts +6 -1
  208. package/dist/service/s3/storage/s3-filesystem-storage.d.ts.map +1 -1
  209. package/dist/service/s3/storage/s3-filesystem-storage.js +10 -6
  210. package/dist/service/s3/storage/s3-filesystem-storage.js.map +1 -1
  211. package/dist/tsconfig.tsbuildinfo +1 -0
  212. package/package.json +11 -26
@@ -0,0 +1,66 @@
1
+ import { SimCffEventAdapter } from "./adapter/sim-cff-event-adapter.js";
2
+ import { makeSimAwsAccountId, } from "../../aws/sim-aws-account.js";
3
+ export const defaultCffHandler = (event) => {
4
+ if (event.context.eventType === "viewer-response") {
5
+ return event.response;
6
+ }
7
+ return event.request;
8
+ };
9
+ /**
10
+ * Simulated CloudFront Function resource.
11
+ */
12
+ export class SimCloudFrontFunction {
13
+ name;
14
+ _status;
15
+ accountId;
16
+ handlerFunction;
17
+ eventAdapter;
18
+ constructor(props) {
19
+ const { name, status = "UNPUBLISHED", accountId = makeSimAwsAccountId(), handlerFunction = defaultCffHandler, eventAdapter = new SimCffEventAdapter(), } = props;
20
+ this.name = name;
21
+ this._status = status;
22
+ this.accountId = accountId;
23
+ this.handlerFunction = handlerFunction;
24
+ this.eventAdapter = eventAdapter;
25
+ }
26
+ /**
27
+ * Get the current status of this sim CloudFront Function.
28
+ */
29
+ get status() {
30
+ return this._status;
31
+ }
32
+ /**
33
+ * Get the ARN for this sim CloudFront Function.
34
+ */
35
+ get arn() {
36
+ return `arn:aws:cloudfront::${this.accountId}:function/${this.name}`;
37
+ }
38
+ /**
39
+ * Move this sim CloudFront Function to the PUBLISHED status.
40
+ */
41
+ publish() {
42
+ this._status = "UNASSOCIATED";
43
+ return Promise.resolve();
44
+ }
45
+ /**
46
+ * Run the viewer-request CFF handler on a native Request.
47
+ */
48
+ handleViewerRequest(req) {
49
+ const cffEvent = this.eventAdapter.toViewerRequestEvent(req);
50
+ const handlerFunction = this
51
+ .handlerFunction;
52
+ const cffResult = handlerFunction(cffEvent);
53
+ return this.eventAdapter.fromViewerRequestResult(cffResult, req);
54
+ }
55
+ /**
56
+ * Run the viewer-response CFF handler on a native Request and Response.
57
+ */
58
+ handleViewerResponse(req, res) {
59
+ const cffEvent = this.eventAdapter.toViewerResponseEvent(req, res);
60
+ const handlerFunction = this
61
+ .handlerFunction;
62
+ const cffResult = handlerFunction(cffEvent);
63
+ return this.eventAdapter.fromViewerResponseResult(cffResult);
64
+ }
65
+ }
66
+ //# sourceMappingURL=sim-cloudfront-function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cloudfront-function.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/cff/sim-cloudfront-function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAGxE,OAAO,EACL,mBAAmB,GAEpB,MAAM,8BAA8B,CAAC;AAoBtC,MAAM,CAAC,MAAM,iBAAiB,GAA+B,CAC3D,KAA+B,EAC/B,EAAE;IACF,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;QAClD,OAAQ,KAAgD,CAAC,QAAQ,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAChB,IAAI,CAA4B;IACxC,OAAO,CAA2B;IAC1B,SAAS,CAAkB;IAE1B,eAAe,CAA6B;IAC5C,YAAY,CAAqB;IAElD,YAAY,KAAiC;QAC3C,MAAM,EACJ,IAAI,EACJ,MAAM,GAAG,aAAa,EACtB,SAAS,GAAG,mBAAmB,EAAE,EACjC,eAAe,GAAG,iBAAiB,EACnC,YAAY,GAAG,IAAI,kBAAkB,EAAE,GACxC,GAAG,KAAK,CAAC;QACV,IAAI,CAAC,IAAI,GAAG,IAAiC,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACL,OAAO,uBAAuB,IAAI,CAAC,SAAS,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;QAC9B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,GAAY;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAE7D,MAAM,eAAe,GAAG,IAAI;aACzB,eAA0D,CAAC;QAC9D,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,GAAY,EAAE,GAAa;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEnE,MAAM,eAAe,GAAG,IAAI;aACzB,eAA2D,CAAC;QAC/D,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -8,22 +8,22 @@ export interface SimCreateDistributionCommand {
8
8
  * Minimal structural sim CloudFront CreateDistribution input.
9
9
  */
10
10
  export interface SimCreateDistributionCommandInput {
11
- readonly DistributionConfig?: SimCloudFrontDistributionConfig;
11
+ readonly DistributionConfig?: SimCloudFrontDistributionConfig | undefined;
12
12
  }
13
13
  /**
14
14
  * Minimal structural sim CloudFront CreateDistribution output.
15
15
  */
16
16
  export interface SimCreateDistributionCommandOutput {
17
17
  readonly Distribution?: {
18
- readonly Id?: string;
19
- readonly ARN?: string;
20
- readonly Status?: string;
21
- readonly LastModifiedTime?: Date;
22
- readonly InProgressInvalidationBatches?: number;
23
- readonly DomainName?: string;
24
- readonly DistributionConfig?: SimCloudFrontDistributionConfig;
25
- };
26
- readonly Location?: string;
18
+ readonly Id?: string | undefined;
19
+ readonly ARN?: string | undefined;
20
+ readonly Status?: string | undefined;
21
+ readonly LastModifiedTime?: Date | undefined;
22
+ readonly InProgressInvalidationBatches?: number | undefined;
23
+ readonly DomainName?: string | undefined;
24
+ readonly DistributionConfig?: SimCloudFrontDistributionConfig | undefined;
25
+ } | undefined;
26
+ readonly Location?: string | undefined;
27
27
  readonly $metadata: Record<string, unknown>;
28
28
  }
29
29
  /**
@@ -31,51 +31,67 @@ export interface SimCreateDistributionCommandOutput {
31
31
  */
32
32
  export interface SimCloudFrontDistributionConfig {
33
33
  readonly Aliases?: {
34
- readonly Items?: readonly string[];
35
- };
34
+ readonly Items?: readonly string[] | undefined;
35
+ } | undefined;
36
36
  readonly Origins?: {
37
- readonly Items?: readonly SimCloudFrontOriginConfig[];
38
- };
39
- readonly DefaultCacheBehavior?: SimCloudFrontDefaultCacheBehaviorConfig;
37
+ readonly Items?: readonly SimCloudFrontOriginConfig[] | undefined;
38
+ } | undefined;
39
+ readonly DefaultCacheBehavior?: SimCloudFrontDefaultCacheBehaviorConfig | undefined;
40
40
  readonly CacheBehaviors?: {
41
- readonly Items?: readonly SimCloudFrontCacheBehaviorConfig[];
42
- };
41
+ readonly Items?: readonly SimCloudFrontCacheBehaviorConfig[] | undefined;
42
+ } | undefined;
43
43
  }
44
44
  /**
45
45
  * Minimal structural sim CloudFront Origin config.
46
46
  */
47
47
  export interface SimCloudFrontOriginConfig {
48
- readonly Id?: string;
49
- readonly DomainName?: string;
50
- readonly OriginPath?: string;
51
- readonly S3OriginConfig?: object;
48
+ readonly Id?: string | undefined;
49
+ readonly DomainName?: string | undefined;
50
+ readonly OriginPath?: string | undefined;
51
+ readonly S3OriginConfig?: object | undefined;
52
52
  }
53
53
  /**
54
54
  * Minimal structural sim CloudFront default cache behavior config.
55
55
  */
56
56
  export interface SimCloudFrontDefaultCacheBehaviorConfig {
57
- readonly TargetOriginId?: string;
58
- readonly AllowedMethods?: SimCloudFrontAllowedMethods;
59
- readonly ViewerProtocolPolicy?: SimCloudFrontViewerProtocolPolicy;
57
+ readonly TargetOriginId?: string | undefined;
58
+ readonly AllowedMethods?: SimCloudFrontAllowedMethods | undefined;
59
+ readonly ViewerProtocolPolicy?: SimCloudFrontViewerProtocolPolicy | undefined;
60
+ readonly FunctionAssociations?: SimCloudFrontFunctionAssociations | undefined;
60
61
  }
61
62
  /**
62
63
  * Minimal structural sim CloudFront cache behavior config.
63
64
  */
64
65
  export interface SimCloudFrontCacheBehaviorConfig extends SimCloudFrontDefaultCacheBehaviorConfig {
65
- readonly PathPattern?: string;
66
+ readonly PathPattern?: string | undefined;
67
+ readonly FunctionAssociations?: SimCloudFrontFunctionAssociations | undefined;
68
+ }
69
+ /**
70
+ * Minimal structural sim CloudFront function associations list.
71
+ */
72
+ export interface SimCloudFrontFunctionAssociations {
73
+ readonly Quantity?: number | undefined;
74
+ readonly Items?: readonly SimCloudFrontFunctionAssociation[] | undefined;
75
+ }
76
+ /**
77
+ * Minimal structural sim CloudFront function association.
78
+ */
79
+ export interface SimCloudFrontFunctionAssociation {
80
+ readonly EventType?: "viewer-request" | "viewer-response" | "origin-request" | "origin-response" | undefined;
81
+ readonly FunctionARN?: string | undefined;
66
82
  }
67
83
  /**
68
84
  * Minimal structural sim CloudFront allowed methods list.
69
85
  */
70
86
  export interface SimCloudFrontAllowedMethods {
71
- readonly Items?: readonly string[];
72
- readonly CachedMethods?: SimCloudFrontMethodList;
87
+ readonly Items?: readonly string[] | undefined;
88
+ readonly CachedMethods?: SimCloudFrontMethodList | undefined;
73
89
  }
74
90
  /**
75
91
  * Minimal structural sim CloudFront method list.
76
92
  */
77
93
  export interface SimCloudFrontMethodList {
78
- readonly Items?: readonly string[];
94
+ readonly Items?: readonly string[] | undefined;
79
95
  }
80
96
  /**
81
97
  * Minimal structural sim CloudFront viewer protocol policy.
@@ -1 +1 @@
1
- {"version":3,"file":"create-distribution.cmd.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-distribution/create-distribution.cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,iCAAiC,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,+BAA+B,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;QACjC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC;QAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,+BAA+B,CAAC;KAC/D,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;KACvD,CAAC;IACF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,uCAAuC,CAAC;IACxE,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,gCAAgC,EAAE,CAAC;KAC9D,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,2BAA2B,CAAC;IACtD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,iCAAiC,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,gCAAiC,SAAQ,uCAAuC;IAC/F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,uBAAuB,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,iCAAiC,GACzC,WAAW,GACX,mBAAmB,GACnB,YAAY,CAAC"}
1
+ {"version":3,"file":"create-distribution.cmd.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-distribution/create-distribution.cmd.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,15 @@ import type { SimCreateDistributionCommand, SimCreateDistributionCommandOutput }
3
3
  import type { SimCloudFrontRegistry } from "../../sim-cloud-front-registry.js";
4
4
  import { SimCloudFrontDistribution, type SimCloudFrontDistributionId } from "../../distribution/sim-cloudfront-distribution.js";
5
5
  import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
6
- import { type SimCloudFrontS3OriginResolver } from "../../origin/sim-cloudfront-s3-origin.js";
6
+ import type { SimCloudFrontS3OriginResolver } from "../../origin/sim-cloudfront-s3-origin.js";
7
+ import type { BackgroundScheduler } from "../../../../util/background/background.js";
8
+ interface CreateDistributionCommandHandlerProps {
9
+ readonly accountId: SimAwsAccountId;
10
+ readonly distributions: Map<SimCloudFrontDistributionId, SimCloudFrontDistribution>;
11
+ readonly cloudFrontRegistry: SimCloudFrontRegistry;
12
+ readonly s3OriginResolver: SimCloudFrontS3OriginResolver;
13
+ readonly background: BackgroundScheduler;
14
+ }
7
15
  /**
8
16
  * CloudFront CreateDistributionCommand handler.
9
17
  *
@@ -13,17 +21,13 @@ export declare class CreateDistributionCommandHandler implements CommandHandler<
13
21
  private readonly accountId;
14
22
  private readonly distributions;
15
23
  private readonly cloudFrontRegistry;
16
- private readonly s3OriginResolver;
17
- constructor(accountId: SimAwsAccountId, distributions: Map<SimCloudFrontDistributionId, SimCloudFrontDistribution>, cloudFrontRegistry: SimCloudFrontRegistry, s3OriginResolver: SimCloudFrontS3OriginResolver);
24
+ private readonly distributionConfigurator;
25
+ private readonly background;
26
+ constructor(props: CreateDistributionCommandHandlerProps);
18
27
  /**
19
28
  * Handle creation of a new CloudFront Distribution.
20
29
  */
21
30
  handle(cmd: SimCreateDistributionCommand): Promise<SimCreateDistributionCommandOutput>;
22
- private configureDistribution;
23
- private configureOrigin;
24
- private behaviorFromDefaultCacheBehavior;
25
- private behaviorFromCacheBehavior;
26
- private requiredTargetOriginId;
27
- private methods;
28
31
  }
32
+ export {};
29
33
  //# sourceMappingURL=create-distribution.handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-distribution.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-distribution/create-distribution.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAMV,4BAA4B,EAC5B,kCAAkC,EACnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EACL,yBAAyB,EACzB,KAAK,2BAA2B,EACjC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,0CAA0C,CAAC;AAElD;;;;GAIG;AACH,qBAAa,gCAAiC,YAAW,cAAc,CACrE,4BAA4B,EAC5B,kCAAkC,CACnC;IAEG,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAI9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBANhB,SAAS,EAAE,eAAe,EAC1B,aAAa,EAAE,GAAG,CACjC,2BAA2B,EAC3B,yBAAyB,CAC1B,EACgB,kBAAkB,EAAE,qBAAqB,EACzC,gBAAgB,EAAE,6BAA6B;IAGlE;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,4BAA4B,GAChC,OAAO,CAAC,kCAAkC,CAAC;IAmC9C,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,gCAAgC;IAuBxC,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,OAAO;CAMhB"}
1
+ {"version":3,"file":"create-distribution.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-distribution/create-distribution.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,4BAA4B,EAC5B,kCAAkC,EACnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EACL,yBAAyB,EACzB,KAAK,2BAA2B,EACjC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAKrF,UAAU,qCAAqC;IAC7C,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,UAAU,EAAE,mBAAmB,CAAC;CAC1C;AAED;;;;GAIG;AACH,qBAAa,gCAAiC,YAAW,cAAc,CACrE,4BAA4B,EAC5B,kCAAkC,CACnC;IACC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IACF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAwC;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,KAAK,EAAE,qCAAqC;IAWxD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,4BAA4B,GAChC,OAAO,CAAC,kCAAkC,CAAC;CA0C/C"}
@@ -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: 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"}