@kensio/yulin 1.20.4 → 1.20.5

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 (203) hide show
  1. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.d.ts.map +1 -1
  2. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js +22 -3
  3. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js.map +1 -1
  4. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-cfn.d.ts +31 -0
  5. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-cfn.d.ts.map +1 -0
  6. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-cfn.js +43 -0
  7. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-cfn.js.map +1 -0
  8. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-destination-cfn.d.ts +32 -0
  9. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-destination-cfn.d.ts.map +1 -0
  10. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-destination-cfn.js +34 -0
  11. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-destination-cfn.js.map +1 -0
  12. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-source-cfn.d.ts +27 -0
  13. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-source-cfn.d.ts.map +1 -0
  14. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-source-cfn.js +39 -0
  15. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-source-cfn.js.map +1 -0
  16. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
  17. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts.map +1 -1
  18. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +10 -8
  19. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js.map +1 -1
  20. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-response-headers-policy.d.ts +24 -0
  21. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-response-headers-policy.d.ts.map +1 -0
  22. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-response-headers-policy.js +94 -0
  23. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-response-headers-policy.js.map +1 -0
  24. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.d.ts.map +1 -1
  25. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js +4 -4
  26. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js.map +1 -1
  27. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts.map +1 -1
  28. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +3 -4
  29. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js.map +1 -1
  30. package/dist/service/cloudfront/response-headers-policy/sim-cf-managed-response-headers-policies.d.ts +27 -0
  31. package/dist/service/cloudfront/response-headers-policy/sim-cf-managed-response-headers-policies.d.ts.map +1 -0
  32. package/dist/service/cloudfront/response-headers-policy/sim-cf-managed-response-headers-policies.js +119 -0
  33. package/dist/service/cloudfront/response-headers-policy/sim-cf-managed-response-headers-policies.js.map +1 -0
  34. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts +18 -3
  35. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts.map +1 -1
  36. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js +28 -5
  37. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js.map +1 -1
  38. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.d.ts +14 -4
  39. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.d.ts.map +1 -1
  40. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.js +17 -5
  41. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.js.map +1 -1
  42. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts +6 -2
  43. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts.map +1 -1
  44. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js +7 -3
  45. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js.map +1 -1
  46. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +28 -0
  47. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts.map +1 -0
  48. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +52 -0
  49. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js.map +1 -0
  50. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +30 -0
  51. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts.map +1 -0
  52. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +59 -0
  53. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js.map +1 -0
  54. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-input.d.ts +12 -0
  55. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-input.d.ts.map +1 -0
  56. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-input.js +23 -0
  57. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-input.js.map +1 -0
  58. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-properties.d.ts +50 -0
  59. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-properties.d.ts.map +1 -0
  60. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-properties.js +107 -0
  61. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-properties.js.map +1 -0
  62. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +29 -0
  63. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts.map +1 -0
  64. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +50 -0
  65. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js.map +1 -0
  66. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-unsimulated-properties.d.ts +16 -0
  67. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-unsimulated-properties.d.ts.map +1 -0
  68. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-unsimulated-properties.js +39 -0
  69. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-unsimulated-properties.js.map +1 -0
  70. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +27 -0
  71. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts.map +1 -0
  72. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +49 -0
  73. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js.map +1 -0
  74. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +8 -3
  75. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts.map +1 -1
  76. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +48 -23
  77. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js.map +1 -1
  78. package/dist/service/logs/cfn/sim-logs-cfn-unsupported-resource.d.ts +10 -0
  79. package/dist/service/logs/cfn/sim-logs-cfn-unsupported-resource.d.ts.map +1 -0
  80. package/dist/service/logs/cfn/sim-logs-cfn-unsupported-resource.js +13 -0
  81. package/dist/service/logs/cfn/sim-logs-cfn-unsupported-resource.js.map +1 -0
  82. package/dist/service/logs/command/authorize/sim-logs-authorizer.d.ts +9 -1
  83. package/dist/service/logs/command/authorize/sim-logs-authorizer.d.ts.map +1 -1
  84. package/dist/service/logs/command/authorize/sim-logs-authorizer.js +8 -0
  85. package/dist/service/logs/command/authorize/sim-logs-authorizer.js.map +1 -1
  86. package/dist/service/logs/command/delivery/delivery-destination.command.d.ts +67 -0
  87. package/dist/service/logs/command/delivery/delivery-destination.command.d.ts.map +1 -0
  88. package/dist/service/logs/command/delivery/delivery-destination.command.js +2 -0
  89. package/dist/service/logs/command/delivery/delivery-destination.command.js.map +1 -0
  90. package/dist/service/logs/command/delivery/delivery-source.command.d.ts +61 -0
  91. package/dist/service/logs/command/delivery/delivery-source.command.d.ts.map +1 -0
  92. package/dist/service/logs/command/delivery/delivery-source.command.js +2 -0
  93. package/dist/service/logs/command/delivery/delivery-source.command.js.map +1 -0
  94. package/dist/service/logs/command/delivery/delivery.command.d.ts +73 -0
  95. package/dist/service/logs/command/delivery/delivery.command.d.ts.map +1 -0
  96. package/dist/service/logs/command/delivery/delivery.command.js +2 -0
  97. package/dist/service/logs/command/delivery/delivery.command.js.map +1 -0
  98. package/dist/service/logs/command/delivery/sim-logs-created-delivery.d.ts +21 -0
  99. package/dist/service/logs/command/delivery/sim-logs-created-delivery.d.ts.map +1 -0
  100. package/dist/service/logs/command/delivery/sim-logs-created-delivery.js +41 -0
  101. package/dist/service/logs/command/delivery/sim-logs-created-delivery.js.map +1 -0
  102. package/dist/service/logs/command/delivery/sim-logs-delivery-commands.d.ts +38 -0
  103. package/dist/service/logs/command/delivery/sim-logs-delivery-commands.d.ts.map +1 -0
  104. package/dist/service/logs/command/delivery/sim-logs-delivery-commands.js +77 -0
  105. package/dist/service/logs/command/delivery/sim-logs-delivery-commands.js.map +1 -0
  106. package/dist/service/logs/command/delivery/sim-logs-delivery-destination-commands.d.ts +38 -0
  107. package/dist/service/logs/command/delivery/sim-logs-delivery-destination-commands.d.ts.map +1 -0
  108. package/dist/service/logs/command/delivery/sim-logs-delivery-destination-commands.js +82 -0
  109. package/dist/service/logs/command/delivery/sim-logs-delivery-destination-commands.js.map +1 -0
  110. package/dist/service/logs/command/delivery/sim-logs-delivery-detail.d.ts +19 -0
  111. package/dist/service/logs/command/delivery/sim-logs-delivery-detail.d.ts.map +1 -0
  112. package/dist/service/logs/command/delivery/sim-logs-delivery-detail.js +57 -0
  113. package/dist/service/logs/command/delivery/sim-logs-delivery-detail.js.map +1 -0
  114. package/dist/service/logs/command/delivery/sim-logs-delivery-in-use.d.ts +15 -0
  115. package/dist/service/logs/command/delivery/sim-logs-delivery-in-use.d.ts.map +1 -0
  116. package/dist/service/logs/command/delivery/sim-logs-delivery-in-use.js +26 -0
  117. package/dist/service/logs/command/delivery/sim-logs-delivery-in-use.js.map +1 -0
  118. package/dist/service/logs/command/delivery/sim-logs-delivery-input.d.ts +16 -0
  119. package/dist/service/logs/command/delivery/sim-logs-delivery-input.d.ts.map +1 -0
  120. package/dist/service/logs/command/delivery/sim-logs-delivery-input.js +28 -0
  121. package/dist/service/logs/command/delivery/sim-logs-delivery-input.js.map +1 -0
  122. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts +37 -0
  123. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts.map +1 -0
  124. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js +86 -0
  125. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js.map +1 -0
  126. package/dist/service/logs/command/sim-logs-command.types.d.ts +3 -0
  127. package/dist/service/logs/command/sim-logs-command.types.d.ts.map +1 -1
  128. package/dist/service/logs/delivery/sim-logs-delivery-arn.d.ts +30 -0
  129. package/dist/service/logs/delivery/sim-logs-delivery-arn.d.ts.map +1 -0
  130. package/dist/service/logs/delivery/sim-logs-delivery-arn.js +42 -0
  131. package/dist/service/logs/delivery/sim-logs-delivery-arn.js.map +1 -0
  132. package/dist/service/logs/delivery/sim-logs-delivery-destination-store.d.ts +41 -0
  133. package/dist/service/logs/delivery/sim-logs-delivery-destination-store.d.ts.map +1 -0
  134. package/dist/service/logs/delivery/sim-logs-delivery-destination-store.js +69 -0
  135. package/dist/service/logs/delivery/sim-logs-delivery-destination-store.js.map +1 -0
  136. package/dist/service/logs/delivery/sim-logs-delivery-destination-type.d.ts +16 -0
  137. package/dist/service/logs/delivery/sim-logs-delivery-destination-type.d.ts.map +1 -0
  138. package/dist/service/logs/delivery/sim-logs-delivery-destination-type.js +48 -0
  139. package/dist/service/logs/delivery/sim-logs-delivery-destination-type.js.map +1 -0
  140. package/dist/service/logs/delivery/sim-logs-delivery-destination.d.ts +27 -0
  141. package/dist/service/logs/delivery/sim-logs-delivery-destination.d.ts.map +1 -0
  142. package/dist/service/logs/delivery/sim-logs-delivery-destination.js +23 -0
  143. package/dist/service/logs/delivery/sim-logs-delivery-destination.js.map +1 -0
  144. package/dist/service/logs/delivery/sim-logs-delivery-ids.d.ts +16 -0
  145. package/dist/service/logs/delivery/sim-logs-delivery-ids.d.ts.map +1 -0
  146. package/dist/service/logs/delivery/sim-logs-delivery-ids.js +20 -0
  147. package/dist/service/logs/delivery/sim-logs-delivery-ids.js.map +1 -0
  148. package/dist/service/logs/delivery/sim-logs-delivery-output-format.d.ts +24 -0
  149. package/dist/service/logs/delivery/sim-logs-delivery-output-format.d.ts.map +1 -0
  150. package/dist/service/logs/delivery/sim-logs-delivery-output-format.js +36 -0
  151. package/dist/service/logs/delivery/sim-logs-delivery-output-format.js.map +1 -0
  152. package/dist/service/logs/delivery/sim-logs-delivery-s3-configuration.d.ts +35 -0
  153. package/dist/service/logs/delivery/sim-logs-delivery-s3-configuration.d.ts.map +1 -0
  154. package/dist/service/logs/delivery/sim-logs-delivery-s3-configuration.js +66 -0
  155. package/dist/service/logs/delivery/sim-logs-delivery-s3-configuration.js.map +1 -0
  156. package/dist/service/logs/delivery/sim-logs-delivery-source-service.d.ts +48 -0
  157. package/dist/service/logs/delivery/sim-logs-delivery-source-service.d.ts.map +1 -0
  158. package/dist/service/logs/delivery/sim-logs-delivery-source-service.js +71 -0
  159. package/dist/service/logs/delivery/sim-logs-delivery-source-service.js.map +1 -0
  160. package/dist/service/logs/delivery/sim-logs-delivery-source-store.d.ts +42 -0
  161. package/dist/service/logs/delivery/sim-logs-delivery-source-store.d.ts.map +1 -0
  162. package/dist/service/logs/delivery/sim-logs-delivery-source-store.js +64 -0
  163. package/dist/service/logs/delivery/sim-logs-delivery-source-store.js.map +1 -0
  164. package/dist/service/logs/delivery/sim-logs-delivery-source.d.ts +29 -0
  165. package/dist/service/logs/delivery/sim-logs-delivery-source.d.ts.map +1 -0
  166. package/dist/service/logs/delivery/sim-logs-delivery-source.js +29 -0
  167. package/dist/service/logs/delivery/sim-logs-delivery-source.js.map +1 -0
  168. package/dist/service/logs/delivery/sim-logs-delivery-store.d.ts +32 -0
  169. package/dist/service/logs/delivery/sim-logs-delivery-store.d.ts.map +1 -0
  170. package/dist/service/logs/delivery/sim-logs-delivery-store.js +53 -0
  171. package/dist/service/logs/delivery/sim-logs-delivery-store.js.map +1 -0
  172. package/dist/service/logs/delivery/sim-logs-delivery.d.ts +33 -0
  173. package/dist/service/logs/delivery/sim-logs-delivery.d.ts.map +1 -0
  174. package/dist/service/logs/delivery/sim-logs-delivery.js +34 -0
  175. package/dist/service/logs/delivery/sim-logs-delivery.js.map +1 -0
  176. package/dist/service/logs/error/sim-logs.error.d.ts +23 -0
  177. package/dist/service/logs/error/sim-logs.error.d.ts.map +1 -1
  178. package/dist/service/logs/error/sim-logs.error.js +27 -0
  179. package/dist/service/logs/error/sim-logs.error.js.map +1 -1
  180. package/dist/service/logs/index.d.ts +10 -1
  181. package/dist/service/logs/index.d.ts.map +1 -1
  182. package/dist/service/logs/index.js +9 -1
  183. package/dist/service/logs/index.js.map +1 -1
  184. package/dist/service/logs/sdk/sim-logs-sdk-command-router.d.ts.map +1 -1
  185. package/dist/service/logs/sdk/sim-logs-sdk-command-router.js +36 -0
  186. package/dist/service/logs/sdk/sim-logs-sdk-command-router.js.map +1 -1
  187. package/dist/service/logs/sim-logs-commands.d.ts +12 -0
  188. package/dist/service/logs/sim-logs-commands.d.ts.map +1 -1
  189. package/dist/service/logs/sim-logs-commands.js +37 -0
  190. package/dist/service/logs/sim-logs-commands.js.map +1 -1
  191. package/dist/service/logs/sim-logs-delivery-inspection.d.ts +28 -0
  192. package/dist/service/logs/sim-logs-delivery-inspection.d.ts.map +1 -0
  193. package/dist/service/logs/sim-logs-delivery-inspection.js +35 -0
  194. package/dist/service/logs/sim-logs-delivery-inspection.js.map +1 -0
  195. package/dist/service/logs/sim-logs-delivery-operations.d.ts +35 -0
  196. package/dist/service/logs/sim-logs-delivery-operations.d.ts.map +1 -0
  197. package/dist/service/logs/sim-logs-delivery-operations.js +58 -0
  198. package/dist/service/logs/sim-logs-delivery-operations.js.map +1 -0
  199. package/dist/service/logs/sim-logs.d.ts +8 -2
  200. package/dist/service/logs/sim-logs.d.ts.map +1 -1
  201. package/dist/service/logs/sim-logs.js +39 -33
  202. package/dist/service/logs/sim-logs.js.map +1 -1
  203. package/package.json +1 -1
