@kensio/yulin 1.10.2 → 1.10.3
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/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.d.ts +8 -17
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.d.ts.map +1 -1
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.js +24 -102
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.js.map +1 -1
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-cors-config.d.ts +13 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-cors-config.d.ts.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-cors-config.js +76 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-cors-config.js.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-custom-headers.d.ts +17 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-custom-headers.d.ts.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-custom-headers.js +45 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-custom-headers.js.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-field-reader.d.ts +37 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-field-reader.d.ts.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-field-reader.js +75 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-field-reader.js.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-headers.d.ts +11 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-headers.d.ts.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-headers.js +30 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-headers.js.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-values.d.ts +19 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-values.d.ts.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-values.js +72 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-security-values.js.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-server-timing.d.ts +13 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-server-timing.d.ts.map +1 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-server-timing.js +24 -0
- package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-server-timing.js.map +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts.map +1 -1
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.js.map +1 -1
- package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.d.ts +1 -1
- package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.d.ts.map +1 -1
- package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js +2 -2
- package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js.map +1 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts +1 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts.map +1 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.js +8 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.js.map +1 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-error-response.d.ts +22 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-error-response.d.ts.map +1 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-error-response.js +31 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-error-response.js.map +1 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts.map +1 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +1 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +9 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts.map +1 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +34 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js.map +1 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +29 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts.map +1 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +51 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js.map +1 -0
- 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.d.ts.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +3 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +7 -32
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +14 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +16 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js.map +1 -1
- package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +7 -3
- package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts.map +1 -1
- package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.js +6 -3
- package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.js.map +1 -1
- package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +11 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
- package/dist/service/cloudfront/error/sim-cloudfront.error.js +13 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
- package/dist/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.d.ts +27 -0
- package/dist/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.d.ts.map +1 -0
- package/dist/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.js +70 -0
- package/dist/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.js.map +1 -0
- package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts +44 -0
- package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts.map +1 -0
- package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js +111 -0
- package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js.map +1 -0
- package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts +10 -2
- package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts.map +1 -1
- package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js +14 -2
- package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +3 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront-commands.js +3 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.js.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront.js +1 -0
- package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
- package/dist/service/rekognition/label/sim-rekognition-label-declaration.d.ts +1 -1
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.d.ts +2 -2
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.js +3 -3
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.js.map +1 -1
- package/dist/service/rekognition/sim-rekognition.d.ts +4 -4
- package/dist/service/rekognition/sim-rekognition.js +4 -4
- package/dist/service/sns/signature/sim-sns-certificate.d.ts +9 -3
- package/dist/service/sns/signature/sim-sns-certificate.d.ts.map +1 -1
- package/dist/service/sns/signature/sim-sns-certificate.js +13 -8
- package/dist/service/sns/signature/sim-sns-certificate.js.map +1 -1
- package/dist/service/sns/signature/sim-sns-der.d.ts +16 -0
- package/dist/service/sns/signature/sim-sns-der.d.ts.map +1 -1
- package/dist/service/sns/signature/sim-sns-der.js +23 -0
- package/dist/service/sns/signature/sim-sns-der.js.map +1 -1
- package/package.json +1 -1
package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { SimCloudFrontCacheBehaviorConfig, SimCloudFrontDefaultCacheBehaviorConfig } from "../../command/create-distribution/create-distribution.command.js";
|
|
2
2
|
import type { SimCloudFrontDistribution } from "../sim-cloudfront-distribution.js";
|
|
3
|
+
import type { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
|
|
3
4
|
/**
|
|
4
5
|
* Applies Cache Behavior configuration to a sim CloudFront Distribution.
|
|
5
6
|
*/
|
|
6
7
|
export declare class SimCloudFrontBehaviorConfigurator {
|
|
8
|
+
private readonly responseHeadersPolicy;
|
|
9
|
+
constructor(responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy);
|
|
7
10
|
/**
|
|
8
11
|
* Configure the default Cache Behavior on a Distribution.
|
|
9
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cloud-front-behavior-configurator.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gCAAgC,EAChC,uCAAuC,
|
|
1
|
+
{"version":3,"file":"sim-cloud-front-behavior-configurator.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gCAAgC,EAChC,uCAAuC,EACxC,MAAM,kEAAkE,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAEvG;;GAEG;AACH,qBAAa,iCAAiC;IAE1C,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IADxC,YACmB,qBAAqB,EAAE,kCAAkC,EACxE;IAEJ;;OAEG;IACH,6BAA6B,CAC3B,YAAY,EAAE,yBAAyB,EACvC,aAAa,EAAE,uCAAuC,GAAG,SAAS,GACjE,IAAI,CAKN;IAED;;OAEG;IACH,sBAAsB,CACpB,YAAY,EAAE,yBAAyB,EACvC,aAAa,EAAE,gCAAgC,GAC9C,IAAI,CASN;CACF"}
|
package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
-
import {
|
|
2
|
+
import { simCfBehaviorProperties } from "./sim-cf-behavior-properties.js";
|
|
3
3
|
/**
|
|
4
4
|
* Applies Cache Behavior configuration to a sim CloudFront Distribution.
|
|
5
5
|
*/
|
|
6
6
|
export class SimCloudFrontBehaviorConfigurator {
|
|
7
|
+
responseHeadersPolicy;
|
|
8
|
+
constructor(responseHeadersPolicy) {
|
|
9
|
+
this.responseHeadersPolicy = responseHeadersPolicy;
|
|
10
|
+
}
|
|
7
11
|
/**
|
|
8
12
|
* Configure the default Cache Behavior on a Distribution.
|
|
9
13
|
*/
|
|
10
14
|
configureDefaultCacheBehavior(distribution, cacheBehavior) {
|
|
11
15
|
assertDefined(cacheBehavior, "CloudFront DefaultCacheBehavior");
|
|
12
|
-
distribution.addBehavior(
|
|
16
|
+
distribution.addBehavior(simCfBehaviorProperties(cacheBehavior, this.responseHeadersPolicy));
|
|
13
17
|
}
|
|
14
18
|
/**
|
|
15
19
|
* Configure a Cache Behavior on a Distribution.
|
|
@@ -18,37 +22,8 @@ export class SimCloudFrontBehaviorConfigurator {
|
|
|
18
22
|
assertDefined(cacheBehavior.PathPattern, "CloudFront CacheBehavior PathPattern");
|
|
19
23
|
distribution.addBehavior({
|
|
20
24
|
pathPattern: cacheBehavior.PathPattern,
|
|
21
|
-
...
|
|
25
|
+
...simCfBehaviorProperties(cacheBehavior, this.responseHeadersPolicy),
|
|
22
26
|
});
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
|
-
/**
|
|
26
|
-
* Build the shared Behavior properties common to both default and named Cache
|
|
27
|
-
* Behaviors. Callers add their own fields (e.g. pathPattern) on top.
|
|
28
|
-
*/
|
|
29
|
-
function buildBaseBehaviorProperties(cacheBehavior) {
|
|
30
|
-
assertDefined(cacheBehavior.TargetOriginId, "CloudFront CacheBehavior TargetOriginId");
|
|
31
|
-
return {
|
|
32
|
-
targetOriginName: cacheBehavior.TargetOriginId,
|
|
33
|
-
allowedMethods: methodsSet(cacheBehavior.AllowedMethods, ["GET", "HEAD"]),
|
|
34
|
-
cachedMethods: methodsSet(cacheBehavior.AllowedMethods?.CachedMethods, [
|
|
35
|
-
"GET",
|
|
36
|
-
"HEAD",
|
|
37
|
-
]),
|
|
38
|
-
...(cacheBehavior.ViewerProtocolPolicy !== undefined && {
|
|
39
|
-
viewerProtocolPolicy: cacheBehavior.ViewerProtocolPolicy,
|
|
40
|
-
}),
|
|
41
|
-
...(cacheBehavior.ResponseHeadersPolicyId !== undefined && {
|
|
42
|
-
responseHeadersPolicyId: cacheBehavior.ResponseHeadersPolicyId,
|
|
43
|
-
}),
|
|
44
|
-
functionAssociations: configureCffAssociations(cacheBehavior),
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Build a Set of HTTP methods from a method list config, falling back to the
|
|
49
|
-
* provided defaults when no items are configured.
|
|
50
|
-
*/
|
|
51
|
-
function methodsSet(methods, fallback) {
|
|
52
|
-
return new Set(methods?.Items ?? fallback);
|
|
53
|
-
}
|
|
54
29
|
//# sourceMappingURL=sim-cloud-front-behavior-configurator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cloud-front-behavior-configurator.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-cloud-front-behavior-configurator.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E;;GAEG;AACH,MAAM,OAAO,iCAAiC;IAEzB,qBAAqB;IADxC,YACmB,qBAAyD;qCAAzD,qBAAqB;IACrC,CAAC;IAEJ;;OAEG;IACH,6BAA6B,CAC3B,YAAuC,EACvC,aAAkE;QAElE,aAAa,CAAC,aAAa,EAAE,iCAAiC,CAAC,CAAC;QAChE,YAAY,CAAC,WAAW,CACtB,uBAAuB,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,CACnE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB,CACpB,YAAuC,EACvC,aAA+C;QAE/C,aAAa,CACX,aAAa,CAAC,WAAW,EACzB,sCAAsC,CACvC,CAAC;QACF,YAAY,CAAC,WAAW,CAAC;YACvB,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,GAAG,uBAAuB,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -2,6 +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
6
|
/**
|
|
6
7
|
* Applies top-level Distribution configuration to a sim CloudFront Distribution.
|
|
7
8
|
*
|
|
@@ -18,8 +19,20 @@ import type { SimCloudFrontBehaviorConfigurator } from "./sim-cloud-front-behavi
|
|
|
18
19
|
export declare class SimCloudFrontDistributionConfigurator {
|
|
19
20
|
private readonly originConfigurator;
|
|
20
21
|
private readonly behaviorConfigurator;
|
|
22
|
+
private readonly responseHeadersPolicy;
|
|
21
23
|
private readonly customErrorConfigurator;
|
|
22
|
-
constructor(originConfigurator: SimCloudFrontOriginConfigurator, behaviorConfigurator: SimCloudFrontBehaviorConfigurator);
|
|
24
|
+
constructor(originConfigurator: SimCloudFrontOriginConfigurator, behaviorConfigurator: SimCloudFrontBehaviorConfigurator, responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy);
|
|
25
|
+
/**
|
|
26
|
+
* Refuse a DistributionConfig this simulation cannot apply, before anything
|
|
27
|
+
* is applied.
|
|
28
|
+
*
|
|
29
|
+
* Only what a Behavior names outside itself is checked here, because that is
|
|
30
|
+
* what an update can find missing after the Distribution was already built
|
|
31
|
+
* against it. Everything else the configurators refuse is a property of the
|
|
32
|
+
* config itself, which `configure` reaches before it has changed anything
|
|
33
|
+
* worth undoing.
|
|
34
|
+
*/
|
|
35
|
+
assertConfigurable(distributionConfig: SimCloudFrontDistributionConfig): void;
|
|
23
36
|
/**
|
|
24
37
|
* Configure a Distribution from its DistributionConfig.
|
|
25
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cloud-front-distribution-configurator.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kEAAkE,CAAC;AACxH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-cloud-front-distribution-configurator.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kEAAkE,CAAC;AACxH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAIvG;;;;;;;;;;;;GAYG;AACH,qBAAa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IANxC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CACK;IAE7C,YACmB,kBAAkB,EAAE,+BAA+B,EACnD,oBAAoB,EAAE,iCAAiC,EACvD,qBAAqB,EAAE,kCAAkC,EACxE;IAEJ;;;;;;;;;OASG;IACH,kBAAkB,CAChB,kBAAkB,EAAE,+BAA+B,GAClD,IAAI,CAEN;IAED;;OAEG;IACH,SAAS,CACP,YAAY,EAAE,yBAAyB,EACvC,kBAAkB,EAAE,+BAA+B,GAClD,IAAI,CAiCN;IAED;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CAe1B"}
|
|
@@ -16,10 +16,25 @@ import { SimCloudFrontInvalidDefaultRootObject } from "../../error/sim-cloudfron
|
|
|
16
16
|
export class SimCloudFrontDistributionConfigurator {
|
|
17
17
|
originConfigurator;
|
|
18
18
|
behaviorConfigurator;
|
|
19
|
+
responseHeadersPolicy;
|
|
19
20
|
customErrorConfigurator = new SimCloudFrontCustomErrorConfigurator();
|
|
20
|
-
constructor(originConfigurator, behaviorConfigurator) {
|
|
21
|
+
constructor(originConfigurator, behaviorConfigurator, responseHeadersPolicy) {
|
|
21
22
|
this.originConfigurator = originConfigurator;
|
|
22
23
|
this.behaviorConfigurator = behaviorConfigurator;
|
|
24
|
+
this.responseHeadersPolicy = responseHeadersPolicy;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Refuse a DistributionConfig this simulation cannot apply, before anything
|
|
28
|
+
* is applied.
|
|
29
|
+
*
|
|
30
|
+
* Only what a Behavior names outside itself is checked here, because that is
|
|
31
|
+
* what an update can find missing after the Distribution was already built
|
|
32
|
+
* against it. Everything else the configurators refuse is a property of the
|
|
33
|
+
* config itself, which `configure` reaches before it has changed anything
|
|
34
|
+
* worth undoing.
|
|
35
|
+
*/
|
|
36
|
+
assertConfigurable(distributionConfig) {
|
|
37
|
+
this.responseHeadersPolicy.assertAllExist(distributionConfig);
|
|
23
38
|
}
|
|
24
39
|
/**
|
|
25
40
|
* Configure a Distribution from its DistributionConfig.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cloud-front-distribution-configurator.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-cloud-front-distribution-configurator.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,qCAAqC,EAAE,MAAM,qCAAqC,CAAC;AAE5F;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,qCAAqC;IAK7B,kBAAkB;IAClB,oBAAoB;IACpB,qBAAqB;IANvB,uBAAuB,GACtC,IAAI,oCAAoC,EAAE,CAAC;IAE7C,YACmB,kBAAmD,EACnD,oBAAuD,EACvD,qBAAyD;kCAFzD,kBAAkB;oCAClB,oBAAoB;qCACpB,qBAAqB;IACrC,CAAC;IAEJ;;;;;;;;;OASG;IACH,kBAAkB,CAChB,kBAAmD;QAEnD,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,SAAS,CACP,YAAuC,EACvC,kBAAmD;QAEnD,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QAC3D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QAC5D,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CACrD,YAAY,EACZ,kBAAkB,CAAC,oBAAoB,CACxC,CAAC;QAEF,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC;QAC1E,KAAK,MAAM,aAAa,IAAI,kBAAkB,EAAE,CAAC;YAC/C,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAC9C,YAAY,EACZ,aAAa,CACd,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CACrD,kBAAkB,CAAC,iBAAiB,CACrC,CAAC;QAEF,MAAM,gBAAgB,GACpB,kBAAkB,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE,CAAC;QACvD,KAAK,MAAM,mBAAmB,IAAI,gBAAgB,EAAE,CAAC;YACnD,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CACvB,iBAAqC;QAErC,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,EAAE,EAAE,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,qCAAqC,CAC7C,gCAAgC,iBAAiB,sCAAsC,CACxF,CAAC;QACJ,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -2,6 +2,7 @@ import type { SimCloudFrontDistributionConfig } from "../command/create-distribu
|
|
|
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 { SimCloudFrontResponseHeadersPolicyRegistry } from "../response-headers-policy/sim-cf-response-headers-policy-registry.js";
|
|
5
6
|
import type { SimCloudFrontRegistry } from "../registry/sim-cloud-front-registry.js";
|
|
6
7
|
import type { SimCloudFrontDistribution } from "./sim-cloudfront-distribution.js";
|
|
7
8
|
interface SimCloudFrontDistributionReconfigurerProperties {
|
|
@@ -9,6 +10,7 @@ interface SimCloudFrontDistributionReconfigurerProperties {
|
|
|
9
10
|
readonly s3OriginResolver: SimCloudFrontS3OriginResolver;
|
|
10
11
|
readonly customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined;
|
|
11
12
|
readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
|
|
13
|
+
readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
|
|
12
14
|
}
|
|
13
15
|
/**
|
|
14
16
|
* Applies a replacement DistributionConfig to a Distribution already in place.
|
|
@@ -27,9 +29,11 @@ export declare class SimCloudFrontDistributionReconfigurer {
|
|
|
27
29
|
* domain names the Distribution answers on so a name the update drops is
|
|
28
30
|
* free for another Distribution.
|
|
29
31
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
32
|
+
* Everything an update can be refused for that is not a property of the
|
|
33
|
+
* config itself — a name another Distribution already holds, a response
|
|
34
|
+
* headers policy no longer there — is checked before anything is changed, so
|
|
35
|
+
* a rejected update leaves the Distribution as it was rather than half
|
|
36
|
+
* replaced.
|
|
33
37
|
*/
|
|
34
38
|
reconfigure(distribution: SimCloudFrontDistribution, distributionConfig: SimCloudFrontDistributionConfig): void;
|
|
35
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cf-distribution-reconfigurer.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+DAA+D,CAAC;AACrH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qDAAqD,CAAC;AACvG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,mEAAmE,CAAC;AAClI,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAGrF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,UAAU,+CAA+C;IACvD,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IACzD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAC1E,QAAQ,CAAC,oBAAoB,EAAE,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-cf-distribution-reconfigurer.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+DAA+D,CAAC;AACrH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qDAAqD,CAAC;AACvG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,mEAAmE,CAAC;AAClI,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,uEAAuE,CAAC;AACxI,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAGrF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,UAAU,+CAA+C;IACvD,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IACzD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAC1E,QAAQ,CAAC,oBAAoB,EAAE,wCAAwC,CAAC;IACxE,QAAQ,CAAC,uBAAuB,EAAE,0CAA0C,CAAC;CAC9E;AAED;;;;;;;GAOG;AACH,qBAAa,qCAAqC;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IAErE,YAAY,UAAU,EAAE,+CAA+C,EAGtE;IAED;;;;;;;;;;OAUG;IACH,WAAW,CACT,YAAY,EAAE,yBAAyB,EACvC,kBAAkB,EAAE,+BAA+B,GAClD,IAAI,CAoBN;CACF"}
|
|
@@ -19,13 +19,16 @@ export class SimCloudFrontDistributionReconfigurer {
|
|
|
19
19
|
* domain names the Distribution answers on so a name the update drops is
|
|
20
20
|
* free for another Distribution.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* Everything an update can be refused for that is not a property of the
|
|
23
|
+
* config itself — a name another Distribution already holds, a response
|
|
24
|
+
* headers policy no longer there — is checked before anything is changed, so
|
|
25
|
+
* a rejected update leaves the Distribution as it was rather than half
|
|
26
|
+
* replaced.
|
|
25
27
|
*/
|
|
26
28
|
reconfigure(distribution, distributionConfig) {
|
|
27
29
|
const { distributionId } = distribution;
|
|
28
30
|
this.cloudFrontRegistry.assertAlternateDomainNamesAvailable(distributionConfig.Aliases?.Items ?? [], distributionId);
|
|
31
|
+
this.configurator.assertConfigurable(distributionConfig);
|
|
29
32
|
this.cloudFrontRegistry.deregisterAlternateDomainNames(distributionId);
|
|
30
33
|
distribution.replaceConfiguration(distributionConfig);
|
|
31
34
|
this.configurator.configure(distribution, distributionConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cf-distribution-reconfigurer.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-cf-distribution-reconfigurer.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yCAAyC,EAAE,MAAM,4DAA4D,CAAC;AAYvH;;;;;;;GAOG;AACH,MAAM,OAAO,qCAAqC;IAC/B,kBAAkB,CAAwB;IAC1C,YAAY,CAAwC;IAErE,YAAY,UAA2D;QACrE,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,yCAAyC,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;OAUG;IACH,WAAW,CACT,YAAuC,EACvC,kBAAmD;QAEnD,MAAM,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;QAExC,IAAI,CAAC,kBAAkB,CAAC,mCAAmC,CACzD,kBAAkB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,EACvC,cAAc,CACf,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;QAEzD,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,cAAc,CAAC,CAAC;QAEvE,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAE9D,KAAK,MAAM,mBAAmB,IAAI,YAAY,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACzE,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CACjD,mBAAmB,EACnB,cAAc,CACf,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -80,6 +80,17 @@ export declare class SimCloudFrontNoSuchResponseHeadersPolicy extends SimCloudFr
|
|
|
80
80
|
readonly name = "NoSuchResponseHeadersPolicy";
|
|
81
81
|
constructor(message: string);
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Simulated CloudFront InvalidResponseHeadersPolicyId error.
|
|
85
|
+
*
|
|
86
|
+
* What CloudFront answers when a Behavior's `ResponseHeadersPolicyId` names no
|
|
87
|
+
* response headers policy the account holds, at Distribution create or update
|
|
88
|
+
* time rather than when a request first needs the policy.
|
|
89
|
+
*/
|
|
90
|
+
export declare class SimCloudFrontInvalidResponseHeadersPolicyId extends SimCloudFrontError {
|
|
91
|
+
readonly name = "InvalidResponseHeadersPolicyId";
|
|
92
|
+
constructor(message: string);
|
|
93
|
+
}
|
|
83
94
|
/**
|
|
84
95
|
* Simulated CloudFront ResponseHeadersPolicyAlreadyExists error.
|
|
85
96
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cloudfront.error.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/error/sim-cloudfront.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,SAAS,EAAE,0BAA0B;IAFvD,YACE,OAAO,EAAE,MAAM,EACC,SAAS,GAAE,0BAA+B,EAG3D;CACF;AAED;;;;;;GAMG;AACH,qBAAa,qCAAsC,SAAQ,kBAAkB;IAC3E,SAAyB,IAAI,8BAA8B;IAE3D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,qCAAsC,SAAQ,kBAAkB;IAC3E,SAAyB,IAAI,8BAA8B;IAE3D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,kBAAkB;IACnE,SAAyB,IAAI,sBAAsB;IAEnD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,kBAAkB;IACtE,SAAyB,IAAI,yBAAyB;IAEtD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE,SAAyB,IAAI,qBAAqB;IAElD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;GAIG;AACH,qBAAa,+BAAgC,SAAQ,kBAAkB;IACrE,SAAyB,IAAI,wBAAwB;IAErD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;GAIG;AACH,qBAAa,iCAAkC,SAAQ,kBAAkB;IACvE,SAAyB,IAAI,0BAA0B;IAEvD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;GAIG;AACH,qBAAa,wCAAyC,SAAQ,kBAAkB;IAC9E,SAAyB,IAAI,iCAAiC;IAE9D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,+CAAgD,SAAQ,kBAAkB;IACrF,SAAyB,IAAI,wCAAwC;IAErE,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,uCAAwC,SAAQ,kBAAkB;IAC7E,SAAyB,IAAI,gCAAgC;IAE7D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,6CAA8C,SAAQ,kBAAkB;IACnF,SAAyB,IAAI,sCAAsC;IAEnE,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,oCAAqC,SAAQ,kBAAkB;IAC1E,SAAyB,IAAI,6BAA6B;IAE1D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF"}
|
|
1
|
+
{"version":3,"file":"sim-cloudfront.error.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/error/sim-cloudfront.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,SAAS,EAAE,0BAA0B;IAFvD,YACE,OAAO,EAAE,MAAM,EACC,SAAS,GAAE,0BAA+B,EAG3D;CACF;AAED;;;;;;GAMG;AACH,qBAAa,qCAAsC,SAAQ,kBAAkB;IAC3E,SAAyB,IAAI,8BAA8B;IAE3D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,qCAAsC,SAAQ,kBAAkB;IAC3E,SAAyB,IAAI,8BAA8B;IAE3D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,kBAAkB;IACnE,SAAyB,IAAI,sBAAsB;IAEnD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,kBAAkB;IACtE,SAAyB,IAAI,yBAAyB;IAEtD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE,SAAyB,IAAI,qBAAqB;IAElD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;GAIG;AACH,qBAAa,+BAAgC,SAAQ,kBAAkB;IACrE,SAAyB,IAAI,wBAAwB;IAErD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;GAIG;AACH,qBAAa,iCAAkC,SAAQ,kBAAkB;IACvE,SAAyB,IAAI,0BAA0B;IAEvD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;GAIG;AACH,qBAAa,wCAAyC,SAAQ,kBAAkB;IAC9E,SAAyB,IAAI,iCAAiC;IAE9D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;;GAMG;AACH,qBAAa,2CAA4C,SAAQ,kBAAkB;IACjF,SAAyB,IAAI,oCAAoC;IAEjE,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,+CAAgD,SAAQ,kBAAkB;IACrF,SAAyB,IAAI,wCAAwC;IAErE,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,uCAAwC,SAAQ,kBAAkB;IAC7E,SAAyB,IAAI,gCAAgC;IAE7D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,6CAA8C,SAAQ,kBAAkB;IACnF,SAAyB,IAAI,sCAAsC;IAEnE,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,oCAAqC,SAAQ,kBAAkB;IAC1E,SAAyB,IAAI,6BAA6B;IAE1D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF"}
|
|
@@ -93,6 +93,19 @@ export class SimCloudFrontNoSuchResponseHeadersPolicy extends SimCloudFrontError
|
|
|
93
93
|
super(message, { httpStatusCode: 404 });
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Simulated CloudFront InvalidResponseHeadersPolicyId error.
|
|
98
|
+
*
|
|
99
|
+
* What CloudFront answers when a Behavior's `ResponseHeadersPolicyId` names no
|
|
100
|
+
* response headers policy the account holds, at Distribution create or update
|
|
101
|
+
* time rather than when a request first needs the policy.
|
|
102
|
+
*/
|
|
103
|
+
export class SimCloudFrontInvalidResponseHeadersPolicyId extends SimCloudFrontError {
|
|
104
|
+
name = "InvalidResponseHeadersPolicyId";
|
|
105
|
+
constructor(message) {
|
|
106
|
+
super(message, { httpStatusCode: 400 });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
96
109
|
/**
|
|
97
110
|
* Simulated CloudFront ResponseHeadersPolicyAlreadyExists error.
|
|
98
111
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cloudfront.error.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/error/sim-cloudfront.error.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sim-cloudfront.error.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/error/sim-cloudfront.error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One entry of a CORS policy's `AccessControlAllowOrigins` list.
|
|
3
|
+
*
|
|
4
|
+
* CloudFront allows the wildcard on its own, meaning every Origin, and as the
|
|
5
|
+
* leftmost subdomain of a host, meaning any one subdomain of it. It allows the
|
|
6
|
+
* wildcard nowhere else: not as a top-level domain (`example.*`), to the right
|
|
7
|
+
* of a subdomain (`test.*.example.org`), within one (`*test.example.org`), or
|
|
8
|
+
* inside a term (`exa*mple.org`).
|
|
9
|
+
*
|
|
10
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-response-headers-policies.html
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Whether an allow-list entry places its wildcard where CloudFront allows one.
|
|
14
|
+
*
|
|
15
|
+
* An entry with no wildcard is always well formed, and so is the bare wildcard.
|
|
16
|
+
*/
|
|
17
|
+
export declare function simCfCorsOriginPatternIsValid(pattern: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Whether one allow-list entry matches the `Origin` a request carried.
|
|
20
|
+
*
|
|
21
|
+
* A wildcard entry stands for exactly one label, as a wildcard certificate
|
|
22
|
+
* does, so `*.example.org` matches `https://site.example.org` and does not
|
|
23
|
+
* match `https://deep.site.example.org`. An entry naming no scheme matches the
|
|
24
|
+
* host whichever scheme the request used.
|
|
25
|
+
*/
|
|
26
|
+
export declare function simCfCorsOriginPatternMatches(pattern: string, requestOrigin: string): boolean;
|
|
27
|
+
//# sourceMappingURL=sim-cf-cors-origin-pattern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cf-cors-origin-pattern.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQtE;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAoBT"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One entry of a CORS policy's `AccessControlAllowOrigins` list.
|
|
3
|
+
*
|
|
4
|
+
* CloudFront allows the wildcard on its own, meaning every Origin, and as the
|
|
5
|
+
* leftmost subdomain of a host, meaning any one subdomain of it. It allows the
|
|
6
|
+
* wildcard nowhere else: not as a top-level domain (`example.*`), to the right
|
|
7
|
+
* of a subdomain (`test.*.example.org`), within one (`*test.example.org`), or
|
|
8
|
+
* inside a term (`exa*mple.org`).
|
|
9
|
+
*
|
|
10
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-response-headers-policies.html
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Whether an allow-list entry places its wildcard where CloudFront allows one.
|
|
14
|
+
*
|
|
15
|
+
* An entry with no wildcard is always well formed, and so is the bare wildcard.
|
|
16
|
+
*/
|
|
17
|
+
export function simCfCorsOriginPatternIsValid(pattern) {
|
|
18
|
+
if (!pattern.includes("*") || pattern === "*") {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
const { host } = splitOrigin(pattern);
|
|
22
|
+
return host.startsWith("*.") && !host.slice(2).includes("*");
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Whether one allow-list entry matches the `Origin` a request carried.
|
|
26
|
+
*
|
|
27
|
+
* A wildcard entry stands for exactly one label, as a wildcard certificate
|
|
28
|
+
* does, so `*.example.org` matches `https://site.example.org` and does not
|
|
29
|
+
* match `https://deep.site.example.org`. An entry naming no scheme matches the
|
|
30
|
+
* host whichever scheme the request used.
|
|
31
|
+
*/
|
|
32
|
+
export function simCfCorsOriginPatternMatches(pattern, requestOrigin) {
|
|
33
|
+
if (pattern === requestOrigin) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
if (!pattern.includes("*")) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
const patternOrigin = splitOrigin(pattern);
|
|
40
|
+
const origin = splitOrigin(requestOrigin);
|
|
41
|
+
if (patternOrigin.scheme !== undefined &&
|
|
42
|
+
patternOrigin.scheme !== origin.scheme) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return hostMatches(patternOrigin.host, origin.host);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Whether a `*.example.org` host pattern covers the host of a request Origin.
|
|
49
|
+
*/
|
|
50
|
+
function hostMatches(patternHost, host) {
|
|
51
|
+
if (!patternHost.startsWith("*.")) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const suffix = patternHost.slice(1);
|
|
55
|
+
if (!host.endsWith(suffix)) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
const label = host.slice(0, -suffix.length);
|
|
59
|
+
return label.length > 0 && !label.includes(".");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* An Origin split into the scheme it names, if any, and the rest of it.
|
|
63
|
+
*/
|
|
64
|
+
function splitOrigin(origin) {
|
|
65
|
+
const separator = origin.indexOf("://");
|
|
66
|
+
return separator === -1
|
|
67
|
+
? { scheme: undefined, host: origin }
|
|
68
|
+
: { scheme: origin.slice(0, separator), host: origin.slice(separator + 3) };
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=sim-cf-cors-origin-pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cf-cors-origin-pattern.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-cors-origin-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAe;IAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAe,EACf,aAAqB;IAErB,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAE1C,IACE,aAAa,CAAC,MAAM,KAAK,SAAS;QAClC,aAAa,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EACtC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,WAAmB,EAAE,IAAY;IACpD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,SAAS,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;QACrC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC"}
|
package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
interface SimCloudFrontResponseHeadersPolicyCorsProperties {
|
|
2
|
+
readonly allowCredentials: boolean;
|
|
3
|
+
readonly allowHeaders: readonly string[];
|
|
4
|
+
readonly allowMethods: readonly string[];
|
|
5
|
+
readonly allowOrigins: readonly string[];
|
|
6
|
+
readonly exposeHeaders?: readonly string[];
|
|
7
|
+
readonly maxAgeSec?: number;
|
|
8
|
+
readonly originOverride: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The CORS section of a response headers policy.
|
|
12
|
+
*
|
|
13
|
+
* CloudFront reflects the viewer request's `Origin` header against the
|
|
14
|
+
* configured allow list rather than sending the list itself, so the headers
|
|
15
|
+
* this adds depend on the request they answer: a request naming an Origin
|
|
16
|
+
* the list does not allow gets none of them, the same as CloudFront sending
|
|
17
|
+
* none rather than a mismatched one.
|
|
18
|
+
*
|
|
19
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-response-headers-policies.html#understanding-response-headers-policies-cors
|
|
20
|
+
*/
|
|
21
|
+
export declare class SimCloudFrontResponseHeadersPolicyCors {
|
|
22
|
+
private readonly allowCredentials;
|
|
23
|
+
private readonly allowHeaders;
|
|
24
|
+
private readonly allowMethods;
|
|
25
|
+
private readonly allowOrigins;
|
|
26
|
+
private readonly exposeHeaders;
|
|
27
|
+
private readonly maxAgeSec;
|
|
28
|
+
private readonly originOverride;
|
|
29
|
+
constructor(properties: SimCloudFrontResponseHeadersPolicyCorsProperties);
|
|
30
|
+
/**
|
|
31
|
+
* Set this policy's CORS headers on a response, for the `Origin` header a
|
|
32
|
+
* viewer request carried.
|
|
33
|
+
*
|
|
34
|
+
* `OriginOverride` decides the whole section rather than one header at a
|
|
35
|
+
* time, unlike a custom or security header: without it, an Origin response
|
|
36
|
+
* carrying any CORS header at all keeps every header this section would have
|
|
37
|
+
* set off the response, whether or not the policy names that header.
|
|
38
|
+
*/
|
|
39
|
+
apply(headers: Headers, requestOrigin: string | null): void;
|
|
40
|
+
private resolveAllowOrigin;
|
|
41
|
+
private resolvedAllowMethods;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=sim-cf-response-headers-policy-cors.d.ts.map
|
package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cf-response-headers-policy-cors.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.ts"],"names":[],"mappings":"AA4BA,UAAU,gDAAgD;IACxD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,sCAAsC;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IAEzC,YAAY,UAAU,EAAE,gDAAgD,EAQvE;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CA8C1D;IAED,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,oBAAoB;CAK7B"}
|
package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { simCfCorsOriginPatternMatches } from "./sim-cf-cors-origin-pattern.js";
|
|
2
|
+
const allAccessControlMethods = [
|
|
3
|
+
"GET",
|
|
4
|
+
"DELETE",
|
|
5
|
+
"HEAD",
|
|
6
|
+
"OPTIONS",
|
|
7
|
+
"PATCH",
|
|
8
|
+
"POST",
|
|
9
|
+
"PUT",
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* The response headers a CORS section decides, whether or not it sets each.
|
|
13
|
+
*
|
|
14
|
+
* Without `OriginOverride`, an Origin response carrying any one of these keeps
|
|
15
|
+
* the whole section off, so the set matters rather than just the ones the
|
|
16
|
+
* policy would have added.
|
|
17
|
+
*/
|
|
18
|
+
const corsResponseHeaders = [
|
|
19
|
+
"Access-Control-Allow-Origin",
|
|
20
|
+
"Access-Control-Allow-Methods",
|
|
21
|
+
"Access-Control-Allow-Headers",
|
|
22
|
+
"Access-Control-Allow-Credentials",
|
|
23
|
+
"Access-Control-Expose-Headers",
|
|
24
|
+
"Access-Control-Max-Age",
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* The CORS section of a response headers policy.
|
|
28
|
+
*
|
|
29
|
+
* CloudFront reflects the viewer request's `Origin` header against the
|
|
30
|
+
* configured allow list rather than sending the list itself, so the headers
|
|
31
|
+
* this adds depend on the request they answer: a request naming an Origin
|
|
32
|
+
* the list does not allow gets none of them, the same as CloudFront sending
|
|
33
|
+
* none rather than a mismatched one.
|
|
34
|
+
*
|
|
35
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-response-headers-policies.html#understanding-response-headers-policies-cors
|
|
36
|
+
*/
|
|
37
|
+
export class SimCloudFrontResponseHeadersPolicyCors {
|
|
38
|
+
allowCredentials;
|
|
39
|
+
allowHeaders;
|
|
40
|
+
allowMethods;
|
|
41
|
+
allowOrigins;
|
|
42
|
+
exposeHeaders;
|
|
43
|
+
maxAgeSec;
|
|
44
|
+
originOverride;
|
|
45
|
+
constructor(properties) {
|
|
46
|
+
this.allowCredentials = properties.allowCredentials;
|
|
47
|
+
this.allowHeaders = properties.allowHeaders;
|
|
48
|
+
this.allowMethods = properties.allowMethods;
|
|
49
|
+
this.allowOrigins = properties.allowOrigins;
|
|
50
|
+
this.exposeHeaders = properties.exposeHeaders ?? [];
|
|
51
|
+
this.maxAgeSec = properties.maxAgeSec;
|
|
52
|
+
this.originOverride = properties.originOverride;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Set this policy's CORS headers on a response, for the `Origin` header a
|
|
56
|
+
* viewer request carried.
|
|
57
|
+
*
|
|
58
|
+
* `OriginOverride` decides the whole section rather than one header at a
|
|
59
|
+
* time, unlike a custom or security header: without it, an Origin response
|
|
60
|
+
* carrying any CORS header at all keeps every header this section would have
|
|
61
|
+
* set off the response, whether or not the policy names that header.
|
|
62
|
+
*/
|
|
63
|
+
apply(headers, requestOrigin) {
|
|
64
|
+
if (!this.originOverride &&
|
|
65
|
+
corsResponseHeaders.some((n) => headers.has(n))) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const allowOrigin = this.resolveAllowOrigin(requestOrigin);
|
|
69
|
+
if (allowOrigin === undefined) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
headers.set("Access-Control-Allow-Origin", allowOrigin);
|
|
73
|
+
// CloudFront varies the cache on Origin whenever the header it sent back
|
|
74
|
+
// was chosen for this request rather than good for every request, so a
|
|
75
|
+
// cached response for one Origin is never served to a different one.
|
|
76
|
+
if (allowOrigin !== "*") {
|
|
77
|
+
headers.append("Vary", "Origin");
|
|
78
|
+
}
|
|
79
|
+
headers.set("Access-Control-Allow-Methods", this.resolvedAllowMethods().join(","));
|
|
80
|
+
headers.set("Access-Control-Allow-Headers", this.allowHeaders.join(","));
|
|
81
|
+
// A false Access-Control-Allow-Credentials is not a header value the
|
|
82
|
+
// fetch spec recognises, so CloudFront leaves it off rather than sending
|
|
83
|
+
// a value meaning the same as absence.
|
|
84
|
+
if (this.allowCredentials) {
|
|
85
|
+
headers.set("Access-Control-Allow-Credentials", "true");
|
|
86
|
+
}
|
|
87
|
+
if (this.exposeHeaders.length > 0) {
|
|
88
|
+
headers.set("Access-Control-Expose-Headers", this.exposeHeaders.join(","));
|
|
89
|
+
}
|
|
90
|
+
if (this.maxAgeSec !== undefined) {
|
|
91
|
+
headers.set("Access-Control-Max-Age", String(this.maxAgeSec));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
resolveAllowOrigin(requestOrigin) {
|
|
95
|
+
if (this.allowOrigins.includes("*")) {
|
|
96
|
+
return "*";
|
|
97
|
+
}
|
|
98
|
+
if (requestOrigin === null) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
return this.allowOrigins.some((pattern) => simCfCorsOriginPatternMatches(pattern, requestOrigin))
|
|
102
|
+
? requestOrigin
|
|
103
|
+
: undefined;
|
|
104
|
+
}
|
|
105
|
+
resolvedAllowMethods() {
|
|
106
|
+
return this.allowMethods.includes("ALL")
|
|
107
|
+
? allAccessControlMethods
|
|
108
|
+
: this.allowMethods;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=sim-cf-response-headers-policy-cors.js.map
|
package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cf-response-headers-policy-cors.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { Brand } from "../../../util/brand.type.js";
|
|
2
2
|
import type { SimCloudFrontResponseHeader } from "./sim-cf-response-header.js";
|
|
3
|
+
import type { SimCloudFrontResponseHeadersPolicyCors } from "./sim-cf-response-headers-policy-cors.js";
|
|
3
4
|
export type SimCloudFrontResponseHeadersPolicyId = Brand<string, "SimCloudFrontResponseHeadersPolicyId">;
|
|
4
5
|
interface SimCloudFrontResponseHeadersPolicyProperties {
|
|
5
6
|
readonly id?: SimCloudFrontResponseHeadersPolicyId;
|
|
6
7
|
readonly name: string;
|
|
7
8
|
readonly customHeaders?: readonly SimCloudFrontResponseHeader[];
|
|
8
9
|
readonly headersToRemove?: readonly string[];
|
|
10
|
+
readonly securityHeaders?: readonly SimCloudFrontResponseHeader[];
|
|
11
|
+
readonly serverTiming?: SimCloudFrontResponseHeader | undefined;
|
|
12
|
+
readonly cors?: SimCloudFrontResponseHeadersPolicyCors | undefined;
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
11
15
|
* Simulated CloudFront response headers policy.
|
|
@@ -21,14 +25,18 @@ export declare class SimCloudFrontResponseHeadersPolicy {
|
|
|
21
25
|
readonly name: string;
|
|
22
26
|
readonly customHeaders: readonly SimCloudFrontResponseHeader[];
|
|
23
27
|
readonly headersToRemove: readonly string[];
|
|
28
|
+
readonly securityHeaders: readonly SimCloudFrontResponseHeader[];
|
|
29
|
+
readonly serverTiming: SimCloudFrontResponseHeader | undefined;
|
|
30
|
+
readonly cors: SimCloudFrontResponseHeadersPolicyCors | undefined;
|
|
24
31
|
constructor(properties: SimCloudFrontResponseHeadersPolicyProperties);
|
|
25
32
|
/**
|
|
26
|
-
* Return the response this policy makes of one the Origin gave back
|
|
33
|
+
* Return the response this policy makes of one the Origin gave back, for
|
|
34
|
+
* the `Origin` header the viewer request carried.
|
|
27
35
|
*
|
|
28
36
|
* The body is passed straight through. Only the headers change, so a response
|
|
29
37
|
* whose body has already been read stays readable.
|
|
30
38
|
*/
|
|
31
|
-
apply(response: Response): Response;
|
|
39
|
+
apply(response: Response, requestOrigin?: string | null): Response;
|
|
32
40
|
}
|
|
33
41
|
export type SimCloudFrontResponseHeadersPolicyMap = Map<SimCloudFrontResponseHeadersPolicyId, SimCloudFrontResponseHeadersPolicy>;
|
|
34
42
|
export {};
|