@kensio/yulin 1.11.0 → 1.11.1

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 (114) hide show
  1. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.d.ts.map +1 -1
  2. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
  3. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js.map +1 -1
  4. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-kvs-cfn.d.ts +28 -0
  5. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-kvs-cfn.d.ts.map +1 -0
  6. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-kvs-cfn.js +41 -0
  7. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-kvs-cfn.js.map +1 -0
  8. package/dist/service/cloudfront/cff/function-code-input/cff-cloudfront-import.d.ts +21 -0
  9. package/dist/service/cloudfront/cff/function-code-input/cff-cloudfront-import.d.ts.map +1 -0
  10. package/dist/service/cloudfront/cff/function-code-input/cff-cloudfront-import.js +30 -0
  11. package/dist/service/cloudfront/cff/function-code-input/cff-cloudfront-import.js.map +1 -0
  12. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +3 -1
  13. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts.map +1 -1
  14. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +5 -17
  15. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js.map +1 -1
  16. package/dist/service/cloudfront/cff/function-code-input/cff-vm-source-handler.d.ts +13 -0
  17. package/dist/service/cloudfront/cff/function-code-input/cff-vm-source-handler.d.ts.map +1 -0
  18. package/dist/service/cloudfront/cff/function-code-input/cff-vm-source-handler.js +28 -0
  19. package/dist/service/cloudfront/cff/function-code-input/cff-vm-source-handler.js.map +1 -0
  20. package/dist/service/cloudfront/cff/kvs/cff-cloudfront-module.d.ts +28 -0
  21. package/dist/service/cloudfront/cff/kvs/cff-cloudfront-module.d.ts.map +1 -0
  22. package/dist/service/cloudfront/cff/kvs/cff-cloudfront-module.js +30 -0
  23. package/dist/service/cloudfront/cff/kvs/cff-cloudfront-module.js.map +1 -0
  24. package/dist/service/cloudfront/cff/kvs/cff-kvs-handle.d.ts +46 -0
  25. package/dist/service/cloudfront/cff/kvs/cff-kvs-handle.d.ts.map +1 -0
  26. package/dist/service/cloudfront/cff/kvs/cff-kvs-handle.js +60 -0
  27. package/dist/service/cloudfront/cff/kvs/cff-kvs-handle.js.map +1 -0
  28. package/dist/service/cloudfront/cff/kvs/sim-cff-cloudfront-global.d.ts +43 -0
  29. package/dist/service/cloudfront/cff/kvs/sim-cff-cloudfront-global.d.ts.map +1 -0
  30. package/dist/service/cloudfront/cff/kvs/sim-cff-cloudfront-global.js +66 -0
  31. package/dist/service/cloudfront/cff/kvs/sim-cff-cloudfront-global.js.map +1 -0
  32. package/dist/service/cloudfront/cff/kvs/sim-cff-key-value-store-users.d.ts +20 -0
  33. package/dist/service/cloudfront/cff/kvs/sim-cff-key-value-store-users.d.ts.map +1 -0
  34. package/dist/service/cloudfront/cff/kvs/sim-cff-key-value-store-users.js +25 -0
  35. package/dist/service/cloudfront/cff/kvs/sim-cff-key-value-store-users.js.map +1 -0
  36. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +23 -2
  37. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts.map +1 -1
  38. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +30 -4
  39. package/dist/service/cloudfront/cff/sim-cloudfront-function.js.map +1 -1
  40. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-function-config.d.ts +6 -0
  41. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-function-config.d.ts.map +1 -1
  42. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-function-config.js +43 -0
  43. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-function-config.js.map +1 -1
  44. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-config.d.ts +38 -0
  45. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-config.d.ts.map +1 -0
  46. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-config.js +49 -0
  47. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-config.js.map +1 -0
  48. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.d.ts +33 -0
  49. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.d.ts.map +1 -0
  50. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.js +54 -0
  51. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.js.map +1 -0
  52. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
  53. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts.map +1 -1
  54. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +12 -0
  55. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js.map +1 -1
  56. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +6 -0
  57. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts.map +1 -1
  58. package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.d.ts.map +1 -1
  59. package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.js +8 -6
  60. package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.js.map +1 -1
  61. package/dist/service/cloudfront/command/create-function/create-function-kvs-association.d.ts +24 -0
  62. package/dist/service/cloudfront/command/create-function/create-function-kvs-association.d.ts.map +1 -0
  63. package/dist/service/cloudfront/command/create-function/create-function-kvs-association.js +50 -0
  64. package/dist/service/cloudfront/command/create-function/create-function-kvs-association.js.map +1 -0
  65. package/dist/service/cloudfront/command/create-function/create-function.command.d.ts +6 -0
  66. package/dist/service/cloudfront/command/create-function/create-function.command.d.ts.map +1 -1
  67. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts +3 -0
  68. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -1
  69. package/dist/service/cloudfront/command/create-function/create-function.handler.js +11 -2
  70. package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -1
  71. package/dist/service/cloudfront/command/key-value-store/sim-cf-delete-key-value-store.js +1 -1
  72. package/dist/service/cloudfront/command/key-value-store/sim-cf-delete-key-value-store.js.map +1 -1
  73. package/dist/service/cloudfront/command/sim-cf-list-quantity.d.ts +20 -0
  74. package/dist/service/cloudfront/command/sim-cf-list-quantity.d.ts.map +1 -0
  75. package/dist/service/cloudfront/command/sim-cf-list-quantity.js +36 -0
  76. package/dist/service/cloudfront/command/sim-cf-list-quantity.js.map +1 -0
  77. package/dist/service/cloudfront/controller/cff/sim-cff-applicator.d.ts +2 -2
  78. package/dist/service/cloudfront/controller/cff/sim-cff-applicator.d.ts.map +1 -1
  79. package/dist/service/cloudfront/controller/cff/sim-cff-applicator.js +6 -6
  80. package/dist/service/cloudfront/controller/cff/sim-cff-applicator.js.map +1 -1
  81. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +2 -2
  82. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js.map +1 -1
  83. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts.map +1 -1
  84. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +5 -3
  85. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js.map +1 -1
  86. package/dist/service/cloudfront/error/sim-cf-key-value-store.error.d.ts +88 -0
  87. package/dist/service/cloudfront/error/sim-cf-key-value-store.error.d.ts.map +1 -0
  88. package/dist/service/cloudfront/error/sim-cf-key-value-store.error.js +104 -0
  89. package/dist/service/cloudfront/error/sim-cf-key-value-store.error.js.map +1 -0
  90. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +10 -63
  91. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
  92. package/dist/service/cloudfront/error/sim-cloudfront.error.js +11 -74
  93. package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
  94. package/dist/service/cloudfront/globals.d.ts +12 -0
  95. package/dist/service/cloudfront/globals.d.ts.map +1 -1
  96. package/dist/service/cloudfront/globals.js.map +1 -1
  97. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-keys.js +1 -1
  98. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-keys.js.map +1 -1
  99. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-registry.js +1 -1
  100. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-registry.js.map +1 -1
  101. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-users.d.ts +7 -5
  102. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-users.d.ts.map +1 -1
  103. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-users.js.map +1 -1
  104. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js +1 -1
  105. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js.map +1 -1
  106. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts.map +1 -1
  107. package/dist/service/cloudfront/sim-cloudfront-commands.js +7 -4
  108. package/dist/service/cloudfront/sim-cloudfront-commands.js.map +1 -1
  109. package/dist/service/cloudfront/sim-cloudfront.d.ts +1 -1
  110. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  111. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  112. package/dist/service/cloudfront/typings/cloudfront-functions.namespace.d.ts +9 -2
  113. package/dist/service/cloudfront/typings/cloudfront-functions.namespace.d.ts.map +1 -1
  114. package/package.json +1 -1