@@ -0,0 +1,119 @@
1
+ import { SimCloudFrontResponseHeader } from "./sim-cf-response-header.js";
2
+ import { SimCloudFrontResponseHeadersPolicyCors } from "./sim-cf-response-headers-policy-cors.js";
3
+ import { SimCloudFrontResponseHeadersPolicy, } from "./sim-cf-response-headers-policy.js";
4
+ /**
5
+ * The IDs AWS publishes for its managed response headers policies.
6
+ *
7
+ * A template names one of these directly. CDK's `ResponseHeadersPolicy`
8
+ * statics carry the same five, and synthesize the ID into a Behavior's
9
+ * `ResponseHeadersPolicyId` with no Resource behind it.
10
+ */
11
+ export const simCfManagedResponseHeadersPolicyIds = {
12
+ simpleCors: "60669652-455b-4ae9-85a4-c4c02393f86c",
13
+ corsWithPreflight: "5cc3b908-e619-4b99-88e5-2cf7f45965bd",
14
+ securityHeaders: "67f7725c-6f97-4210-82d7-5512b31e9d03",
15
+ corsAndSecurityHeaders: "e61eb60c-9c35-4d20-a928-2b84e02af89c",
16
+ corsWithPreflightAndSecurityHeaders: "eaab4381-ed33-4a86-88ca-d9558dc6cd63",
17
+ };
18
+ /**
19
+ * The security headers section the three managed policies that carry one set.
20
+ *
21
+ * All three carry the same list. Only `X-Content-Type-Options` overrides the
22
+ * Origin, so a site sending its own `X-Frame-Options` keeps it while its
23
+ * `nosniff` is replaced.
24
+ */
25
+ function securityHeaders() {
26
+ return [
27
+ new SimCloudFrontResponseHeader({
28
+ name: "Referrer-Policy",
29
+ value: "strict-origin-when-cross-origin",
30
+ }),
31
+ new SimCloudFrontResponseHeader({
32
+ name: "Strict-Transport-Security",
33
+ value: "max-age=31536000",
34
+ }),
35
+ new SimCloudFrontResponseHeader({
36
+ name: "X-Content-Type-Options",
37
+ value: "nosniff",
38
+ override: true,
39
+ }),
40
+ new SimCloudFrontResponseHeader({
41
+ name: "X-Frame-Options",
42
+ value: "SAMEORIGIN",
43
+ }),
44
+ new SimCloudFrontResponseHeader({
45
+ name: "X-XSS-Protection",
46
+ value: "1; mode=block",
47
+ }),
48
+ ];
49
+ }
50
+ /**
51
+ * The CORS section behind SimpleCORS, allowing a simple request from any
52
+ * Origin with `Access-Control-Allow-Origin` alone.
53
+ */
54
+ function simpleCors() {
55
+ return new SimCloudFrontResponseHeadersPolicyCors({
56
+ allowCredentials: false,
57
+ allowHeaders: [],
58
+ allowMethods: [],
59
+ allowOrigins: ["*"],
60
+ originOverride: false,
61
+ });
62
+ }
63
+ /**
64
+ * The CORS section behind CORS-With-Preflight, which adds the method list and
65
+ * a wildcard `Access-Control-Expose-Headers` to the wildcard Origin.
66
+ */
67
+ function preflightCors() {
68
+ return new SimCloudFrontResponseHeadersPolicyCors({
69
+ allowCredentials: false,
70
+ allowHeaders: [],
71
+ allowMethods: ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
72
+ allowOrigins: ["*"],
73
+ exposeHeaders: ["*"],
74
+ originOverride: false,
75
+ });
76
+ }
77
+ /**
78
+ * The five managed response headers policies, built fresh for one simulated
79
+ * CloudFront.
80
+ *
81
+ * CloudFront owns these and every account has them, so a Behavior can name one
82
+ * without a template creating anything. They are built per registry so that
83
+ * one simulation never hands another a policy object.
84
+ *
85
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html
86
+ */
87
+ export function simCfManagedResponseHeadersPolicies() {
88
+ const policies = [
89
+ new SimCloudFrontResponseHeadersPolicy({
90
+ id: simCfManagedResponseHeadersPolicyIds.simpleCors,
91
+ name: "SimpleCORS",
92
+ cors: simpleCors(),
93
+ }),
94
+ new SimCloudFrontResponseHeadersPolicy({
95
+ id: simCfManagedResponseHeadersPolicyIds.corsWithPreflight,
96
+ name: "CORS-With-Preflight",
97
+ cors: preflightCors(),
98
+ }),
99
+ new SimCloudFrontResponseHeadersPolicy({
100
+ id: simCfManagedResponseHeadersPolicyIds.securityHeaders,
101
+ name: "SecurityHeadersPolicy",
102
+ securityHeaders: securityHeaders(),
103
+ }),
104
+ new SimCloudFrontResponseHeadersPolicy({
105
+ id: simCfManagedResponseHeadersPolicyIds.corsAndSecurityHeaders,
106
+ name: "CORS-and-SecurityHeadersPolicy",
107
+ cors: simpleCors(),
108
+ securityHeaders: securityHeaders(),
109
+ }),
110
+ new SimCloudFrontResponseHeadersPolicy({
111
+ id: simCfManagedResponseHeadersPolicyIds.corsWithPreflightAndSecurityHeaders,
112
+ name: "CORS-with-preflight-and-SecurityHeadersPolicy",
113
+ cors: preflightCors(),
114
+ securityHeaders: securityHeaders(),
115
+ }),
116
+ ];
117
+ return new Map(policies.map((policy) => [policy.id, policy]));
118
+ }
119
+ //# sourceMappingURL=sim-cf-managed-response-headers-policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cf-managed-response-headers-policies.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-managed-response-headers-policies.ts"],"names":[],"mappings":"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"}
@@ -28,15 +28,30 @@ export declare class SimCloudFrontResponseHeadersPolicyCors {
28
28
  private readonly originOverride;
29
29
  constructor(properties: SimCloudFrontResponseHeadersPolicyCorsProperties);
30
30
  /**
31
- * Set this policy's CORS headers on a response, for the `Origin` header a
32
- * viewer request carried.
31
+ * Set this policy's CORS headers on a response, for the `Origin` header and
32
+ * the method a viewer request carried.
33
33
  *
34
34
  * `OriginOverride` decides the whole section rather than one header at a
35
35
  * time, unlike a custom or security header: without it, an Origin response
36
36
  * carrying any CORS header at all keeps every header this section would have
37
37
  * set off the response, whether or not the policy names that header.
38
+ *
39
+ * The method defaults to `GET`, which is to say a simple request. Only a
40
+ * caller with an `OPTIONS` request in hand needs to say so.
41
+ */
42
+ apply(headers: Headers, requestOrigin: string | null, requestMethod?: string): void;
43
+ /**
44
+ * Set the headers CloudFront documents against a preflight request alone.
45
+ *
46
+ * `AccessControlAllowMethods`, `AccessControlAllowHeaders` and
47
+ * `AccessControlMaxAgeSec` each answer the question a preflight asks, and a
48
+ * browser reads none of them off a simple request.
49
+ *
50
+ * An empty list names no method and no header. CloudFront leaves the header
51
+ * off there, the way it leaves off the expose list, and a header carrying an
52
+ * empty value would mean something else to a browser.
38
53
  */
39
- apply(headers: Headers, requestOrigin: string | null): void;
54
+ private applyPreflight;
40
55
  private resolveAllowOrigin;
41
56
  private resolvedAllowMethods;
42
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-response-headers-policy-cors.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.ts"],"names":[],"mappings":"AA4BA,UAAU,gDAAgD;IACxD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,sCAAsC;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IAEzC,YAAY,UAAU,EAAE,gDAAgD,EAQvE;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CA8C1D;IAED,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,oBAAoB;CAK7B"}
1
+ {"version":3,"file":"sim-cf-response-headers-policy-cors.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.ts"],"names":[],"mappings":"AA4BA,UAAU,gDAAgD;IACxD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,sCAAsC;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IAEzC,YAAY,UAAU,EAAE,gDAAgD,EAQvE;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CACH,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,aAAa,SAAQ,GACpB,IAAI,CAwCN;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,oBAAoB;CAK7B"}
@@ -52,15 +52,18 @@ export class SimCloudFrontResponseHeadersPolicyCors {
52
52
  this.originOverride = properties.originOverride;
53
53
  }
