@kensio/yulin 0.10.0 → 0.12.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/serve/controller/sim-service-controller.d.ts +1 -1
- package/dist/serve/controller/sim-service-controller.d.ts.map +1 -1
- package/dist/serve/http/sim-aws-local-server.js +1 -1
- package/dist/serve/http/sim-aws-local-server.js.map +1 -1
- package/dist/serve/http/sim-aws-local-url.d.ts +4 -0
- package/dist/serve/http/sim-aws-local-url.d.ts.map +1 -1
- package/dist/serve/http/sim-aws-local-url.js +9 -1
- package/dist/serve/http/sim-aws-local-url.js.map +1 -1
- package/dist/serve/resolve/sim-aws-local-service-resolver.d.ts +1 -0
- package/dist/serve/resolve/sim-aws-local-service-resolver.d.ts.map +1 -1
- package/dist/serve/resolve/sim-aws-local-service-resolver.js +27 -1
- package/dist/serve/resolve/sim-aws-local-service-resolver.js.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.d.ts +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.js +1 -1
- package/dist/service/aws/sim-aws-account.d.ts +3 -0
- package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account.js +3 -0
- package/dist/service/aws/sim-aws-account.js.map +1 -1
- package/dist/service/aws/sim-aws-region.d.ts +4 -1
- package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-region.js +4 -1
- package/dist/service/aws/sim-aws-region.js.map +1 -1
- package/dist/service/aws/sim-aws.d.ts +5 -0
- package/dist/service/aws/sim-aws.d.ts.map +1 -1
- package/dist/service/aws/sim-aws.js +11 -0
- package/dist/service/aws/sim-aws.js.map +1 -1
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +14 -0
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts.map +1 -0
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.js +13 -0
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.js.map +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +29 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +114 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts +20 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts.map +1 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.js +41 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.js.map +1 -0
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +47 -0
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts.map +1 -0
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +64 -0
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js.map +1 -0
- package/dist/service/cloudfront/install/install-sim-cloudfront.d.ts +18 -0
- package/dist/service/cloudfront/install/install-sim-cloudfront.d.ts.map +1 -0
- package/dist/service/cloudfront/install/install-sim-cloudfront.js +43 -0
- package/dist/service/cloudfront/install/install-sim-cloudfront.js.map +1 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-origin.d.ts +8 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-origin.d.ts.map +1 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-origin.js +2 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-origin.js.map +1 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-req-res.d.ts +8 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-req-res.d.ts.map +1 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-req-res.js +2 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-req-res.js.map +1 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.d.ts +40 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.d.ts.map +1 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.js +115 -0
- package/dist/service/cloudfront/origin/sim-cloudfront-s3-origin.js.map +1 -0
- package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.d.ts +17 -0
- package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.d.ts.map +1 -0
- package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js +44 -0
- package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js.map +1 -0
- package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.d.ts +26 -0
- package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.d.ts.map +1 -0
- package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.js +61 -0
- package/dist/service/cloudfront/resolver/sim-cloudfront-path-pattern.js.map +1 -0
- package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts +26 -0
- package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -0
- package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +58 -0
- package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -0
- package/dist/service/cloudfront/sim-cloud-front-registry.d.ts +22 -0
- package/dist/service/cloudfront/sim-cloud-front-registry.d.ts.map +1 -0
- package/dist/service/cloudfront/sim-cloud-front-registry.js +36 -0
- package/dist/service/cloudfront/sim-cloud-front-registry.js.map +1 -0
- package/dist/service/cloudfront/sim-cloudfront.d.ts +24 -0
- package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -0
- package/dist/service/cloudfront/sim-cloudfront.js +32 -0
- package/dist/service/cloudfront/sim-cloudfront.js.map +1 -0
- package/dist/service/dynamodb/command/create-table/create-table.handler.js +1 -1
- package/dist/service/dynamodb/command/create-table/create-table.handler.js.map +1 -1
- package/dist/service/dynamodb/table/dynamodb-key-schema.js +1 -1
- package/dist/service/dynamodb/table/dynamodb-key-schema.js.map +1 -1
- package/dist/service/dynamodb/table/dynamodb-table.js +1 -1
- package/dist/service/dynamodb/table/dynamodb-table.js.map +1 -1
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts +5 -2
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
- package/dist/service/s3/bucket/sim-s3-bucket.js +1 -1
- package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js +1 -1
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
- package/dist/service/s3/command/get-object/get-object.handler.js +1 -1
- package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects.handler.js +1 -1
- package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts.map +1 -1
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js +1 -2
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js.map +1 -1
- package/dist/service/s3/command/put-object/put-object.handler.js +1 -1
- package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -1
- package/dist/service/s3/install/install-sim-s3.d.ts +7 -0
- package/dist/service/s3/install/install-sim-s3.d.ts.map +1 -1
- package/dist/service/s3/install/install-sim-s3.js +22 -3
- package/dist/service/s3/install/install-sim-s3.js.map +1 -1
- package/dist/service/s3/serve/sim-s3-controller.d.ts +1 -1
- package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
- package/dist/service/s3/serve/sim-s3-controller.js +3 -3
- package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
- package/dist/service/s3/sim-s3-global-registry.d.ts +1 -0
- package/dist/service/s3/sim-s3-global-registry.d.ts.map +1 -1
- package/dist/service/s3/sim-s3-global-registry.js +1 -0
- package/dist/service/s3/sim-s3-global-registry.js.map +1 -1
- package/dist/service/s3/sim-s3.js +1 -1
- package/dist/service/s3/sim-s3.js.map +1 -1
- package/dist/util/defined/defined.d.ts +9 -0
- package/dist/util/defined/defined.d.ts.map +1 -0
- package/dist/util/defined/defined.js +21 -0
- package/dist/util/defined/defined.js.map +1 -0
- package/package.json +9 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-controller.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/controller/sim-cloudfront-controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,IAAI,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;AAE3H,OAAO,EAAE,6BAA6B,IAAI,oCAAoC,EAAE,MAAM,kDAAkD,CAAC;AACzI,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;GAIG;AACH,MAAM,OAAO,8BAA8B;IACxB,YAAY,CAA4B;IACxC,iBAAiB,CAAgC;IAElE,YACE,aAA4B,IAAI,aAAa,EAAE,EAC/C,eAA0C,IAAI,gCAAgC,CAC5E,UAAU,CAAC,gBAAgB,EAAE,CAC9B,EACD,oBAAmD,IAAI,oCAAoC,EAAE;QAE7F,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,OAA4B,EAC5B,GAAY;QAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEvD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,QAAQ,CAAC,gDAAgD,EAAE;gBACpE,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,QAAQ,CACjB,wDAAwD,SAAS,CAAC,gBAAgB,EAAE,EACpF;gBACE,MAAM,EAAE,GAAG;aACZ,CACF,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC;YACxB,GAAG;YACH,YAAY,EAAE,MAAM;YACpB,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Brand } from "../../../util/brand.type.js";
|
|
2
|
+
import type { SimCloudFrontOrigin } from "../origin/sim-cloudfront-origin.js";
|
|
3
|
+
import type { SimCloudFrontBehavior } from "../behaviour/sim-cloud-front-behavior.js";
|
|
4
|
+
export type SimCloudFrontDistributionId = Brand<string, "SimCloudFrontDistributionId">;
|
|
5
|
+
/**
|
|
6
|
+
* Simulated CloudFront Distribution.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SimCloudFrontDistribution {
|
|
9
|
+
readonly distributionId: SimCloudFrontDistributionId;
|
|
10
|
+
private readonly alternateDomainNames;
|
|
11
|
+
readonly behaviors: SimCloudFrontBehavior[];
|
|
12
|
+
private readonly origins;
|
|
13
|
+
constructor(distributionId?: SimCloudFrontDistributionId);
|
|
14
|
+
/**
|
|
15
|
+
* Get the alternate domain names for this sim Distribution.
|
|
16
|
+
*/
|
|
17
|
+
getAlternateDomainNames(): ReadonlySet<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Get the sim Origins of this Distribution by Origin name.
|
|
20
|
+
*/
|
|
21
|
+
getOrigins(): ReadonlyMap<string, SimCloudFrontOrigin>;
|
|
22
|
+
/**
|
|
23
|
+
* Add an alternate domain name for this sim Distribution.
|
|
24
|
+
*/
|
|
25
|
+
addAlternateDomainName(alternateDomainName: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Add a Behavior to this sim Distribution.
|
|
28
|
+
*/
|
|
29
|
+
addBehavior(behavior: SimCloudFrontBehavior): void;
|
|
30
|
+
/**
|
|
31
|
+
* Add an Origin to this sim Distribution.
|
|
32
|
+
*/
|
|
33
|
+
addOrigin(originName: string, origin: SimCloudFrontOrigin): void;
|
|
34
|
+
/**
|
|
35
|
+
* Check whether this sim Distribution has a particular alternate domain name.
|
|
36
|
+
*/
|
|
37
|
+
hasAlternateDomainName(alternateDomainName: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Get a sim Origin of this Distribution by Origin name.
|
|
40
|
+
*/
|
|
41
|
+
getOrigin(originName: string): SimCloudFrontOrigin | undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Generate a fake sim CloudFront Distribution ID.
|
|
45
|
+
*/
|
|
46
|
+
export declare function makeDistributionId(): SimCloudFrontDistributionId;
|
|
47
|
+
//# sourceMappingURL=sim-cloudfront-distribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-distribution.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/distribution/sim-cloudfront-distribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGtF,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAC7C,MAAM,EACN,6BAA6B,CAC9B,CAAC;AAEF;;GAEG;AACH,qBAAa,yBAAyB;aAMlB,cAAc,EAAE,2BAA2B;IAL7D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAC1D,SAAgB,SAAS,EAAE,qBAAqB,EAAE,CAAM;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;gBAGhD,cAAc,GAAE,2BAAkD;IAGpF;;OAEG;IACH,uBAAuB,IAAI,WAAW,CAAC,MAAM,CAAC;IAI9C;;OAEG;IACH,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAItD;;OAEG;IACH,sBAAsB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAIzD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAIlD;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAIhE;;OAEG;IACH,sBAAsB,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO;IAI5D;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;CAG/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,2BAA2B,CAKhE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { faker } from "@faker-js/faker";
|
|
2
|
+
/**
|
|
3
|
+
* Simulated CloudFront Distribution.
|
|
4
|
+
*/
|
|
5
|
+
export class SimCloudFrontDistribution {
|
|
6
|
+
distributionId;
|
|
7
|
+
alternateDomainNames = new Set();
|
|
8
|
+
behaviors = [];
|
|
9
|
+
origins = new Map();
|
|
10
|
+
constructor(distributionId = makeDistributionId()) {
|
|
11
|
+
this.distributionId = distributionId;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get the alternate domain names for this sim Distribution.
|
|
15
|
+
*/
|
|
16
|
+
getAlternateDomainNames() {
|
|
17
|
+
return this.alternateDomainNames;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get the sim Origins of this Distribution by Origin name.
|
|
21
|
+
*/
|
|
22
|
+
getOrigins() {
|
|
23
|
+
return this.origins;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Add an alternate domain name for this sim Distribution.
|
|
27
|
+
*/
|
|
28
|
+
addAlternateDomainName(alternateDomainName) {
|
|
29
|
+
this.alternateDomainNames.add(alternateDomainName);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Add a Behavior to this sim Distribution.
|
|
33
|
+
*/
|
|
34
|
+
addBehavior(behavior) {
|
|
35
|
+
this.behaviors.push(behavior);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Add an Origin to this sim Distribution.
|
|
39
|
+
*/
|
|
40
|
+
addOrigin(originName, origin) {
|
|
41
|
+
this.origins.set(originName, origin);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check whether this sim Distribution has a particular alternate domain name.
|
|
45
|
+
*/
|
|
46
|
+
hasAlternateDomainName(alternateDomainName) {
|
|
47
|
+
return this.alternateDomainNames.has(alternateDomainName);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get a sim Origin of this Distribution by Origin name.
|
|
51
|
+
*/
|
|
52
|
+
getOrigin(originName) {
|
|
53
|
+
return this.origins.get(originName);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Generate a fake sim CloudFront Distribution ID.
|
|
58
|
+
*/
|
|
59
|
+
export function makeDistributionId() {
|
|
60
|
+
return faker.helpers.fromRegExp(
|
|
61
|
+
// eslint-disable-next-line unicorn/better-regex -- fromRegExp needs 0-9 not \d
|
|
62
|
+
/E[0-9A-Z]{13}/);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=sim-cloudfront-distribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-distribution.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/distribution/sim-cloudfront-distribution.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAOxC;;GAEG;AACH,MAAM,OAAO,yBAAyB;IAMlB;IALD,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,SAAS,GAA4B,EAAE,CAAC;IACvC,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;IAElE,YACkB,iBAA8C,kBAAkB,EAAE;QAAlE,mBAAc,GAAd,cAAc,CAAoD;IACjF,CAAC;IAEJ;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,mBAA2B;QAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAA+B;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,UAAkB,EAAE,MAA2B;QACvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,mBAA2B;QAChD,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU;IAC7B,+EAA+E;IAC/E,eAAe,CACe,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SimAwsServiceMap } from "../../aws/sim-aws-services.js";
|
|
2
|
+
import type { SimAws } from "../../aws/sim-aws.js";
|
|
3
|
+
import { SimCloudFront } from "../sim-cloudfront.js";
|
|
4
|
+
export interface SimCloudFrontServices {
|
|
5
|
+
cloudFront: SimCloudFront;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Install simulated CloudFront into a simulated AWS environment.
|
|
9
|
+
*
|
|
10
|
+
* Simulated CloudFront is installed into SimAws with this installer pattern so
|
|
11
|
+
* that the root SimAws does not need to know about individual AWS SDKs like
|
|
12
|
+
* aws-sdk/client-cloudfront.
|
|
13
|
+
*
|
|
14
|
+
* Without this separation, the root SimAws module would try to import every
|
|
15
|
+
* AWS SDK, so users would be forced to install all of them.
|
|
16
|
+
*/
|
|
17
|
+
export declare function installSimCloudFront<TServices extends SimAwsServiceMap>(simAws: SimAws<TServices>): asserts simAws is SimAws<TServices & SimCloudFrontServices>;
|
|
18
|
+
//# sourceMappingURL=install-sim-cloudfront.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-sim-cloudfront.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/install/install-sim-cloudfront.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAMrD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,aAAa,CAAC;CAC3B;AA2CD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,SAAS,gBAAgB,EACrE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,qBAAqB,CAAC,CAY7D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { SimCloudFront } from "../sim-cloudfront.js";
|
|
2
|
+
import { SimCloudFrontRegistry } from "../sim-cloud-front-registry.js";
|
|
3
|
+
import { createSimCloudFrontS3OriginResolver } from "../origin/sim-cloudfront-s3-origin.js";
|
|
4
|
+
import { SimCloudFrontServiceController } from "../controller/sim-cloudfront-controller.js";
|
|
5
|
+
/**
|
|
6
|
+
* State for one sim CloudFront installation into one sim AWS environment.
|
|
7
|
+
*/
|
|
8
|
+
class SimCloudFrontInstallation {
|
|
9
|
+
cloudFrontRegistry = new SimCloudFrontRegistry();
|
|
10
|
+
cloudFrontServices = new Map();
|
|
11
|
+
createService(simAws, scope) {
|
|
12
|
+
const { accountId } = scope.accountRegionScope;
|
|
13
|
+
let simCloudFront = this.cloudFrontServices.get(accountId);
|
|
14
|
+
if (simCloudFront === undefined) {
|
|
15
|
+
simCloudFront = new SimCloudFront(scope.accountRegionScope, this.cloudFrontRegistry, createSimCloudFrontS3OriginResolver(simAws, scope));
|
|
16
|
+
this.cloudFrontServices.set(accountId, simCloudFront);
|
|
17
|
+
}
|
|
18
|
+
return simCloudFront;
|
|
19
|
+
}
|
|
20
|
+
createServiceController(simAws) {
|
|
21
|
+
return new SimCloudFrontServiceController(simAws.service("cloudFront"));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Install simulated CloudFront into a simulated AWS environment.
|
|
26
|
+
*
|
|
27
|
+
* Simulated CloudFront is installed into SimAws with this installer pattern so
|
|
28
|
+
* that the root SimAws does not need to know about individual AWS SDKs like
|
|
29
|
+
* aws-sdk/client-cloudfront.
|
|
30
|
+
*
|
|
31
|
+
* Without this separation, the root SimAws module would try to import every
|
|
32
|
+
* AWS SDK, so users would be forced to install all of them.
|
|
33
|
+
*/
|
|
34
|
+
export function installSimCloudFront(simAws) {
|
|
35
|
+
const installation = new SimCloudFrontInstallation();
|
|
36
|
+
simAws.installService("cloudFront", (scope) => {
|
|
37
|
+
return installation.createService(simAws, scope);
|
|
38
|
+
});
|
|
39
|
+
simAws.installServiceController("cloudFront", (controllerSimAws) => {
|
|
40
|
+
return installation.createServiceController(controllerSimAws);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=install-sim-cloudfront.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-sim-cloudfront.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/install/install-sim-cloudfront.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAO5F;;GAEG;AACH,MAAM,yBAAyB;IACZ,kBAAkB,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAEjD,kBAAkB,GAAG,IAAI,GAAG,EAG1C,CAAC;IAEJ,aAAa,CACX,MAAc,EACd,KAAqD;QAErD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAC;QAE/C,IAAI,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,aAAa,GAAG,IAAI,aAAa,CAC/B,KAAK,CAAC,kBAAkB,EACxB,IAAI,CAAC,kBAAkB,EACvB,mCAAmC,CACjC,MAA+B,EAC/B,KAAK,CACN,CACF,CAAC;YACF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,uBAAuB,CACrB,MAAqC;QAErC,OAAO,IAAI,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAyB;IAEzB,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAErD,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5C,OAAO,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC,gBAAgB,EAAE,EAAE;QACjE,OAAO,YAAY,CAAC,uBAAuB,CACzC,gBAAiD,CAClD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SimCloudFrontOriginRequest } from "./sim-cloudfront-req-res.js";
|
|
2
|
+
/**
|
|
3
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html
|
|
4
|
+
*/
|
|
5
|
+
export interface SimCloudFrontOrigin {
|
|
6
|
+
fetch(request: SimCloudFrontOriginRequest): Promise<Response>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=sim-cloudfront-origin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-origin.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-origin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-origin.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-origin.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SimCloudFrontDistribution } from "../distribution/sim-cloudfront-distribution.js";
|
|
2
|
+
import type { SimCloudFrontBehavior } from "../behaviour/sim-cloud-front-behavior.js";
|
|
3
|
+
export interface SimCloudFrontOriginRequest {
|
|
4
|
+
distribution: SimCloudFrontDistribution;
|
|
5
|
+
behavior: SimCloudFrontBehavior;
|
|
6
|
+
req: Request;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=sim-cloudfront-req-res.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-req-res.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-req-res.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEtF,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,yBAAyB,CAAC;IACxC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,GAAG,EAAE,OAAO,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-req-res.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-req-res.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SimAwsAccountRegionContainer } from "../../aws/sim-aws-account-region-scope.js";
|
|
2
|
+
import type { SimAwsServiceMap } from "../../aws/sim-aws-services.js";
|
|
3
|
+
import type { SimS3Bucket } from "../../s3/bucket/sim-s3-bucket.js";
|
|
4
|
+
import type { SimCloudFrontOriginRequest } from "./sim-cloudfront-req-res.js";
|
|
5
|
+
import type { SimCloudFrontOrigin } from "./sim-cloudfront-origin.js";
|
|
6
|
+
import type { SimAws } from "../../aws/sim-aws.js";
|
|
7
|
+
import type { SimS3Services } from "../../s3/install/install-sim-s3.js";
|
|
8
|
+
export type SimCloudFrontS3OriginResolver = (originDomainName: string) => SimS3Bucket | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Default S3 Origin Resolver that returns undefined for all origin domains.
|
|
11
|
+
*/
|
|
12
|
+
export declare function emptyCloudFrontS3OriginResolver(): undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Create an S3 Origin Resolver backed by a simulated AWS Account/Region scope.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createSimCloudFrontS3OriginResolver(simAws: SimAws<SimS3Services>, scope: SimAwsAccountRegionContainer<SimAwsServiceMap>): SimCloudFrontS3OriginResolver;
|
|
17
|
+
/**
|
|
18
|
+
* Resolve a simulated S3 Bucket name from a CloudFront S3 Origin domain name.
|
|
19
|
+
*/
|
|
20
|
+
export declare function bucketNameFromCloudFrontS3OriginDomainName(originDomainName: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Simulated CloudFront S3 Origin.
|
|
23
|
+
*
|
|
24
|
+
* This represents a basic S3 object origin, not an S3 static website endpoint.
|
|
25
|
+
*/
|
|
26
|
+
export declare class SimCloudFrontS3Origin implements SimCloudFrontOrigin {
|
|
27
|
+
private readonly bucket;
|
|
28
|
+
private readonly originPath;
|
|
29
|
+
constructor(bucket: SimS3Bucket, originPath?: string);
|
|
30
|
+
/**
|
|
31
|
+
* Fetch an object from the backing simulated S3 Bucket.
|
|
32
|
+
*/
|
|
33
|
+
fetch(request: SimCloudFrontOriginRequest): Promise<Response>;
|
|
34
|
+
private methodSupported;
|
|
35
|
+
private objectKeyForRequest;
|
|
36
|
+
private normalizeObjectKey;
|
|
37
|
+
private foundObjectResponse;
|
|
38
|
+
private notFoundResponse;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=sim-cloudfront-s3-origin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-s3-origin.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-s3-origin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,MAAM,6BAA6B,GAAG,CAC1C,gBAAgB,EAAE,MAAM,KACrB,WAAW,GAAG,SAAS,CAAC;AAE7B;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,SAAS,CAG3D;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EAC7B,KAAK,EAAE,4BAA4B,CAAC,gBAAgB,CAAC,GACpD,6BAA6B,CAiB/B;AAED;;GAEG;AACH,wBAAgB,0CAA0C,CACxD,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAUR;AAqBD;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,mBAAmB;IAE7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,MAAM,EAAE,WAAW,EACnB,UAAU,SAAK;IAGlC;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqBnE,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,gBAAgB;CAWzB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default S3 Origin Resolver that returns undefined for all origin domains.
|
|
3
|
+
*/
|
|
4
|
+
export function emptyCloudFrontS3OriginResolver() {
|
|
5
|
+
/* v8 ignore next */
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Create an S3 Origin Resolver backed by a simulated AWS Account/Region scope.
|
|
10
|
+
*/
|
|
11
|
+
export function createSimCloudFrontS3OriginResolver(simAws, scope) {
|
|
12
|
+
return (originDomainName) => {
|
|
13
|
+
const bucketName = bucketNameFromCloudFrontS3OriginDomainName(originDomainName);
|
|
14
|
+
const bucketScope = simAws.service("s3").findBucketScope(bucketName);
|
|
15
|
+
if (bucketScope === undefined) {
|
|
16
|
+
throw new Error(`Unable to find sim S3 Bucket ${bucketName} for sim CloudFront S3 Origin`);
|
|
17
|
+
}
|
|
18
|
+
return simAws
|
|
19
|
+
.region(bucketScope.regionName)
|
|
20
|
+
.account(scope.account.accountId)
|
|
21
|
+
.service("s3")
|
|
22
|
+
.getSimBucketByName(bucketName);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Resolve a simulated S3 Bucket name from a CloudFront S3 Origin domain name.
|
|
27
|
+
*/
|
|
28
|
+
export function bucketNameFromCloudFrontS3OriginDomainName(originDomainName) {
|
|
29
|
+
const bucketName = s3BucketNameFromOriginDomainName(originDomainName);
|
|
30
|
+
if (bucketName === undefined || bucketName === "") {
|
|
31
|
+
throw new Error(`Unable to resolve S3 bucket name from CloudFront origin domain name: ${originDomainName}`);
|
|
32
|
+
}
|
|
33
|
+
return bucketName;
|
|
34
|
+
}
|
|
35
|
+
function s3BucketNameFromOriginDomainName(originDomainName) {
|
|
36
|
+
const s3DomainSuffixes = [".s3.amazonaws.com", ".s3.dualstack.amazonaws.com"];
|
|
37
|
+
for (const suffix of s3DomainSuffixes) {
|
|
38
|
+
if (originDomainName.endsWith(suffix)) {
|
|
39
|
+
return originDomainName.slice(0, -suffix.length);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const regionalS3DomainMatch = /^(?<bucketName>.+)\.s3[.-][a-z0-9-]+\.amazonaws\.com$/u.exec(originDomainName);
|
|
43
|
+
return regionalS3DomainMatch?.groups?.["bucketName"] ?? originDomainName;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Simulated CloudFront S3 Origin.
|
|
47
|
+
*
|
|
48
|
+
* This represents a basic S3 object origin, not an S3 static website endpoint.
|
|
49
|
+
*/
|
|
50
|
+
export class SimCloudFrontS3Origin {
|
|
51
|
+
bucket;
|
|
52
|
+
originPath;
|
|
53
|
+
constructor(bucket, originPath = "") {
|
|
54
|
+
this.bucket = bucket;
|
|
55
|
+
this.originPath = originPath;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Fetch an object from the backing simulated S3 Bucket.
|
|
59
|
+
*/
|
|
60
|
+
async fetch(request) {
|
|
61
|
+
if (!this.methodSupported(request.req.method)) {
|
|
62
|
+
return new Response(`Method ${request.req.method} not allowed`, {
|
|
63
|
+
status: 405,
|
|
64
|
+
headers: {
|
|
65
|
+
allow: "GET, HEAD",
|
|
66
|
+
"content-type": "text/plain; charset=utf-8",
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const objectKey = this.objectKeyForRequest(request);
|
|
71
|
+
const object = await this.bucket.getObject(objectKey);
|
|
72
|
+
if (object === undefined) {
|
|
73
|
+
return this.notFoundResponse(objectKey);
|
|
74
|
+
}
|
|
75
|
+
return this.foundObjectResponse(object, request.req);
|
|
76
|
+
}
|
|
77
|
+
methodSupported(method) {
|
|
78
|
+
return method === "GET" || method === "HEAD";
|
|
79
|
+
}
|
|
80
|
+
objectKeyForRequest(request) {
|
|
81
|
+
const requestPath = new URL(request.req.url).pathname;
|
|
82
|
+
return this.normalizeObjectKey(`${this.originPath}/${requestPath}`);
|
|
83
|
+
}
|
|
84
|
+
normalizeObjectKey(path) {
|
|
85
|
+
return decodeURIComponent(path)
|
|
86
|
+
.replaceAll(/\/+/gu, "/")
|
|
87
|
+
.replace(/^\/+/u, "");
|
|
88
|
+
}
|
|
89
|
+
foundObjectResponse(object, request) {
|
|
90
|
+
const contentType = object.metadata.values["content-type"];
|
|
91
|
+
const headers = {
|
|
92
|
+
"content-length": String(object.body.length),
|
|
93
|
+
...(contentType === undefined ? {} : { "content-type": contentType }),
|
|
94
|
+
};
|
|
95
|
+
if (request.method === "HEAD") {
|
|
96
|
+
return new Response(undefined, {
|
|
97
|
+
status: 200,
|
|
98
|
+
headers,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return new Response(object.body, {
|
|
102
|
+
status: 200,
|
|
103
|
+
headers,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
notFoundResponse(objectKey) {
|
|
107
|
+
return new Response(`Object ${objectKey} not found in sim S3 Bucket ${this.bucket.bucketName}`, {
|
|
108
|
+
status: 404,
|
|
109
|
+
headers: {
|
|
110
|
+
"content-type": "text/plain; charset=utf-8",
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=sim-cloudfront-s3-origin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-s3-origin.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/origin/sim-cloudfront-s3-origin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SimCloudFrontBehavior } from "../behaviour/sim-cloud-front-behavior.js";
|
|
2
|
+
import type { SimCloudFrontDistribution } from "../distribution/sim-cloudfront-distribution.js";
|
|
3
|
+
/**
|
|
4
|
+
* Selects the appropriate sim CloudFront Behavior within a sim CloudFront
|
|
5
|
+
* Distribution for a request.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SimCloudFrontBehaviorResolver {
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the Behavior in the selected Distribution which best matches this
|
|
10
|
+
* request.
|
|
11
|
+
*/
|
|
12
|
+
resolve(req: Request, simDistribution: SimCloudFrontDistribution): SimCloudFrontBehavior;
|
|
13
|
+
private behaviourMatchesPath;
|
|
14
|
+
private isDefaultBehaviour;
|
|
15
|
+
private pathPatternSpecificity;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=sim-cloud-front-behavior-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloud-front-behavior-resolver.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAIhG;;;GAGG;AACH,qBAAa,6BAA6B;IACxC;;;OAGG;IACH,OAAO,CACL,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,yBAAyB,GACzC,qBAAqB;IA2BxB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,sBAAsB;CAQ/B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { assertDefined } from "../../../util/defined/defined.js";
|
|
2
|
+
import { SimCloudFrontPathPattern } from "./sim-cloudfront-path-pattern.js";
|
|
3
|
+
/**
|
|
4
|
+
* Selects the appropriate sim CloudFront Behavior within a sim CloudFront
|
|
5
|
+
* Distribution for a request.
|
|
6
|
+
*/
|
|
7
|
+
export class SimCloudFrontBehaviorResolver {
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the Behavior in the selected Distribution which best matches this
|
|
10
|
+
* request.
|
|
11
|
+
*/
|
|
12
|
+
resolve(req, simDistribution) {
|
|
13
|
+
const requestPath = new URL(req.url).pathname;
|
|
14
|
+
const explicitMatch = simDistribution.behaviors
|
|
15
|
+
.filter((behaviour) => this.behaviourMatchesPath(behaviour, requestPath))
|
|
16
|
+
.toSorted((a, b) => this.pathPatternSpecificity(b.pathPattern) -
|
|
17
|
+
this.pathPatternSpecificity(a.pathPattern))[0];
|
|
18
|
+
if (explicitMatch !== undefined) {
|
|
19
|
+
return explicitMatch;
|
|
20
|
+
}
|
|
21
|
+
const defaultBehaviour = simDistribution.behaviors.find((behaviour) => this.isDefaultBehaviour(behaviour));
|
|
22
|
+
assertDefined(defaultBehaviour, `Default CloudFront Behavior for Distribution ${simDistribution.distributionId}`);
|
|
23
|
+
return defaultBehaviour;
|
|
24
|
+
}
|
|
25
|
+
behaviourMatchesPath(behaviour, requestPath) {
|
|
26
|
+
if (this.isDefaultBehaviour(behaviour)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const pathPattern = behaviour.pathPattern;
|
|
30
|
+
assertDefined(pathPattern, "CloudFront Behavior path pattern");
|
|
31
|
+
return new SimCloudFrontPathPattern(pathPattern).matches(requestPath);
|
|
32
|
+
}
|
|
33
|
+
isDefaultBehaviour(behaviour) {
|
|
34
|
+
return behaviour.pathPattern === undefined || behaviour.pathPattern === "*";
|
|
35
|
+
}
|
|
36
|
+
pathPatternSpecificity(pathPattern) {
|
|
37
|
+
/* v8 ignore if -- redundant fallback */
|
|
38
|
+
if (pathPattern === undefined || pathPattern === "*") {
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
return new SimCloudFrontPathPattern(pathPattern).specificity();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=sim-cloud-front-behavior-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloud-front-behavior-resolver.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;GAGG;AACH,MAAM,OAAO,6BAA6B;IACxC;;;OAGG;IACH,OAAO,CACL,GAAY,EACZ,eAA0C;QAE1C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAE9C,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS;aAC5C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aACxE,QAAQ,CACP,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC;YAC1C,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAC7C,CAAC,CAAC,CAAC,CAAC;QAEP,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CACnC,CAAC;QAEF,aAAa,CACX,gBAAgB,EAChB,gDAAgD,eAAe,CAAC,cAAc,EAAE,CACjF,CAAC;QAEF,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,oBAAoB,CAC1B,SAAgC,EAChC,WAAmB;QAEnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QAC1C,aAAa,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;QAE/D,OAAO,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;IAEO,kBAAkB,CAAC,SAAgC;QACzD,OAAO,SAAS,CAAC,WAAW,KAAK,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,GAAG,CAAC;IAC9E,CAAC;IAEO,sBAAsB,CAAC,WAA+B;QAC5D,wCAAwC;QACxC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;YACrD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IACjE,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CloudFront-style path pattern matcher.
|
|
3
|
+
*
|
|
4
|
+
* Supports the basic wildcard syntax:
|
|
5
|
+
* - "*" matches zero or more characters
|
|
6
|
+
* - "?" matches exactly one character
|
|
7
|
+
*
|
|
8
|
+
* All other characters are treated literally.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SimCloudFrontPathPattern {
|
|
11
|
+
private readonly pathPattern;
|
|
12
|
+
private readonly graphemeSegmenter;
|
|
13
|
+
constructor(pathPattern: string);
|
|
14
|
+
/**
|
|
15
|
+
* Does this path pattern match a request path?
|
|
16
|
+
*/
|
|
17
|
+
matches(requestPath: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Estimate how specific this pattern is for choosing between multiple matches.
|
|
20
|
+
*/
|
|
21
|
+
specificity(): number;
|
|
22
|
+
private regex;
|
|
23
|
+
private graphemes;
|
|
24
|
+
private escapeRegexChar;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=sim-cloudfront-path-pattern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-path-pattern.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloudfront-path-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,wBAAwB;IAKvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAE/B;gBAE0B,WAAW,EAAE,MAAM;IAEhD;;OAEG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,WAAW,IAAI,MAAM;IAMrB,OAAO,CAAC,KAAK;IAwBb,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,eAAe;CAGxB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CloudFront-style path pattern matcher.
|
|
3
|
+
*
|
|
4
|
+
* Supports the basic wildcard syntax:
|
|
5
|
+
* - "*" matches zero or more characters
|
|
6
|
+
* - "?" matches exactly one character
|
|
7
|
+
*
|
|
8
|
+
* All other characters are treated literally.
|
|
9
|
+
*/
|
|
10
|
+
export class SimCloudFrontPathPattern {
|
|
11
|
+
pathPattern;
|
|
12
|
+
graphemeSegmenter = new Intl.Segmenter(undefined, {
|
|
13
|
+
granularity: "grapheme",
|
|
14
|
+
});
|
|
15
|
+
constructor(pathPattern) {
|
|
16
|
+
this.pathPattern = pathPattern;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Does this path pattern match a request path?
|
|
20
|
+
*/
|
|
21
|
+
matches(requestPath) {
|
|
22
|
+
return this.regex().test(requestPath);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Estimate how specific this pattern is for choosing between multiple matches.
|
|
26
|
+
*/
|
|
27
|
+
specificity() {
|
|
28
|
+
return this.graphemes(this.pathPattern).filter((char) => {
|
|
29
|
+
return char !== "*" && char !== "?";
|
|
30
|
+
}).length;
|
|
31
|
+
}
|
|
32
|
+
regex() {
|
|
33
|
+
const safeRegexPattern = this.graphemes(this.pathPattern)
|
|
34
|
+
.map((char) => {
|
|
35
|
+
if (char === "*") {
|
|
36
|
+
return ".*";
|
|
37
|
+
}
|
|
38
|
+
if (char === "?") {
|
|
39
|
+
return ".";
|
|
40
|
+
}
|
|
41
|
+
return this.escapeRegexChar(char);
|
|
42
|
+
})
|
|
43
|
+
.join("");
|
|
44
|
+
/*
|
|
45
|
+
* Path patterns are not accepted as regex syntax. They are converted from a
|
|
46
|
+
* small CloudFront-style wildcard language where only "*" and "?" have
|
|
47
|
+
* special meaning. All other graphemes are escaped above.
|
|
48
|
+
*/
|
|
49
|
+
// eslint-disable-next-line security/detect-non-literal-regexp
|
|
50
|
+
return new RegExp(`^${safeRegexPattern}$`, "u");
|
|
51
|
+
}
|
|
52
|
+
graphemes(value) {
|
|
53
|
+
return Array.from(this.graphemeSegmenter.segment(value), (segment) => {
|
|
54
|
+
return segment.segment;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
escapeRegexChar(char) {
|
|
58
|
+
return char.replaceAll(/[\\^$.*+?()[\]{}|]/gu, String.raw `\$&`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=sim-cloudfront-path-pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloudfront-path-pattern.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/resolver/sim-cloudfront-path-pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAKN;IAJZ,iBAAiB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;QACjE,WAAW,EAAE,UAAU;KACxB,CAAC,CAAC;IAEH,YAA6B,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;IAAG,CAAC;IAEpD;;OAEG;IACH,OAAO,CAAC,WAAmB;QACzB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;QACtC,CAAC,CAAC,CAAC,MAAM,CAAC;IACZ,CAAC;IAEO,KAAK;QACX,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;aACtD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC;YACb,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ;;;;WAIG;QACH,8DAA8D;QAC9D,OAAO,IAAI,MAAM,CAAC,IAAI,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;YACnE,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "../distribution/sim-cloudfront-distribution.js";
|
|
2
|
+
/**
|
|
3
|
+
* Routes sim CloudFront requests to the appropriate sim Distribution.
|
|
4
|
+
* Owns the Distribution lookup decision.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SimCloudFrontDistroRouter {
|
|
7
|
+
private readonly distributions;
|
|
8
|
+
constructor(distributions: ReadonlyMap<SimCloudFrontDistributionId, SimCloudFrontDistribution>);
|
|
9
|
+
/**
|
|
10
|
+
* Construct from an array of Distributions instead of a Map.
|
|
11
|
+
*/
|
|
12
|
+
static fromDistributions(distributions: SimCloudFrontDistribution[]): SimCloudFrontDistroRouter;
|
|
13
|
+
/**
|
|
14
|
+
* Select the appropriate Distribution for a request.
|
|
15
|
+
*/
|
|
16
|
+
distroForRequest(req: Request): SimCloudFrontDistribution | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Try to extract a CloudFront Distribution ID from a hostname which could
|
|
19
|
+
* start with
|
|
20
|
+
* distro123.cloudfront.net
|
|
21
|
+
* Such as
|
|
22
|
+
* distro123.cloudfront.net.sim-aws.localhost
|
|
23
|
+
*/
|
|
24
|
+
static extractHostDistroId(hostname: string): SimCloudFrontDistributionId | undefined;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=sim-cloud-front-distro-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloud-front-distro-router.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/router/sim-cloud-front-distro-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,gDAAgD,CAAC;AAIxD;;;GAGG;AACH,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,WAAW,CACzC,2BAA2B,EAC3B,yBAAyB,CAC1B;IAGH;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,aAAa,EAAE,yBAAyB,EAAE,GACzC,yBAAyB;IAM5B;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,yBAAyB,GAAG,SAAS;IAsBrE;;;;;;OAMG;WACW,mBAAmB,CAC/B,QAAQ,EAAE,MAAM,GACf,2BAA2B,GAAG,SAAS;CAe3C"}
|