@@ -0,0 +1,20 @@
1
+ import type { SimCloudFrontFunctionMap } from "../../command/create-function/create-function.handler.js";
2
+ import type { SimCloudFrontKeyValueStoreId } from "../../key-value-store/sim-cf-key-value-store.js";
3
+ import type { SimCfKeyValueStoreUsers } from "../../key-value-store/sim-cf-key-value-store-users.js";
4
+ /**
5
+ * The CloudFront Functions holding a key value store open.
6
+ *
7
+ * CloudFront will not delete a store a Function is still associated with, and
8
+ * the Functions are the only thing here that can be, so this is what the delete
9
+ * command asks. It reads the Function map live rather than keeping its own
10
+ * index, so a Function deleted a moment ago stops holding its store open.
11
+ */
12
+ export declare class SimCffKeyValueStoreUsers implements SimCfKeyValueStoreUsers {
13
+ private readonly cloudFrontFunctions;
14
+ constructor(cloudFrontFunctions: SimCloudFrontFunctionMap);
15
+ /**
16
+ * The names of the Functions associated with a key value store.
17
+ */
18
+ functionsUsing(storeId: SimCloudFrontKeyValueStoreId): readonly string[];
19
+ }
20
+ //# sourceMappingURL=sim-cff-key-value-store-users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cff-key-value-store-users.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cff/kvs/sim-cff-key-value-store-users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACzG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AACpG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAErG;;;;;;;GAOG;AACH,qBAAa,wBAAyB,YAAW,uBAAuB;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAAhD,YAA6B,mBAAmB,EAAE,wBAAwB,EAAI;IAE9E;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,4BAA4B,GAAG,SAAS,MAAM,EAAE,CAMvE;CACF"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The CloudFront Functions holding a key value store open.
3
+ *
4
+ * CloudFront will not delete a store a Function is still associated with, and
5
+ * the Functions are the only thing here that can be, so this is what the delete
6
+ * command asks. It reads the Function map live rather than keeping its own
7
+ * index, so a Function deleted a moment ago stops holding its store open.
8
+ */
9
+ export class SimCffKeyValueStoreUsers {
10
+ cloudFrontFunctions;
11
+ constructor(cloudFrontFunctions) {
12
+ this.cloudFrontFunctions = cloudFrontFunctions;
13
+ }
14
+ /**
15
+ * The names of the Functions associated with a key value store.
16
+ */
17
+ functionsUsing(storeId) {
18
+ return this.cloudFrontFunctions
19
+ .values()
20
+ .filter((cff) => cff.keyValueStore?.id === storeId)
21
+ .map((cff) => cff.name)
22
+ .toArray();
23
+ }
24
+ }
25
+ //# sourceMappingURL=sim-cff-key-value-store-users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cff-key-value-store-users.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cff/kvs/sim-cff-key-value-store-users.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,MAAM,OAAO,wBAAwB;IACN,mBAAmB;IAAhD,YAA6B,mBAA6C;mCAA7C,mBAAmB;IAA6B,CAAC;IAE9E;;OAEG;IACH,cAAc,CAAC,OAAqC;QAClD,OAAO,IAAI,CAAC,mBAAmB;aAC5B,MAAM,EAAE;aACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,KAAK,OAAO,CAAC;aAClD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAc,CAAC;aAChC,OAAO,EAAE,CAAC;IACf,CAAC;CACF"}
@@ -3,6 +3,7 @@ import { SimCffEventAdapter } from "./adapter/sim-cff-event-adapter.js";
3
3
  import type { Brand } from "../../../util/brand.type.js";
