@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
@@ -1,13 +1,13 @@
1
- import { simCloudFrontCustomErrorCodes, simCloudFrontCustomErrorResponseCodes, } from "../../custom-error/sim-cloudfront-custom-error-response.js";
1
+ import { simCloudFrontCustomErrorCodes, simCloudFrontCustomErrorResponseCodes, simCloudFrontDefaultErrorCachingMinTtlSec, } from "../../custom-error/sim-cloudfront-custom-error-response.js";
2
2
  import { SimCloudFrontInvalidArgument, SimCloudFrontInvalidErrorCode, SimCloudFrontInvalidResponseCode, } from "../../error/sim-cloudfront.error.js";
3
3
  /**
4
4
  * Applies custom error response configuration to a sim CloudFront
5
5
  * Distribution.
6
6
  *
7
- * CloudFront pairs `ResponsePagePath` and `ResponseCode`: a rule carrying one
7
+ * CloudFront pairs `ResponsePagePath` and `ResponseCode`. A rule carrying one
8
8
  * without the other is refused rather than half applied. A rule carrying
9
- * neither only configures error caching, which this simulator does not model,
10
- * so it is accepted and left out of the Distribution's request handling.
9
+ * neither configures error caching alone, and it reaches the Distribution with
10
+ * no page for the viewer to be sent.
11
11
  */
