@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
@@ -1,29 +1,32 @@
1
- import { DynamicFactory, VariantFactory } from "@kensio/part-factory";
1
+ import { DynamicFactory } from "@kensio/part-factory";
2
2
  import { faker } from "@faker-js/faker";
3
3
  /**
4
- * Makes instances of the CloudFrontEvent object structure.
4
+ * Makes instances of the viewer-request CloudFrontEvent objects.
5
5
  */
6
- const cloudFrontEventFactory = new DynamicFactory(() => ({
6
+ export const cloudFrontViewerRequestEventFactory = new DynamicFactory(() => ({
7
7
  context: {
8
- eventType: faker.helpers.arrayElement([
9
- "viewer-request",
10
- "viewer-response",
11
- ]),
8
+ eventType: "viewer-request",
12
9
  requestId: faker.string.uuid(),
13
10
  },
14
11
  request: cloudFrontRequestFactory.make(),
15
12
  viewer: { ip: faker.internet.ipv4() },
16
13
  }));
17
14
  /**
18
- * Makes instances of the viewer-request CloudFrontEvent objects.
15
+ * Makes instances of the viewer-response CloudFrontEvent objects.
19
16
  */
20
- export const cloudFrontViewerRequestEventFactory = new VariantFactory(cloudFrontEventFactory, {
21
- context: { eventType: "viewer-request" },
22
- });
17
+ export const cloudFrontViewerResponseEventFactory = new DynamicFactory(() => ({
18
+ context: {
19
+ eventType: "viewer-response",
20
+ requestId: faker.string.uuid(),
21
+ },
22
+ request: cloudFrontRequestFactory.make(),
23
+ response: cloudFrontResponseFactory.make(),
24
+ viewer: { ip: faker.internet.ipv4() },
25
+ }));
23
26
  /**
24
27
  * Makes instances of the CloudFrontRequest object structure.
25
28
  */
26
- const cloudFrontRequestFactory = new DynamicFactory(() => ({
29
+ export const cloudFrontRequestFactory = new DynamicFactory(() => ({
27
30
  cookies: {
28
31
  sessionId: {
29
32
  value: faker.string.uuid(),
@@ -51,4 +54,11 @@ const cloudFrontRequestFactory = new DynamicFactory(() => ({
51
54
  },
52
55
  uri: "/cloudfront/",
53
56
  }));
57
+ /**
58
+ * Makes instances of the CloudFrontResponse object structure.
59
+ */
60
+ export const cloudFrontResponseFactory = new DynamicFactory(() => ({
61
+ statusCode: faker.internet.httpStatusCode(),
62
+ headers: {},
63
+ }));
54
64
  //# sourceMappingURL=cloudfront-functions.factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudfront-functions.factory.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/factory/cloudfront-functions.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC;;GAEG;AACH,MAAM,sBAAsB,GAAG,IAAI,cAAc,CAC/C,GAAG,EAAE,CAAC,CAAC;IACL,OAAO,EAAE;QACP,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YACpC,gBAAgB;YAChB,iBAAiB;SAClB,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;KAC/B;IACD,OAAO,EAAE,wBAAwB,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;CACtC,CAAC,CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAC9C,IAAI,cAAc,CAA2B,sBAAsB,EAAE;IACnE,OAAO,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;CACzC,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,wBAAwB,GAAG,IAAI,cAAc,CACjD,GAAG,EAAE,CAAC,CAAC;IACL,OAAO,EAAE;QACP,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;SAC3B;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE;YACN,KAAK,EACH,iEAAiE;SACpE;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,gBAAgB;SACxB;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,YAAY;SACpB;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;SAClC;KACF;IACD,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE;IACnC,WAAW,EAAE;QACX,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;SACX;KACF;IACD,GAAG,EAAE,cAAc;CACpB,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"cloudfront-functions.factory.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/factory/cloudfront-functions.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAC9C,IAAI,cAAc,CAAwC,GAAG,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE;QACP,SAAS,EAAE,gBAAgB;QAC3B,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;KAC/B;IACD,OAAO,EAAE,wBAAwB,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;CACtC,CAAC,CAAC,CAAC;AAEN;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAC/C,IAAI,cAAc,CAAyC,GAAG,EAAE,CAAC,CAAC;IAChE,OAAO,EAAE;QACP,SAAS,EAAE,iBAAiB;QAC5B,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;KAC/B;IACD,OAAO,EAAE,wBAAwB,CAAC,IAAI,EAAE;IACxC,QAAQ,EAAE,yBAAyB,CAAC,IAAI,EAAE;IAC1C,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;CACtC,CAAC,CAAC,CAAC;AAEN;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACnC,IAAI,cAAc,CAA6B,GAAG,EAAE,CAAC,CAAC;IACpD,OAAO,EAAE;QACP,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;SAC3B;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE;YACN,KAAK,EACH,iEAAiE;SACpE;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,gBAAgB;SACxB;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,YAAY;SACpB;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;SAClC;KACF;IACD,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE;IACnC,WAAW,EAAE;QACX,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;SACX;KACF;IACD,GAAG,EAAE,cAAc;CACpB,CAAC,CAAC,CAAC;AAEN;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GACpC,IAAI,cAAc,CAA8B,GAAG,EAAE,CAAC,CAAC;IACrD,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE;IAC3C,OAAO,EAAE,EAAE;CACZ,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ export { makeCffFunctionCodeInput } from "./cff/function-code-input/cff-function-code-input.js";
1
2
  export { cloudFrontViewerRequestEventFactory } from "./factory/cloudfront-functions.factory.js";
2
3
  export type { CloudFrontFunction } from "./typings/cloudfront-functions.namespace.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/cloudfront/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAChG,YAAY,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/cloudfront/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAC;AAChG,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAChG,YAAY,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC"}
@@ -1,2 +1,3 @@
1
+ export { makeCffFunctionCodeInput } from "./cff/function-code-input/cff-function-code-input.js";
1
2
  export { cloudFrontViewerRequestEventFactory } from "./factory/cloudfront-functions.factory.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/cloudfront/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/cloudfront/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAC;AAChG,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC"}
@@ -16,6 +16,10 @@ export declare function createSimCloudFrontS3OriginResolver(simAws: SimAws, scop
16
16
  * Resolve a simulated S3 Bucket name from a CloudFront S3 Origin domain name.
17
17
  */
18
18
  export declare function bucketNameFromCloudFrontS3OriginDomainName(originDomainName: string): string;
19
+ interface SimCloudFrontS3OriginProps {
20
+ readonly bucket: SimS3Bucket;
21
+ readonly originPath?: string | undefined;
22
+ }
19
23
  /**
20
24
  * Simulated CloudFront S3 Origin.
21
25
  *
@@ -24,7 +28,7 @@ export declare function bucketNameFromCloudFrontS3OriginDomainName(originDomainN
24
28
  export declare class SimCloudFrontS3Origin implements SimCloudFrontOrigin {
25
29
  private readonly bucket;
26
30
  private readonly originPath;
27
- constructor(bucket: SimS3Bucket, originPath?: string);
31
+ constructor(props: SimCloudFrontS3OriginProps);
28
32
  /**
29
33
  * Fetch an object from the backing simulated S3 Bucket.
30
34
  */
@@ -35,4 +39,5 @@ export declare class SimCloudFrontS3Origin implements SimCloudFrontOrigin {
35
39
  private foundObjectResponse;
36
40
  private notFoundResponse;
37
41
  }
42
+ export {};
38
43
  //# sourceMappingURL=sim-cloudfront-s3-origin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront-s3-origin.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-s3-origin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,MAAM,6BAA6B,GAAG,CAC1C,gBAAgB,EAAE,MAAM,KACrB,WAAW,GAAG,SAAS,CAAC;AAE7B;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,SAAS,CAG3D;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,4BAA4B,GAClC,6BAA6B,CAiB/B;AAED;;GAEG;AACH,wBAAgB,0CAA0C,CACxD,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAUR;AAqBD;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,mBAAmB;IAE7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,MAAM,EAAE,WAAW,EACnB,UAAU,SAAK;IAGlC;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqBnE,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,gBAAgB;CAWzB"}
1
+ {"version":3,"file":"sim-cloudfront-s3-origin.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-s3-origin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,MAAM,6BAA6B,GAAG,CAC1C,gBAAgB,EAAE,MAAM,KACrB,WAAW,GAAG,SAAS,CAAC;AAE7B;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,SAAS,CAG3D;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,4BAA4B,GAClC,6BAA6B,CAiB/B;AAED;;GAEG;AACH,wBAAgB,0CAA0C,CACxD,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAUR;AAqBD,UAAU,0BAA0B;IAClC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,KAAK,EAAE,0BAA0B;IAK7C;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqBnE,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,gBAAgB;CAWzB"}
@@ -50,9 +50,9 @@ function s3BucketNameFromOriginDomainName(originDomainName) {
50
50
  export class SimCloudFrontS3Origin {
51
51
  bucket;
52
52
  originPath;
53
- constructor(bucket, originPath = "") {
54
- this.bucket = bucket;
55
- this.originPath = originPath;
53
+ constructor(props) {
54
+ this.bucket = props.bucket;
55
+ this.originPath = props.originPath ?? "";
56
56
  }
57
57
  /**
58
58
  * Fetch an object from the backing simulated S3 Bucket.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront-s3-origin.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-s3-origin.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,UAAU,+BAA+B;IAC7C,oBAAoB;IACpB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC,CACjD,MAAc,EACd,KAAmC;IAEnC,OAAO,CAAC,gBAAwB,EAAE,EAAE;QAClC,MAAM,UAAU,GACd,0CAA0C,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,gCAAgC,UAAU,+BAA+B,CAC1E,CAAC;QACJ,CAAC;QAED,OAAO,MAAM;aACV,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;aAC9B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;aAChC,EAAE,EAAE;aACJ,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0CAA0C,CACxD,gBAAwB;IAExB,MAAM,UAAU,GAAG,gCAAgC,CAAC,gBAAgB,CAAC,CAAC;IAEtE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,wEAAwE,gBAAgB,EAAE,CAC3F,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,gCAAgC,CACvC,gBAAwB;IAExB,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC;IAE9E,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GACzB,wDAAwD,CAAC,IAAI,CAC3D,gBAAgB,CACjB,CAAC;IAEJ,OAAO,qBAAqB,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IAEb;IACA;IAFnB,YACmB,MAAmB,EACnB,aAAa,EAAE;QADf,WAAM,GAAN,MAAM,CAAa;QACnB,eAAU,GAAV,UAAU,CAAK;IAC/B,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAmC;QAC7C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,QAAQ,CAAC,UAAU,OAAO,CAAC,GAAG,CAAC,MAAM,cAAc,EAAE;gBAC9D,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE;oBACP,KAAK,EAAE,WAAW;oBAClB,cAAc,EAAE,2BAA2B;iBAC5C;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,OAAO,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC;IAC/C,CAAC;IAEO,mBAAmB,CAAC,OAAmC;QAC7D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAEtD,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC,CAAC;IACtE,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACrC,OAAO,kBAAkB,CAAC,IAAI,CAAC;aAC5B,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC;aACxB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;IAEO,mBAAmB,CAAC,MAAmB,EAAE,OAAgB;QAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG;YACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;SACtE,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE;gBAC7B,MAAM,EAAE,GAAG;gBACX,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;YAC/B,MAAM,EAAE,GAAG;YACX,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,SAAiB;QACxC,OAAO,IAAI,QAAQ,CACjB,UAAU,SAAS,+BAA+B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAC1E;YACE,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACP,cAAc,EAAE,2BAA2B;aAC5C;SACF,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cloudfront-s3-origin.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-s3-origin.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export class SimCloudFrontBehaviorResolver {
28
28
  }
29
29
  const pathPattern = behaviour.pathPattern;
30
30
  assertDefined(pathPattern, "CloudFront Behavior path pattern");
31
- return new SimCloudFrontPathPattern(pathPattern).matches(requestPath);
31
+ return new SimCloudFrontPathPattern({ pathPattern }).matches(requestPath);
32
32
  }
33
33
  isDefaultBehaviour(behaviour) {
34
34
  return behaviour.pathPattern === undefined || behaviour.pathPattern === "*";
@@ -38,7 +38,7 @@ export class SimCloudFrontBehaviorResolver {
38
38
  if (pathPattern === undefined || pathPattern === "*") {
39
39
  return 0;
40
40
  }
41
- return new SimCloudFrontPathPattern(pathPattern).specificity();
41
+ return new SimCloudFrontPathPattern({ pathPattern }).specificity();
42
42
  }
43
43
  }
44
44
  //# sourceMappingURL=sim-cloud-front-behavior-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloud-front-behavior-resolver.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;GAGG;AACH,MAAM,OAAO,6BAA6B;IACxC;;;OAGG;IACH,OAAO,CACL,GAAY,EACZ,eAA0C;QAE1C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAE9C,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS;aAC5C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aACxE,QAAQ,CACP,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC;YAC1C,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAC7C,CAAC,CAAC,CAAC,CAAC;QAEP,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CACnC,CAAC;QAEF,aAAa,CACX,gBAAgB,EAChB,gDAAgD,eAAe,CAAC,cAAc,EAAE,CACjF,CAAC;QAEF,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,oBAAoB,CAC1B,SAAgC,EAChC,WAAmB;QAEnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QAC1C,aAAa,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;QAE/D,OAAO,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;IAEO,kBAAkB,CAAC,SAAgC;QACzD,OAAO,SAAS,CAAC,WAAW,KAAK,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,GAAG,CAAC;IAC9E,CAAC;IAEO,sBAAsB,CAAC,WAA+B;QAC5D,wCAAwC;QACxC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;YACrD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IACjE,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cloud-front-behavior-resolver.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;GAGG;AACH,MAAM,OAAO,6BAA6B;IACxC;;;OAGG;IACH,OAAO,CACL,GAAY,EACZ,eAA0C;QAE1C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAE9C,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS;aAC5C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aACxE,QAAQ,CACP,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC;YAC1C,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAC7C,CAAC,CAAC,CAAC,CAAC;QAEP,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CACnC,CAAC;QAEF,aAAa,CACX,gBAAgB,EAChB,gDAAgD,eAAe,CAAC,cAAc,EAAE,CACjF,CAAC;QAEF,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,oBAAoB,CAC1B,SAAgC,EAChC,WAAmB;QAEnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QAC1C,aAAa,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;QAE/D,OAAO,IAAI,wBAAwB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5E,CAAC;IAEO,kBAAkB,CAAC,SAAgC;QACzD,OAAO,SAAS,CAAC,WAAW,KAAK,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,GAAG,CAAC;IAC9E,CAAC;IAEO,sBAAsB,CAAC,WAA+B;QAC5D,wCAAwC;QACxC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;YACrD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,IAAI,wBAAwB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACrE,CAAC;CACF"}
@@ -1,3 +1,6 @@
1
+ interface SimCloudFrontPathPatternProps {
2
+ readonly pathPattern: string;
3
+ }
1
4
  /**
2
5
  * CloudFront-style path pattern matcher.
3
6
  *
@@ -8,9 +11,9 @@
8
11
  * All other characters are treated literally.
9
12
  */
10
13
  export declare class SimCloudFrontPathPattern {
11
- private readonly pathPattern;
12
14
  private readonly graphemeSegmenter;
13
- constructor(pathPattern: string);
15
+ private readonly pathPattern;
16
+ constructor(props: SimCloudFrontPathPatternProps);
14
17
  /**
15
18
  * Does this path pattern match a request path?
16
19
  */
@@ -23,4 +26,5 @@ export declare class SimCloudFrontPathPattern {
23
26
  private graphemes;
24
27
  private escapeRegexChar;
25
28
  }
29
+ export {};
26
30
  //# sourceMappingURL=sim-cloudfront-path-pattern.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront-path-pattern.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloudfront-path-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,wBAAwB;IAKvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAE/B;gBAE0B,WAAW,EAAE,MAAM;IAEhD;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,WAAW,IAAI,MAAM;IAMrB,OAAO,CAAC,KAAK;IAwBb,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,eAAe;CAGxB"}
1
+ {"version":3,"file":"sim-cloudfront-path-pattern.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloudfront-path-pattern.ts"],"names":[],"mappings":"AAAA,UAAU,6BAA6B;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAE/B;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,KAAK,EAAE,6BAA6B;IAIhD;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,WAAW,IAAI,MAAM;IAMrB,OAAO,CAAC,KAAK;IAwBb,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,eAAe;CAGxB"}
@@ -8,12 +8,12 @@
8
8
  * All other characters are treated literally.
9
9
  */
10
10
  export class SimCloudFrontPathPattern {
11
- pathPattern;
12
11
  graphemeSegmenter = new Intl.Segmenter(undefined, {
13
12
  granularity: "grapheme",
14
13
  });
15
- constructor(pathPattern) {
16
- this.pathPattern = pathPattern;
14
+ pathPattern;
15
+ constructor(props) {
16
+ this.pathPattern = props.pathPattern;
17
17
  }
18
18
  /**
19
19
  * Does this path pattern match a request path?
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront-path-pattern.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloudfront-path-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAKN;IAJZ,iBAAiB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;QACjE,WAAW,EAAE,UAAU;KACxB,CAAC,CAAC;IAEH,YAA6B,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;IAAG,CAAC;IAEpD;;OAEG;IACH,OAAO,CAAC,WAAmB;QACzB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;QACtC,CAAC,CAAC,CAAC,MAAM,CAAC;IACZ,CAAC;IAEO,KAAK;QACX,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;aACtD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC;YACb,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ;;;;WAIG;QACH,8DAA8D;QAC9D,OAAO,IAAI,MAAM,CAAC,IAAI,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;YACnE,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cloudfront-path-pattern.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloudfront-path-pattern.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAClB,iBAAiB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;QACjE,WAAW,EAAE,UAAU;KACxB,CAAC,CAAC;IACc,WAAW,CAAS;IAErC,YAAY,KAAoC;QAC9C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,WAAmB;QACzB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;QACtC,CAAC,CAAC,CAAC,MAAM,CAAC;IACZ,CAAC;IAEO,KAAK;QACX,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;aACtD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC;YACb,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ;;;;WAIG;QACH,8DAA8D;QAC9D,OAAO,IAAI,MAAM,CAAC,IAAI,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;YACnE,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -1,19 +1,40 @@
1
1
  import type { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "../distribution/sim-cloudfront-distribution.js";
2
+ import type { SimCloudFront } from "../sim-cloudfront.js";
3
+ import type { SimCloudFrontRegistry } from "../sim-cloud-front-registry.js";
4
+ import { SimAws } from "../../aws/sim-aws.js";
5
+ export interface SimCloudFrontDistroRoute {
6
+ readonly cloudFront: SimCloudFront;
7
+ readonly distribution: SimCloudFrontDistribution;
8
+ }
9
+ interface SimCloudFrontDistroRouterProps {
10
+ readonly simAws?: SimAws;
11
+ readonly cloudFrontRegistry?: SimCloudFrontRegistry;
12
+ readonly distributions?: ReadonlyMap<SimCloudFrontDistributionId, SimCloudFrontDistribution>;
13
+ }
2
14
  /**
3
15
  * Routes sim CloudFront requests to the appropriate sim Distribution.
4
16
  * Owns the Distribution lookup decision.
5
17
  */
6
18
  export declare class SimCloudFrontDistroRouter {
7
- private readonly distributions;
8
- constructor(distributions: ReadonlyMap<SimCloudFrontDistributionId, SimCloudFrontDistribution>);
19
+ private readonly simAws;
20
+ private readonly cloudFrontRegistry;
21
+ private readonly distributions?;
22
+ constructor(props?: SimCloudFrontDistroRouterProps);
9
23
  /**
10
24
  * Construct from an array of Distributions instead of a Map.
11
25
  */
12
26
  static fromDistributions(distributions: SimCloudFrontDistribution[]): SimCloudFrontDistroRouter;
27
+ /**
28
+ * Select the appropriate CloudFront route for a request.
29
+ */
30
+ routeForRequest(req: Request): SimCloudFrontDistroRoute | undefined;
13
31
  /**
14
32
  * Select the appropriate Distribution for a request.
15
33
  */
16
34
  distroForRequest(req: Request): SimCloudFrontDistribution | undefined;
35
+ private routeForDistributionId;
36
+ private routeForAlternateDomainName;
37
+ private cloudFrontForAccount;
17
38
  /**
18
39
  * Try to extract a CloudFront Distribution ID from a hostname which could
19
40
  * start with
@@ -23,4 +44,5 @@ export declare class SimCloudFrontDistroRouter {
23
44
  */
24
45
  static extractHostDistroId(hostname: string): SimCloudFrontDistributionId | undefined;
25
46
  }
47
+ export {};
26
48
  //# sourceMappingURL=sim-cloud-front-distro-router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloud-front-distro-router.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/router/sim-cloud-front-distro-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,gDAAgD,CAAC;AAIxD;;;GAGG;AACH,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,WAAW,CACzC,2BAA2B,EAC3B,yBAAyB,CAC1B;IAGH;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,aAAa,EAAE,yBAAyB,EAAE,GACzC,yBAAyB;IAM5B;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,yBAAyB,GAAG,SAAS;IAsBrE;;;;;;OAMG;WACW,mBAAmB,CAC/B,QAAQ,EAAE,MAAM,GACf,2BAA2B,GAAG,SAAS;CAe3C"}
1
+ {"version":3,"file":"sim-cloud-front-distro-router.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/router/sim-cloud-front-distro-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,gDAAgD,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;CAClD;AAED,UAAU,8BAA8B;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAClC,2BAA2B,EAC3B,yBAAyB,CAC1B,CAAC;CACH;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAG7B;gBAEU,KAAK,GAAE,8BAAmC;IAOtD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,aAAa,EAAE,yBAAyB,EAAE,GACzC,yBAAyB;IAQ5B;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,wBAAwB,GAAG,SAAS;IAenE;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,yBAAyB,GAAG,SAAS;IAIrE,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,2BAA2B;IA8BnC,OAAO,CAAC,oBAAoB;IAI5B;;;;;;OAMG;WACW,mBAAmB,CAC/B,QAAQ,EAAE,MAAM,GACf,2BAA2B,GAAG,SAAS;CAe3C"}
@@ -1,38 +1,89 @@
1
1
  import { assertNotNull } from "../../../util/defined/defined.js";
2
2
  import { SimAwsLocalUrl } from "../../../serve/http/sim-aws-local-url.js";
3
+ import { SimAws } from "../../aws/sim-aws.js";
3
4
  /**
4
5
  * Routes sim CloudFront requests to the appropriate sim Distribution.
5
6
  * Owns the Distribution lookup decision.
6
7
  */
7
8
  export class SimCloudFrontDistroRouter {
9
+ simAws;
10
+ cloudFrontRegistry;
8
11
  distributions;
9
- constructor(distributions) {
10
- this.distributions = distributions;
12
+ constructor(props = {}) {
13
+ this.simAws = props.simAws ?? new SimAws();
14
+ this.cloudFrontRegistry =
15
+ props.cloudFrontRegistry ?? this.simAws._cloudFrontRegistry();
16
+ this.distributions = props.distributions ?? new Map();
11
17
  }
12
18
  /**
13
19
  * Construct from an array of Distributions instead of a Map.
14
20
  */
15
21
  static fromDistributions(distributions) {
16
- return new SimCloudFrontDistroRouter(new Map(distributions.map((distro) => [distro.distributionId, distro])));
22
+ return new SimCloudFrontDistroRouter({
23
+ distributions: new Map(distributions.map((distro) => [distro.distributionId, distro])),
24
+ });
17
25
  }
18
26
  /**
19
- * Select the appropriate Distribution for a request.
27
+ * Select the appropriate CloudFront route for a request.
20
28
  */
21
- distroForRequest(req) {
29
+ routeForRequest(req) {
22
30
  const hostname = req.headers.get("host") ?? new URL(req.url).hostname;
23
31
  assertNotNull(hostname, "distroForRequest.req.headers.host");
24
- const simUrl = new SimAwsLocalUrl(`http://${hostname}/`);
32
+ const simUrl = new SimAwsLocalUrl({ input: `http://${hostname}/` });
25
33
  const baseHostname = simUrl.withoutLocalhostSuffix().hostname;
26
34
  const distributionId = SimCloudFrontDistroRouter.extractHostDistroId(baseHostname);
27
35
  if (distributionId !== undefined) {
28
- return this.distributions.get(distributionId);
36
+ return this.routeForDistributionId(distributionId);
37
+ }
38
+ return this.routeForAlternateDomainName(baseHostname);
39
+ }
40
+ /**
41
+ * Select the appropriate Distribution for a request.
42
+ */
43
+ distroForRequest(req) {
44
+ return this.routeForRequest(req)?.distribution;
45
+ }
46
+ routeForDistributionId(distributionId) {
47
+ const fallbackDistribution = this.distributions?.get(distributionId);
48
+ if (fallbackDistribution !== undefined) {
49
+ return {
50
+ cloudFront: this.cloudFrontForAccount(fallbackDistribution.accountId),
51
+ distribution: fallbackDistribution,
52
+ };
53
+ }
54
+ const accountId = this.cloudFrontRegistry.accountIdForDistribution(distributionId);
55
+ if (accountId === undefined) {
56
+ return undefined;
57
+ }
58
+ const cloudFront = this.cloudFrontForAccount(accountId);
59
+ const distribution = cloudFront.getDistributions().get(distributionId);
60
+ if (distribution === undefined) {
61
+ return undefined;
62
+ }
63
+ return { cloudFront, distribution };
64
+ }
65
+ routeForAlternateDomainName(alternateDomainName) {
66
+ if (this.distributions !== undefined) {
67
+ const distribution = [...this.distributions.values()].find((distro) => distro.hasAlternateDomainName(alternateDomainName));
68
+ if (distribution !== undefined) {
69
+ return {
70
+ cloudFront: this.cloudFrontForAccount(distribution.accountId),
71
+ distribution,
72
+ };
73
+ }
29
74
  }
30
- const byAlternateDomainName = [...this.distributions.values()].find((distro) => distro.hasAlternateDomainName(baseHostname));
31
- if (byAlternateDomainName !== undefined) {
32
- return byAlternateDomainName;
75
+ for (const accountId of this.cloudFrontRegistry.accountIdsWithDistributions()) {
76
+ const cloudFront = this.cloudFrontForAccount(accountId);
77
+ const distribution = [...cloudFront.getDistributions().values()].find((distro) => distro.hasAlternateDomainName(alternateDomainName));
78
+ if (distribution !== undefined) {
79
+ return { cloudFront, distribution };
80
+ }
33
81
  }
34
82
  return undefined;
35
83
  }
84
+ cloudFrontForAccount(accountId) {
85
+ return this.simAws.accountRegionScope(accountId).cloudFront();
86
+ }
36
87
  /**
37
88
  * Try to extract a CloudFront Distribution ID from a hostname which could
38
89
  * start with
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloud-front-distro-router.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/router/sim-cloud-front-distro-router.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IAEjB;IADnB,YACmB,aAGhB;QAHgB,kBAAa,GAAb,aAAa,CAG7B;IACA,CAAC;IAEJ;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,aAA0C;QAE1C,OAAO,IAAI,yBAAyB,CAClC,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CACxE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,GAAY;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACtE,aAAa,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,UAAU,QAAQ,GAAG,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC;QAE9D,MAAM,cAAc,GAClB,yBAAyB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACjE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CACxD,CAAC;QACF,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,mBAAmB,CAC/B,QAAgB;QAEhB,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,sCAAsC;QACtC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAiC,CAAC;IACpE,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cloud-front-distro-router.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/router/sim-cloud-front-distro-router.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG1E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAiB9C;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IACnB,MAAM,CAAS;IACf,kBAAkB,CAAwB;IAC1C,aAAa,CAG5B;IAEF,YAAY,QAAwC,EAAE;QACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC3C,IAAI,CAAC,kBAAkB;YACrB,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAChE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,aAA0C;QAE1C,OAAO,IAAI,yBAAyB,CAAC;YACnC,aAAa,EAAE,IAAI,GAAG,CACpB,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAC/D;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,GAAY;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACtE,aAAa,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,UAAU,QAAQ,GAAG,EAAE,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC;QAE9D,MAAM,cAAc,GAClB,yBAAyB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,GAAY;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;IACjD,CAAC;IAEO,sBAAsB,CAC5B,cAA2C;QAE3C,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,SAAS,CAAC;gBACrE,YAAY,EAAE,oBAAoB;aACnC,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GACb,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEvE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;IACtC,CAAC;IAEO,2BAA2B,CACjC,mBAA2B;QAE3B,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACpE,MAAM,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CACnD,CAAC;YAEF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO;oBACL,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,SAAS,CAAC;oBAC7D,YAAY;iBACb,CAAC;YACJ,CAAC;QACH,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,EAAE,EAAE,CAAC;YAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,CAAC,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACnE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAC/D,CAAC;YAEF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,oBAAoB,CAAC,SAA0B;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,mBAAmB,CAC/B,QAAgB;QAEhB,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,sCAAsC;QACtC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAiC,CAAC;IACpE,CAAC;CACF"}
@@ -18,5 +18,13 @@ export declare class SimCloudFrontRegistry {
18
18
  * Register a simulated CloudFront Distribution ID to an Account ID.
19
19
  */
20
20
  registerDistribution(distributionId: SimCloudFrontDistributionId, accountId: SimAwsAccountId): void;
21
+ /**
22
+ * Get the Account ID which owns a simulated CloudFront Distribution ID.
23
+ */
24
+ accountIdForDistribution(distributionId: SimCloudFrontDistributionId): SimAwsAccountId | undefined;
25
+ /**
26
+ * Get Account IDs which currently own simulated CloudFront Distributions.
27
+ */
28
+ accountIdsWithDistributions(): Iterable<SimAwsAccountId>;
21
29
  }
22
30
  //# sourceMappingURL=sim-cloud-front-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloud-front-registry.d.ts","sourceRoot":"","sources":["../../../src/service/cloudfront/sim-cloud-front-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAGnC;IAEJ,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAGnC;IAEJ;;OAEG;IACH,sBAAsB,IAAI,2BAA2B;IAWrD;;OAEG;IACH,oBAAoB,CAClB,cAAc,EAAE,2BAA2B,EAC3C,SAAS,EAAE,eAAe,GACzB,IAAI;CAYR"}
1
+ {"version":3,"file":"sim-cloud-front-registry.d.ts","sourceRoot":"","sources":["../../../src/service/cloudfront/sim-cloud-front-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAGnC;IAEJ,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAGnC;IAEJ;;OAEG;IACH,sBAAsB,IAAI,2BAA2B;IAWrD;;OAEG;IACH,oBAAoB,CAClB,cAAc,EAAE,2BAA2B,EAC3C,SAAS,EAAE,eAAe,GACzB,IAAI;IAaP;;OAEG;IACH,wBAAwB,CACtB,cAAc,EAAE,2BAA2B,GAC1C,eAAe,GAAG,SAAS;IAI9B;;OAEG;IACH,2BAA2B,IAAI,QAAQ,CAAC,eAAe,CAAC;CAGzD"}
@@ -32,5 +32,17 @@ export class SimCloudFrontRegistry {
32
32
  }
33
33
  accountDistributions.add(distributionId);
34
34
  }
35
+ /**
36
+ * Get the Account ID which owns a simulated CloudFront Distribution ID.
37
+ */
38
+ accountIdForDistribution(distributionId) {
39
+ return this.distributionAccountIds.get(distributionId);
40
+ }
41
+ /**
42
+ * Get Account IDs which currently own simulated CloudFront Distributions.
43
+ */
44
+ accountIdsWithDistributions() {
45
+ return this.accountDistributionIds.keys();
46
+ }
35
47
  }
36
48
  //# sourceMappingURL=sim-cloud-front-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloud-front-registry.js","sourceRoot":"","sources":["../../../src/service/cloudfront/sim-cloud-front-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAEnB,MAAM,+CAA+C,CAAC;AAGvD;;;;;;GAMG;AACH,MAAM,OAAO,qBAAqB;IACf,sBAAsB,GAAG,IAAI,GAAG,EAG9C,CAAC;IAEa,sBAAsB,GAAG,IAAI,GAAG,EAG9C,CAAC;IAEJ;;OAEG;IACH,sBAAsB;QACpB,IAAI,cAAc,GAAG,kBAAkB,EAAE,CAAC;QAE1C,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACvD,mDAAmD;YACnD,cAAc,GAAG,kBAAkB,EAAE,CAAC;QACxC,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAClB,cAA2C,EAC3C,SAA0B;QAE1B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAE3D,IAAI,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEtE,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,oBAAoB,GAAG,IAAI,GAAG,EAA+B,CAAC;YAC9D,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACnE,CAAC;QAED,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cloud-front-registry.js","sourceRoot":"","sources":["../../../src/service/cloudfront/sim-cloud-front-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAEnB,MAAM,+CAA+C,CAAC;AAGvD;;;;;;GAMG;AACH,MAAM,OAAO,qBAAqB;IACf,sBAAsB,GAAG,IAAI,GAAG,EAG9C,CAAC;IAEa,sBAAsB,GAAG,IAAI,GAAG,EAG9C,CAAC;IAEJ;;OAEG;IACH,sBAAsB;QACpB,IAAI,cAAc,GAAG,kBAAkB,EAAE,CAAC;QAE1C,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACvD,mDAAmD;YACnD,cAAc,GAAG,kBAAkB,EAAE,CAAC;QACxC,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAClB,cAA2C,EAC3C,SAA0B;QAE1B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAE3D,IAAI,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEtE,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,oBAAoB,GAAG,IAAI,GAAG,EAA+B,CAAC;YAC9D,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACnE,CAAC;QAED,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,wBAAwB,CACtB,cAA2C;QAE3C,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,2BAA2B;QACzB,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF"}
@@ -3,15 +3,28 @@ import type { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "./d
3
3
  import { type SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
4
4
  import type { SimCreateDistributionCommand, SimCreateDistributionCommandOutput } from "./command/create-distribution/create-distribution.cmd.js";
5
5
  import { type SimCloudFrontS3OriginResolver } from "./origin/sim-cloudfront-s3-origin.js";
6
+ import { type BackgroundScheduler } from "../../util/background/background.js";
7
+ import type { SimGetDistributionCommand, SimGetDistributionCommandOutput } from "./command/get-distribution/get-distribution.cmd.js";
8
+ import type { SimCreateFunctionCommand, SimCreateFunctionCommandOutput } from "./command/create-function/create-function.cmd.js";
9
+ import type { SimCloudFrontFunction, SimCloudFrontFunctionName } from "./cff/sim-cloudfront-function.js";
10
+ import type { SimArn } from "../aws/arn.js";
11
+ interface SimCloudFrontProps {
12
+ readonly accountRegionScope?: SimAwsAccountRegionScope;
13
+ readonly cloudFrontRegistry?: SimCloudFrontRegistry;
14
+ readonly s3OriginResolver?: SimCloudFrontS3OriginResolver;
15
+ readonly background?: BackgroundScheduler;
16
+ }
6
17
  /**
7
18
  * Simulated CloudFront. Handles SDK commands. Emulates AWS behaviour and state.
8
19
  */
9
20
  export declare class SimCloudFront {
21
+ private readonly distributions;
22
+ private readonly cloudFrontFunctions;
10
23
  private readonly accountRegionScope;
11
24
  private readonly cloudFrontRegistry;
12
25
  private readonly s3OriginResolver;
13
- private readonly distributions;
14
- constructor(accountRegionScope?: SimAwsAccountRegionScope, cloudFrontRegistry?: SimCloudFrontRegistry, s3OriginResolver?: SimCloudFrontS3OriginResolver);
26
+ private readonly background;
27
+ constructor(props?: SimCloudFrontProps);
15
28
  /**
16
29
  * Get the simulated Distributions owned by this sim CloudFront service.
17
30
  */
@@ -20,5 +33,22 @@ export declare class SimCloudFront {
20
33
  * Handle a Create Distribution Command from the SDK.
21
34
  */
22
35
  createDistribution(cmd: SimCreateDistributionCommand): Promise<SimCreateDistributionCommandOutput>;
36
+ /**
37
+ * Handle a Get Distribution Command from the SDK.
38
+ */
39
+ getDistribution(cmd: SimGetDistributionCommand): Promise<SimGetDistributionCommandOutput>;
40
+ /**
41
+ * Handle a Create Function Command from the SDK.
42
+ */
43
+ createFunction(cmd: SimCreateFunctionCommand): Promise<SimCreateFunctionCommandOutput>;
44
+ /**
45
+ * Get a sim CloudFront Function by name.
46
+ */
47
+ getCloudFrontFunctionByArn(cloudFrontFunctionArn: SimArn): SimCloudFrontFunction | undefined;
48
+ /**
49
+ * Get a sim CloudFront Function by name.
50
+ */
51
+ getCloudFrontFunctionByName(cloudFrontFunctionName: SimCloudFrontFunctionName): SimCloudFrontFunction | undefined;
23
52
  }
53
+ export {};
24
54
  //# sourceMappingURL=sim-cloudfront.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront.d.ts","sourceRoot":"","sources":["../../../src/service/cloudfront/sim-cloudfront.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,4BAA4B,EAC5B,kCAAkC,EACnC,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,qBAAa,aAAa;IAOtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IARnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG1B;gBAGe,kBAAkB,GAAE,wBAAiE,EACrF,kBAAkB,GAAE,qBAAmD,EACvE,gBAAgB,GAAE,6BAA+D;IAGpG;;OAEG;IACH,gBAAgB,IAAI,WAAW,CAC7B,2BAA2B,EAC3B,yBAAyB,CAC1B;IAID;;OAEG;IACG,kBAAkB,CACtB,GAAG,EAAE,4BAA4B,GAChC,OAAO,CAAC,kCAAkC,CAAC;CAS/C"}
1
+ {"version":3,"file":"sim-cloudfront.d.ts","sourceRoot":"","sources":["../../../src/service/cloudfront/sim-cloudfront.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,4BAA4B,EAC5B,kCAAkC,EACnC,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EACV,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,oDAAoD,CAAC;AAE5D,OAAO,KAAK,EACV,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,kDAAkD,CAAC;AAE1D,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IACpD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG1B;IACJ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;IAEJ,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,KAAK,GAAE,kBAAuB;IAc1C;;OAEG;IACH,gBAAgB,IAAI,WAAW,CAC7B,2BAA2B,EAC3B,yBAAyB,CAC1B;IAID;;OAEG;IACG,kBAAkB,CACtB,GAAG,EAAE,4BAA4B,GAChC,OAAO,CAAC,kCAAkC,CAAC;IAW9C;;OAEG;IACG,eAAe,CACnB,GAAG,EAAE,yBAAyB,GAC7B,OAAO,CAAC,+BAA+B,CAAC;IAO3C;;OAEG;IACG,cAAc,CAClB,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAAC,8BAA8B,CAAC;IAS1C;;OAEG;IACH,0BAA0B,CACxB,qBAAqB,EAAE,MAAM,GAC5B,qBAAqB,GAAG,SAAS;IAepC;;OAEG;IACH,2BAA2B,CACzB,sBAAsB,EAAE,yBAAyB,GAChD,qBAAqB,GAAG,SAAS;CAGrC"}
@@ -2,18 +2,26 @@ import { SimCloudFrontRegistry } from "./sim-cloud-front-registry.js";
2
2
  import { CreateDistributionCommandHandler } from "./command/create-distribution/create-distribution.handler.js";
3
3
  import { simAwsAccountRegionScopeFactory, } from "../aws/sim-aws-account-region-scope.js";
4
4
  import { emptyCloudFrontS3OriginResolver, } from "./origin/sim-cloudfront-s3-origin.js";
5
+ import { BackgroundTasks, } from "../../util/background/background.js";
6
+ import { GetDistributionCommandHandler } from "./command/get-distribution/get-distribution.handler.js";
7
+ import { CreateFunctionCommandHandler } from "./command/create-function/create-function.handler.js";
8
+ import { assertDefined } from "../../util/defined/defined.js";
5
9
  /**
6
10
  * Simulated CloudFront. Handles SDK commands. Emulates AWS behaviour and state.
7
11
  */
8
12
  export class SimCloudFront {
13
+ distributions = new Map();
14
+ cloudFrontFunctions = new Map();
9
15
  accountRegionScope;
10
16
  cloudFrontRegistry;
11
17
  s3OriginResolver;
12
- distributions = new Map();
13
- constructor(accountRegionScope = simAwsAccountRegionScopeFactory.make(), cloudFrontRegistry = new SimCloudFrontRegistry(), s3OriginResolver = emptyCloudFrontS3OriginResolver) {
18
+ background;
19
+ constructor(props = {}) {
20
+ const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), cloudFrontRegistry = new SimCloudFrontRegistry(), s3OriginResolver = emptyCloudFrontS3OriginResolver, background = new BackgroundTasks(), } = props;
14
21
  this.accountRegionScope = accountRegionScope;
15
22
  this.cloudFrontRegistry = cloudFrontRegistry;
16
23
  this.s3OriginResolver = s3OriginResolver;
24
+ this.background = background;
17
25
  }
18
26
  /**
19
27
  * Get the simulated Distributions owned by this sim CloudFront service.
@@ -25,8 +33,52 @@ export class SimCloudFront {
25
33
  * Handle a Create Distribution Command from the SDK.
26
34
  */
27
35
  async createDistribution(cmd) {
28
- const handler = new CreateDistributionCommandHandler(this.accountRegionScope.accountId, this.distributions, this.cloudFrontRegistry, this.s3OriginResolver);
36
+ const handler = new CreateDistributionCommandHandler({
37
+ accountId: this.accountRegionScope.accountId,
38
+ distributions: this.distributions,
39
+ cloudFrontRegistry: this.cloudFrontRegistry,
40
+ s3OriginResolver: this.s3OriginResolver,
41
+ background: this.background,
42
+ });
43
+ return await handler.handle(cmd);
44
+ }
45
+ /**
46
+ * Handle a Get Distribution Command from the SDK.
47
+ */
48
+ async getDistribution(cmd) {
49
+ const handler = new GetDistributionCommandHandler({
50
+ distributions: this.distributions,
51
+ });
52
+ return await handler.handle(cmd);
53
+ }
54
+ /**
55
+ * Handle a Create Function Command from the SDK.
56
+ */
57
+ async createFunction(cmd) {
58
+ const handler = new CreateFunctionCommandHandler({
59
+ accountId: this.accountRegionScope.accountId,
60
+ cloudFrontFunctions: this.cloudFrontFunctions,
61
+ background: this.background,
62
+ });
29
63
  return await handler.handle(cmd);
30
64
  }
65
+ /**
66
+ * Get a sim CloudFront Function by name.
67
+ */
68
+ getCloudFrontFunctionByArn(cloudFrontFunctionArn) {
69
+ const arnAccountId = cloudFrontFunctionArn.split(":")[4];
70
+ if (arnAccountId !== this.accountRegionScope.accountId) {
71
+ return undefined;
72
+ }
73
+ const cloudFrontFunctionName = cloudFrontFunctionArn.split("/").pop();
74
+ assertDefined(cloudFrontFunctionName, `CloudFront Function name in ARN ${cloudFrontFunctionArn}`);
75
+ return this.cloudFrontFunctions.get(cloudFrontFunctionName);
76
+ }
77
+ /**
78
+ * Get a sim CloudFront Function by name.
79
+ */
80
+ getCloudFrontFunctionByName(cloudFrontFunctionName) {
81
+ return this.cloudFrontFunctions.get(cloudFrontFunctionName);
82
+ }
31
83
  }
32
84
  //# sourceMappingURL=sim-cloudfront.js.map