4
4
  import type { SimArn } from "../../aws/arn.js";
5
5
  import { type SimAwsAccountId } from "../../aws/sim-aws-account.js";
6
+ import type { SimCloudFrontKeyValueStore } from "../key-value-store/sim-cf-key-value-store.js";
6
7
  export type SimCloudFrontFunctionName = Brand<string, "SimCloudFrontFunctionName">;
7
8
  export type CloudFrontFunctionStatus = "UNPUBLISHED" | "UNASSOCIATED" | "ASSOCIATED";
8
9
  interface SimCloudFrontFunctionProperties {
@@ -11,6 +12,7 @@ interface SimCloudFrontFunctionProperties {
11
12
  readonly accountId?: SimAwsAccountId;
12
13
  handlerFunction?: CloudFrontFunction.Handler;
13
14
  eventAdapter?: SimCffEventAdapter;
15
+ keyValueStore?: SimCloudFrontKeyValueStore | undefined;
14
16
  }
15
17
  export declare const defaultCffHandler: CloudFrontFunction.Handler;
16
18
  /**
@@ -22,6 +24,7 @@ export declare class SimCloudFrontFunction {
22
24
  readonly accountId: SimAwsAccountId;
23
25
  private readonly handlerFunction;
24
26
  private readonly eventAdapter;
27
+ private readonly associatedKeyValueStore;
25
28
  constructor(properties: SimCloudFrontFunctionProperties);
26
29
  /**
27
30
  * Get the current status of this sim CloudFront Function.
@@ -35,14 +38,32 @@ export declare class SimCloudFrontFunction {
35
38
  * Move this sim CloudFront Function to the PUBLISHED status.
36
39
  */
37
40
  publish(): Promise<void>;
41
+ /**
42
+ * The key value store this Function may read, if it is associated with one.
43
+ */
44
+ get keyValueStore(): SimCloudFrontKeyValueStore | undefined;
38
45
  /**
39
46
  * Run the viewer-request CFF handler on a native Request.
47
+ *
48
+ * Awaited because a Function reading a key value store is async. One that
49
+ * reads nothing is synchronous and still works: awaiting a plain value is
50
+ * what makes both shapes the same here.
40
51
  */
41
- handleViewerRequest(request: Request): Request | Response;
52
+ handleViewerRequest(request: Request): Promise<Request | Response>;
42
53
  /**
43
54
  * Run the viewer-response CFF handler on a native Request and Response.
44
55
  */
45
- handleViewerResponse(request: Request, response: Response): Response;
56
+ handleViewerResponse(request: Request, response: Response): Promise<Response>;
57
+ /**
58
+ * Run the handler with this Function's own `cf` in scope.
59
+ *
60
+ * A Function given as source code already has `cf` in its vm sandbox, so this
61
+ * is what gives one given as a function reference the same thing: the module
62
+ * is held in asynchronous context for the length of the invocation, and the
63
+ * global `cf` resolves to it. Setting it for both is harmless and means the
64
+ * two kinds of Function reach a store the same way.
65
+ */
66
+ private running;
46
67
  }
47
68
  export {};
48
69
  //# sourceMappingURL=sim-cloudfront-function.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloudfront-function.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/cff/sim-cloudfront-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAC3C,MAAM,EACN,2BAA2B,CAC5B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,aAAa,GACb,cAAc,GACd,YAAY,CAAC;AAEjB,UAAU,+BAA+B;IACvC,IAAI,EAAE,yBAAyB,GAAG,MAAM,CAAC;IACzC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,eAAe,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAC7C,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,OAOlD,CAAC;AAEF;;GAEG;AACH,qBAAa,qBAAqB;;IAChC,SAAgB,IAAI,EAAE,yBAAyB,CAAC;IAChD,SAAgB,SAAS,EAAE,eAAe,CAAC;IAG3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,YAAY,UAAU,EAAE,+BAA+B,EAatD;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,wBAAwB,CAErC;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAGvB;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAQxD;IAED;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAQnE;CACF"}
1
+ {"version":3,"file":"sim-cloudfront-function.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/cff/sim-cloudfront-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAI/F,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAC3C,MAAM,EACN,2BAA2B,CAC5B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,aAAa,GACb,cAAc,GACd,YAAY,CAAC;AAEjB,UAAU,+BAA+B;IACvC,IAAI,EAAE,yBAAyB,GAAG,MAAM,CAAC;IACzC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,eAAe,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAC7C,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,aAAa,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;CACxD;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,OAOlD,CAAC;AAEF;;GAEG;AACH,qBAAa,qBAAqB;;IAChC,SAAgB,IAAI,EAAE,yBAAyB,CAAC;IAChD,SAAgB,SAAS,EAAE,eAAe,CAAC;IAG3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAE1B;IAEd,YAAY,UAAU,EAAE,+BAA+B,EActD;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,wBAAwB,CAErC;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAGvB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,0BAA0B,GAAG,SAAS,CAE1D;IAED;;;;;;OAMG;IACG,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,CAUvE;IAED;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CAUnB;IAED;;;;;;;;OAQG;YACW,OAAO;CAMtB"}
@@ -1,5 +1,7 @@
1
1
  import { SimCffEventAdapter } from "./adapter/sim-cff-event-adapter.js";