12
12
  export class SimCloudFrontCustomErrorConfigurator {
13
13
  /**
@@ -21,10 +21,12 @@ export class SimCloudFrontCustomErrorConfigurator {
21
21
  }
22
22
  const responsePagePath = customErrorResponse.ResponsePagePath;
23
23
  const responseCode = this.responseCode(customErrorResponse.ResponseCode);
24
+ const errorCachingMinTtlSec = this.errorCachingMinTtlSec(customErrorResponse.ErrorCachingMinTTL);
24
25
  if (responsePagePath === undefined || responsePagePath === "") {
25
26
  if (responseCode !== undefined) {
26
27
  throw new SimCloudFrontInvalidArgument(`CloudFront CustomErrorResponse for ${String(errorCode)} has a ResponseCode without a ResponsePagePath`);
27
28
  }
29
+ distribution.addCustomErrorResponse({ errorCode, errorCachingMinTtlSec });
28
30
  return;
29
31
  }
30
32
  if (responseCode === undefined) {
@@ -35,10 +37,29 @@ export class SimCloudFrontCustomErrorConfigurator {
35
37
  }
36
38
  distribution.addCustomErrorResponse({
37
39
  errorCode,
38
- responsePagePath,
39
- responseCode,
40
+ errorCachingMinTtlSec,
41
+ page: { responsePagePath, responseCode },
40
42
  });
41
43
  }
44
+ /**
45
+ * How long the rule holds its error for, which CloudFront defaults to ten
46
+ * seconds.
47
+ *
48
+ * A template can write a number as a string, and that one is read as the
49
+ * seconds it spells. Anything else falls back to the default. The
50
+ * alternative would be a stack that fails to deploy over the seconds an
51
+ * error is held for.
52
+ */
53
+ errorCachingMinTtlSec(errorCachingMinTtl) {
54
+ const seconds = typeof errorCachingMinTtl === "string" && errorCachingMinTtl.trim() !== ""
55
+ ? Number(errorCachingMinTtl)
56
+ : errorCachingMinTtl;
57
+ return typeof seconds === "number" &&
58
+ Number.isFinite(seconds) &&
59
+ seconds >= 0
60
+ ? seconds
61
+ : simCloudFrontDefaultErrorCachingMinTtlSec;
62
+ }
42
63
  responseCode(responseCode) {
43
64
  if (responseCode === undefined || responseCode === "") {
44
65
  return undefined;
@@ -2,7 +2,7 @@ import type { SimCloudFrontDistributionConfig } from "../../command/create-distr
2
2
  import type { SimCloudFrontDistribution } from "../sim-cloudfront-distribution.js";
3
3
  import type { SimCloudFrontOriginConfigurator } from "./sim-cloud-front-origin-configurator.js";
4
4
  import type { SimCloudFrontBehaviorConfigurator } from "./sim-cloud-front-behavior-configurator.js";
5
- import type { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
5
+ import type { SimCfBehaviorPolicies } from "./sim-cf-behavior-policies.js";
6
6
  import { type SimCfDistributionWebAcl } from "../../web-acl/sim-cf-distribution-web-acl.js";
7
7
  /**
8
8
  * Applies top-level Distribution configuration to a sim CloudFront Distribution.
@@ -24,10 +24,10 @@ import { type SimCfDistributionWebAcl } from "../../web-acl/sim-cf-distribution-
24
24
  export declare class SimCloudFrontDistributionConfigurator {
25
25
  private readonly originConfigurator;
26
26
  private readonly behaviorConfigurator;
27
- private readonly responseHeadersPolicy;
27
+ private readonly behaviorPolicies;
28
28
  private readonly webAcl;
29
29
  private readonly customErrorConfigurator;
30
- constructor(originConfigurator: SimCloudFrontOriginConfigurator, behaviorConfigurator: SimCloudFrontBehaviorConfigurator, responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy, webAcl: SimCfDistributionWebAcl);
30
+ constructor(originConfigurator: SimCloudFrontOriginConfigurator, behaviorConfigurator: SimCloudFrontBehaviorConfigurator, behaviorPolicies: SimCfBehaviorPolicies, webAcl: SimCfDistributionWebAcl);
31
31
  /**
32
32
  * Refuse a DistributionConfig this simulation cannot apply, before anything
33
33
  * is applied.
@@ -22,13 +22,13 @@ import { findSimCfRedundantOrigins, warnSimCfRedundantOrigins, } from "../../ori
22
22
  export class SimCloudFrontDistributionConfigurator {
23
23
  originConfigurator;
24
24
  behaviorConfigurator;
25
- responseHeadersPolicy;
25
+ behaviorPolicies;
26
26
  webAcl;
27
27
  customErrorConfigurator = new SimCloudFrontCustomErrorConfigurator();
28
- constructor(originConfigurator, behaviorConfigurator, responseHeadersPolicy, webAcl) {
28
+ constructor(originConfigurator, behaviorConfigurator, behaviorPolicies, webAcl) {
29
29
  this.originConfigurator = originConfigurator;
30
30
  this.behaviorConfigurator = behaviorConfigurator;
31
- this.responseHeadersPolicy = responseHeadersPolicy;
31
+ this.behaviorPolicies = behaviorPolicies;
32
32
  this.webAcl = webAcl;
33
33
  }
34
34
  /**
@@ -42,7 +42,7 @@ export class SimCloudFrontDistributionConfigurator {
42
42
  * worth undoing.
43
43
  */
44
44
  assertConfigurable(distributionConfig) {
45
- this.responseHeadersPolicy.assertAllExist(distributionConfig);
45
+ this.behaviorPolicies.assertAllExist(distributionConfig);
46
46
  this.webAcl.assertUsable(distributionConfig);
47
47
  }
48
48
  /**
@@ -3,6 +3,7 @@ import type { SimCloudFrontDistribution } from "../sim-cloudfront-distribution.j
3
3
  import { type SimCloudFrontS3OriginResolver } from "../../origin/s3/sim-cloudfront-s3-origin.js";
4
4
  import type { SimCfCustomOriginDispatcher } from "../../origin/custom/sim-cf-custom-origin-dispatcher.js";
5
5
  import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-access-control/sim-cf-origin-access-control-registry.js";
6
+ import type { SimCfBehaviorPolicyRegistries } from "../../origin-request-policy/sim-cf-behavior-forwarded.js";
6
7
  /**
7
8
  * Applies Origin configuration to a sim CloudFront Distribution.
8
9
  *
@@ -16,8 +17,9 @@ import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-acce
16
17
  export declare class SimCloudFrontOriginConfigurator {
17
18
  private readonly s3OriginResolver;
18
19
  private readonly originAccessControls;
20
+ private readonly policies;
19
21
  private readonly customOriginDispatcher?;
20
- constructor(s3OriginResolver: SimCloudFrontS3OriginResolver, originAccessControls: SimCloudFrontOriginAccessControlRegistry, customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined);
22
+ constructor(s3OriginResolver: SimCloudFrontS3OriginResolver, originAccessControls: SimCloudFrontOriginAccessControlRegistry, policies: SimCfBehaviorPolicyRegistries, customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined);
21
23
  /**
22
24
  * Configure an Origin on a Distribution.
23
25
  */
@@ -18,10 +18,12 @@ import { simCfOriginCustomHeaders } from "../../origin/sim-cf-origin-custom-head
18
18
  export class SimCloudFrontOriginConfigurator {
19
19
  s3OriginResolver;
20
20
  originAccessControls;
21
+ policies;
21
22
  customOriginDispatcher;
22
- constructor(s3OriginResolver, originAccessControls, customOriginDispatcher) {
23
+ constructor(s3OriginResolver, originAccessControls, policies, customOriginDispatcher) {
23
24
  this.s3OriginResolver = s3OriginResolver;
24
25
  this.originAccessControls = originAccessControls;
26
+ this.policies = policies;
25
27
  this.customOriginDispatcher = customOriginDispatcher;
26
28
  }
27
29
  /**
@@ -61,6 +63,7 @@ export class SimCloudFrontOriginConfigurator {
61
63
  originPath: origin.OriginPath,
62
64
  dispatcher: this.customOriginDispatcher,
63
65
  customHeaders,
66
+ policies: this.policies,
64
67
  ...(originAccessControl !== undefined && { originAccessControl }),
65
68
  }));
66
69
  return;
@@ -1,7 +1,9 @@
1
1
  import type { SimAcmRegistry } from "../../acm/registry/sim-acm-registry.js";
2
+ import type { SimCloudFrontCachePolicyRegistry } from "../cache-policy/sim-cf-cache-policy-registry.js";
2
3
  import type { SimCfCustomOriginDispatcher } from "../origin/custom/sim-cf-custom-origin-dispatcher.js";
3
4
  import type { SimCloudFrontS3OriginResolver } from "../origin/s3/sim-cloudfront-s3-origin.js";
4
5
  import type { SimCloudFrontOriginAccessControlRegistry } from "../origin-access-control/sim-cf-origin-access-control-registry.js";
6
+ import type { SimCloudFrontOriginRequestPolicyRegistry } from "../origin-request-policy/sim-cf-origin-request-policy-registry.js";
5
7
  import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../response-headers-policy/sim-cf-response-headers-policy-registry.js";
6
8
  import type { SimCfWebAclResolver } from "../web-acl/sim-cf-web-acl.js";
7
9
  import type { SimCfEdgeFunctions } from "../edge/sim-cf-edge-functions.js";
@@ -11,9 +13,9 @@ import type { SimCfEdgeFunctions } from "../edge/sim-cf-edge-functions.js";
11
13
  *
12
14
  * A DistributionConfig is mostly references: a Bucket or a hostname per
13
15
  * Origin, a certificate, an origin access control, a response headers policy,
14
- * a web ACL, a Lambda@Edge function version. None of them belongs to
15
- * CloudFront, and creation and update resolve every one of them the same way,
16
- * so they travel together.
16
+ * a cache policy, an origin request policy, a web ACL, a Lambda@Edge function
17
+ * version. None of them belongs to CloudFront, and creation and update resolve
18
+ * every one of them the same way, so they travel together.
17
19
  */
18
20
  export interface SimCfDistributionConfigurationState {
19
21
  readonly s3OriginResolver: SimCloudFrontS3OriginResolver;
@@ -21,6 +23,8 @@ export interface SimCfDistributionConfigurationState {
21
23
  readonly acmRegistry: SimAcmRegistry | undefined;
22
24
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
23
25
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
26
+ readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
27
+ readonly originRequestPolicies: SimCloudFrontOriginRequestPolicyRegistry;
24
28
  readonly webAclResolver: SimCfWebAclResolver | undefined;
25
29
  readonly edgeFunctions: SimCfEdgeFunctions | undefined;
26
30
  }
@@ -1,7 +1,9 @@
1
1
  import type { SimCloudFrontDistributionConfig } from "../command/create-distribution/create-distribution.command.js";
2
+ import type { SimCloudFrontCachePolicyRegistry } from "../cache-policy/sim-cf-cache-policy-registry.js";
2
3
  import type { SimCfCustomOriginDispatcher } from "../origin/custom/sim-cf-custom-origin-dispatcher.js";
3
4
  import type { SimCloudFrontS3OriginResolver } from "../origin/s3/sim-cloudfront-s3-origin.js";
4
5
  import type { SimCloudFrontOriginAccessControlRegistry } from "../origin-access-control/sim-cf-origin-access-control-registry.js";
6
+ import type { SimCloudFrontOriginRequestPolicyRegistry } from "../origin-request-policy/sim-cf-origin-request-policy-registry.js";
5
7
  import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../response-headers-policy/sim-cf-response-headers-policy-registry.js";
6
8
  import type { SimCloudFrontRegistry } from "../registry/sim-cloud-front-registry.js";
7
9
  import type { SimCfWebAclResolver } from "../web-acl/sim-cf-web-acl.js";
@@ -12,6 +14,8 @@ interface SimCloudFrontDistributionReconfigurerProperties {
12
14
  readonly customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined;
13
15
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
14
16
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
17
+ readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
18
+ readonly originRequestPolicies: SimCloudFrontOriginRequestPolicyRegistry;
15
19
  readonly webAclResolver?: SimCfWebAclResolver | undefined;
16
20
  }
17
21
  /**
@@ -7,7 +7,7 @@ export function simCloudFrontDistributionView(distribution) {
7
7
  ARN: simCloudFrontDistributionArn(distribution),
8
8
  Status: distribution.status,
9
9
  LastModifiedTime: distribution.lastModifiedTime,
10
- InProgressInvalidationBatches: 0,
10
+ InProgressInvalidationBatches: distribution.invalidations.inProgressCount,
11
11
  DomainName: `${distribution.distributionId.toLowerCase()}.cloudfront.net`,
12
12
  DistributionConfig: distribution.distributionConfig,
13
13
  };
@@ -6,6 +6,8 @@ import type { SimCloudFrontCustomErrorResponse } from "../custom-error/sim-cloud
6
6
  import { type SimAwsAccountId } from "../../aws/sim-aws-account.js";
7
7
  import type { SimCloudFrontDistributionConfig } from "../command/create-distribution/create-distribution.command.js";
8
8
  import { type SimClock } from "../../../util/clock/sim-clock.js";
9
+ import { SimCfDistributionCache } from "../cache/sim-cf-distribution-cache.js";
10
+ import { SimCfInvalidations } from "../invalidation/sim-cf-invalidations.js";
9
11
  export type SimCloudFrontDistributionId = Brand<string, "SimCloudFrontDistributionId">;
10
12
  export type SimCloudFrontDistributionStatus = "Deploying" | "Deployed";
11
13
  interface SimCloudFrontDistributionProperties {
@@ -14,8 +16,9 @@ interface SimCloudFrontDistributionProperties {
14
16
  readonly accountId?: SimAwsAccountId;
15
17
  readonly distributionConfig?: SimCloudFrontDistributionConfig;
16
18
  /**
17
- * Clock stamping this Distribution's last modified time. A Distribution built
18
- * standalone, outside a SimAws instance, falls back to the real clock.
19
+ * Clock stamping this Distribution's last modified time and expiring what its
20
+ * cache holds. A Distribution built standalone, outside a SimAws instance,
21
+ * falls back to the real clock.
19
22
  */
20
23
  readonly clock?: SimClock;
21
24
  }
@@ -29,6 +32,26 @@ export declare class SimCloudFrontDistribution {
29
32
  readonly behaviors: SimCloudFrontBehavior[];
30
33
  readonly customErrorResponses: SimCloudFrontCustomErrorResponse[];
31
34
  readonly lastModifiedTime: Date;
35
+ /**
36
+ * The clock this Distribution reads, which its cache expires on.
37
+ */
38
+ readonly clock: SimClock;
39
+ /**
40
+ * What this Distribution has cached, keyed by cache key.
41
+ *
42
+ * A configuration update leaves it alone, as it leaves a real
43
+ * Distribution's cached objects alone: an object cached under the old
44
+ * configuration is served until it expires or something removes it.
45
+ */
46
+ readonly cache: SimCfDistributionCache;
47
+ /**
48
+ * The invalidations this Distribution has been asked for.
49
+ *
50
+ * They outlive a configuration update, as the cache does, since an
51
+ * invalidation is a record of what was cleared rather than part of the
52
+ * Distribution's configuration.
53
+ */
54
+ readonly invalidations: SimCfInvalidations;
32
55
  private readonly alternateDomainNames;
33
56
  private readonly origins;
34
57
  constructor(properties?: SimCloudFrontDistributionProperties);
@@ -2,6 +2,8 @@ import { faker } from "@faker-js/faker";
2
2
  import { makeSimAwsAccountId, } from "../../aws/sim-aws-account.js";
3
3
  import { SimRealClock } from "../../../util/clock/sim-clock.js";
4
4
  import { SimCloudFrontDistributionNotDisabled } from "../error/sim-cloudfront.error.js";
5
+ import { SimCfDistributionCache } from "../cache/sim-cf-distribution-cache.js";
6
+ import { SimCfInvalidations } from "../invalidation/sim-cf-invalidations.js";
5
7
  /**
6
8
  * Simulated CloudFront Distribution.
7
9
  */
@@ -11,6 +13,26 @@ export class SimCloudFrontDistribution {
11
13
  behaviors = [];
12
14
  customErrorResponses = [];
13
15
  lastModifiedTime;
16
+ /**
17
+ * The clock this Distribution reads, which its cache expires on.
18
+ */
19
+ clock;
20
+ /**
21
+ * What this Distribution has cached, keyed by cache key.
22
+ *
23
+ * A configuration update leaves it alone, as it leaves a real
24
+ * Distribution's cached objects alone: an object cached under the old
25
+ * configuration is served until it expires or something removes it.
26
+ */
27
+ cache;
28
+ /**
29
+ * The invalidations this Distribution has been asked for.
30
+ *
31
+ * They outlive a configuration update, as the cache does, since an
32
+ * invalidation is a record of what was cleared rather than part of the
33
+ * Distribution's configuration.
34
+ */
35
+ invalidations = new SimCfInvalidations();
14
36
  #status;
15
37
  #distributionConfig;
16
38
  #enabled;
@@ -21,6 +43,8 @@ export class SimCloudFrontDistribution {
21
43
  origins = new Map();
22
44
  constructor(properties = {}) {
23
45
  const { distributionId = makeDistributionId(), status = "Deployed", accountId = makeSimAwsAccountId(), distributionConfig, clock = new SimRealClock(), } = properties;
46
+ this.clock = clock;
47
+ this.cache = new SimCfDistributionCache(clock);
24
48
  this.lastModifiedTime = clock.now();
25
49
  this.distributionId = distributionId;
26
50
  this.#status = status;
@@ -0,0 +1,22 @@
1
+ import { SimCloudFrontError } from "./sim-cloudfront.error.js";
2
+ /**
3
+ * Simulated CloudFront NoSuchInvalidation error.
4
+ *
5
+ * What CloudFront answers when an invalidation ID names nothing on the
6
+ * Distribution it was asked for.
7
+ */
8
+ export declare class SimCloudFrontNoSuchInvalidation extends SimCloudFrontError {
9
+ readonly name = "NoSuchInvalidation";
10
+ constructor(message: string);
11
+ }
12
+ /**
13
+ * Simulated CloudFront InvalidationBatchAlreadyExists error.
14
+ *
15
+ * A `CallerReference` makes an invalidation batch idempotent. Repeating one
16
+ * with the paths it was created with answers with that invalidation, and
17
+ * repeating it with different paths is refused rather than clearing anything.
18
+ */
19
+ export declare class SimCloudFrontInvalidationBatchAlreadyExists extends SimCloudFrontError {
20
+ readonly name = "InvalidationBatchAlreadyExists";
21
+ constructor(message: string);
22
+ }
@@ -0,0 +1,26 @@
1
+ import { SimCloudFrontError } from "./sim-cloudfront.error.js";
2
+ /**
3
+ * Simulated CloudFront NoSuchInvalidation error.
4
+ *
5
+ * What CloudFront answers when an invalidation ID names nothing on the
6
+ * Distribution it was asked for.
7
+ */
8
+ export class SimCloudFrontNoSuchInvalidation extends SimCloudFrontError {
9
+ name = "NoSuchInvalidation";
10
+ constructor(message) {
11
+ super(message, { httpStatusCode: 404 });
12
+ }
13
+ }
14
+ /**
15
+ * Simulated CloudFront InvalidationBatchAlreadyExists error.
16
+ *
17
+ * A `CallerReference` makes an invalidation batch idempotent. Repeating one
18
+ * with the paths it was created with answers with that invalidation, and
19
+ * repeating it with different paths is refused rather than clearing anything.
20
+ */
21
+ export class SimCloudFrontInvalidationBatchAlreadyExists extends SimCloudFrontError {
22
+ name = "InvalidationBatchAlreadyExists";
23
+ constructor(message) {
24
+ super(message, { httpStatusCode: 409 });
25
+ }
26
+ }
@@ -0,0 +1,22 @@
1
+ import { SimCloudFrontError } from "./sim-cloudfront.error.js";
2
+ /**
3
+ * Simulated CloudFront NoSuchOriginRequestPolicy error.
4
+ *
5
+ * What CloudFront answers when a Behavior's `OriginRequestPolicyId` names no
6
+ * origin request policy the account holds, at Distribution create or update
7
+ * time rather than when a request first needs the policy.
8
+ */
9
+ export declare class SimCloudFrontNoSuchOriginRequestPolicy extends SimCloudFrontError {
10
+ readonly name = "NoSuchOriginRequestPolicy";
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * Simulated CloudFront OriginRequestPolicyAlreadyExists error.
15
+ *
16
+ * CloudFront requires an origin request policy name to be unique within an
17
+ * account, so a second policy claiming a name is refused rather than created.
18
+ */
19
+ export declare class SimCloudFrontOriginRequestPolicyAlreadyExists extends SimCloudFrontError {
20
+ readonly name = "OriginRequestPolicyAlreadyExists";
21
+ constructor(message: string);
22
+ }
@@ -0,0 +1,26 @@
1
+ import { SimCloudFrontError } from "./sim-cloudfront.error.js";
2
+ /**
3
+ * Simulated CloudFront NoSuchOriginRequestPolicy error.
4
+ *
5
+ * What CloudFront answers when a Behavior's `OriginRequestPolicyId` names no
6
+ * origin request policy the account holds, at Distribution create or update
7
+ * time rather than when a request first needs the policy.
8
+ */
9
+ export class SimCloudFrontNoSuchOriginRequestPolicy extends SimCloudFrontError {
10
+ name = "NoSuchOriginRequestPolicy";
11
+ constructor(message) {
12
+ super(message, { httpStatusCode: 404 });
13
+ }
14
+ }
15
+ /**
16
+ * Simulated CloudFront OriginRequestPolicyAlreadyExists error.
17
+ *
18
+ * CloudFront requires an origin request policy name to be unique within an
19
+ * account, so a second policy claiming a name is refused rather than created.
20
+ */
21
+ export class SimCloudFrontOriginRequestPolicyAlreadyExists extends SimCloudFrontError {
22
+ name = "OriginRequestPolicyAlreadyExists";
23
+ constructor(message) {
24
+ super(message, { httpStatusCode: 409 });
25
+ }
26
+ }
@@ -101,6 +101,27 @@ export declare class SimCloudFrontResponseHeadersPolicyAlreadyExists extends Sim
101
101
  readonly name = "ResponseHeadersPolicyAlreadyExists";
102
102
  constructor(message: string);
103
103
  }
104
+ /**
105
+ * Simulated CloudFront NoSuchCachePolicy error.
106
+ *
107
+ * What CloudFront answers when a Behavior's `CachePolicyId` names no cache
108
+ * policy the account holds, at Distribution create or update time rather than
109
+ * when a request first needs the policy.
110
+ */
111
+ export declare class SimCloudFrontNoSuchCachePolicy extends SimCloudFrontError {
112
+ readonly name = "NoSuchCachePolicy";
113
+ constructor(message: string);
114
+ }
115
+ /**
116
+ * Simulated CloudFront CachePolicyAlreadyExists error.
117
+ *
118
+ * CloudFront requires a cache policy name to be unique within an account, so a
119
+ * second policy claiming a name is refused rather than created.
120
+ */
121
+ export declare class SimCloudFrontCachePolicyAlreadyExists extends SimCloudFrontError {
122
+ readonly name = "CachePolicyAlreadyExists";
123
+ constructor(message: string);
124
+ }
104
125
  /**
105
126
  * Simulated CloudFront InvalidOriginAccessControl error.
106
127
  *
@@ -118,6 +118,31 @@ export class SimCloudFrontResponseHeadersPolicyAlreadyExists extends SimCloudFro
118
118
  super(message, { httpStatusCode: 409 });
119
119
  }
120
120
  }
121
+ /**
122
+ * Simulated CloudFront NoSuchCachePolicy error.
123
+ *
124
+ * What CloudFront answers when a Behavior's `CachePolicyId` names no cache
125
+ * policy the account holds, at Distribution create or update time rather than
126
+ * when a request first needs the policy.
127
+ */
128
+ export class SimCloudFrontNoSuchCachePolicy extends SimCloudFrontError {
129
+ name = "NoSuchCachePolicy";
130
+ constructor(message) {
131
+ super(message, { httpStatusCode: 404 });
132
+ }
133
+ }
134
+ /**
135
+ * Simulated CloudFront CachePolicyAlreadyExists error.
136
+ *
137
+ * CloudFront requires a cache policy name to be unique within an account, so a
138
+ * second policy claiming a name is refused rather than created.
139
+ */
140
+ export class SimCloudFrontCachePolicyAlreadyExists extends SimCloudFrontError {
141
+ name = "CachePolicyAlreadyExists";
142
+ constructor(message) {
143
+ super(message, { httpStatusCode: 409 });
144
+ }
145
+ }
121
146
  /**
122
147
  * Simulated CloudFront InvalidOriginAccessControl error.
123
148
  *
@@ -4,6 +4,8 @@ export { cloudFrontFunctionSourceFromModule } from "./cff/function-code-module/c
4
4
  export type { CloudFrontFunction } from "./typings/cloudfront-functions.namespace.js";
5
5
  export type { LambdaAtEdge } from "./typings/lambda-at-edge.namespace.js";
6
6
  export type { SimCfRedundantOrigin } from "./origin/sim-cf-redundant-origins.js";
7
+ export { simCfDefaultEdgeId, simCfEdgeHeaderName, } from "./cache/sim-cf-edge.js";
8
+ export type { SimCfCachingConfiguration } from "./registry/sim-cloud-front-registry.js";
7
9
  export type { SimCloudFrontKeyValueStoreApi } from "./sim-cloudfront-key-value-store.js";
8
10
  export type { SimCfKeyValueStoreCommands } from "./key-value-store/sim-cf-key-value-store-commands.js";
9
11
  export type { SimCloudFrontKeyValueStore, SimCloudFrontKeyValueStoreId, SimCloudFrontKeyValueStoreStatus, } from "./key-value-store/sim-cf-key-value-store.js";
@@ -1,3 +1,4 @@
1
1
  export { makeCffFunctionCodeInput } from "./cff/function-code-input/cff-function-code-input.js";
2
2
  export { cloudFrontViewerRequestEventFactory, cloudFrontViewerResponseEventFactory, } from "./factory/cloudfront-functions.factory.js";
3
3
  export { cloudFrontFunctionSourceFromModule } from "./cff/function-code-module/cff-code-module-file.js";
4
+ export { simCfDefaultEdgeId, simCfEdgeHeaderName, } from "./cache/sim-cf-edge.js";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * One path as an invalidation names it.
3
+ *
4
+ * CloudFront takes a path relative to the Distribution, beginning with a
5
+ * slash. One arriving without a leading slash is read as though it had one, so
6
+ * the bare `*` that clears everything is the same batch as `/*`.
7
+ */
8
+ export declare function simCfInvalidationPath(path: string): string;
9
+ /**
10
+ * Whether a path an invalidation names covers a path the Distribution has
11
+ * cached.
12
+ *
13
+ * A path on its own names one object. A path ending in a wildcard names
14
+ * everything below what comes before it, so `/images/*` covers
15
+ * `/images/logo.png` and leaves `/index.html` alone, and `/*` covers
16
+ * everything the Distribution holds.
17
+ */
18
+ export declare function simCfInvalidationCovers(invalidationPath: string, path: string): boolean;
19
+ /**
20
+ * Whether any path in a batch covers a path the Distribution has cached.
21
+ */
22
+ export declare function simCfInvalidationBatchCovers(invalidationPaths: readonly string[], path: string): boolean;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * One path as an invalidation names it.
3
+ *
4
+ * CloudFront takes a path relative to the Distribution, beginning with a
5
+ * slash. One arriving without a leading slash is read as though it had one, so
6
+ * the bare `*` that clears everything is the same batch as `/*`.
7
+ */
8
+ export function simCfInvalidationPath(path) {
9
+ const named = path.trim();
10
+ return named.startsWith("/") ? named : `/${named}`;
11
+ }
12
+ /**
13
+ * Whether a path an invalidation names covers a path the Distribution has
14
+ * cached.
15
+ *
16
+ * A path on its own names one object. A path ending in a wildcard names
17
+ * everything below what comes before it, so `/images/*` covers
18
+ * `/images/logo.png` and leaves `/index.html` alone, and `/*` covers
19
+ * everything the Distribution holds.
20
+ */
21
+ export function simCfInvalidationCovers(invalidationPath, path) {
22
+ const named = simCfInvalidationPath(invalidationPath);
23
+ return named.endsWith("*")
24
+ ? path.startsWith(named.slice(0, -1))
25
+ : path === named;
26
+ }
27
+ /**
28
+ * Whether any path in a batch covers a path the Distribution has cached.
29
+ */
30
+ export function simCfInvalidationBatchCovers(invalidationPaths, path) {
31
+ return invalidationPaths.some((invalidationPath) => simCfInvalidationCovers(invalidationPath, path));
32
+ }
@@ -0,0 +1,43 @@
1
+ import type { SimCfInvalidation } from "./sim-cf-invalidation.js";
2
+ /**
3
+ * The batch of paths an invalidation was created from, as the API returns it.
4
+ */
5
+ export interface SimCfInvalidationBatchView {
6
+ readonly Paths: {
7
+ readonly Quantity: number;
8
+ readonly Items: readonly string[];
9
+ };
10
+ readonly CallerReference: string;
11
+ }
12
+ /**
13
+ * Minimal structural sim CloudFront invalidation, as the API returns it.
14
+ *
15
+ * CreateInvalidation and GetInvalidation both answer with this shape.
16
+ */
17
+ export interface SimCfInvalidationView {
18
+ readonly Id: string;
19
+ readonly Status: string;
20
+ readonly CreateTime: Date;
21
+ readonly InvalidationBatch: SimCfInvalidationBatchView;
22
+ }
23
+ /**
24
+ * One invalidation as ListInvalidations returns it, which leaves out the
25
+ * batch of paths.
26
+ */
27
+ export interface SimCfInvalidationSummaryView {
28
+ readonly Id: string;
29
+ readonly CreateTime: Date;
30
+ readonly Status: string;
31
+ }
32
+ /**
33
+ * Build the API view of a sim CloudFront invalidation.
34
+ */
35
+ export declare function simCfInvalidationView(invalidation: SimCfInvalidation): SimCfInvalidationView;
36
+ /**
37
+ * Build the listing view of a sim CloudFront invalidation.
38
+ */
39
+ export declare function simCfInvalidationSummary(invalidation: SimCfInvalidation): SimCfInvalidationSummaryView;
40
+ /**
41
+ * The URL CreateInvalidation reports the new invalidation at.
42
+ */
43
+ export declare function simCfInvalidationLocation(distributionId: string, invalidationId: string): string;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Build the API view of a sim CloudFront invalidation.
3
+ */
4
+ export function simCfInvalidationView(invalidation) {
5
+ return {
6
+ Id: invalidation.invalidationId,
7
+ Status: invalidation.status,
8
+ CreateTime: invalidation.createTime,
9
+ InvalidationBatch: {
10
+ Paths: {
11
+ Quantity: invalidation.paths.length,
12
+ Items: invalidation.paths,
13
+ },
14
+ CallerReference: invalidation.callerReference,
15
+ },
16
+ };
17
+ }
18
+ /**
19
+ * Build the listing view of a sim CloudFront invalidation.
20
+ */
21
+ export function simCfInvalidationSummary(invalidation) {
22
+ return {
23
+ Id: invalidation.invalidationId,
24
+ CreateTime: invalidation.createTime,
25
+ Status: invalidation.status,
26
+ };
27
+ }
28
+ /**
29
+ * The URL CreateInvalidation reports the new invalidation at.
30
+ */
31
+ export function simCfInvalidationLocation(distributionId, invalidationId) {
32
+ return `https://cloudfront.amazonaws.com/2020-05-31/distribution/${distributionId}/invalidation/${invalidationId}`;
33
+ }