54
54
  /**
55
- * Set this policy's CORS headers on a response, for the `Origin` header a
56
- * viewer request carried.
55
+ * Set this policy's CORS headers on a response, for the `Origin` header and
56
+ * the method a viewer request carried.
57
57
  *
58
58
  * `OriginOverride` decides the whole section rather than one header at a
59
59
  * time, unlike a custom or security header: without it, an Origin response
60
60
  * carrying any CORS header at all keeps every header this section would have
61
61
  * set off the response, whether or not the policy names that header.
62
+ *
63
+ * The method defaults to `GET`, which is to say a simple request. Only a
64
+ * caller with an `OPTIONS` request in hand needs to say so.
62
65
  */
63
- apply(headers, requestOrigin) {
66
+ apply(headers, requestOrigin, requestMethod = "GET") {
64
67
  if (!this.originOverride &&
65
68
  corsResponseHeaders.some((n) => headers.has(n))) {
66
69
  return;
@@ -76,8 +79,6 @@ export class SimCloudFrontResponseHeadersPolicyCors {
76
79
  if (allowOrigin !== "*") {
77
80
  headers.append("Vary", "Origin");
78
81
  }
79
- headers.set("Access-Control-Allow-Methods", this.resolvedAllowMethods().join(","));
80
- headers.set("Access-Control-Allow-Headers", this.allowHeaders.join(","));
81
82
  // A false Access-Control-Allow-Credentials is not a header value the
82
83
  // fetch spec recognises, so CloudFront leaves it off rather than sending
83
84
  // a value meaning the same as absence.
@@ -87,6 +88,28 @@ export class SimCloudFrontResponseHeadersPolicyCors {
87
88
  if (this.exposeHeaders.length > 0) {
88
89
  headers.set("Access-Control-Expose-Headers", this.exposeHeaders.join(","));
89
90
  }
91
+ if (requestMethod === "OPTIONS") {
92
+ this.applyPreflight(headers);
93
+ }
94
+ }
95
+ /**
96
+ * Set the headers CloudFront documents against a preflight request alone.
97
+ *
98
+ * `AccessControlAllowMethods`, `AccessControlAllowHeaders` and
99
+ * `AccessControlMaxAgeSec` each answer the question a preflight asks, and a
100
+ * browser reads none of them off a simple request.
101
+ *
102
+ * An empty list names no method and no header. CloudFront leaves the header
103
+ * off there, the way it leaves off the expose list, and a header carrying an
104
+ * empty value would mean something else to a browser.
105
+ */
106
+ applyPreflight(headers) {
107
+ if (this.allowMethods.length > 0) {
108
+ headers.set("Access-Control-Allow-Methods", this.resolvedAllowMethods().join(","));
109
+ }
110
+ if (this.allowHeaders.length > 0) {
111
+ headers.set("Access-Control-Allow-Headers", this.allowHeaders.join(","));
112
+ }
90
113
  if (this.maxAgeSec !== undefined) {
91
114
  headers.set("Access-Control-Max-Age", String(this.maxAgeSec));
92
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-response-headers-policy-cors.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cf-response-headers-policy-cors.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,18 @@ import type { SimCloudFrontResponseHeadersPolicy, SimCloudFrontResponseHeadersPo
5
5
  * Policies are found by ID, which is what a cache Behavior's
6
6
  * `responseHeadersPolicyId` names, and by name, which is what decides whether a
7
7
  * new one may be stored.
8
+ *
9
+ * AWS's five managed policies are held apart from the ones a template creates.
10
+ * CloudFront keeps them in its own namespace, so a template may create a policy
11
+ * called `SecurityHeadersPolicy` of its own, and deleting the stack that
12
+ * created it leaves the managed one where it was.
8
13
  */
9
14
  export declare class SimCloudFrontResponseHeadersPolicyRegistry {
10
15
  private readonly policies;
16
+ private readonly managedPolicies;
11
17
  /**
12
- * Store a policy, refusing a name another policy already holds as CloudFront
13
- * does.
18
+ * Store a policy a template created, refusing a name another such policy
19
+ * already holds as CloudFront does.
14
20
  */
15
21
  add(policy: SimCloudFrontResponseHeadersPolicy): void;
16
22
  /**
@@ -18,11 +24,15 @@ export declare class SimCloudFrontResponseHeadersPolicyRegistry {
18
24
  */
19
25
  remove(policyId: SimCloudFrontResponseHeadersPolicyId): void;
20
26
  /**
21
- * Get a policy by ID.
27
+ * Get a policy by ID, whether a template created it or AWS manages it.
22
28
  */
23
29
  byId(policyId: SimCloudFrontResponseHeadersPolicyId | string): SimCloudFrontResponseHeadersPolicy | undefined;
24
30
  /**
25
- * Get a policy by name.
31
+ * Get a policy a template created, by name.
32
+ *
33
+ * A managed policy is left out. Its name belongs to CloudFront's own
34
+ * namespace, and this is what decides whether a template may store a policy
35
+ * under a name.
26
36
  */
27
37
  byName(policyName: string): SimCloudFrontResponseHeadersPolicy | undefined;
28
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-response-headers-policy-registry.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kCAAkC,EAClC,oCAAoC,EAErC,MAAM,qCAAqC,CAAC;AAE7C;;;;;;GAMG;AACH,qBAAa,0CAA0C;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAE7E;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,kCAAkC,GAAG,IAAI,CAQpD;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,oCAAoC,GAAG,IAAI,CAE3D;IAED;;OAEG;IACH,IAAI,CACF,QAAQ,EAAE,oCAAoC,GAAG,MAAM,GACtD,kCAAkC,GAAG,SAAS,CAEhD;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,kCAAkC,GAAG,SAAS,CAEzE;CACF"}
1
+ {"version":3,"file":"sim-cf-response-headers-policy-registry.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kCAAkC,EAClC,oCAAoC,EAErC,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,qBAAa,0CAA0C;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAC7E,OAAO,CAAC,QAAQ,CAAC,eAAe,CACQ;IAExC;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,kCAAkC,GAAG,IAAI,CAQpD;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,oCAAoC,GAAG,IAAI,CAE3D;IAED;;OAEG;IACH,IAAI,CACF,QAAQ,EAAE,oCAAoC,GAAG,MAAM,GACtD,kCAAkC,GAAG,SAAS,CAIhD;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,kCAAkC,GAAG,SAAS,CAEzE;CACF"}
@@ -1,16 +1,23 @@
1
1
  import { SimCloudFrontResponseHeadersPolicyAlreadyExists } from "../error/sim-cloudfront.error.js";
2
+ import { simCfManagedResponseHeadersPolicies } from "./sim-cf-managed-response-headers-policies.js";
2
3
  /**
3
4
  * The response headers policies one simulated CloudFront holds.
4
5
  *
5
6
  * Policies are found by ID, which is what a cache Behavior's
6
7
  * `responseHeadersPolicyId` names, and by name, which is what decides whether a
7
8
  * new one may be stored.
9
+ *
10
+ * AWS's five managed policies are held apart from the ones a template creates.
11
+ * CloudFront keeps them in its own namespace, so a template may create a policy
12
+ * called `SecurityHeadersPolicy` of its own, and deleting the stack that
13
+ * created it leaves the managed one where it was.
8
14
  */
9
15
  export class SimCloudFrontResponseHeadersPolicyRegistry {
10
16
  policies = new Map();
17
+ managedPolicies = simCfManagedResponseHeadersPolicies();
11
18
  /**
12
- * Store a policy, refusing a name another policy already holds as CloudFront
13
- * does.
19
+ * Store a policy a template created, refusing a name another such policy
20
+ * already holds as CloudFront does.
14
21
  */
15
22
  add(policy) {
16
23
  if (this.byName(policy.name) !== undefined) {
@@ -25,13 +32,18 @@ export class SimCloudFrontResponseHeadersPolicyRegistry {
25
32
  this.policies.delete(policyId);
26
33
  }
27
34
  /**
28
- * Get a policy by ID.
35
+ * Get a policy by ID, whether a template created it or AWS manages it.
29
36
  */
30
37
  byId(policyId) {
31
- return this.policies.get(policyId);
38
+ const id = policyId;
39
+ return this.policies.get(id) ?? this.managedPolicies.get(id);
32
40
  }
33
41
  /**
34
- * Get a policy by name.
42
+ * Get a policy a template created, by name.
43
+ *
44
+ * A managed policy is left out. Its name belongs to CloudFront's own
45
+ * namespace, and this is what decides whether a template may store a policy
46
+ * under a name.
35
47
  */
36
48
  byName(policyName) {
37
49
  return this.policies.values().find((policy) => policy.name === policyName);
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-response-headers-policy-registry.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+CAA+C,EAAE,MAAM,kCAAkC,CAAC;AAOnG;;;;;;GAMG;AACH,MAAM,OAAO,0CAA0C;IACpC,QAAQ,GAA0C,IAAI,GAAG,EAAE,CAAC;IAE7E;;;OAGG;IACH,GAAG,CAAC,MAA0C;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,+CAA+C,CACvD,0CAA0C,MAAM,CAAC,IAAI,iBAAiB,CACvE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAA8C;QACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAuD;QAEvD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAgD,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAkB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC7E,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cf-response-headers-policy-registry.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+CAA+C,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,mCAAmC,EAAE,MAAM,+CAA+C,CAAC;AAOpG;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,0CAA0C;IACpC,QAAQ,GAA0C,IAAI,GAAG,EAAE,CAAC;IAC5D,eAAe,GAC9B,mCAAmC,EAAE,CAAC;IAExC;;;OAGG;IACH,GAAG,CAAC,MAA0C;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,+CAA+C,CACvD,0CAA0C,MAAM,CAAC,IAAI,iBAAiB,CACvE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAA8C;QACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAuD;QAEvD,MAAM,EAAE,GAAG,QAAgD,CAAC;QAE5D,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAkB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC7E,CAAC;CACF"}
@@ -31,12 +31,16 @@ export declare class SimCloudFrontResponseHeadersPolicy {
31
31
  constructor(properties: SimCloudFrontResponseHeadersPolicyProperties);
32
32
  /**
33
33
  * Return the response this policy makes of one the Origin gave back, for
34
- * the `Origin` header the viewer request carried.
34
+ * the `Origin` header and the method the viewer request carried.
35
35
  *
36
36
  * The body is passed straight through. Only the headers change, so a response
37
37
  * whose body has already been read stays readable.
38
+ *
39
+ * The method reaches the CORS section alone, which answers a preflight with
40
+ * headers a simple request never sees. Every other section sets the same
41
+ * headers whatever the viewer asked for.
38
42
  */
39
- apply(response: Response, requestOrigin?: string | null): Response;
43
+ apply(response: Response, requestOrigin?: string | null, requestMethod?: string): Response;
40
44
  }
41
45
  export type SimCloudFrontResponseHeadersPolicyMap = Map<SimCloudFrontResponseHeadersPolicyId, SimCloudFrontResponseHeadersPolicy>;
42
46
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-response-headers-policy.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,MAAM,oCAAoC,GAAG,KAAK,CACtD,MAAM,EACN,sCAAsC,CACvC,CAAC;AAEF,UAAU,4CAA4C;IACpD,QAAQ,CAAC,EAAE,CAAC,EAAE,oCAAoC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAChE,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,sCAAsC,GAAG,SAAS,CAAC;CACpE;AAED;;;;;;;;GAQG;AACH,qBAAa,kCAAkC;IAC7C,SAAgB,EAAE,EAAE,oCAAoC,CAAC;IACzD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,aAAa,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACtE,SAAgB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnD,SAAgB,eAAe,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACxE,SAAgB,YAAY,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACtE,SAAgB,IAAI,EAAE,sCAAsC,GAAG,SAAS,CAAC;IAEzE,YAAY,UAAU,EAAE,4CAA4C,EASnE;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,GAAE,MAAM,GAAG,IAAW,GAAG,QAAQ,CAuBvE;CACF;AAED,MAAM,MAAM,qCAAqC,GAAG,GAAG,CACrD,oCAAoC,EACpC,kCAAkC,CACnC,CAAC"}
1
+ {"version":3,"file":"sim-cf-response-headers-policy.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,MAAM,oCAAoC,GAAG,KAAK,CACtD,MAAM,EACN,sCAAsC,CACvC,CAAC;AAEF,UAAU,4CAA4C;IACpD,QAAQ,CAAC,EAAE,CAAC,EAAE,oCAAoC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAChE,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,sCAAsC,GAAG,SAAS,CAAC;CACpE;AAED;;;;;;;;GAQG;AACH,qBAAa,kCAAkC;IAC7C,SAAgB,EAAE,EAAE,oCAAoC,CAAC;IACzD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,aAAa,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACtE,SAAgB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnD,SAAgB,eAAe,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACxE,SAAgB,YAAY,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACtE,SAAgB,IAAI,EAAE,sCAAsC,GAAG,SAAS,CAAC;IAEzE,YAAY,UAAU,EAAE,4CAA4C,EASnE;IAED;;;;;;;;;;OAUG;IACH,KAAK,CACH,QAAQ,EAAE,QAAQ,EAClB,aAAa,GAAE,MAAM,GAAG,IAAW,EACnC,aAAa,SAAQ,GACpB,QAAQ,CAuBV;CACF;AAED,MAAM,MAAM,qCAAqC,GAAG,GAAG,CACrD,oCAAoC,EACpC,kCAAkC,CACnC,CAAC"}
@@ -28,12 +28,16 @@ export class SimCloudFrontResponseHeadersPolicy {
28
28
  }
29
29
  /**
30
30
  * Return the response this policy makes of one the Origin gave back, for
31
- * the `Origin` header the viewer request carried.
31
+ * the `Origin` header and the method the viewer request carried.
32
32
  *
33
33
  * The body is passed straight through. Only the headers change, so a response
34
34
  * whose body has already been read stays readable.
35
+ *
36
+ * The method reaches the CORS section alone, which answers a preflight with
37
+ * headers a simple request never sees. Every other section sets the same
38
+ * headers whatever the viewer asked for.
35
39
  */
36
- apply(response, requestOrigin = null) {
40
+ apply(response, requestOrigin = null, requestMethod = "GET") {
37
41
  const headers = new Headers(response.headers);
38
42
  for (const headerName of this.headersToRemove) {
39
43
  headers.delete(headerName);
@@ -45,7 +49,7 @@ export class SimCloudFrontResponseHeadersPolicy {
45
49
  securityHeader.applyTo(headers);
46
50
  }
47
51
  this.serverTiming?.applyTo(headers);
48
- this.cors?.apply(headers, requestOrigin);
52
+ this.cors?.apply(headers, requestOrigin, requestMethod);
49
53
  return new Response(response.body, {
50
54
  status: response.status,
51
55
  statusText: response.statusText,
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-response-headers-policy.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAqBzC;;;;;;;;GAQG;AACH,MAAM,OAAO,kCAAkC;IAC7B,EAAE,CAAuC;IACzC,IAAI,CAAS;IACb,aAAa,CAAyC;IACtD,eAAe,CAAoB;IACnC,eAAe,CAAyC;IACxD,YAAY,CAA0C;IACtD,IAAI,CAAqD;IAEzE,YAAY,UAAwD;QAClE,IAAI,CAAC,EAAE;YACL,UAAU,CAAC,EAAE,IAAK,UAAU,EAA2C,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAkB,EAAE,aAAa,GAAkB,IAAI;QAC3D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEzC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;YACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cf-response-headers-policy.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAqBzC;;;;;;;;GAQG;AACH,MAAM,OAAO,kCAAkC;IAC7B,EAAE,CAAuC;IACzC,IAAI,CAAS;IACb,aAAa,CAAyC;IACtD,eAAe,CAAoB;IACnC,eAAe,CAAyC;IACxD,YAAY,CAA0C;IACtD,IAAI,CAAqD;IAEzE,YAAY,UAAwD;QAClE,IAAI,CAAC,EAAE;YACL,UAAU,CAAC,EAAE,IAAK,UAAU,EAA2C,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CACH,QAAkB,EAClB,aAAa,GAAkB,IAAI,EACnC,aAAa,GAAG,KAAK;QAErB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAExD,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;YACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,28 @@
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 { SimLogsDelivery } from "../../delivery/sim-logs-delivery.js";
4
+ import type { SimLogs } from "../../sim-logs.js";
5
+ interface SimCfnDeliveryCreatorProperties {
6
+ readonly logs: SimLogs;
7
+ }
8
+ /**
9
+ * Creates simulated deliveries from AWS::Logs::Delivery Resources.
10
+ *
11
+ * A delivery is the join between a source and a destination, and both have to
12
+ * be deployed before it. A template gets that ordering from naming them
13
+ * through `Ref` and `Fn::GetAtt`.
14
+ */
15
+ export declare class SimCfnDeliveryCreator {
16
+ #private;
17
+ constructor(properties: SimCfnDeliveryCreatorProperties);
18
+ /**
19
+ * Create a delivery from an AWS::Logs::Delivery Resource.
20
+ */
21
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimLogsDelivery>;
22
+ /**
23
+ * Delete a delivery created from a CloudFormation Resource.
24
+ */
25
+ delete(delivery: SimLogsDelivery): Promise<void>;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=sim-cfn-delivery-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-delivery-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/logs/cfn/delivery/sim-cfn-delivery-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,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAejD,UAAU,+BAA+B;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,qBAAqB;;IAGhC,YAAY,UAAU,EAAE,+BAA+B,EAEtD;IAED;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,eAAe,CAAC,CAsB1B;IAED;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD;CACF"}
@@ -0,0 +1,52 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ import { simCfnDeliveryInput } from "./sim-cfn-delivery-input.js";
3
+ import { SimCfnDeliveryProperties } from "./sim-cfn-delivery-properties.js";
4
+ import { deliveryUnsimulatedReasons } from "./sim-cfn-delivery-unsimulated-properties.js";
5
+ const resourceType = "AWS::Logs::Delivery";
6
+ const actedOnProperties = new Set([
7
+ "DeliverySourceName",
8
+ "DeliveryDestinationArn",
9
+ "RecordFields",
10
+ "FieldDelimiter",
11
+ "S3SuffixPath",
12
+ "S3EnableHiveCompatiblePath",
13
+ ]);
14
+ /**
15
+ * Creates simulated deliveries from AWS::Logs::Delivery Resources.
16
+ *
17
+ * A delivery is the join between a source and a destination, and both have to
18
+ * be deployed before it. A template gets that ordering from naming them
19
+ * through `Ref` and `Fn::GetAtt`.
20
+ */
21
+ export class SimCfnDeliveryCreator {
22
+ #logs;
23
+ constructor(properties) {
24
+ this.#logs = properties.logs;
25
+ }
26
+ /**
27
+ * Create a delivery from an AWS::Logs::Delivery Resource.
28
+ */
29
+ async create(resource, properties) {
30
+ const reader = new SimCfnDeliveryProperties({
31
+ resource,
32
+ properties,
33
+ resourceType,
34
+ actedOnProperties,
35
+ unsimulatedReasons: deliveryUnsimulatedReasons,
36
+ });
37
+ reader.recordIgnoredProperties();
38
+ const created = await this.#logs.createDelivery({
39
+ input: simCfnDeliveryInput(reader),
40
+ });
41
+ const delivery = this.#logs.findDelivery(created.delivery?.id ?? "");
42
+ assertDefined(delivery, `sim CloudWatch Logs delivery for CloudFormation Resource ${resource.logicalId}`);
43
+ return delivery;
44
+ }
45
+ /**
46
+ * Delete a delivery created from a CloudFormation Resource.
47
+ */
48
+ async delete(delivery) {
49
+ await this.#logs.deleteDelivery({ input: { id: delivery.id } });
50
+ }
51
+ }
52
+ //# sourceMappingURL=sim-cfn-delivery-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-delivery-creator.js","sourceRoot":"","sources":["../../../../../src/service/logs/cfn/delivery/sim-cfn-delivery-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAKvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAE1F,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAC3C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,oBAAoB;IACpB,wBAAwB;IACxB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,4BAA4B;CAC7B,CAAC,CAAC;AAMH;;;;;;GAMG;AACH,MAAM,OAAO,qBAAqB;IACvB,KAAK,CAAU;IAExB,YAAY,UAA2C;QACrD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC;QAErC,MAAM,MAAM,GAAG,IAAI,wBAAwB,CAAC;YAC1C,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,iBAAiB;YACjB,kBAAkB,EAAE,0BAA0B;SAC/C,CAAC,CAAC;QAEH,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YAC9C,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC;SACnC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAErE,aAAa,CACX,QAAQ,EACR,4DAA4D,QAAQ,CAAC,SAAS,EAAE,CACjF,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,QAAyB;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -0,0 +1,30 @@
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 { SimLogsDeliveryDestination } from "../../delivery/sim-logs-delivery-destination.js";
4
+ import type { SimLogs } from "../../sim-logs.js";
5
+ interface SimCfnDeliveryDestinationCreatorProperties {
6
+ readonly logs: SimLogs;
7
+ }
8
+ /**
9
+ * Creates simulated delivery destinations from AWS::Logs::DeliveryDestination
10
+ * Resources.
11
+ *
12
+ * The output format is fixed once the destination is there, so a template that
13
+ * changes it replaces the Resource. Sim CloudFormation replaces a Resource
14
+ * whose template entry changed at all, which lands on the same behaviour
15
+ * without the destination having to say so.
16
+ */
17
+ export declare class SimCfnDeliveryDestinationCreator {
18
+ #private;
19
+ constructor(properties: SimCfnDeliveryDestinationCreatorProperties);
20
+ /**
21
+ * Create a delivery destination from a CloudFormation Resource.
22
+ */
23
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimLogsDeliveryDestination>;
24
+ /**
25
+ * Delete a delivery destination created from a CloudFormation Resource.
26
+ */
27
+ delete(destination: SimLogsDeliveryDestination): Promise<void>;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=sim-cfn-delivery-destination-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-delivery-destination-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/logs/cfn/delivery/sim-cfn-delivery-destination-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,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD,UAAU,0CAA0C;IAClD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,gCAAgC;;IAG3C,YAAY,UAAU,EAAE,0CAA0C,EAEjE;IAED;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,0BAA0B,CAAC,CAgCrC;IAED;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAInE;CACF"}
@@ -0,0 +1,59 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ import { SimCfnDeliveryProperties } from "./sim-cfn-delivery-properties.js";
3
+ import { deliveryDestinationUnsimulatedReasons } from "./sim-cfn-delivery-unsimulated-properties.js";
4
+ const resourceType = "AWS::Logs::DeliveryDestination";
5
+ const actedOnProperties = new Set([
6
+ "Name",
7
+ "DestinationResourceArn",
8
+ "OutputFormat",
9
+ ]);
10
+ /**
11
+ * Creates simulated delivery destinations from AWS::Logs::DeliveryDestination
12
+ * Resources.
13
+ *
14
+ * The output format is fixed once the destination is there, so a template that
15
+ * changes it replaces the Resource. Sim CloudFormation replaces a Resource
16
+ * whose template entry changed at all, which lands on the same behaviour
17
+ * without the destination having to say so.
18
+ */
19
+ export class SimCfnDeliveryDestinationCreator {
20
+ #logs;
21
+ constructor(properties) {
22
+ this.#logs = properties.logs;
23
+ }
24
+ /**
25
+ * Create a delivery destination from a CloudFormation Resource.
26
+ */
27
+ async create(resource, properties) {
28
+ const reader = new SimCfnDeliveryProperties({
29
+ resource,
30
+ properties,
31
+ resourceType,
32
+ actedOnProperties,
33
+ unsimulatedReasons: deliveryDestinationUnsimulatedReasons,
34
+ });
35
+ const name = reader.requiredString("Name");
36
+ reader.recordIgnoredProperties();
37
+ await this.#logs.putDeliveryDestination({
38
+ input: {
39
+ name,
40
+ outputFormat: reader.optionalString("OutputFormat"),
41
+ deliveryDestinationConfiguration: {
42
+ destinationResourceArn: reader.requiredString("DestinationResourceArn"),
43
+ },
44
+ },
45
+ });
46
+ const destination = this.#logs.findDeliveryDestination(name);
47
+ assertDefined(destination, `sim CloudWatch Logs delivery destination for CloudFormation Resource ${resource.logicalId}`);
48
+ return destination;
49
+ }
50
+ /**
51
+ * Delete a delivery destination created from a CloudFormation Resource.
52
+ */
53
+ async delete(destination) {
54
+ await this.#logs.deleteDeliveryDestination({
55
+ input: { name: destination.name },
56
+ });
57
+ }
58
+ }
59
+ //# sourceMappingURL=sim-cfn-delivery-destination-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-delivery-destination-creator.js","sourceRoot":"","sources":["../../../../../src/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAKvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qCAAqC,EAAE,MAAM,8CAA8C,CAAC;AAErG,MAAM,YAAY,GAAG,gCAAgC,CAAC;AACtD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,MAAM;IACN,wBAAwB;IACxB,cAAc;CACf,CAAC,CAAC;AAMH;;;;;;;;GAQG;AACH,MAAM,OAAO,gCAAgC;IAClC,KAAK,CAAU;IAExB,YAAY,UAAsD;QAChE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC;QAErC,MAAM,MAAM,GAAG,IAAI,wBAAwB,CAAC;YAC1C,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,iBAAiB;YACjB,kBAAkB,EAAE,qCAAqC;SAC1D,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE3C,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAEjC,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;YACtC,KAAK,EAAE;gBACL,IAAI;gBACJ,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC;gBACnD,gCAAgC,EAAE;oBAChC,sBAAsB,EAAE,MAAM,CAAC,cAAc,CAC3C,wBAAwB,CACzB;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAE7D,aAAa,CACX,WAAW,EACX,wEAAwE,QAAQ,CAAC,SAAS,EAAE,CAC7F,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,WAAuC;QAClD,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC;YACzC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;SAClC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import type { SimCreateDeliveryCommandInput } from "../../command/delivery/delivery.command.js";
2
+ import type { SimCfnDeliveryProperties } from "./sim-cfn-delivery-properties.js";
3
+ /**
4
+ * The CreateDelivery request an AWS::Logs::Delivery Resource asks for.
5
+ *
6
+ * The template carries the S3 layout as two flat properties, and the API takes
7
+ * them nested. Neither is passed on unless the template set one of them, so a
8
+ * delivery to a log group or a Firehose stream is created without the S3
9
+ * configuration the API would refuse.
10
+ */
11
+ export declare function simCfnDeliveryInput(reader: SimCfnDeliveryProperties): SimCreateDeliveryCommandInput;
12
+ //# sourceMappingURL=sim-cfn-delivery-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-delivery-input.d.ts","sourceRoot":"","sources":["../../../../../src/service/logs/cfn/delivery/sim-cfn-delivery-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,wBAAwB,GAC/B,6BAA6B,CAiB/B"}