2
2
  import { makeSimAwsAccountId, } from "../../aws/sim-aws-account.js";
3
+ import { cffCloudFrontModule } from "./kvs/cff-cloudfront-module.js";
4
+ import { simCffCloudFrontGlobal } from "./kvs/sim-cff-cloudfront-global.js";
3
5
  export const defaultCffHandler = (event) => {
4
6
  if (event.context.eventType === "viewer-response") {
5
7
  return event.response;
@@ -15,6 +17,7 @@ export class SimCloudFrontFunction {
15
17
  #status;
16
18
  handlerFunction;
17
19
  eventAdapter;
20
+ associatedKeyValueStore;
18
21
  constructor(properties) {
19
22
  const { name, status = "UNPUBLISHED", accountId = makeSimAwsAccountId(), handlerFunction = defaultCffHandler, eventAdapter = new SimCffEventAdapter(), } = properties;
20
23
  this.name = name;
@@ -22,6 +25,7 @@ export class SimCloudFrontFunction {
22
25
  this.accountId = accountId;
23
26
  this.handlerFunction = handlerFunction;
24
27
  this.eventAdapter = eventAdapter;
28
+ this.associatedKeyValueStore = properties.keyValueStore;
25
29
  }
26
30
  /**
27
31
  * Get the current status of this sim CloudFront Function.
@@ -42,25 +46,47 @@ export class SimCloudFrontFunction {
42
46
  this.#status = "UNASSOCIATED";
43
47
  return Promise.resolve();
44
48
  }
49
+ /**
50
+ * The key value store this Function may read, if it is associated with one.
51
+ */
52
+ get keyValueStore() {
53
+ return this.associatedKeyValueStore;
54
+ }
45
55
  /**
46
56
  * Run the viewer-request CFF handler on a native Request.
57
+ *
58
+ * Awaited because a Function reading a key value store is async. One that
59
+ * reads nothing is synchronous and still works: awaiting a plain value is
60
+ * what makes both shapes the same here.
47
61
  */
48
- handleViewerRequest(request) {
62
+ async handleViewerRequest(request) {
49
63
  const cffEvent = this.eventAdapter.toViewerRequestEvent(request);
50
64
  const handlerFunction = this
51
65
  .handlerFunction;
52
- const cffResult = handlerFunction(cffEvent);
66
+ const cffResult = await this.running(async () => await handlerFunction(cffEvent));
53
67
  return this.eventAdapter.fromViewerRequestResult(cffResult, request);
54
68
  }
55
69
  /**
56
70
  * Run the viewer-response CFF handler on a native Request and Response.
57
71
  */
58
- handleViewerResponse(request, response) {
72
+ async handleViewerResponse(request, response) {
59
73
  const cffEvent = this.eventAdapter.toViewerResponseEvent(request, response);
60
74
  const handlerFunction = this
61
75
  .handlerFunction;
62
- const cffResult = handlerFunction(cffEvent);
76
+ const cffResult = await this.running(async () => await handlerFunction(cffEvent));
63
77
  return this.eventAdapter.fromViewerResponseResult(cffResult, response);
64
78
  }
79
+ /**
80
+ * Run the handler with this Function's own `cf` in scope.
81
+ *
82
+ * A Function given as source code already has `cf` in its vm sandbox, so this
83
+ * is what gives one given as a function reference the same thing: the module
84
+ * is held in asynchronous context for the length of the invocation, and the
85
+ * global `cf` resolves to it. Setting it for both is harmless and means the
86
+ * two kinds of Function reach a store the same way.
87
+ */
88
+ async running(handler) {
89
+ return await simCffCloudFrontGlobal.run(cffCloudFrontModule(this.associatedKeyValueStore), handler);
90
+ }
65
91
  }
66
92
  //# sourceMappingURL=sim-cloudfront-function.js.map
@@ -1 +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;IAChC,SAAS,CAAkB;IAE3C,OAAO,CAA2B;IACjB,eAAe,CAA6B;IAC5C,YAAY,CAAqB;IAElD,YAAY,UAA2C;QACrD,MAAM,EACJ,IAAI,EACJ,MAAM,GAAG,aAAa,EACtB,SAAS,GAAG,mBAAmB,EAAE,EACjC,eAAe,GAAG,iBAAiB,EACnC,YAAY,GAAG,IAAI,kBAAkB,EAAE,GACxC,GAAG,UAAU,CAAC;QACf,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,OAAgB;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEjE,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,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,OAAgB,EAAE,QAAkB;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE5E,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,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cloudfront-function.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/cff/sim-cloudfront-function.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,12 @@ export type SimCfnCffRuntime = "cloudfront-js-1.0" | "cloudfront-js-2.0";
9
9
  export interface SimCfnCffFunctionConfig {
10
10
  readonly Comment?: string | undefined;
11
11
  readonly Runtime?: SimCfnCffRuntime | undefined;
12
+ readonly KeyValueStoreAssociations?: {
13
+ readonly Quantity: number;
14
+ readonly Items: readonly {
15
+ readonly KeyValueStoreARN: string;
16
+ }[];
17
+ } | undefined;
12
18
  }
13
19
  /**
14
20
  * Parse the optional AWS::CloudFront::Function FunctionConfig property.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-cff-function-config.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/cff/sim-cfn-cff-function-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAG5G,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACjD;AAOD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,GACnD,uBAAuB,GAAG,SAAS,CAkBrC"}
1
+ {"version":3,"file":"sim-cfn-cff-function-config.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/cff/sim-cfn-cff-function-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAG5G,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,yBAAyB,CAAC,EAC/B;QACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS;YAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAClE,GACD,SAAS,CAAC;CACf;AAOD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,GACnD,uBAAuB,GAAG,SAAS,CAwBrC"}
@@ -20,11 +20,54 @@ export function simCfnCffFunctionConfig(functionConfigValue) {
20
20
  }
21
21
  const commentValue = functionConfigValue["Comment"];
22
22
  const runtimeValue = functionConfigValue["Runtime"];
23
+ const associations = cffKeyValueStoreAssociations(functionConfigValue["KeyValueStoreAssociations"]);
23
24
  return {
24
25
  Comment: typeof commentValue === "string" ? commentValue : undefined,
25
26
  Runtime: cffRuntime(runtimeValue),
27
+ ...(associations !== undefined && {
28
+ KeyValueStoreAssociations: associations,
29
+ }),
26
30
  };
27
31
  }
32
+ /**
33
+ * Read the template's key value store associations into the command's shape.
34
+ *
35
+ * CloudFormation takes a plain array here, while the CreateFunction API takes
36
+ * the Quantity and Items pair every other CloudFront list uses. The template is
37
+ * the shape being read, so the translation happens here rather than the command
38
+ * learning a second shape.
39
+ *
40
+ * An entry that cannot be read is refused rather than dropped. Dropping one
41
+ * leaves the command nothing to refuse: a Function whose only association was
42
+ * misspelled would deploy with no store at all and fail at request time on
43
+ * `cf.kvs()`, a long way from the template line that was wrong.
44
+ */
45
+ function cffKeyValueStoreAssociations(value) {
46
+ if (value === undefined || value === null) {
47
+ return undefined;
48
+ }
49
+ if (!Array.isArray(value)) {
50
+ throw new TypeError("AWS::CloudFront::Function FunctionConfig KeyValueStoreAssociations " +
51
+ "must be an array");
52
+ }
53
+ const items = value.map((entry, index) => keyValueStoreAssociation(entry, index));
54
+ return { Quantity: items.length, Items: items };
55
+ }
56
+ /**
57
+ * One association from the template array, refusing one that cannot be read.
58
+ */
59
+ function keyValueStoreAssociation(entry, index) {
60
+ const at = `KeyValueStoreAssociations[${String(index)}]`;
61
+ if (!isCfnTemplateValueRecord(entry)) {
62
+ throw new TypeError(`AWS::CloudFront::Function FunctionConfig ${at} must be an object`);
63
+ }
64
+ const arn = entry["KeyValueStoreARN"];
65
+ if (typeof arn !== "string") {
66
+ throw new TypeError(`AWS::CloudFront::Function FunctionConfig ${at} KeyValueStoreARN must ` +
67
+ `be a string`);
68
+ }
69
+ return { KeyValueStoreARN: arn };
70
+ }
28
71
  /**
29
72
  * Return a supported CloudFront Function runtime literal, or undefined when the
30
73
  * template value is missing, non-string, or not one of the supported runtimes.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-cff-function-config.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/cff/sim-cfn-cff-function-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yEAAyE,CAAC;AAenH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAmB;IAClD,mBAAmB;IACnB,mBAAmB;CACpB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,mBAAoD;IAEpD,IAAI,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,SAAS,CACjB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEpD,OAAO;QACL,OAAO,EAAE,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QACpE,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;KAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CACjB,KAAsC;IAEtC,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC9B,iBAAiB,CAAC,GAAG,CAAC,KAAyB,CAAC;QAChD,CAAC,CAAE,KAA0B;QAC7B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"sim-cfn-cff-function-config.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/cff/sim-cfn-cff-function-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yEAAyE,CAAC;AAqBnH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAmB;IAClD,mBAAmB;IACnB,mBAAmB;CACpB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,mBAAoD;IAEpD,IAAI,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,SAAS,CACjB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,4BAA4B,CAC/C,mBAAmB,CAAC,2BAA2B,CAAC,CACjD,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QACpE,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC;QACjC,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI;YAChC,yBAAyB,EAAE,YAAY;SACxC,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,4BAA4B,CACnC,KAAsC;IAEtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CACjB,qEAAqE;YACnE,kBAAkB,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACvC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CACvC,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAC/B,KAA0B,EAC1B,KAAa;IAEb,MAAM,EAAE,GAAG,6BAA6B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IAEzD,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,SAAS,CACjB,4CAA4C,EAAE,oBAAoB,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEtC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CACjB,4CAA4C,EAAE,yBAAyB;YACrE,aAAa,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CACjB,KAAsC;IAEtC,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC9B,iBAAiB,CAAC,GAAG,CAAC,KAAyB,CAAC;QAChD,CAAC,CAAE,KAA0B;QAC7B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ /**
4
+ * What a key value store Resource asks for, once read out of the template.
5
+ */
6
+ export interface SimCfnCfKeyValueStoreConfig {
7
+ readonly name: string;
8
+ readonly comment: string | undefined;
9
+ }
10
+ /**
11
+ * Reads an AWS::CloudFront::KeyValueStore Resource.
12
+ *
13
+ * `Name` is the only required property. `Comment` is kept when it is a string.
14
+ *
15
+ * `ImportSource` seeds a store from an S3 Object at deploy time, and nothing
16
+ * here reads one. It is refused rather than ignored: a store that came up empty
17
+ * when the template said to fill it would let a test pass against no data and
18
+ * the same stack serve real data in AWS, which is the divergence worth failing
19
+ * on. Write the keys with the key value store data API instead.
20
+ */
21
+ export declare class SimCfnCfKeyValueStoreConfigReader {
22
+ private readonly resource;
23
+ private readonly properties;
24
+ constructor(properties: {
25
+ readonly resource: SimCfnResource;
26
+ readonly properties: SimCfnTemplateValueRecord;
27
+ });
28
+ /**
29
+ * Read the config this Resource describes.
30
+ */
31
+ read(): SimCfnCfKeyValueStoreConfig;
32
+ private assertNoImportSource;
33
+ /**
34
+ * Refuse this Resource, saying which part of it could not be read.
35
+ */
36
+ private refuse;
37
+ }
38
+ //# sourceMappingURL=sim-cfn-cf-kvs-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-cf-kvs-config.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAElH;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iCAAiC;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IAEvD,YAAY,UAAU,EAAE;QACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;QAClC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;KAChD,EAGA;IAED;;OAEG;IACH,IAAI,IAAI,2BAA2B,CAelC;IAED,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,MAAM;CAKf"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Reads an AWS::CloudFront::KeyValueStore Resource.
3
+ *
4
+ * `Name` is the only required property. `Comment` is kept when it is a string.
5
+ *
6
+ * `ImportSource` seeds a store from an S3 Object at deploy time, and nothing
7
+ * here reads one. It is refused rather than ignored: a store that came up empty
8
+ * when the template said to fill it would let a test pass against no data and
9
+ * the same stack serve real data in AWS, which is the divergence worth failing
10
+ * on. Write the keys with the key value store data API instead.
11
+ */
12
+ export class SimCfnCfKeyValueStoreConfigReader {
13
+ resource;
14
+ properties;
15
+ constructor(properties) {
16
+ this.resource = properties.resource;
17
+ this.properties = properties.properties;
18
+ }
19
+ /**
20
+ * Read the config this Resource describes.
21
+ */
22
+ read() {
23
+ this.assertNoImportSource();
24
+ const name = this.properties["Name"];
25
+ if (typeof name !== "string") {
26
+ this.refuse("Name must be a string");
27
+ }
28
+ const comment = this.properties["Comment"];
29
+ return {
30
+ name,
31
+ comment: typeof comment === "string" ? comment : undefined,
32
+ };
33
+ }
34
+ assertNoImportSource() {
35
+ if (this.properties["ImportSource"] === undefined) {
36
+ return;
37
+ }
38
+ this.refuse("ImportSource is not simulated, so the store would come up empty " +
39
+ "rather than seeded. Write the keys with PutKey or UpdateKeys on the " +
40
+ "key value store data API instead.");
41
+ }
42
+ /**
43
+ * Refuse this Resource, saying which part of it could not be read.
44
+ */
45
+ refuse(detail) {
46
+ throw new Error(`Invalid AWS::CloudFront::KeyValueStore ${this.resource.logicalId}: ${detail}`);
47
+ }
48
+ }
49
+ //# sourceMappingURL=sim-cfn-cf-kvs-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-cf-kvs-config.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-config.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,iCAAiC;IAC3B,QAAQ,CAAiB;IACzB,UAAU,CAA4B;IAEvD,YAAY,UAGX;QACC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAE3C,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;SAC3D,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CACT,kEAAkE;YAChE,sEAAsE;YACtE,mCAAmC,CACtC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,MAAc;QAC3B,MAAM,IAAI,KAAK,CACb,0CAA0C,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,MAAM,EAAE,CAC/E,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,33 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ import type { SimCloudFrontKeyValueStore } from "../../key-value-store/sim-cf-key-value-store.js";
4
+ import type { SimCloudFront } from "../../sim-cloudfront.js";
5
+ interface SimCfnCfKeyValueStoreCreatorProperties {
6
+ readonly cloudFront: SimCloudFront;
7
+ }
8
+ /**
9
+ * Creates simulated key value stores from AWS::CloudFront::KeyValueStore
10
+ * Resources.
11
+ *
12
+ * Creation goes through the same CreateKeyValueStore command an SDK caller
13
+ * uses, so a duplicate name is refused here the way it is there, and the store
14
+ * provisions in the background the same way.
15
+ */
16
+ export declare class SimCfnCfKeyValueStoreCreator {
17
+ private readonly cloudFront;
18
+ constructor(properties: SimCfnCfKeyValueStoreCreatorProperties);
19
+ /**
20
+ * Create the key value store one Resource describes.
21
+ */
22
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimCloudFrontKeyValueStore>;
23
+ /**
24
+ * Remove a key value store created from a Resource.
25
+ *
26
+ * The ETag is read from the store rather than carried from creation, because
27
+ * anything written to it since will have moved the one creation returned.
28
+ * Tearing a Stack down is not the place to make a caller thread that through.
29
+ */
30
+ delete(resource: SimCfnResource): Promise<void>;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=sim-cfn-cf-kvs-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-cf-kvs-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,UAAU,sCAAsC;IAC9C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAE3C,YAAY,UAAU,EAAE,sCAAsC,EAE7D;IAED;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,0BAA0B,CAAC,CAwBrC;IAED;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAYpD;CACF"}
@@ -0,0 +1,54 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ import { SimCfnCfKeyValueStoreConfigReader } from "./sim-cfn-cf-kvs-config.js";
3
+ /**
4
+ * Creates simulated key value stores from AWS::CloudFront::KeyValueStore
5
+ * Resources.
6
+ *
7
+ * Creation goes through the same CreateKeyValueStore command an SDK caller
8
+ * uses, so a duplicate name is refused here the way it is there, and the store
9
+ * provisions in the background the same way.
10
+ */
11
+ export class SimCfnCfKeyValueStoreCreator {
12
+ cloudFront;
13
+ constructor(properties) {
14
+ this.cloudFront = properties.cloudFront;
15
+ }
16
+ /**
17
+ * Create the key value store one Resource describes.
18
+ */
19
+ async create(resource, properties) {
20
+ const config = new SimCfnCfKeyValueStoreConfigReader({
21
+ resource,
22
+ properties,
23
+ }).read();
24
+ const created = await this.cloudFront.keyValueStores().createKeyValueStore({
25
+ input: {
26
+ Name: config.name,
27
+ ...(config.comment !== undefined && { Comment: config.comment }),
28
+ },
29
+ });
30
+ const store = this.cloudFront
31
+ .keyValueStores()
32
+ .byId(created.KeyValueStore.Id);
33
+ assertDefined(store, `sim CloudFront key value store ${config.name} for CloudFormation ` +
34
+ `Resource ${resource.logicalId}`);
35
+ return store;
36
+ }
37
+ /**
38
+ * Remove a key value store created from a Resource.
39
+ *
40
+ * The ETag is read from the store rather than carried from creation, because
41
+ * anything written to it since will have moved the one creation returned.
42
+ * Tearing a Stack down is not the place to make a caller thread that through.
43
+ */
44
+ async delete(resource) {
45
+ const store = resource.simResource;
46
+ if (store === undefined) {
47
+ return;
48
+ }
49
+ await this.cloudFront.keyValueStores().deleteKeyValueStore({
50
+ input: { Name: store.name, IfMatch: store.resourceETag },
51
+ });
52
+ }
53
+ }
54
+ //# sourceMappingURL=sim-cfn-cf-kvs-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-cf-kvs-creator.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAKvE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAM/E;;;;;;;GAOG;AACH,MAAM,OAAO,4BAA4B;IACtB,UAAU,CAAgB;IAE3C,YAAY,UAAkD;QAC5D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC;QAErC,MAAM,MAAM,GAAG,IAAI,iCAAiC,CAAC;YACnD,QAAQ;YACR,UAAU;SACX,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,mBAAmB,CAAC;YACzE,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;aACjE;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU;aAC1B,cAAc,EAAE;aAChB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAElC,aAAa,CACX,KAAK,EACL,kCAAkC,MAAM,CAAC,IAAI,sBAAsB;YACjE,YAAY,QAAQ,CAAC,SAAS,EAAE,CACnC,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,QAAwB;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAEV,CAAC;QAEd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,mBAAmB,CAAC;YACzD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE;SACzD,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -11,6 +11,7 @@ export declare class SimCloudFrontCloudFormationResourceFactory implements SimCf
11
11
  private readonly distroDeleter;
12
12
  private readonly responseHeadersPolicyCreator;
13
13
  private readonly originAccessControlCreator;
14
+ private readonly keyValueStoreCreator;
14
15
  constructor(cloudFront: SimCloudFront);
15
16
  /**
16
17
  * Create a simulated CloudFront resource from a CloudFormation Resource.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-cloudfront-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAC3H,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAS3D;;GAEG;AACH,qBAAa,0CAA2C,YAAW,4BAA4B;IAC7F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAuC;IACpF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAqC;IAEhF,YAAY,UAAU,EAAE,aAAa,EAUpC;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiC7B;IAED;;;OAGG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAwBf;YAEa,cAAc;CAa7B"}
1
+ {"version":3,"file":"sim-cfn-cloudfront-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAC3H,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAU3D;;GAEG;AACH,qBAAa,0CAA2C,YAAW,4BAA4B;IAC7F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAuC;IACpF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAqC;IAChF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;IAEpE,YAAY,UAAU,EAAE,aAAa,EAapC;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuC7B;IAED;;;OAGG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CA4Bf;YAEa,cAAc;CAa7B"}
@@ -3,6 +3,7 @@ import { SimCfnCffCreator } from "./cff/sim-cfn-cff-creator.js";
3
3
  import { SimCfnCfDistroDeleter } from "./distro/sim-cfn-cf-distro-deleter.js";
4
4
  import { SimCfnCfResponseHeadersPolicyCreator } from "./response-headers-policy/sim-cfn-cf-rh-policy-creator.js";
5
5
  import { SimCfnCfOriginAccessControlCreator } from "./origin-access-control/sim-cfn-cf-oac-creator.js";
6
+ import { SimCfnCfKeyValueStoreCreator } from "./key-value-store/sim-cfn-cf-kvs-creator.js";
6
7
  import { assertDefined } from "../../../util/type-guard/defined.js";
7
8
  /**
8
9
  * CloudFormation Resource factory for simulated CloudFront resources.
@@ -14,6 +15,7 @@ export class SimCloudFrontCloudFormationResourceFactory {
14
15
  distroDeleter;
15
16
  responseHeadersPolicyCreator;
16
17
  originAccessControlCreator;
18
+ keyValueStoreCreator;
17
19
  constructor(cloudFront) {
18
20
  this.cloudFront = cloudFront;
19
21
  this.distroCreator = new SimCfnCfDistroCreator({ cloudFront });
@@ -24,6 +26,9 @@ export class SimCloudFrontCloudFormationResourceFactory {
24
26
  this.originAccessControlCreator = new SimCfnCfOriginAccessControlCreator({
25
27
  cloudFront,
26
28
  });
29
+ this.keyValueStoreCreator = new SimCfnCfKeyValueStoreCreator({
30
+ cloudFront,
31
+ });
27
32
  }
28
33
  /**
29
34
  * Create a simulated CloudFront resource from a CloudFormation Resource.
@@ -42,6 +47,9 @@ export class SimCloudFrontCloudFormationResourceFactory {
42
47
  case "OriginAccessControl": {
43
48
  return this.originAccessControlCreator.create(resource, context.resolvedProperties ?? resource.properties);
44
49
  }
50
+ case "KeyValueStore": {
51
+ return await this.keyValueStoreCreator.create(resource, context.resolvedProperties ?? resource.properties);
52
+ }
45
53
  default: {
46
54
  throw new Error(`Unsupported sim CloudFront CloudFormation Resource ${resourceTypeName}`);
47
55
  }
@@ -69,6 +77,10 @@ export class SimCloudFrontCloudFormationResourceFactory {
69
77
  this.originAccessControlCreator.delete(resource);
70
78
  return;
71
79
  }
80
+ case "KeyValueStore": {
81
+ await this.keyValueStoreCreator.delete(resource);
82
+ return;
83
+ }
72
84
  default: {
73
85
  throw new Error(`Unsupported sim CloudFront CloudFormation Resource ${resourceTypeName} deletion`);
74
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-cloudfront-resource-factory.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cfn-cloudfront-resource-factory.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.ts"],"names":[],"mappings":"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"}
@@ -29,16 +29,20 @@ export interface SimCloudFrontDistributionConfig {
29
29
  readonly Enabled?: boolean | undefined;
30
30
  readonly DefaultRootObject?: string | undefined;
31
31
  readonly CustomErrorResponses?: undefined | {
32
+ readonly Quantity?: number | undefined;
32
33
  readonly Items?: readonly SimCloudFrontCustomErrorResponseConfig[] | undefined;
33
34
  };
34
35
  readonly Aliases?: undefined | {
36
+ readonly Quantity?: number | undefined;
35
37
  readonly Items?: readonly string[] | undefined;
36
38
  };
37
39
  readonly Origins?: undefined | {
40
+ readonly Quantity?: number | undefined;
38
41
  readonly Items?: readonly SimCloudFrontOriginConfig[] | undefined;
39
42
  };
40
43
  readonly DefaultCacheBehavior?: SimCloudFrontDefaultCacheBehaviorConfig | undefined;
41
44
  readonly CacheBehaviors?: undefined | {
45
+ readonly Quantity?: number | undefined;
42
46
  readonly Items?: readonly SimCloudFrontCacheBehaviorConfig[] | undefined;
43
47
  };
44
48
  readonly ViewerCertificate?: SimCloudFrontViewerCertificate | undefined;
@@ -130,6 +134,7 @@ export interface SimCloudFrontFunctionAssociation {
130
134
  * Minimal structural sim CloudFront allowed methods list.
131
135
  */
132
136
  export interface SimCloudFrontAllowedMethods {
137
+ readonly Quantity?: number | undefined;
133
138
  readonly Items?: readonly string[] | undefined;
134
139
  readonly CachedMethods?: SimCloudFrontMethodList | undefined;
135
140
  }
@@ -137,6 +142,7 @@ export interface SimCloudFrontAllowedMethods {
137
142
  * Minimal structural sim CloudFront method list.
138
143
  */
139
144
  export interface SimCloudFrontMethodList {
145
+ readonly Quantity?: number | undefined;
140
146
  readonly Items?: readonly string[] | undefined;
141
147
  }
142
148
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"create-distribution.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-distribution/create-distribution.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAEpG;;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,GAAG,SAAS,CAAC;CAC3E;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,oBAAoB,CAAC,EAC1B,SAAS,GACT;QACE,QAAQ,CAAC,KAAK,CAAC,EACX,SAAS,sCAAsC,EAAE,GACjD,SAAS,CAAC;KACf,CAAC;IACN,QAAQ,CAAC,OAAO,CAAC,EACb,SAAS,GACT;QACE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;KAChD,CAAC;IACN,QAAQ,CAAC,OAAO,CAAC,EACb,SAAS,GACT;QACE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,yBAAyB,EAAE,GAAG,SAAS,CAAC;KACnE,CAAC;IACN,QAAQ,CAAC,oBAAoB,CAAC,EAC1B,uCAAuC,GACvC,SAAS,CAAC;IACd,QAAQ,CAAC,cAAc,CAAC,EACpB,SAAS,GACT;QACE,QAAQ,CAAC,KAAK,CAAC,EACX,SAAS,gCAAgC,EAAE,GAC3C,SAAS,CAAC;KACf,CAAC;IACN,QAAQ,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,GAAG,SAAS,CAAC;CACzE;AAED;;;;;GAKG;AACH,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,cAAc,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,iCAAiC,GAAG,SAAS,CAAC;IAC9E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,iCAAiC,GAAG,SAAS,CAAC;IAC9E,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,gCAAiC,SAAQ,uCAAuC;IAC/F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,iCAAiC,GAAG,SAAS,CAAC;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,gCAAgC,EAAE,GAAG,SAAS,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EACf,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,SAAS,CAAC;IACd,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,MAAM,iCAAiC,GACzC,WAAW,GACX,mBAAmB,GACnB,YAAY,CAAC"}
1
+ {"version":3,"file":"create-distribution.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-distribution/create-distribution.command.ts"],"names":[],"mappings":"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"}