@kensio/yulin 1.20.16 → 1.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/dist/service/athena/engine/sim-athena-comparison-shims.d.ts +13 -0
  2. package/dist/service/athena/engine/sim-athena-comparison-shims.js +68 -0
  3. package/dist/service/athena/engine/sim-athena-shims.js +2 -0
  4. package/dist/service/aws/caller/sim-aws-ambient-caller.d.ts +23 -0
  5. package/dist/service/aws/caller/sim-aws-ambient-caller.js +12 -0
  6. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +17 -6
  7. package/dist/service/aws/caller/sim-aws-caller-resolver.js +21 -26
  8. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +6 -0
  9. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
  10. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +6 -0
  11. package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -1
  12. package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
  13. package/dist/service/aws/factory/sim-aws-service-factory.js +9 -1
  14. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
  15. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
  16. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  17. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -2
  18. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
  19. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +6 -0
  20. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +11 -0
  21. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +17 -15
  22. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +12 -0
  23. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  24. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.d.ts +23 -0
  25. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.js +30 -0
  26. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +16 -0
  27. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.d.ts +24 -0
  28. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.js +31 -0
  29. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.d.ts +29 -12
  30. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.js +51 -20
  31. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.d.ts +19 -0
  32. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.js +6 -0
  33. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +7 -0
  34. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +9 -2
  35. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
  36. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
  37. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +6 -0
  38. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +4 -1
  39. package/dist/service/cloudformation/stack/sim-cfn-stack.js +2 -1
  40. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +6 -0
  41. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +16 -0
  42. package/dist/service/cloudfront/cache/sim-cf-accept-encoding.d.ts +11 -0
  43. package/dist/service/cloudfront/cache/sim-cf-accept-encoding.js +27 -0
  44. package/dist/service/cloudfront/cache/sim-cf-cache-control.d.ts +28 -0
  45. package/dist/service/cloudfront/cache/sim-cf-cache-control.js +49 -0
  46. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.d.ts +11 -0
  47. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.js +22 -0
  48. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.d.ts +32 -0
  49. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.js +112 -0
  50. package/dist/service/cloudfront/cache/sim-cf-cache-status.d.ts +27 -0
  51. package/dist/service/cloudfront/cache/sim-cf-cache-status.js +53 -0
  52. package/dist/service/cloudfront/cache/sim-cf-cache-ttl.d.ts +28 -0
  53. package/dist/service/cloudfront/cache/sim-cf-cache-ttl.js +50 -0
  54. package/dist/service/cloudfront/cache/sim-cf-cacheable-request.d.ts +35 -0
  55. package/dist/service/cloudfront/cache/sim-cf-cacheable-request.js +32 -0
  56. package/dist/service/cloudfront/cache/sim-cf-distribution-cache.d.ts +57 -0
  57. package/dist/service/cloudfront/cache/sim-cf-distribution-cache.js +115 -0
  58. package/dist/service/cloudfront/cache/sim-cf-edge.d.ts +37 -0
  59. package/dist/service/cloudfront/cache/sim-cf-edge.js +34 -0
  60. package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.d.ts +36 -0
  61. package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.js +28 -0
  62. package/dist/service/cloudfront/cache/sim-cf-http-date.d.ts +15 -0
  63. package/dist/service/cloudfront/cache/sim-cf-http-date.js +40 -0
  64. package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.d.ts +63 -0
  65. package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.js +70 -0
  66. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.d.ts +37 -0
  67. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.js +50 -0
  68. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +35 -0
  69. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +49 -0
  70. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +33 -0
  71. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +132 -0
  72. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +8 -0
  73. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +13 -0
  74. package/dist/service/cloudfront/cff/sim-cf-function-commands.d.ts +52 -0
  75. package/dist/service/cloudfront/cff/sim-cf-function-commands.js +51 -0
  76. package/dist/service/cloudfront/cff/sim-cff-configuration.d.ts +41 -0
  77. package/dist/service/cloudfront/cff/sim-cff-configuration.js +34 -0
  78. package/dist/service/cloudfront/cff/sim-cff-search-distribution.fixture.js +4 -0
  79. package/dist/service/cloudfront/cff/sim-cff-stage.d.ts +23 -0
  80. package/dist/service/cloudfront/cff/sim-cff-stage.js +30 -0
  81. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +6 -1
  82. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +6 -0
  83. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +28 -0
  84. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +71 -0
  85. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.d.ts +24 -0
  86. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.js +32 -0
  87. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.d.ts +10 -0
  88. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.js +50 -0
  89. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.d.ts +28 -0
  90. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.js +29 -0
  91. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.d.ts +16 -0
  92. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.js +23 -0
  93. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.d.ts → sim-cfn-cf-distro-behavior-policies.d.ts} +9 -7
  94. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.js → sim-cfn-cf-distro-behavior-policies.js} +12 -37
  95. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
  96. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +8 -7
  97. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.d.ts +23 -0
  98. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +35 -0
  99. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.d.ts +28 -0
  100. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.js +46 -0
  101. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.d.ts +24 -0
  102. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.js +32 -0
  103. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.d.ts +10 -0
  104. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.js +51 -0
  105. package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.d.ts +22 -0
  106. package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.js +54 -0
  107. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +2 -0
  108. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +22 -0
  109. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +2 -0
  110. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +4 -0
  111. package/dist/service/cloudfront/command/create-function/create-function.handler.js +7 -1
  112. package/dist/service/cloudfront/command/function/sim-cf-describe-function.d.ts +22 -0
  113. package/dist/service/cloudfront/command/function/sim-cf-describe-function.js +32 -0
  114. package/dist/service/cloudfront/command/function/sim-cf-function-access.d.ts +48 -0
  115. package/dist/service/cloudfront/command/function/sim-cf-function-access.js +48 -0
  116. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.d.ts +97 -0
  117. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.js +10 -0
  118. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.d.ts +12 -0
  119. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.js +21 -0
  120. package/dist/service/cloudfront/command/function/sim-cf-function-summary.d.ts +11 -0
  121. package/dist/service/cloudfront/command/function/sim-cf-function-summary.js +30 -0
  122. package/dist/service/cloudfront/command/function/sim-cf-get-function.d.ts +23 -0
  123. package/dist/service/cloudfront/command/function/sim-cf-get-function.js +33 -0
  124. package/dist/service/cloudfront/command/function/sim-cf-list-functions.d.ts +22 -0
  125. package/dist/service/cloudfront/command/function/sim-cf-list-functions.js +38 -0
  126. package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.d.ts +28 -0
  127. package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.js +59 -0
  128. package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.d.ts +19 -0
  129. package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.js +32 -0
  130. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.d.ts +36 -0
  131. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.js +45 -0
  132. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.d.ts +80 -0
  133. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.js +1 -0
  134. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.d.ts +39 -0
  135. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.js +35 -0
  136. package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.d.ts +23 -0
  137. package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.js +39 -0
  138. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +4 -0
  139. package/dist/service/cloudfront/controller/content/sim-cf-content-stage.d.ts +51 -0
  140. package/dist/service/cloudfront/controller/content/sim-cf-content-stage.js +65 -0
  141. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +2 -3
  142. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +4 -4
  143. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.d.ts +4 -0
  144. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.js +12 -8
  145. package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.d.ts +2 -2
  146. package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.js +2 -2
  147. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +6 -6
  148. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +35 -20
  149. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.d.ts +23 -5
  150. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.js +8 -0
  151. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.d.ts +18 -0
  152. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.js +30 -0
  153. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.d.ts +18 -0
  154. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.js +30 -0
  155. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +30 -0
  156. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +44 -0
  157. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +2 -2
  158. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +9 -3
  159. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +0 -10
  160. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +0 -19
  161. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +4 -0
  162. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +8 -2
  163. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -3
  164. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +5 -5
  165. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.d.ts +13 -3
  166. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.js +27 -6
  167. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +3 -3
  168. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +4 -4
  169. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +3 -1
  170. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +4 -1
  171. package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +7 -3
  172. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +4 -0
  173. package/dist/service/cloudfront/distribution/sim-cf-distribution-view.js +1 -1
  174. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +25 -2
  175. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +24 -0
  176. package/dist/service/cloudfront/error/sim-cf-invalidation.error.d.ts +22 -0
  177. package/dist/service/cloudfront/error/sim-cf-invalidation.error.js +26 -0
  178. package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.d.ts +22 -0
  179. package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.js +26 -0
  180. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
  181. package/dist/service/cloudfront/error/sim-cloudfront.error.js +25 -0
  182. package/dist/service/cloudfront/index.d.ts +2 -0
  183. package/dist/service/cloudfront/index.js +1 -0
  184. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.d.ts +22 -0
  185. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.js +32 -0
  186. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.d.ts +43 -0
  187. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.js +33 -0
  188. package/dist/service/cloudfront/invalidation/sim-cf-invalidation.d.ts +55 -0
  189. package/dist/service/cloudfront/invalidation/sim-cf-invalidation.js +56 -0
  190. package/dist/service/cloudfront/invalidation/sim-cf-invalidations.d.ts +41 -0
  191. package/dist/service/cloudfront/invalidation/sim-cf-invalidations.js +58 -0
  192. package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.d.ts +15 -0
  193. package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.js +23 -0
  194. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +2 -10
  195. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js +2 -1
  196. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.d.ts +19 -0
  197. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.js +116 -0
  198. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +15 -5
  199. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +13 -8
  200. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.js +8 -5
  201. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +13 -0
  202. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +8 -0
  203. package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.d.ts +24 -0
  204. package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.js +21 -0
  205. package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.d.ts +57 -0
  206. package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.js +129 -0
  207. package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.d.ts +30 -0
  208. package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.js +121 -0
  209. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.d.ts +56 -0
  210. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.js +67 -0
  211. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.d.ts +38 -0
  212. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.js +51 -0
  213. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.d.ts +32 -0
  214. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.js +30 -0
  215. package/dist/service/cloudfront/registry/sim-cloud-front-registry.d.ts +25 -0
  216. package/dist/service/cloudfront/registry/sim-cloud-front-registry.js +23 -0
  217. package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +24 -0
  218. package/dist/service/cloudfront/sim-cf-authorize.d.ts +16 -0
  219. package/dist/service/cloudfront/sim-cf-authorize.js +19 -0
  220. package/dist/service/cloudfront/sim-cf-etag.d.ts +7 -0
  221. package/dist/service/cloudfront/sim-cf-etag.js +10 -0
  222. package/dist/service/cloudfront/sim-cloudfront-caching.d.ts +31 -0
  223. package/dist/service/cloudfront/sim-cloudfront-caching.js +38 -0
  224. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +20 -12
  225. package/dist/service/cloudfront/sim-cloudfront-commands.js +20 -17
  226. package/dist/service/cloudfront/sim-cloudfront-distributions.d.ts +21 -0
  227. package/dist/service/cloudfront/sim-cloudfront-distributions.js +23 -0
  228. package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.d.ts +30 -0
  229. package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.js +35 -0
  230. package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +60 -0
  231. package/dist/service/cloudfront/sim-cloudfront-policies.js +75 -0
  232. package/dist/service/cloudfront/sim-cloudfront.d.ts +24 -44
  233. package/dist/service/cloudfront/sim-cloudfront.js +37 -58
  234. package/dist/service/ecr/authorize/sim-ecr-authorizer.d.ts +31 -0
  235. package/dist/service/ecr/authorize/sim-ecr-authorizer.js +38 -0
  236. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.d.ts +11 -2
  237. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.js +11 -2
  238. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.d.ts +4 -2
  239. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.js +8 -9
  240. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.d.ts +7 -0
  241. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.js +9 -0
  242. package/dist/service/ecr/sim-ecr.d.ts +7 -0
  243. package/dist/service/ecr/sim-ecr.js +16 -4
  244. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.d.ts +12 -0
  245. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.js +21 -0
  246. package/dist/service/ecs/command/register-task-definition/register-task-definition.handler.js +1 -0
  247. package/dist/service/ecs/sim-ecs-service-principal.d.ts +8 -0
  248. package/dist/service/ecs/sim-ecs-service-principal.js +8 -0
  249. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.d.ts +12 -0
  250. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.js +21 -0
  251. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.d.ts +13 -0
  252. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.js +9 -0
  253. package/dist/service/eventbridge/command/target/sim-event-bridge-put-targets.js +1 -0
  254. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.d.ts +12 -0
  255. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +20 -0
  256. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.d.ts +4 -0
  257. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.js +6 -0
  258. package/dist/service/firehose/command/stream/sim-firehose-create-delivery-stream.js +3 -1
  259. package/dist/service/firehose/sim-firehose-service-principal.d.ts +8 -0
  260. package/dist/service/firehose/sim-firehose-service-principal.js +8 -0
  261. package/dist/service/firehose/source/sim-firehose-source.d.ts +5 -0
  262. package/dist/service/firehose/source/sim-firehose-source.js +5 -0
  263. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js +2 -2
  264. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.d.ts +10 -0
  265. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.js +25 -0
  266. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js +2 -3
  267. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +34 -2
  268. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +34 -2
  269. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +4 -3
  270. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +9 -3
  271. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +14 -5
  272. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +16 -12
  273. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +9 -3
  274. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +5 -3
  275. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +9 -71
  276. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +2 -1
  277. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +89 -0
  278. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.js +1 -0
  279. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +11 -3
  280. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +20 -8
  281. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +29 -8
  282. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +38 -13
  283. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.d.ts +74 -0
  284. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.js +92 -0
  285. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +14 -5
  286. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +6 -4
  287. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +3 -1
  288. package/dist/service/iam/authorize/sim-iam-authorizer.js +2 -1
  289. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +1 -1
  290. package/dist/service/iam/authorize/sim-iam-wildcard.js +39 -4
  291. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +2 -1
  292. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.d.ts +16 -0
  293. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.js +36 -0
  294. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +9 -8
  295. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.d.ts +17 -0
  296. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.js +17 -0
  297. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +4 -8
  298. package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +2 -0
  299. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -0
  300. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -0
  301. package/dist/service/iam/command/role/create-role/create-role.handler.js +4 -1
  302. package/dist/service/iam/error/sim-iam.error.d.ts +11 -0
  303. package/dist/service/iam/error/sim-iam.error.js +13 -0
  304. package/dist/service/iam/index.d.ts +1 -0
  305. package/dist/service/iam/policy/sim-iam-policy-document-of-size.d.ts +18 -0
  306. package/dist/service/iam/policy/sim-iam-policy-document-of-size.js +41 -0
  307. package/dist/service/iam/role/sim-iam-deploy-role.d.ts +56 -0
  308. package/dist/service/iam/role/sim-iam-deploy-role.js +50 -0
  309. package/dist/service/iam/role/sim-iam-role-with-policy.factory.d.ts +3 -1
  310. package/dist/service/iam/sim-iam-account-parts.d.ts +8 -0
  311. package/dist/service/iam/sim-iam-account-parts.js +1 -0
  312. package/dist/service/iam/sim-iam.d.ts +12 -2
  313. package/dist/service/iam/sim-iam.js +12 -0
  314. package/dist/service/iam/validate/size/sim-iam-policy-document-size.d.ts +57 -0
  315. package/dist/service/iam/validate/size/sim-iam-policy-document-size.js +71 -0
  316. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +3 -1
  317. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +4 -1
  318. package/dist/service/kms/command/sim-kms-request-options.d.ts +15 -0
  319. package/dist/service/kms/key/sim-kms-key-policy.d.ts +5 -4
  320. package/dist/service/kms/key/sim-kms-key-policy.js +4 -3
  321. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.d.ts +2 -2
  322. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.js +4 -3
  323. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.d.ts +10 -0
  324. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.js +25 -0
  325. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts +1 -1
  326. package/dist/service/lambda/command/create-function/create-function-authorizer.d.ts +9 -2
  327. package/dist/service/lambda/command/create-function/create-function-authorizer.js +16 -2
  328. package/dist/service/lambda/command/create-function/create-function.handler.js +1 -1
  329. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.d.ts +7 -2
  330. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +14 -2
  331. package/dist/service/lambda/command/update-function-configuration/update-function-configuration.handler.js +1 -1
  332. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -1
  333. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +25 -1
  334. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.d.ts +13 -0
  335. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.js +18 -0
  336. package/dist/service/lambda/sim-lambda-service-principal.d.ts +7 -0
  337. package/dist/service/lambda/sim-lambda-service-principal.js +7 -0
  338. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.d.ts +46 -0
  339. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.js +49 -0
  340. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +5 -0
  341. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +6 -0
  342. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +5 -0
  343. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +6 -0
  344. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +5 -0
  345. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +6 -0
  346. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.d.ts +9 -2
  347. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.js +34 -5
  348. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +1 -1
  349. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +4 -0
  350. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +9 -4
  351. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts +6 -4
  352. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js +13 -4
  353. package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.d.ts +23 -0
  354. package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.js +28 -0
  355. package/dist/service/logs/sim-logs-commands.d.ts +3 -0
  356. package/dist/service/logs/sim-logs-commands.js +4 -0
  357. package/dist/service/logs/sim-logs.js +6 -1
  358. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -2
  359. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +4 -3
  360. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.d.ts +12 -0
  361. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.js +22 -0
  362. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +1 -1
  363. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +10 -1
  364. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +19 -1
  365. package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
  366. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +8 -0
  367. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +9 -0
  368. package/dist/service/scheduler/command/schedule/sim-scheduler-update-schedule.js +1 -0
  369. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.d.ts +15 -0
  370. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.js +22 -0
  371. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +4 -10
  372. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +13 -31
  373. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.d.ts +17 -0
  374. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.js +30 -0
  375. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +6 -0
  376. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +8 -3
  377. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts +1 -1
  378. package/dist/service/sqs/command/authorize/sim-sqs-queue-resource-policies.d.ts +1 -1
  379. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.d.ts +16 -0
  380. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.js +23 -0
  381. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts +2 -4
  382. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js +5 -5
  383. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +11 -12
  384. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js +4 -4
  385. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts +17 -0
  386. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js +20 -0
  387. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +13 -8
  388. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +13 -8
  389. package/dist/service/ssm/parameter/sim-ssm-parameter-name.js +3 -12
  390. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.d.ts +41 -0
  391. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.js +64 -0
  392. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.d.ts +5 -2
  393. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.js +6 -2
  394. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.d.ts +26 -0
  395. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.js +29 -0
  396. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.d.ts +7 -0
  397. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.js +12 -3
  398. package/dist/service/stepfunctions/command/machine/sim-state-machine-update.d.ts +19 -0
  399. package/dist/service/stepfunctions/command/machine/{sim-state-machine-writes.js → sim-state-machine-update.js} +3 -14
  400. package/dist/service/stepfunctions/sim-step-functions.d.ts +8 -2
  401. package/dist/service/stepfunctions/sim-step-functions.js +26 -9
  402. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
  403. package/dist/service/sts/command/assume-role/assume-role.handler.js +1 -0
  404. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +5 -0
  405. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +1 -0
  406. package/dist/service/sts/sim-sts.d.ts +9 -0
  407. package/dist/service/sts/sim-sts.js +4 -0
  408. package/dist/util/memo/bounded-memo.d.ts +36 -0
  409. package/dist/util/memo/bounded-memo.js +58 -0
  410. package/docs/sdk/README.md +3 -1
  411. package/docs/services/athena/README.md +7 -1
  412. package/docs/services/cloudformation/README.md +197 -11
  413. package/docs/services/cloudfront/README.md +1116 -14
  414. package/docs/services/cloudwatch/README.md +6 -4
  415. package/docs/services/cognito/README.md +8 -7
  416. package/docs/services/dynamodb/README.md +6 -5
  417. package/docs/services/ecs/README.md +23 -9
  418. package/docs/services/elbv2/README.md +6 -2
  419. package/docs/services/eventbridge/README.md +9 -1
  420. package/docs/services/firehose/README.md +9 -3
  421. package/docs/services/glue/README.md +6 -0
  422. package/docs/services/iam/README.md +322 -27
  423. package/docs/services/kinesis/README.md +3 -2
  424. package/docs/services/kms/README.md +11 -2
  425. package/docs/services/lambda/README.md +76 -2
  426. package/docs/services/logs/README.md +22 -2
  427. package/docs/services/s3/README.md +7 -2
  428. package/docs/services/scheduler/README.md +12 -4
  429. package/docs/services/secretsmanager/README.md +6 -3
  430. package/docs/services/ses/README.md +3 -1
  431. package/docs/services/sns/README.md +5 -5
  432. package/docs/services/sqs/README.md +5 -5
  433. package/docs/services/ssm/README.md +35 -18
  434. package/docs/services/stepfunctions/README.md +11 -2
  435. package/docs/services/wafv2/README.md +5 -3
  436. package/package.json +1 -1
  437. package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
