@kensio/yulin 1.20.17 → 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.
- package/dist/service/athena/engine/sim-athena-comparison-shims.d.ts +13 -0
- package/dist/service/athena/engine/sim-athena-comparison-shims.js +68 -0
- package/dist/service/athena/engine/sim-athena-shims.js +2 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.d.ts +24 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.js +31 -0
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +12 -1
- package/dist/service/cloudfront/cache/sim-cf-accept-encoding.d.ts +11 -0
- package/dist/service/cloudfront/cache/sim-cf-accept-encoding.js +27 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-control.d.ts +28 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-control.js +49 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.d.ts +11 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.js +22 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.d.ts +32 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.js +112 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-status.d.ts +27 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-status.js +53 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-ttl.d.ts +28 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-ttl.js +50 -0
- package/dist/service/cloudfront/cache/sim-cf-cacheable-request.d.ts +35 -0
- package/dist/service/cloudfront/cache/sim-cf-cacheable-request.js +32 -0
- package/dist/service/cloudfront/cache/sim-cf-distribution-cache.d.ts +57 -0
- package/dist/service/cloudfront/cache/sim-cf-distribution-cache.js +115 -0
- package/dist/service/cloudfront/cache/sim-cf-edge.d.ts +37 -0
- package/dist/service/cloudfront/cache/sim-cf-edge.js +34 -0
- package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.d.ts +36 -0
- package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.js +28 -0
- package/dist/service/cloudfront/cache/sim-cf-http-date.d.ts +15 -0
- package/dist/service/cloudfront/cache/sim-cf-http-date.js +40 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.d.ts +63 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.js +70 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +13 -3
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +31 -3
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +8 -3
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +96 -12
- package/dist/service/cloudfront/cff/sim-cff-search-distribution.fixture.js +4 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +9 -8
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +40 -11
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.d.ts +10 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.js +50 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.d.ts +28 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.js +29 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.d.ts +16 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.js +23 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-behavior-policies.d.ts +3 -2
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-behavior-policies.js +3 -2
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -6
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +6 -6
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +8 -23
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.d.ts +28 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.js +46 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.d.ts +24 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.js +32 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.d.ts +10 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.js +51 -0
- package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.d.ts +22 -0
- package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.js +54 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +12 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.d.ts +28 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.js +59 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.d.ts +19 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.js +32 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.d.ts +36 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.js +45 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.d.ts +80 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.js +1 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.d.ts +39 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.js +35 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.d.ts +23 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.js +39 -0
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/controller/content/sim-cf-content-stage.d.ts +51 -0
- package/dist/service/cloudfront/controller/content/sim-cf-content-stage.js +65 -0
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +2 -3
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +4 -4
- package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.d.ts +4 -0
- package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.js +12 -8
- package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.d.ts +2 -2
- package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.js +2 -2
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +6 -6
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +35 -20
- package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.d.ts +23 -5
- package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.js +8 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.d.ts +18 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.js +30 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +7 -5
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +8 -5
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +4 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +2 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +6 -2
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.d.ts +13 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.js +27 -6
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +3 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +4 -1
- package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +5 -3
- package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +2 -0
- package/dist/service/cloudfront/distribution/sim-cf-distribution-view.js +1 -1
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +25 -2
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +24 -0
- package/dist/service/cloudfront/error/sim-cf-invalidation.error.d.ts +22 -0
- package/dist/service/cloudfront/error/sim-cf-invalidation.error.js +26 -0
- package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.d.ts +22 -0
- package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.js +26 -0
- package/dist/service/cloudfront/index.d.ts +2 -0
- package/dist/service/cloudfront/index.js +1 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.d.ts +22 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.js +32 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.d.ts +43 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.js +33 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation.d.ts +55 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation.js +56 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidations.d.ts +41 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidations.js +58 -0
- package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.d.ts +15 -0
- package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.js +23 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.d.ts +19 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.js +116 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +15 -5
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +13 -8
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.js +8 -5
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +13 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +8 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.d.ts +24 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.js +21 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.d.ts +57 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.js +129 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.d.ts +30 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.js +121 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.d.ts +56 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.js +67 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.d.ts +38 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.js +51 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.d.ts +32 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.js +30 -0
- package/dist/service/cloudfront/registry/sim-cloud-front-registry.d.ts +25 -0
- package/dist/service/cloudfront/registry/sim-cloud-front-registry.js +23 -0
- package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +12 -0
- package/dist/service/cloudfront/sim-cloudfront-caching.d.ts +31 -0
- package/dist/service/cloudfront/sim-cloudfront-caching.js +38 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +12 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.js +12 -0
- package/dist/service/cloudfront/sim-cloudfront-distributions.d.ts +21 -0
- package/dist/service/cloudfront/sim-cloudfront-distributions.js +23 -0
- package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.d.ts +30 -0
- package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.js +35 -0
- package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +22 -5
- package/dist/service/cloudfront/sim-cloudfront-policies.js +27 -5
- package/dist/service/cloudfront/sim-cloudfront.d.ts +15 -31
- package/dist/service/cloudfront/sim-cloudfront.js +23 -41
- package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +6 -5
- package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +6 -5
- package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +6 -4
- package/dist/service/kms/command/sim-kms-request-options.d.ts +9 -5
- package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts +6 -4
- package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js +13 -4
- package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.d.ts +23 -0
- package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.js +28 -0
- package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +7 -10
- package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +10 -11
- package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +11 -16
- package/docs/services/athena/README.md +7 -1
- package/docs/services/cloudformation/README.md +2 -1
- package/docs/services/cloudfront/README.md +903 -25
- package/docs/services/ecs/README.md +5 -2
- package/docs/services/kms/README.md +9 -5
- package/docs/services/logs/README.md +6 -0
- package/docs/services/ssm/README.md +26 -33
- package/package.json +1 -1
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import type { SimCloudFrontCacheBehaviorConfig, SimCloudFrontDefaultCacheBehaviorConfig, SimCloudFrontDistributionConfig } from "../../command/create-distribution/create-distribution.command.js";
|
|
2
2
|
import type { SimCfBehaviorCachePolicy } from "./sim-cf-behavior-cache-policy.js";
|
|
3
|
+
import type { SimCfBehaviorOriginRequestPolicy } from "./sim-cf-behavior-origin-request-policy.js";
|
|
3
4
|
import type { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
|
|
4
5
|
/**
|
|
5
6
|
* The policies a Cache Behavior names, and whether this simulation holds them.
|
|
6
7
|
*
|
|
7
|
-
* A Behavior points at a response headers policy
|
|
8
|
-
*
|
|
9
|
-
* the same moment, so they are asked together.
|
|
8
|
+
* A Behavior points at a response headers policy, a cache policy and an origin
|
|
9
|
+
* request policy by ID, and all three live outside the Distribution. Each one
|
|
10
|
+
* is checked the same way and at the same moment, so they are asked together.
|
|
10
11
|
*/
|
|
11
12
|
export declare class SimCfBehaviorPolicies {
|
|
12
13
|
private readonly responseHeadersPolicy;
|
|
13
14
|
private readonly cachePolicy;
|
|
14
|
-
|
|
15
|
+
private readonly originRequestPolicy;
|
|
16
|
+
constructor(responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy, cachePolicy: SimCfBehaviorCachePolicy, originRequestPolicy: SimCfBehaviorOriginRequestPolicy);
|
|
15
17
|
/**
|
|
16
18
|
* Refuse every Behavior of a DistributionConfig that names a policy which is
|
|
17
19
|
* not there, without touching the Distribution.
|
|
@@ -22,7 +24,7 @@ export declare class SimCfBehaviorPolicies {
|
|
|
22
24
|
*/
|
|
23
25
|
assertAllExist(distributionConfig: SimCloudFrontDistributionConfig): void;
|
|
24
26
|
/**
|
|
25
|
-
* Refuse one Behavior naming a policy of
|
|
27
|
+
* Refuse one Behavior naming a policy of any kind which is not there.
|
|
26
28
|
*/
|
|
27
29
|
assertExists(behavior: SimCloudFrontDefaultCacheBehaviorConfig | SimCloudFrontCacheBehaviorConfig): void;
|
|
28
30
|
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The policies a Cache Behavior names, and whether this simulation holds them.
|
|
3
3
|
*
|
|
4
|
-
* A Behavior points at a response headers policy
|
|
5
|
-
*
|
|
6
|
-
* the same moment, so they are asked together.
|
|
4
|
+
* A Behavior points at a response headers policy, a cache policy and an origin
|
|
5
|
+
* request policy by ID, and all three live outside the Distribution. Each one
|
|
6
|
+
* is checked the same way and at the same moment, so they are asked together.
|
|
7
7
|
*/
|
|
8
8
|
export class SimCfBehaviorPolicies {
|
|
9
9
|
responseHeadersPolicy;
|
|
10
10
|
cachePolicy;
|
|
11
|
-
|
|
11
|
+
originRequestPolicy;
|
|
12
|
+
constructor(responseHeadersPolicy, cachePolicy, originRequestPolicy) {
|
|
12
13
|
this.responseHeadersPolicy = responseHeadersPolicy;
|
|
13
14
|
this.cachePolicy = cachePolicy;
|
|
15
|
+
this.originRequestPolicy = originRequestPolicy;
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Refuse every Behavior of a DistributionConfig that names a policy which is
|
|
@@ -32,10 +34,11 @@ export class SimCfBehaviorPolicies {
|
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
|
-
* Refuse one Behavior naming a policy of
|
|
37
|
+
* Refuse one Behavior naming a policy of any kind which is not there.
|
|
36
38
|
*/
|
|
37
39
|
assertExists(behavior) {
|
|
38
40
|
this.responseHeadersPolicy.assertExists(behavior.TargetOriginId, behavior.ResponseHeadersPolicyId);
|
|
39
41
|
this.cachePolicy.assertExists(behavior.TargetOriginId, behavior.CachePolicyId);
|
|
42
|
+
this.originRequestPolicy.assertExists(behavior.TargetOriginId, behavior.OriginRequestPolicyId);
|
|
40
43
|
}
|
|
41
44
|
}
|
|
@@ -7,7 +7,7 @@ import { assertConsistentQuantity } from "../../command/sim-cf-list-quantity.js"
|
|
|
7
7
|
* a named one. Callers add their own fields, such as the path pattern, on top.
|
|
8
8
|
*/
|
|
9
9
|
export function simCfBehaviorProperties(cacheBehavior, policies) {
|
|
10
|
-
const { TargetOriginId, ResponseHeadersPolicyId, CachePolicyId } = cacheBehavior;
|
|
10
|
+
const { TargetOriginId, ResponseHeadersPolicyId, CachePolicyId, OriginRequestPolicyId, } = cacheBehavior;
|
|
11
11
|
assertDefined(TargetOriginId, "CloudFront CacheBehavior TargetOriginId");
|
|
12
12
|
policies.assertExists(cacheBehavior);
|
|
13
13
|
return {
|
|
@@ -26,6 +26,9 @@ export function simCfBehaviorProperties(cacheBehavior, policies) {
|
|
|
26
26
|
...(CachePolicyId !== undefined && {
|
|
27
27
|
cachePolicyId: CachePolicyId,
|
|
28
28
|
}),
|
|
29
|
+
...(OriginRequestPolicyId !== undefined && {
|
|
30
|
+
originRequestPolicyId: OriginRequestPolicyId,
|
|
31
|
+
}),
|
|
29
32
|
functionAssociations: configureCffAssociations(cacheBehavior),
|
|
30
33
|
lambdaFunctionAssociations: configureEdgeAssociations(cacheBehavior),
|
|
31
34
|
};
|
|
@@ -2,6 +2,7 @@ import type { SimCloudFrontCachePolicyRegistry } from "../../cache-policy/sim-cf
|
|
|
2
2
|
import type { SimCfCustomOriginDispatcher } from "../../origin/custom/sim-cf-custom-origin-dispatcher.js";
|
|
3
3
|
import type { SimCloudFrontS3OriginResolver } from "../../origin/s3/sim-cloudfront-s3-origin.js";
|
|
4
4
|
import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-access-control/sim-cf-origin-access-control-registry.js";
|
|
5
|
+
import type { SimCloudFrontOriginRequestPolicyRegistry } from "../../origin-request-policy/sim-cf-origin-request-policy-registry.js";
|
|
5
6
|
import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-headers-policy/sim-cf-response-headers-policy-registry.js";
|
|
6
7
|
import type { SimCfWebAclResolver } from "../../web-acl/sim-cf-web-acl.js";
|
|
7
8
|
import { SimCloudFrontDistributionConfigurator } from "./sim-cloud-front-distribution-configurator.js";
|
|
@@ -11,6 +12,7 @@ interface SimCloudFrontConfiguratorProperties {
|
|
|
11
12
|
readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
|
|
12
13
|
readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
|
|
13
14
|
readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
|
|
15
|
+
readonly originRequestPolicies: SimCloudFrontOriginRequestPolicyRegistry;
|
|
14
16
|
readonly webAclResolver?: SimCfWebAclResolver | undefined;
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SimCfDistributionWebAcl } from "../../web-acl/sim-cf-distribution-web-acl.js";
|
|
2
2
|
import { SimCfBehaviorCachePolicy } from "./sim-cf-behavior-cache-policy.js";
|
|
3
|
+
import { SimCfBehaviorOriginRequestPolicy } from "./sim-cf-behavior-origin-request-policy.js";
|
|
3
4
|
import { SimCfBehaviorPolicies } from "./sim-cf-behavior-policies.js";
|
|
4
5
|
import { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
|
|
5
6
|
import { SimCloudFrontBehaviorConfigurator } from "./sim-cloud-front-behavior-configurator.js";
|
|
@@ -12,6 +13,9 @@ import { SimCloudFrontOriginConfigurator } from "./sim-cloud-front-origin-config
|
|
|
12
13
|
* same set of configurators.
|
|
13
14
|
*/
|
|
14
15
|
export function makeSimCloudFrontDistributionConfigurator(properties) {
|
|
15
|
-
const behaviorPolicies = new SimCfBehaviorPolicies(new SimCfBehaviorResponseHeadersPolicy(properties.responseHeadersPolicies), new SimCfBehaviorCachePolicy(properties.cachePolicies));
|
|
16
|
-
return new SimCloudFrontDistributionConfigurator(new SimCloudFrontOriginConfigurator(properties.s3OriginResolver, properties.originAccessControls,
|
|
16
|
+
const behaviorPolicies = new SimCfBehaviorPolicies(new SimCfBehaviorResponseHeadersPolicy(properties.responseHeadersPolicies), new SimCfBehaviorCachePolicy(properties.cachePolicies), new SimCfBehaviorOriginRequestPolicy(properties.originRequestPolicies));
|
|
17
|
+
return new SimCloudFrontDistributionConfigurator(new SimCloudFrontOriginConfigurator(properties.s3OriginResolver, properties.originAccessControls, {
|
|
18
|
+
cachePolicies: properties.cachePolicies,
|
|
19
|
+
originRequestPolicies: properties.originRequestPolicies,
|
|
20
|
+
}, properties.customOriginDispatcher), new SimCloudFrontBehaviorConfigurator(behaviorPolicies), behaviorPolicies, new SimCfDistributionWebAcl(properties.webAclResolver));
|
|
17
21
|
}
|
|
@@ -4,15 +4,25 @@ import type { SimCloudFrontDistribution } from "../sim-cloudfront-distribution.j
|
|
|
4
4
|
* Applies custom error response configuration to a sim CloudFront
|
|
5
5
|
* Distribution.
|
|
6
6
|
*
|
|
7
|
-
* CloudFront pairs `ResponsePagePath` and `ResponseCode
|
|
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
|
|
10
|
-
*
|
|
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 declare class SimCloudFrontCustomErrorConfigurator {
|
|
13
13
|
/**
|
|
14
14
|
* Configure one custom error response on a Distribution.
|
|
15
15
|
*/
|
|
16
16
|
configure(distribution: SimCloudFrontDistribution, customErrorResponse: SimCloudFrontCustomErrorResponseConfig): void;
|
|
17
|
+
/**
|
|
18
|
+
* How long the rule holds its error for, which CloudFront defaults to ten
|
|
19
|
+
* seconds.
|
|
20
|
+
*
|
|
21
|
+
* A template can write a number as a string, and that one is read as the
|
|
22
|
+
* seconds it spells. Anything else falls back to the default. The
|
|
23
|
+
* alternative would be a stack that fails to deploy over the seconds an
|
|
24
|
+
* error is held for.
|
|
25
|
+
*/
|
|
26
|
+
private errorCachingMinTtlSec;
|
|
17
27
|
private responseCode;
|
|
18
28
|
}
|
|
@@ -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
|
|
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
|
|
10
|
-
*
|
|
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
|
-
|
|
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;
|
package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts
CHANGED
|
@@ -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
|
*/
|
package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js
CHANGED
|
@@ -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;
|
|
@@ -3,6 +3,7 @@ import type { SimCloudFrontCachePolicyRegistry } from "../cache-policy/sim-cf-ca
|
|
|
3
3
|
import type { SimCfCustomOriginDispatcher } from "../origin/custom/sim-cf-custom-origin-dispatcher.js";
|
|
4
4
|
import type { SimCloudFrontS3OriginResolver } from "../origin/s3/sim-cloudfront-s3-origin.js";
|
|
5
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";
|
|
6
7
|
import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../response-headers-policy/sim-cf-response-headers-policy-registry.js";
|
|
7
8
|
import type { SimCfWebAclResolver } from "../web-acl/sim-cf-web-acl.js";
|
|
8
9
|
import type { SimCfEdgeFunctions } from "../edge/sim-cf-edge-functions.js";
|
|
@@ -12,9 +13,9 @@ import type { SimCfEdgeFunctions } from "../edge/sim-cf-edge-functions.js";
|
|
|
12
13
|
*
|
|
13
14
|
* A DistributionConfig is mostly references: a Bucket or a hostname per
|
|
14
15
|
* Origin, a certificate, an origin access control, a response headers policy,
|
|
15
|
-
* a cache policy, a web ACL, a Lambda@Edge function
|
|
16
|
-
* CloudFront, and creation and update resolve
|
|
17
|
-
* 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.
|
|
18
19
|
*/
|
|
19
20
|
export interface SimCfDistributionConfigurationState {
|
|
20
21
|
readonly s3OriginResolver: SimCloudFrontS3OriginResolver;
|
|
@@ -23,6 +24,7 @@ export interface SimCfDistributionConfigurationState {
|
|
|
23
24
|
readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
|
|
24
25
|
readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
|
|
25
26
|
readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
|
|
27
|
+
readonly originRequestPolicies: SimCloudFrontOriginRequestPolicyRegistry;
|
|
26
28
|
readonly webAclResolver: SimCfWebAclResolver | undefined;
|
|
27
29
|
readonly edgeFunctions: SimCfEdgeFunctions | undefined;
|
|
28
30
|
}
|
|
@@ -3,6 +3,7 @@ import type { SimCloudFrontCachePolicyRegistry } from "../cache-policy/sim-cf-ca
|
|
|
3
3
|
import type { SimCfCustomOriginDispatcher } from "../origin/custom/sim-cf-custom-origin-dispatcher.js";
|
|
4
4
|
import type { SimCloudFrontS3OriginResolver } from "../origin/s3/sim-cloudfront-s3-origin.js";
|
|
5
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";
|
|
6
7
|
import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../response-headers-policy/sim-cf-response-headers-policy-registry.js";
|
|
7
8
|
import type { SimCloudFrontRegistry } from "../registry/sim-cloud-front-registry.js";
|
|
8
9
|
import type { SimCfWebAclResolver } from "../web-acl/sim-cf-web-acl.js";
|
|
@@ -14,6 +15,7 @@ interface SimCloudFrontDistributionReconfigurerProperties {
|
|
|
14
15
|
readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
|
|
15
16
|
readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
|
|
16
17
|
readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
|
|
18
|
+
readonly originRequestPolicies: SimCloudFrontOriginRequestPolicyRegistry;
|
|
17
19
|
readonly webAclResolver?: SimCfWebAclResolver | undefined;
|
|
18
20
|
}
|
|
19
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:
|
|
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
|
|
18
|
-
* standalone, outside a SimAws instance,
|
|
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
|
+
}
|
|
@@ -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;
|