@@ -0,0 +1,115 @@
1
+ import { SimRealClock } from "../../../util/clock/sim-clock.js";
2
+ import { simCfInvalidationBatchCovers } from "../invalidation/sim-cf-invalidation-path.js";
3
+ import { simCfAgeHeaderName, simCfCacheAgeSec } from "./sim-cf-cache-status.js";
4
+ import { simCfCacheEntryKeyPath } from "./sim-cf-cache-entry-key-path.js";
5
+ /**
6
+ * The statuses HTTP gives no body, which a Response refuses to be built with
7
+ * one for.
8
+ */
9
+ const bodylessStatuses = new Set([101, 103, 204, 205, 304]);
10
+ /**
11
+ * What one simulated Distribution has cached.
12
+ *
13
+ * Real CloudFront caches at each of its points of presence rather than once
14
+ * per Distribution, which the edge in the key stands for. One cache holds an
15
+ * entry per edge, and a request arriving at another edge misses.
16
+ *
17
+ * An entry leaves the cache two ways. It expires on the simulation's clock
18
+ * rather than the host's. A test reaches the instant an object goes stale by
19
+ * advancing simulated time, with no waiting. Or an invalidation clears it ahead
20
+ * of that instant.
21
+ *
22
+ * Storing takes its seconds from the caller. An Origin's answer is held for
23
+ * what its cache policy allows, and an error's own `ErrorCachingMinTTL` fits
24
+ * the same call.
25
+ */
26
+ export class SimCfDistributionCache {
27
+ entries = new Map();
28
+ clock;
29
+ /**
30
+ * A cache built standalone, outside a Distribution, falls back to the real
31
+ * clock.
32
+ */
33
+ constructor(clock = new SimRealClock()) {
34
+ this.clock = clock;
35
+ }
36
+ /**
37
+ * The response cached under a key, or none where the cache does not hold it.
38
+ *
39
+ * An entry that has reached its expiry is dropped here. The request then goes
40
+ * to the Origin, and what the Origin answers replaces the expired entry.
41
+ *
42
+ * What comes back carries `Age`, counted on the simulation's clock from the
43
+ * instant the Origin's answer was stored. An `Age` the Origin sent is
44
+ * replaced by the Distribution's own, as CloudFront replaces one.
45
+ */
46
+ read(key) {
47
+ const entry = this.entries.get(key);
48
+ if (entry === undefined) {
49
+ return undefined;
50
+ }
51
+ const now = this.clock.now();
52
+ if (now.getTime() >= entry.expiresAt.getTime()) {
53
+ this.entries.delete(key);
54
+ return undefined;
55
+ }
56
+ const response = cachedResponse(entry);
57
+ response.headers.set(simCfAgeHeaderName, String(simCfCacheAgeSec(entry.storedAt, now)));
58
+ return response;
59
+ }
60
+ /**
61
+ * Cache a response under a key for a number of seconds, and hand back one to
62
+ * carry on with.
63
+ *
64
+ * Storing reads the response's body, which can only happen once, so the
65
+ * response the caller continues with is built from the bytes that were
66
+ * stored rather than being the one passed in. A TTL of no seconds stores
67
+ * nothing, and the response passed in is handed straight back unread.
68
+ */
69
+ async store(key, response, ttlSec) {
70
+ if (!Number.isFinite(ttlSec) || ttlSec <= 0) {
71
+ return response;
72
+ }
73
+ const storedAt = this.clock.now();
74
+ const entry = {
75
+ status: response.status,
76
+ statusText: response.statusText,
77
+ headers: [...response.headers],
78
+ body: new Uint8Array(await response.arrayBuffer()),
79
+ storedAt,
80
+ expiresAt: new Date(storedAt.getTime() + ttlSec * 1000),
81
+ };
82
+ this.entries.set(key, entry);
83
+ return cachedResponse(entry);
84
+ }
85
+ /**
86
+ * Forget every entry an invalidation's paths name, at every edge.
87
+ *
88
+ * The path an entry was cached under is read back out of its key, so
89
+ * matching a batch costs a pass over the keys rather than a second map from
90
+ * path to entry. Nothing here is keyed on the edge, because an invalidation
91
+ * reaches every point of presence rather than the one a viewer happened to
92
+ * arrive at.
93
+ */
94
+ clearPaths(paths) {
95
+ for (const key of this.entries.keys()) {
96
+ const path = simCfCacheEntryKeyPath(key);
97
+ if (path !== undefined && simCfInvalidationBatchCovers(paths, path)) {
98
+ this.entries.delete(key);
99
+ }
100
+ }
101
+ }
102
+ }
103
+ /**
104
+ * Build a response from a cached one, which every read needs its own of.
105
+ *
106
+ * No `Age` goes on here. A response on its way into the cache has been held
107
+ * for no time at all, and only one leaving it has an age to report.
108
+ */
109
+ function cachedResponse(entry) {
110
+ return new Response(bodylessStatuses.has(entry.status) ? null : entry.body, {
111
+ status: entry.status,
112
+ statusText: entry.statusText,
113
+ headers: new Headers(entry.headers.map(([name, value]) => [name, value])),
114
+ });
115
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * The header naming the CloudFront edge a request arrives at.
3
+ *
4
+ * CloudFront caches at each of its several hundred points of presence, so a
5
+ * viewer is never guaranteed the entry another viewer's request stored. A
6
+ * request naming an edge of its own is answered from that edge's cache, which
7
+ * is how a test proves its app survives arriving somewhere cold.
8
+ *
9
+ * The name follows the `x-sim-aws-*` convention of `simAwsControlHeaderNames`,
10
+ * and like those headers it states something to the simulator rather than to
11
+ * the application. Sim CloudFront reads it, drops it from the request, and
12
+ * nothing downstream of the edge sees it.
13
+ */
14
+ export declare const simCfEdgeHeaderName = "x-sim-aws-cloudfront-edge";
15
+ /**
16
+ * The edge a request arrives at when it names none.
17
+ *
18
+ * Every request in a test lands here unless the test says otherwise, and a
19
+ * second request for a key the first one stored is a hit. A header carrying no
20
+ * value names no edge, and lands here too.
21
+ */
22
+ export declare const simCfDefaultEdgeId = "default";
23
+ /**
24
+ * A request and the edge it arrived at.
25
+ */
26
+ export interface SimCfRequestEdge {
27
+ readonly edgeId: string;
28
+ /**
29
+ * The request with the edge header removed, which is the one the rest of the
30
+ * pipeline works on.
31
+ */
32
+ readonly request: Request;
33
+ }
34
+ /**
35
+ * Read the edge a request arrived at, and take the header back off it.
36
+ */
37
+ export declare function simCfRequestEdge(request: Request): SimCfRequestEdge;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The header naming the CloudFront edge a request arrives at.
3
+ *
4
+ * CloudFront caches at each of its several hundred points of presence, so a
5
+ * viewer is never guaranteed the entry another viewer's request stored. A
6
+ * request naming an edge of its own is answered from that edge's cache, which
7
+ * is how a test proves its app survives arriving somewhere cold.
8
+ *
9
+ * The name follows the `x-sim-aws-*` convention of `simAwsControlHeaderNames`,
10
+ * and like those headers it states something to the simulator rather than to
11
+ * the application. Sim CloudFront reads it, drops it from the request, and
12
+ * nothing downstream of the edge sees it.
13
+ */
14
+ export const simCfEdgeHeaderName = "x-sim-aws-cloudfront-edge";
15
+ /**
16
+ * The edge a request arrives at when it names none.
17
+ *
18
+ * Every request in a test lands here unless the test says otherwise, and a
19
+ * second request for a key the first one stored is a hit. A header carrying no
20
+ * value names no edge, and lands here too.
21
+ */
22
+ export const simCfDefaultEdgeId = "default";
23
+ /**
24
+ * Read the edge a request arrived at, and take the header back off it.
25
+ */
26
+ export function simCfRequestEdge(request) {
27
+ const named = request.headers.get(simCfEdgeHeaderName)?.trim();
28
+ if (named === undefined || named.length === 0) {
29
+ return { edgeId: simCfDefaultEdgeId, request };
30
+ }
31
+ const headers = new Headers(request.headers);
32
+ headers.delete(simCfEdgeHeaderName);
33
+ return { edgeId: named, request: new Request(request, { headers }) };
34
+ }
@@ -0,0 +1,36 @@
1
+ import { type SimCloudFrontCustomErrorResponse } from "../custom-error/sim-cloudfront-custom-error-response.js";
2
+ interface SimCfErrorCacheTtlProperties {
3
+ /**
4
+ * The status the Origin answered with, before an origin-response function
5
+ * or a custom error page could replace it.
6
+ */
7
+ readonly originStatus: number;
8
+ /** The response carrying on towards the viewer. */
9
+ readonly response: Response;
10
+ /**
11
+ * The Distribution's custom error responses, whose `ErrorCachingMinTTL`
12
+ * decides.
13
+ */
14
+ readonly customErrorResponses: readonly SimCloudFrontCustomErrorResponse[];
15
+ }
16
+ /**
17
+ * How many seconds a Distribution holds an error for, or none where this
18
+ * answer is no error at all.
19
+ *
20
+ * An error has a TTL of its own, and the Origin's cache headers and the
21
+ * Behavior's cache policy have no say in it. It comes from the custom error
22
+ * response matching the status, and from CloudFront's ten seconds where the
23
+ * Distribution configures no rule for that status. An `ErrorCachingMinTTL` of
24
+ * zero holds the error for no time at all, which is how a Distribution turns
25
+ * error caching off.
26
+ *
27
+ * The Origin's status is what a rule is matched against. A 404 the
28
+ * Distribution answers with a 200 error page is still held as the error it
29
+ * was, for the seconds the 404's own rule allows. An error that only an
30
+ * origin-response function made has no Origin error behind it, and its own
31
+ * status stands in.
32
+ *
33
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html
34
+ */
35
+ export declare function simCfErrorCacheTtlSec(properties: SimCfErrorCacheTtlProperties): number | undefined;
36
+ export {};
@@ -0,0 +1,28 @@
1
+ import { simCloudFrontDefaultErrorCachingMinTtlSec, } from "../custom-error/sim-cloudfront-custom-error-response.js";
2
+ /**
3
+ * How many seconds a Distribution holds an error for, or none where this
4
+ * answer is no error at all.
5
+ *
6
+ * An error has a TTL of its own, and the Origin's cache headers and the
7
+ * Behavior's cache policy have no say in it. It comes from the custom error
8
+ * response matching the status, and from CloudFront's ten seconds where the
9
+ * Distribution configures no rule for that status. An `ErrorCachingMinTTL` of
10
+ * zero holds the error for no time at all, which is how a Distribution turns
11
+ * error caching off.
12
+ *
13
+ * The Origin's status is what a rule is matched against. A 404 the
14
+ * Distribution answers with a 200 error page is still held as the error it
15
+ * was, for the seconds the 404's own rule allows. An error that only an
16
+ * origin-response function made has no Origin error behind it, and its own
17
+ * status stands in.
18
+ *
19
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html
20
+ */
21
+ export function simCfErrorCacheTtlSec(properties) {
22
+ const { originStatus, response, customErrorResponses } = properties;
23
+ const errorStatus = originStatus >= 400 ? originStatus : response.status;
24
+ if (errorStatus < 400) {
25
+ return undefined;
26
+ }
27
+ return (customErrorResponses.find((customErrorResponse) => customErrorResponse.errorCode === errorStatus)?.errorCachingMinTtlSec ?? simCloudFrontDefaultErrorCachingMinTtlSec);
28
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The instant an HTTP date names, in milliseconds, or none where the value is
3
+ * not one of the three formats HTTP allows.
4
+ *
5
+ * The check matters because `Date.parse` reads far more than HTTP does. It
6
+ * takes `12/31/2099` as a date in 2099 and `0` as the start of the year 2000,
7
+ * and an HTTP cache is required to treat both as an object that has already
8
+ * expired.
9
+ *
10
+ * asctime states no zone and HTTP reads it as GMT, while `Date.parse` would
11
+ * read it in the host's own. It is rewritten with the zone spelled out.
12
+ *
13
+ * https://www.rfc-editor.org/rfc/rfc9110#name-date-time-formats
14
+ */
15
+ export declare function simCfHttpDateInstant(value: string): number | undefined;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * IMF-fixdate, which every sender is required to use. `Sun, 06 Nov 1994
3
+ * 08:49:37 GMT`.
4
+ */
5
+ const imfFixdate = /^[A-Za-z]{3}, \d{2} [A-Za-z]{3} \d{4} \d{2}:\d{2}:\d{2} GMT$/;
6
+ /**
7
+ * The obsolete RFC 850 format, which a recipient still has to read.
8
+ * `Sunday, 06-Nov-94 08:49:37 GMT`.
9
+ */
10
+ const rfc850Date = /^[A-Za-z]{6,9}, \d{2}-[A-Za-z]{3}-\d{2} \d{2}:\d{2}:\d{2} GMT$/;
11
+ /**
12
+ * The obsolete asctime format, which carries no zone. `Sun Nov 6 08:49:37
13
+ * 1994`.
14
+ */
15
+ const asctimeDate = /^[A-Za-z]{3} ([A-Za-z]{3}) {1,2}(\d{1,2}) (\d{2}:\d{2}:\d{2}) (\d{4})$/;
16
+ /**
17
+ * The instant an HTTP date names, in milliseconds, or none where the value is
18
+ * not one of the three formats HTTP allows.
19
+ *
20
+ * The check matters because `Date.parse` reads far more than HTTP does. It
21
+ * takes `12/31/2099` as a date in 2099 and `0` as the start of the year 2000,
22
+ * and an HTTP cache is required to treat both as an object that has already
23
+ * expired.
24
+ *
25
+ * asctime states no zone and HTTP reads it as GMT, while `Date.parse` would
26
+ * read it in the host's own. It is rewritten with the zone spelled out.
27
+ *
28
+ * https://www.rfc-editor.org/rfc/rfc9110#name-date-time-formats
29
+ */
30
+ export function simCfHttpDateInstant(value) {
31
+ const asctime = asctimeDate.exec(value);
32
+ const parsable = asctime === null
33
+ ? value
34
+ : `${asctime[2]} ${asctime[1]} ${asctime[4]} ${asctime[3]} GMT`;
35
+ if (asctime === null && !imfFixdate.test(value) && !rfc850Date.test(value)) {
36
+ return undefined;
37
+ }
38
+ const instant = Date.parse(parsable);
39
+ return Number.isNaN(instant) ? undefined : instant;
40
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The cookie behaviours a cache policy may name.
3
+ *
4
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-cloudfront-cachepolicy-cookiesconfig.html
5
+ */
6
+ export declare const simCfCacheKeyCookieBehaviors: readonly ["none", "whitelist", "allExcept", "all"];
7
+ export type SimCfCacheKeyCookieBehavior = (typeof simCfCacheKeyCookieBehaviors)[number];
8
+ /**
9
+ * The header behaviours a cache policy may name.
10
+ *
11
+ * These are two of the four an origin request policy offers. A cache key can
12
+ * name headers or leave them all out; there is no `allViewer` to key a cache
13
+ * on, since keying on every header a viewer sent would cache almost nothing
14
+ * twice.
15
+ *
16
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-cloudfront-cachepolicy-headersconfig.html
17
+ */
18
+ export declare const simCfCacheKeyHeaderBehaviors: readonly ["none", "whitelist"];
19
+ export type SimCfCacheKeyHeaderBehavior = (typeof simCfCacheKeyHeaderBehaviors)[number];
20
+ /**
21
+ * The query string behaviours a cache policy may name.
22
+ *
23
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-cloudfront-cachepolicy-querystringsconfig.html
24
+ */
25
+ export declare const simCfCacheKeyQueryStringBehaviors: readonly ["none", "whitelist", "allExcept", "all"];
26
+ export type SimCfCacheKeyQueryStringBehavior = (typeof simCfCacheKeyQueryStringBehaviors)[number];
27
+ interface SimCloudFrontCacheKeyProperties {
28
+ readonly cookieBehavior?: SimCfCacheKeyCookieBehavior;
29
+ readonly cookies?: readonly string[];
30
+ readonly headerBehavior?: SimCfCacheKeyHeaderBehavior;
31
+ readonly headers?: readonly string[];
32
+ readonly queryStringBehavior?: SimCfCacheKeyQueryStringBehavior;
33
+ readonly queryStrings?: readonly string[];
34
+ readonly enableAcceptEncodingGzip?: boolean;
35
+ readonly enableAcceptEncodingBrotli?: boolean;
36
+ }
37
+ /**
38
+ * What a cache policy keys its cache on.
39
+ *
40
+ * This is CloudFront's `ParametersInCacheKeyAndForwardedToOrigin`. Each of the
41
+ * three sections carries a behaviour and the names it applies to: a
42
+ * `whitelist` keys on the names listed, an `allExcept` keys on everything but
43
+ * them, and `all` and `none` ignore the list. The names listed are also the
44
+ * ones CloudFront forwards to the Origin.
45
+ *
46
+ * The two `EnableAcceptEncoding` flags decide whether the normalized
47
+ * `Accept-Encoding` header joins the key, which is what lets one object be
48
+ * cached once compressed and once not.
49
+ *
50
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html
51
+ */
52
+ export declare class SimCloudFrontCacheKey {
53
+ readonly cookieBehavior: SimCfCacheKeyCookieBehavior;
54
+ readonly cookies: readonly string[];
55
+ readonly headerBehavior: SimCfCacheKeyHeaderBehavior;
56
+ readonly headers: readonly string[];
57
+ readonly queryStringBehavior: SimCfCacheKeyQueryStringBehavior;
58
+ readonly queryStrings: readonly string[];
59
+ readonly enableAcceptEncodingGzip: boolean;
60
+ readonly enableAcceptEncodingBrotli: boolean;
61
+ constructor(properties?: SimCloudFrontCacheKeyProperties);
62
+ }
63
+ export {};
@@ -0,0 +1,70 @@
1
+ /**
2
+ * The cookie behaviours a cache policy may name.
3
+ *
4
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-cloudfront-cachepolicy-cookiesconfig.html
5
+ */
6
+ export const simCfCacheKeyCookieBehaviors = [
7
+ "none",
8
+ "whitelist",
9
+ "allExcept",
10
+ "all",
11
+ ];
12
+ /**
13
+ * The header behaviours a cache policy may name.
14
+ *
15
+ * These are two of the four an origin request policy offers. A cache key can
16
+ * name headers or leave them all out; there is no `allViewer` to key a cache
17
+ * on, since keying on every header a viewer sent would cache almost nothing
18
+ * twice.
19
+ *
20
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-cloudfront-cachepolicy-headersconfig.html
21
+ */
22
+ export const simCfCacheKeyHeaderBehaviors = ["none", "whitelist"];
23
+ /**
24
+ * The query string behaviours a cache policy may name.
25
+ *
26
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-cloudfront-cachepolicy-querystringsconfig.html
27
+ */
28
+ export const simCfCacheKeyQueryStringBehaviors = [
29
+ "none",
30
+ "whitelist",
31
+ "allExcept",
32
+ "all",
33
+ ];
34
+ /**
35
+ * What a cache policy keys its cache on.
36
+ *
37
+ * This is CloudFront's `ParametersInCacheKeyAndForwardedToOrigin`. Each of the
38
+ * three sections carries a behaviour and the names it applies to: a
39
+ * `whitelist` keys on the names listed, an `allExcept` keys on everything but
40
+ * them, and `all` and `none` ignore the list. The names listed are also the
41
+ * ones CloudFront forwards to the Origin.
42
+ *
43
+ * The two `EnableAcceptEncoding` flags decide whether the normalized
44
+ * `Accept-Encoding` header joins the key, which is what lets one object be
45
+ * cached once compressed and once not.
46
+ *
47
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html
48
+ */
49
+ export class SimCloudFrontCacheKey {
50
+ cookieBehavior;
51
+ cookies;
52
+ headerBehavior;
53
+ headers;
54
+ queryStringBehavior;
55
+ queryStrings;
56
+ enableAcceptEncodingGzip;
57
+ enableAcceptEncodingBrotli;
58
+ constructor(properties = {}) {
59
+ this.cookieBehavior = properties.cookieBehavior ?? "none";
60
+ this.cookies = properties.cookies ?? [];
61
+ this.headerBehavior = properties.headerBehavior ?? "none";
62
+ this.headers = properties.headers ?? [];
63
+ this.queryStringBehavior = properties.queryStringBehavior ?? "none";
64
+ this.queryStrings = properties.queryStrings ?? [];
65
+ this.enableAcceptEncodingGzip =
66
+ properties.enableAcceptEncodingGzip ?? false;
67
+ this.enableAcceptEncodingBrotli =
68
+ properties.enableAcceptEncodingBrotli ?? false;
69
+ }
70
+ }
@@ -0,0 +1,37 @@
1
+ import type { SimCloudFrontCachePolicy, SimCloudFrontCachePolicyId } from "./sim-cf-cache-policy.js";
2
+ /**
3
+ * The cache policies one simulated CloudFront holds.
4
+ *
5
+ * Policies are found by ID, which is what a cache Behavior's `cachePolicyId`
6
+ * names, and by name, which is what decides whether a new one may be stored.
7
+ *
8
+ * AWS's seven managed policies are held apart from the ones a template
9
+ * creates. CloudFront keeps them in its own namespace, so a template may
10
+ * create a policy called `CachingDisabled` of its own, and deleting the stack
11
+ * that created it leaves the managed one where it was.
12
+ */
13
+ export declare class SimCloudFrontCachePolicyRegistry {
14
+ private readonly policies;
15
+ private readonly managedPolicies;
16
+ /**
17
+ * Store a policy a template created, refusing a name another such policy
18
+ * already holds as CloudFront does.
19
+ */
20
+ add(policy: SimCloudFrontCachePolicy): void;
21
+ /**
22
+ * Forget a policy.
23
+ */
24
+ remove(policyId: SimCloudFrontCachePolicyId): void;
25
+ /**
26
+ * Get a policy by ID, whether a template created it or AWS manages it.
27
+ */
28
+ byId(policyId: SimCloudFrontCachePolicyId | string): SimCloudFrontCachePolicy | undefined;
29
+ /**
30
+ * Get a policy a template created, by name.
31
+ *
32
+ * A managed policy is left out. Its name belongs to CloudFront's own
33
+ * namespace, and this is what decides whether a template may store a policy
34
+ * under a name.
35
+ */
36
+ byName(policyName: string): SimCloudFrontCachePolicy | undefined;
37
+ }
@@ -0,0 +1,50 @@
1
+ import { SimCloudFrontCachePolicyAlreadyExists } from "../error/sim-cloudfront.error.js";
2
+ import { simCfManagedCachePolicies } from "./sim-cf-managed-cache-policies.js";
3
+ /**
4
+ * The cache policies one simulated CloudFront holds.
5
+ *
6
+ * Policies are found by ID, which is what a cache Behavior's `cachePolicyId`
7
+ * names, and by name, which is what decides whether a new one may be stored.
8
+ *
9
+ * AWS's seven managed policies are held apart from the ones a template
10
+ * creates. CloudFront keeps them in its own namespace, so a template may
11
+ * create a policy called `CachingDisabled` of its own, and deleting the stack
12
+ * that created it leaves the managed one where it was.
13
+ */
14
+ export class SimCloudFrontCachePolicyRegistry {
15
+ policies = new Map();
16
+ managedPolicies = simCfManagedCachePolicies();
17
+ /**
18
+ * Store a policy a template created, refusing a name another such policy
19
+ * already holds as CloudFront does.
20
+ */
21
+ add(policy) {
22
+ if (this.byName(policy.name) !== undefined) {
23
+ throw new SimCloudFrontCachePolicyAlreadyExists(`Sim CloudFront cache policy ${policy.name} already exists`);
24
+ }
25
+ this.policies.set(policy.id, policy);
26
+ }
27
+ /**
28
+ * Forget a policy.
29
+ */
30
+ remove(policyId) {
31
+ this.policies.delete(policyId);
32
+ }
33
+ /**
34
+ * Get a policy by ID, whether a template created it or AWS manages it.
35
+ */
36
+ byId(policyId) {
37
+ const id = policyId;
38
+ return this.policies.get(id) ?? this.managedPolicies.get(id);
39
+ }
40
+ /**
41
+ * Get a policy a template created, by name.
42
+ *
43
+ * A managed policy is left out. Its name belongs to CloudFront's own
44
+ * namespace, and this is what decides whether a template may store a policy
45
+ * under a name.
46
+ */
47
+ byName(policyName) {
48
+ return this.policies.values().find((policy) => policy.name === policyName);
49
+ }
50
+ }
@@ -0,0 +1,35 @@
1
+ import type { Brand } from "../../../util/brand.type.js";
2
+ import { SimCloudFrontCacheKey } from "./sim-cf-cache-key.js";
3
+ export type SimCloudFrontCachePolicyId = Brand<string, "SimCloudFrontCachePolicyId">;
4
+ interface SimCloudFrontCachePolicyProperties {
5
+ readonly id?: SimCloudFrontCachePolicyId;
6
+ readonly name: string;
7
+ readonly comment?: string | undefined;
8
+ readonly minTtlSec?: number;
9
+ readonly defaultTtlSec?: number;
10
+ readonly maxTtlSec?: number;
11
+ readonly cacheKey?: SimCloudFrontCacheKey;
12
+ }
13
+ /**
14
+ * Simulated CloudFront cache policy.
15
+ *
16
+ * A cache policy decides what a cache Behavior keys its cache on and how long
17
+ * an object stays there. This simulation holds the policy under its ID, along
18
+ * with its three TTLs and its cache key, and keys the Distribution's cache on
19
+ * it. A `MaxTTL` of zero is read as a Behavior that caches nothing, and the
20
+ * other two settle how long an entry lives against what the Origin asked for.
21
+ *
22
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html
23
+ */
24
+ export declare class SimCloudFrontCachePolicy {
25
+ readonly id: SimCloudFrontCachePolicyId;
26
+ readonly name: string;
27
+ readonly comment: string | undefined;
28
+ readonly minTtlSec: number;
29
+ readonly defaultTtlSec: number;
30
+ readonly maxTtlSec: number;
31
+ readonly cacheKey: SimCloudFrontCacheKey;
32
+ constructor(properties: SimCloudFrontCachePolicyProperties);
33
+ }
34
+ export type SimCloudFrontCachePolicyMap = Map<SimCloudFrontCachePolicyId, SimCloudFrontCachePolicy>;
35
+ export {};
@@ -0,0 +1,49 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { SimCloudFrontCacheKey } from "./sim-cf-cache-key.js";
3
+ const daySeconds = 86_400;
4
+ const yearSeconds = 31_536_000;
5
+ /**
6
+ * Simulated CloudFront cache policy.
7
+ *
8
+ * A cache policy decides what a cache Behavior keys its cache on and how long
9
+ * an object stays there. This simulation holds the policy under its ID, along
10
+ * with its three TTLs and its cache key, and keys the Distribution's cache on
11
+ * it. A `MaxTTL` of zero is read as a Behavior that caches nothing, and the
12
+ * other two settle how long an entry lives against what the Origin asked for.
13
+ *
14
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html
15
+ */
16
+ export class SimCloudFrontCachePolicy {
17
+ id;
18
+ name;
19
+ comment;
20
+ minTtlSec;
21
+ defaultTtlSec;
22
+ maxTtlSec;
23
+ cacheKey;
24
+ constructor(properties) {
25
+ this.id = properties.id ?? randomUUID();
26
+ this.name = properties.name;
27
+ this.comment = properties.comment;
28
+ this.minTtlSec = properties.minTtlSec ?? 0;
29
+ this.defaultTtlSec =
30
+ properties.defaultTtlSec ?? Math.max(daySeconds, this.minTtlSec);
31
+ this.maxTtlSec =
32
+ properties.maxTtlSec ?? maxTtlDefault(this.minTtlSec, this.defaultTtlSec);
33
+ this.cacheKey = properties.cacheKey ?? new SimCloudFrontCacheKey();
34
+ }
35
+ }
36
+ /**
37
+ * The `MaxTTL` CloudFront settles on where a policy left it out.
38
+ *
39
+ * It is a year, except where a longer `MinTTL` or `DefaultTTL` would sit above
40
+ * it, in which case CloudFront takes the `DefaultTTL` rather than capping the
41
+ * policy below its own floor.
42
+ *
43
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html
44
+ */
45
+ function maxTtlDefault(minTtlSec, defaultTtlSec) {
46
+ return minTtlSec > yearSeconds || defaultTtlSec > yearSeconds
47
+ ? defaultTtlSec
48
+ : yearSeconds;
49
+ }
@@ -0,0 +1,33 @@
1
+ import { type SimCloudFrontCachePolicyMap } from "./sim-cf-cache-policy.js";
2
+ /**
3
+ * The IDs AWS publishes for its managed cache policies.
4
+ *
5
+ * A template names one of these directly. CDK's `CachePolicy` statics carry
6
+ * the same seven, and synthesize the ID into a Behavior's `CachePolicyId` with
7
+ * no Resource behind it.
8
+ */
9
+ export declare const simCfManagedCachePolicyIds: {
10
+ readonly amplify: "2e54312d-136d-493c-8eb9-b001f22f67d2";
11
+ readonly cachingOptimized: "658327ea-f89d-4fab-a63d-7e88639e58f6";
12
+ readonly cachingOptimizedForUncompressedObjects: "b2884449-e4de-46a7-ac36-70bc7f1ddd6d";
13
+ readonly cachingDisabled: "4135ea2d-6df8-44a3-9df3-4b5a84be39ad";
14
+ readonly elementalMediaPackage: "08627262-05a9-4f76-9ded-b50ca2e3a84f";
15
+ readonly useOriginCacheControlHeaders: "83da9c7e-98b4-4e11-a168-04f0df8e2c65";
16
+ readonly useOriginCacheControlHeadersQueryStrings: "4cc15a8a-d715-48a4-82b8-cc0b614638fe";
17
+ };
18
+ /**
19
+ * The seven managed cache policies, built fresh for one simulated CloudFront.
20
+ *
21
+ * CloudFront owns these and every account has them, so a Behavior can name one
22
+ * without a template creating anything. Each carries the ID, the name, the
23
+ * TTLs and the cache key AWS publishes for it, so a Behavior on
24
+ * `CachingOptimized` here holds what one in an account holds.
25
+ *
26
+ * The normalized `Accept-Encoding` header AWS lists in some of these keys is
27
+ * not a header name in the whitelist. It is what the two `EnableAcceptEncoding`
28
+ * flags put in the key, which is why a policy carrying no header at all still
29
+ * caches a compressed object apart from an uncompressed one.
30
+ *
31
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html
32
+ */
33
+ export declare function simCfManagedCachePolicies(): SimCloudFrontCachePolicyMap;