@kensio/yulin 0.10.0 → 0.11.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 +8 -1
- package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.js +10 -1
- package/dist/service/aws/sim-aws-account-region-scope.js.map +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 +16 -0
- package/dist/service/aws/sim-aws.d.ts.map +1 -1
- package/dist/service/aws/sim-aws.js +28 -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 +38 -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 +108 -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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AwsRegionName } from "../../service/aws/sim-aws-region.js";
|
|
2
2
|
import type { SimAws } from "../../service/aws/sim-aws.js";
|
|
3
3
|
export interface SimAwsServiceTarget {
|
|
4
|
-
readonly service:
|
|
4
|
+
readonly service: "s3" | "cloudFront";
|
|
5
5
|
readonly resourceName: string;
|
|
6
6
|
readonly regionName?: AwsRegionName;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-service-controller.d.ts","sourceRoot":"","sources":["../../../src/serve/controller/sim-service-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sim-service-controller.d.ts","sourceRoot":"","sources":["../../../src/serve/controller/sim-service-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAC3C,MAAM,EAAE,MAAM,KACX,uBAAuB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtB"}
|
|
@@ -2,7 +2,7 @@ import http, {} from "node:http";
|
|
|
2
2
|
import { SimAws } from "../../service/aws/sim-aws.js";
|
|
3
3
|
import { simAwsLocalConf } from "./sim-aws-local.conf.js";
|
|
4
4
|
import { SimAwsHttp } from "./sim-aws-http.js";
|
|
5
|
-
import { assertDefined } from "../../util/defined.js";
|
|
5
|
+
import { assertDefined } from "../../util/defined/defined.js";
|
|
6
6
|
import { SimAwsLocalUrl } from "./sim-aws-local-url.js";
|
|
7
7
|
/**
|
|
8
8
|
* Local HTTP server for a simulated AWS environment.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-local-server.js","sourceRoot":"","sources":["../../../src/serve/http/sim-aws-local-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAIZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sim-aws-local-server.js","sourceRoot":"","sources":["../../../src/serve/http/sim-aws-local-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,10 @@ export declare class SimAwsLocalUrl {
|
|
|
13
13
|
* Convert to a URL string.
|
|
14
14
|
*/
|
|
15
15
|
toString(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Get a copy of the URL without the localhost suffix in the hostname.
|
|
18
|
+
*/
|
|
19
|
+
withoutLocalhostSuffix(): URL;
|
|
16
20
|
private localHostname;
|
|
17
21
|
}
|
|
18
22
|
//# sourceMappingURL=sim-aws-local-url.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-local-url.d.ts","sourceRoot":"","sources":["../../../src/serve/http/sim-aws-local-url.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,cAAc;IACzB,gBAAuB,eAAe,SAAkC;IAExE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;gBAEd,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM;IAS9C;;OAEG;IACH,KAAK,IAAI,GAAG;IAIZ;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,aAAa;CAgBtB"}
|
|
1
|
+
{"version":3,"file":"sim-aws-local-url.d.ts","sourceRoot":"","sources":["../../../src/serve/http/sim-aws-local-url.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,cAAc;IACzB,gBAAuB,eAAe,SAAkC;IAExE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;gBAEd,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM;IAS9C;;OAEG;IACH,KAAK,IAAI,GAAG;IAIZ;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,sBAAsB,IAAI,GAAG;IAM7B,OAAO,CAAC,aAAa;CAgBtB"}
|
|
@@ -17,7 +17,7 @@ export class SimAwsLocalUrl {
|
|
|
17
17
|
* Convert to a URL instance.
|
|
18
18
|
*/
|
|
19
19
|
toURL() {
|
|
20
|
-
return new URL(this.url);
|
|
20
|
+
return new URL(this.url.toString());
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Convert to a URL string.
|
|
@@ -25,6 +25,14 @@ export class SimAwsLocalUrl {
|
|
|
25
25
|
toString() {
|
|
26
26
|
return this.url.toString();
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Get a copy of the URL without the localhost suffix in the hostname.
|
|
30
|
+
*/
|
|
31
|
+
withoutLocalhostSuffix() {
|
|
32
|
+
const url = this.toURL();
|
|
33
|
+
url.hostname = url.hostname.replace(SimAwsLocalUrl.localhostSuffix, "");
|
|
34
|
+
return url;
|
|
35
|
+
}
|
|
28
36
|
localHostname(hostname) {
|
|
29
37
|
if (hostname.endsWith(SimAwsLocalUrl.localhostSuffix)) {
|
|
30
38
|
return hostname;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-local-url.js","sourceRoot":"","sources":["../../../src/serve/http/sim-aws-local-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,cAAc;IAClB,MAAM,CAAU,eAAe,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;IAEvD,GAAG,CAAM;IAE1B,YAAY,KAAmB,EAAE,IAAa;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-aws-local-url.js","sourceRoot":"","sources":["../../../src/serve/http/sim-aws-local-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,cAAc;IAClB,MAAM,CAAU,eAAe,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;IAEvD,GAAG,CAAM;IAE1B,YAAY,KAAmB,EAAE,IAAa;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,aAAa,CAAC,QAAgB;QACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;YACtD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,aAAa,GACjB,2DAA2D,CAAC,IAAI,CAC9D,QAAQ,CACT,CAAC;QAEJ,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;QAC9E,CAAC;QAED,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;IACxD,CAAC"}
|
|
@@ -8,5 +8,6 @@ export declare class SimAwsLocalServiceResolver {
|
|
|
8
8
|
*/
|
|
9
9
|
resolveHost(hostname: string): SimAwsServiceTarget | undefined;
|
|
10
10
|
private builtinLocalhostServiceTarget;
|
|
11
|
+
private cloudFrontLocalhostServiceTarget;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=sim-aws-local-service-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-local-service-resolver.d.ts","sourceRoot":"","sources":["../../../src/serve/resolve/sim-aws-local-service-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-aws-local-service-resolver.d.ts","sourceRoot":"","sources":["../../../src/serve/resolve/sim-aws-local-service-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAOnF;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAO9D,OAAO,CAAC,6BAA6B;IAmCrC,OAAO,CAAC,gCAAgC;CA+BzC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SimAwsLocalUrl } from "../http/sim-aws-local-url.js";
|
|
2
2
|
const s3WebsiteServiceLabel = "s3-website";
|
|
3
|
+
const cloudFrontServiceLabel = "cloudfront";
|
|
3
4
|
/**
|
|
4
5
|
* Default resolver for localhost subdomains to simulated AWS services.
|
|
5
6
|
*/
|
|
@@ -8,7 +9,8 @@ export class SimAwsLocalServiceResolver {
|
|
|
8
9
|
* Resolve a localhost subdomain hostname to a simulated AWS service target.
|
|
9
10
|
*/
|
|
10
11
|
resolveHost(hostname) {
|
|
11
|
-
return this.builtinLocalhostServiceTarget(hostname)
|
|
12
|
+
return (this.builtinLocalhostServiceTarget(hostname) ??
|
|
13
|
+
this.cloudFrontLocalhostServiceTarget(hostname));
|
|
12
14
|
}
|
|
13
15
|
builtinLocalhostServiceTarget(hostname) {
|
|
14
16
|
if (!hostname.endsWith(SimAwsLocalUrl.localhostSuffix)) {
|
|
@@ -35,5 +37,29 @@ export class SimAwsLocalServiceResolver {
|
|
|
35
37
|
}
|
|
36
38
|
return undefined;
|
|
37
39
|
}
|
|
40
|
+
cloudFrontLocalhostServiceTarget(hostname) {
|
|
41
|
+
if (!hostname.endsWith(SimAwsLocalUrl.localhostSuffix)) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
const labels = hostname
|
|
45
|
+
.slice(0, -SimAwsLocalUrl.localhostSuffix.length)
|
|
46
|
+
.split(".");
|
|
47
|
+
if (labels.length < 3) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
// Check for CloudFront with .net in the domain: <distro-id>.cloudfront.net.sim-aws.localhost
|
|
51
|
+
if (labels.at(-2) === cloudFrontServiceLabel && labels.at(-1) === "net") {
|
|
52
|
+
// Extract distribution ID from the subdomain before "cloudfront"
|
|
53
|
+
const distroId = labels.at(-3);
|
|
54
|
+
if (distroId === undefined || distroId.length === 0) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
service: "cloudFront",
|
|
59
|
+
resourceName: distroId,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
38
64
|
}
|
|
39
65
|
//# sourceMappingURL=sim-aws-local-service-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-local-service-resolver.js","sourceRoot":"","sources":["../../../src/serve/resolve/sim-aws-local-service-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,qBAAqB,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-aws-local-service-resolver.js","sourceRoot":"","sources":["../../../src/serve/resolve/sim-aws-local-service-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAC3C,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAO,0BAA0B;IACrC;;OAEG;IACH,WAAW,CAAC,QAAgB;QAC1B,OAAO,CACL,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAChD,CAAC;IACJ,CAAC;IAEO,6BAA6B,CACnC,QAAgB;QAEhB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ;aACpB,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC;aAChD,KAAK,CAAC,GAAG,CAAC,CAAC;QAEd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAA8B,CAAC;QAE9D,IAAI,OAAO,KAAK,qBAAqB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAClE,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEnD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,YAAY;gBACZ,UAAU;aACX,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,gCAAgC,CACtC,QAAgB;QAEhB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ;aACpB,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC;aAChD,KAAK,CAAC,GAAG,CAAC,CAAC;QAEd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,6FAA6F;QAC7F,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,sBAAsB,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACxE,iEAAiE;YACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,YAAY;gBACrB,YAAY,EAAE,QAAQ;aACvB,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -6,7 +6,7 @@ import { DynamicFactory } from "@kensio/part-factory";
|
|
|
6
6
|
export type SimAccountRegionScopeKey = `${SimAwsAccountId}:${AwsRegionName}`;
|
|
7
7
|
/**
|
|
8
8
|
* Combined simulated AWS Account and Region scope.
|
|
9
|
-
* This is the real container for simulated services.
|
|
9
|
+
* This is the real Account/Region scope container for simulated services.
|
|
10
10
|
*/
|
|
11
11
|
export declare class SimAwsAccountRegionContainer<TServices extends SimAwsServiceMap = NoSimAwsServices> {
|
|
12
12
|
private readonly simAws;
|
|
@@ -21,6 +21,13 @@ export declare class SimAwsAccountRegionContainer<TServices extends SimAwsServic
|
|
|
21
21
|
* first.
|
|
22
22
|
*/
|
|
23
23
|
service<TKey extends keyof TServices>(serviceName: TKey): TServices[TKey];
|
|
24
|
+
/**
|
|
25
|
+
* Get an installed simulated AWS service by runtime service name.
|
|
26
|
+
*
|
|
27
|
+
* This is useful for optional cross-service dependencies, where one simulated
|
|
28
|
+
* service can use another if it has been independently installed.
|
|
29
|
+
*/
|
|
30
|
+
_requireService<TService>(serviceName: PropertyKey): TService;
|
|
24
31
|
}
|
|
25
32
|
export interface SimAwsAccountRegionScope {
|
|
26
33
|
accountId: SimAwsAccountId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-account-region-scope.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-account-region-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,wBAAwB,GAAG,GAAG,eAAe,IAAI,aAAa,EAAE,CAAC;AAE7E;;;GAGG;AACH,qBAAa,4BAA4B,CACvC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB;IAOnD,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;aACjC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC;IAPjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAE5C,SAAgB,kBAAkB,EAAE,wBAAwB,CAAC;gBAG1C,MAAM,GAAE,MAAM,CAAC,SAAS,CAA2B,EACpD,OAAO,GAAE,aAAa,CAAC,SAAS,CAAyB,EACzD,MAAM,GAAE,YAAY,CAAC,SAAS,CAAwB;IAQxE;;;;OAIG;IACH,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,EAAE,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-aws-account-region-scope.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-account-region-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,wBAAwB,GAAG,GAAG,eAAe,IAAI,aAAa,EAAE,CAAC;AAE7E;;;GAGG;AACH,qBAAa,4BAA4B,CACvC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB;IAOnD,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;aACjC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC;IAPjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAE5C,SAAgB,kBAAkB,EAAE,wBAAwB,CAAC;gBAG1C,MAAM,GAAE,MAAM,CAAC,SAAS,CAA2B,EACpD,OAAO,GAAE,aAAa,CAAC,SAAS,CAAyB,EACzD,MAAM,GAAE,YAAY,CAAC,SAAS,CAAwB;IAQxE;;;;OAIG;IACH,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,EAAE,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAMzE;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAG,QAAQ;CAK9D;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,+BAA+B,0CAIvC,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { SimAws } from "./sim-aws.js";
|
|
|
5
5
|
import { DynamicFactory } from "@kensio/part-factory";
|
|
6
6
|
/**
|
|
7
7
|
* Combined simulated AWS Account and Region scope.
|
|
8
|
-
* This is the real container for simulated services.
|
|
8
|
+
* This is the real Account/Region scope container for simulated services.
|
|
9
9
|
*/
|
|
10
10
|
export class SimAwsAccountRegionContainer {
|
|
11
11
|
simAws;
|
|
@@ -30,6 +30,15 @@ export class SimAwsAccountRegionContainer {
|
|
|
30
30
|
service(serviceName) {
|
|
31
31
|
return this.memo.getOrCreate(String(serviceName), () => this.simAws.createService(serviceName, this));
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Get an installed simulated AWS service by runtime service name.
|
|
35
|
+
*
|
|
36
|
+
* This is useful for optional cross-service dependencies, where one simulated
|
|
37
|
+
* service can use another if it has been independently installed.
|
|
38
|
+
*/
|
|
39
|
+
_requireService(serviceName) {
|
|
40
|
+
return this.memo.getOrCreate(String(serviceName), () => this.simAws._createRequiredService(serviceName, this));
|
|
41
|
+
}
|
|
33
42
|
}
|
|
34
43
|
/**
|
|
35
44
|
* Generates fake simulated AWS resource scopes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-account-region-scope.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-account-region-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAGpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;;GAGG;AACH,MAAM,OAAO,4BAA4B;IAQpB;IACD;IACA;IAPD,IAAI,GAAG,IAAI,IAAI,EAAW,CAAC;IAE5B,kBAAkB,CAA2B;IAE7D,YACmB,SAA4B,IAAI,MAAM,EAAa,EACpD,UAAoC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EACzD,SAAkC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAFrD,WAAM,GAAN,MAAM,CAA6C;QACpD,YAAO,GAAP,OAAO,CAAkD;QACzD,WAAM,GAAN,MAAM,CAAgD;QAEtE,IAAI,CAAC,kBAAkB,GAAG;YACxB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SACnC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO,CAA+B,WAAiB;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CACrD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,CAC7C,CAAC;IACJ,CAAC;CACF;AAOD;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,IAAI,cAAc,CAA2B,GAAG,EAAE,CAAC,CAAC;IAClD,SAAS,EAAE,mBAAmB,EAAE;IAChC,UAAU,EAAE,iBAAiB,EAAE;CAChC,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"sim-aws-account-region-scope.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-account-region-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAGpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;;GAGG;AACH,MAAM,OAAO,4BAA4B;IAQpB;IACD;IACA;IAPD,IAAI,GAAG,IAAI,IAAI,EAAW,CAAC;IAE5B,kBAAkB,CAA2B;IAE7D,YACmB,SAA4B,IAAI,MAAM,EAAa,EACpD,UAAoC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EACzD,SAAkC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAFrD,WAAM,GAAN,MAAM,CAA6C;QACpD,YAAO,GAAP,OAAO,CAAkD;QACzD,WAAM,GAAN,MAAM,CAAgD;QAEtE,IAAI,CAAC,kBAAkB,GAAG;YACxB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SACnC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO,CAA+B,WAAiB;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CACrD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAW,WAAwB;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CACrD,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAW,WAAW,EAAE,IAAI,CAAC,CAChE,CAAC;IACJ,CAAC;CACF;AAOD;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,IAAI,cAAc,CAA2B,GAAG,EAAE,CAAC,CAAC;IAClD,SAAS,EAAE,mBAAmB,EAAE;IAChC,UAAU,EAAE,iBAAiB,EAAE;CAChC,CAAC,CAAC,CAAC"}
|
|
@@ -6,6 +6,9 @@ export type SimAwsAccountId = Brand<string, "SimAwsAccountId">;
|
|
|
6
6
|
export declare const DEFAULT_SIM_AWS_ACCOUNT_ID: SimAwsAccountId;
|
|
7
7
|
/**
|
|
8
8
|
* Container for simulated AWS services in one AWS Account.
|
|
9
|
+
* The real scope is Account/Region in SimAwsAccountRegionContainer.
|
|
10
|
+
* So SimAwsAccount is like an intermediate navigation handler on the way to a
|
|
11
|
+
* full Account/Region scope.
|
|
9
12
|
*/
|
|
10
13
|
export declare class SimAwsAccount<TServices extends SimAwsServiceMap = NoSimAwsServices> {
|
|
11
14
|
private readonly accountRegionScopes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-account.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAGtF,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE/D,eAAO,MAAM,0BAA0B,EAAqB,eAAe,CAAC;AAE5E
|
|
1
|
+
{"version":3,"file":"sim-aws-account.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAGtF,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE/D,eAAO,MAAM,0BAA0B,EAAqB,eAAe,CAAC;AAE5E;;;;;GAKG;AACH,qBAAa,aAAa,CACxB,SAAS,SAAS,gBAAgB,GAAG,gBAAgB;IAGnD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;aACpB,SAAS,EAAE,eAAe;gBADzB,mBAAmB,EAAE,yBAAyB,CAAC,SAAS,CAAC,EAC1D,SAAS,GAAE,eAA4C;IAGzE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,EAAE,aAAa,GAAG,4BAA4B,CAAC,SAAS,CAAC;IAO3E;;;;OAIG;IACH,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,EAAE,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;CAG1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CAErD"}
|
|
@@ -2,6 +2,9 @@ import { faker } from "@faker-js/faker";
|
|
|
2
2
|
export const DEFAULT_SIM_AWS_ACCOUNT_ID = "888888888888";
|
|
3
3
|
/**
|
|
4
4
|
* Container for simulated AWS services in one AWS Account.
|
|
5
|
+
* The real scope is Account/Region in SimAwsAccountRegionContainer.
|
|
6
|
+
* So SimAwsAccount is like an intermediate navigation handler on the way to a
|
|
7
|
+
* full Account/Region scope.
|
|
5
8
|
*/
|
|
6
9
|
export class SimAwsAccount {
|
|
7
10
|
accountRegionScopes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-account.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-account.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIxC,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAiC,CAAC;AAE5E
|
|
1
|
+
{"version":3,"file":"sim-aws-account.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-account.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIxC,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAiC,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAIL;IACD;IAFlB,YACmB,mBAAyD,EAC1D,YAA6B,0BAA0B;QADtD,wBAAmB,GAAnB,mBAAmB,CAAsC;QAC1D,cAAS,GAAT,SAAS,CAA8C;IACtE,CAAC;IAEJ;;OAEG;IACH,MAAM,CAAC,UAA0B;QAC/B,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAChD,IAAI,CAAC,SAAS,EACd,UAAU,CACX,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO,CAA+B,WAAiB;QACrD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAoB,CAAC;AACjE,CAAC"}
|
|
@@ -5,7 +5,10 @@ export declare const AWS_REGION_NAMES: readonly ["us-east-1", "us-east-2", "us-w
|
|
|
5
5
|
export type AwsRegionName = (typeof AWS_REGION_NAMES)[number];
|
|
6
6
|
export declare const DEFAULT_SIM_AWS_REGION_NAME: "us-east-1";
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Container for simulated AWS services in one AWS Region.
|
|
9
|
+
* The real scope is Account/Region in SimAwsAccountRegionContainer.
|
|
10
|
+
* So SimAwsRegion is like an intermediate navigation handler on the way to a
|
|
11
|
+
* full Account/Region scope.
|
|
9
12
|
*/
|
|
10
13
|
export declare class SimAwsRegion<TServices extends SimAwsServiceMap = NoSimAwsServices> {
|
|
11
14
|
private readonly accountRegionScopes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-region.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-region.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,gBAAgB,ghBAmCnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,2BAA2B,EAAG,WAAoB,CAAC;AAEhE
|
|
1
|
+
{"version":3,"file":"sim-aws-region.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-region.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,gBAAgB,ghBAmCnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,2BAA2B,EAAG,WAAoB,CAAC;AAEhE;;;;;GAKG;AACH,qBAAa,YAAY,CACvB,SAAS,SAAS,gBAAgB,GAAG,gBAAgB;IAGnD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;aACpB,UAAU,EAAE,aAAa;gBADxB,mBAAmB,EAAE,yBAAyB,CAAC,SAAS,CAAC,EAC1D,UAAU,GAAE,aAA2C;IAGzE;;OAEG;IACH,OAAO,CACL,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM,GACnC,4BAA4B,CAAC,SAAS,CAAC;IAO1C;;;;OAIG;IACH,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,EAAE,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;CAG1E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAEjD"}
|
|
@@ -37,7 +37,10 @@ export const AWS_REGION_NAMES = [
|
|
|
37
37
|
];
|
|
38
38
|
export const DEFAULT_SIM_AWS_REGION_NAME = "us-east-1";
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
40
|
+
* Container for simulated AWS services in one AWS Region.
|
|
41
|
+
* The real scope is Account/Region in SimAwsAccountRegionContainer.
|
|
42
|
+
* So SimAwsRegion is like an intermediate navigation handler on the way to a
|
|
43
|
+
* full Account/Region scope.
|
|
41
44
|
*/
|
|
42
45
|
export class SimAwsRegion {
|
|
43
46
|
accountRegionScopes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-region.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-region.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;IACd,WAAW;IACX,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,cAAc;IACd,cAAc;IACd,YAAY;IACZ,cAAc;IACd,WAAW;CACH,CAAC;AAIX,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAoB,CAAC;AAEhE
|
|
1
|
+
{"version":3,"file":"sim-aws-region.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-region.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;IACd,WAAW;IACX,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,cAAc;IACd,cAAc;IACd,YAAY;IACZ,cAAc;IACd,WAAW;CACH,CAAC;AAIX,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAoB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IAIJ;IACD;IAFlB,YACmB,mBAAyD,EAC1D,aAA4B,2BAA2B;QADtD,wBAAmB,GAAnB,mBAAmB,CAAsC;QAC1D,eAAU,GAAV,UAAU,CAA6C;IACtE,CAAC;IAEJ;;OAEG;IACH,OAAO,CACL,SAAoC;QAEpC,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAChD,SAA4B,EAC5B,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO,CAA+B,WAAiB;QACrD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -7,6 +7,11 @@ import type { SimAwsServiceController, SimAwsServiceControllerFactory } from "..
|
|
|
7
7
|
/**
|
|
8
8
|
* Top-level container for simulated AWS.
|
|
9
9
|
* Contains Account scopes, Region scopes, Account/Region scopes.
|
|
10
|
+
* Installers for each simulated service install services into the SimAws
|
|
11
|
+
* container.
|
|
12
|
+
* This allows for individual services to be installed as necessary, without
|
|
13
|
+
* importing all of them from the root and requiring every AWS SDK to be
|
|
14
|
+
* installed.
|
|
10
15
|
*/
|
|
11
16
|
export declare class SimAws<TServices extends SimAwsServiceMap = NoSimAwsServices> implements SimAwsAccountRegionScopes<TServices> {
|
|
12
17
|
readonly defaultAccountId: SimAwsAccountId;
|
|
@@ -42,6 +47,17 @@ export declare class SimAws<TServices extends SimAwsServiceMap = NoSimAwsService
|
|
|
42
47
|
* Create an installed simulated AWS service for an Account Region scope.
|
|
43
48
|
*/
|
|
44
49
|
createService<TKey extends keyof TServices>(serviceName: TKey, scope: SimAwsAccountRegionContainer<TServices>): TServices[TKey];
|
|
50
|
+
/**
|
|
51
|
+
* Create an installed simulated AWS service by runtime service name.
|
|
52
|
+
*
|
|
53
|
+
* This is intended for optional cross-service dependencies where TypeScript
|
|
54
|
+
* cannot know that another independently installed service is available.
|
|
55
|
+
*
|
|
56
|
+
* E.g. sim CloudFront needs sim S3 for S3 Origins. This pattern throws a more
|
|
57
|
+
* helpful error message when the user tries to do that without installing
|
|
58
|
+
* both sim services.
|
|
59
|
+
*/
|
|
60
|
+
_createRequiredService<TService>(serviceName: PropertyKey, scope: SimAwsAccountRegionContainer<SimAwsServiceMap>): TService;
|
|
45
61
|
/**
|
|
46
62
|
* Create an installed simulated AWS HTTP service controller.
|
|
47
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,YAAY,EACZ,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,4BAA4B,EAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,kDAAkD,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"sim-aws.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,YAAY,EACZ,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,4BAA4B,EAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,kDAAkD,CAAC;AAE1D;;;;;;;;GAQG;AACH,qBAAa,MAAM,CACjB,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,CACrD,YAAW,yBAAyB,CAAC,SAAS,CAAC;aA2B7B,gBAAgB;aAChB,iBAAiB;aACjB,UAAU,EAAE,mBAAmB,GAC7C,mBAAmB;IA7BvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAGrB;IAEJ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGpB;IAEJ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;IAEJ,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAG7B;IAEJ,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAGvC;gBAGc,gBAAgB,kBAA6B,EAC7C,iBAAiB,cAA8B,EAC/C,UAAU,GAAE,mBAAmB,GAC7C,mBAA2C;IAG/C;;OAEG;IACH,OAAO,CAAC,SAAS,GAAE,MAA8B,GAAG,aAAa,CAAC,SAAS,CAAC;IAc5E;;OAEG;IACH,MAAM,CACJ,UAAU,GAAE,aAAsC,GACjD,YAAY,CAAC,SAAS,CAAC;IAW1B;;OAEG;IACH,kBAAkB,CAChB,SAAS,GAAE,eAAuC,EAClD,UAAU,GAAE,aAAsC,GACjD,4BAA4B,CAAC,SAAS,CAAC;IAgB1C;;OAEG;IACH,cAAc,CACZ,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,oBAAoB,GAC5B,IAAI;IASP;;OAEG;IACH,wBAAwB,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,8BAA8B,GACtC,IAAI;IASP;;OAEG;IACH,aAAa,CAAC,IAAI,SAAS,MAAM,SAAS,EACxC,WAAW,EAAE,IAAI,EACjB,KAAK,EAAE,4BAA4B,CAAC,SAAS,CAAC,GAC7C,SAAS,CAAC,IAAI,CAAC;IAYlB;;;;;;;;;OASG;IACH,sBAAsB,CAAC,QAAQ,EAC7B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,4BAA4B,CAAC,gBAAgB,CAAC,GACpD,QAAQ;IAYX;;OAEG;IACH,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,uBAAuB;IAYrE;;;;OAIG;IACH,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,EAAE,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAIzE;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/C"}
|
|
@@ -5,6 +5,11 @@ import { SimAwsAccountRegionContainer, } from "./sim-aws-account-region-scope.js
|
|
|
5
5
|
/**
|
|
6
6
|
* Top-level container for simulated AWS.
|
|
7
7
|
* Contains Account scopes, Region scopes, Account/Region scopes.
|
|
8
|
+
* Installers for each simulated service install services into the SimAws
|
|
9
|
+
* container.
|
|
10
|
+
* This allows for individual services to be installed as necessary, without
|
|
11
|
+
* importing all of them from the root and requiring every AWS SDK to be
|
|
12
|
+
* installed.
|
|
8
13
|
*/
|
|
9
14
|
export class SimAws {
|
|
10
15
|
defaultAccountId;
|
|
@@ -58,12 +63,18 @@ export class SimAws {
|
|
|
58
63
|
* Install a simulated AWS service factory.
|
|
59
64
|
*/
|
|
60
65
|
installService(serviceName, factory) {
|
|
66
|
+
if (this.serviceFactories.has(serviceName)) {
|
|
67
|
+
throw new Error(`Sim AWS service is already installed: ${String(serviceName)}`);
|
|
68
|
+
}
|
|
61
69
|
this.serviceFactories.set(serviceName, factory);
|
|
62
70
|
}
|
|
63
71
|
/**
|
|
64
72
|
* Install a simulated AWS HTTP service controller factory.
|
|
65
73
|
*/
|
|
66
74
|
installServiceController(serviceName, factory) {
|
|
75
|
+
if (this.serviceControllerFactories.has(serviceName)) {
|
|
76
|
+
throw new Error(`Sim AWS service controller is already installed: ${serviceName}`);
|
|
77
|
+
}
|
|
67
78
|
this.serviceControllerFactories.set(serviceName, factory);
|
|
68
79
|
}
|
|
69
80
|
/**
|
|
@@ -76,6 +87,23 @@ export class SimAws {
|
|
|
76
87
|
}
|
|
77
88
|
return factory(scope);
|
|
78
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Create an installed simulated AWS service by runtime service name.
|
|
92
|
+
*
|
|
93
|
+
* This is intended for optional cross-service dependencies where TypeScript
|
|
94
|
+
* cannot know that another independently installed service is available.
|
|
95
|
+
*
|
|
96
|
+
* E.g. sim CloudFront needs sim S3 for S3 Origins. This pattern throws a more
|
|
97
|
+
* helpful error message when the user tries to do that without installing
|
|
98
|
+
* both sim services.
|
|
99
|
+
*/
|
|
100
|
+
_createRequiredService(serviceName, scope) {
|
|
101
|
+
const factory = this.serviceFactories.get(serviceName);
|
|
102
|
+
if (factory === undefined) {
|
|
103
|
+
throw new Error(`Sim AWS service is not installed: ${String(serviceName)}. Call installer function to install it.`);
|
|
104
|
+
}
|
|
105
|
+
return factory(scope);
|
|
106
|
+
}
|
|
79
107
|
/**
|
|
80
108
|
* Create an installed simulated AWS HTTP service controller.
|
|
81
109
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,aAAa,GAEd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,2BAA2B,EAC3B,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAEL,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAM3C
|
|
1
|
+
{"version":3,"file":"sim-aws.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { StaticFactory } from "@kensio/part-factory";
|
|
2
|
+
export interface SimCloudFrontBehavior {
|
|
3
|
+
pathPattern?: string;
|
|
4
|
+
targetOriginName: string;
|
|
5
|
+
allowedMethods: Set<string>;
|
|
6
|
+
cachedMethods: Set<string>;
|
|
7
|
+
viewerProtocolPolicy?: "allow-all" | "redirect-to-https" | "https-only";
|
|
8
|
+
originPath?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Generate a fake SimCloudFrontBehavior.
|
|
12
|
+
*/
|
|
13
|
+
export declare const simCloudFrontBehaviorFactory: StaticFactory<SimCloudFrontBehavior>;
|
|
14
|
+
//# sourceMappingURL=sim-cloud-front-behavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloud-front-behavior.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/behaviour/sim-cloud-front-behavior.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,EAAE,WAAW,GAAG,mBAAmB,GAAG,YAAY,CAAC;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD;;GAEG;AACH,eAAO,MAAM,4BAA4B,sCAQrC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { StaticFactory } from "@kensio/part-factory";
|
|
2
|
+
/**
|
|
3
|
+
* Generate a fake SimCloudFrontBehavior.
|
|
4
|
+
*/
|
|
5
|
+
export const simCloudFrontBehaviorFactory = new StaticFactory({
|
|
6
|
+
pathPattern: "*",
|
|
7
|
+
targetOriginName: "foobar-origin",
|
|
8
|
+
allowedMethods: new Set(["GET", "HEAD"]),
|
|
9
|
+
cachedMethods: new Set(["GET", "HEAD"]),
|
|
10
|
+
viewerProtocolPolicy: "allow-all",
|
|
11
|
+
originPath: "/object.json",
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=sim-cloud-front-behavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cloud-front-behavior.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/behaviour/sim-cloud-front-behavior.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAUrD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,IAAI,aAAa,CAAwB;IACvC,WAAW,EAAE,GAAG;IAChB,gBAAgB,EAAE,eAAe;IACjC,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,oBAAoB,EAAE,WAAW;IACjC,UAAU,EAAE,cAAc;CAC3B,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
+
import type { CreateDistributionCommand, CreateDistributionCommandOutput } from "@aws-sdk/client-cloudfront";
|
|
3
|
+
import type { SimCloudFrontRegistry } from "../../sim-cloud-front-registry.js";
|
|
4
|
+
import { SimCloudFrontDistribution, type SimCloudFrontDistributionId } from "../../distribution/sim-cloudfront-distribution.js";
|
|
5
|
+
import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
|
|
6
|
+
import { type SimCloudFrontS3OriginResolver } from "../../origin/sim-cloudfront-s3-origin.js";
|
|
7
|
+
/**
|
|
8
|
+
* CloudFront CreateDistributionCommand handler.
|
|
9
|
+
*
|
|
10
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/CreateDistributionCommand/
|
|
11
|
+
*/
|
|
12
|
+
export declare class CreateDistributionCommandHandler implements CommandHandler<CreateDistributionCommand, CreateDistributionCommandOutput> {
|
|
13
|
+
private readonly accountId;
|
|
14
|
+
private readonly distributions;
|
|
15
|
+
private readonly cloudFrontRegistry;
|
|
16
|
+
private readonly s3OriginResolver;
|
|
17
|
+
constructor(accountId: SimAwsAccountId, distributions: Map<SimCloudFrontDistributionId, SimCloudFrontDistribution>, cloudFrontRegistry: SimCloudFrontRegistry, s3OriginResolver: SimCloudFrontS3OriginResolver);
|
|
18
|
+
/**
|
|
19
|
+
* Handle creation of a new CloudFront Distribution.
|
|
20
|
+
*/
|
|
21
|
+
handle(cmd: CreateDistributionCommand): Promise<CreateDistributionCommandOutput>;
|
|
22
|
+
private configureDistribution;
|
|
23
|
+
private configureOrigin;
|
|
24
|
+
private behaviorFromDefaultCacheBehavior;
|
|
25
|
+
private behaviorFromCacheBehavior;
|
|
26
|
+
private requiredTargetOriginId;
|
|
27
|
+
private methods;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=create-distribution.handler.d.ts.map
|
package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-distribution.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/command/create-distribution/create-distribution.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAEV,yBAAyB,EACzB,+BAA+B,EAIhC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EACL,yBAAyB,EACzB,KAAK,2BAA2B,EACjC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,0CAA0C,CAAC;AAMlD;;;;GAIG;AACH,qBAAa,gCAAiC,YAAW,cAAc,CACrE,yBAAyB,EACzB,+BAA+B,CAChC;IAEG,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAI9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBANhB,SAAS,EAAE,eAAe,EAC1B,aAAa,EAAE,GAAG,CACjC,2BAA2B,EAC3B,yBAAyB,CAC1B,EACgB,kBAAkB,EAAE,qBAAqB,EACzC,gBAAgB,EAAE,6BAA6B;IAGlE;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,yBAAyB,GAC7B,OAAO,CAAC,+BAA+B,CAAC;IAmC3C,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,gCAAgC;IAuBxC,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,OAAO;CAMhB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jitter } from "../../../../util/sleep.js";
|
|
2
|
+
import { SimCloudFrontDistribution, } from "../../distribution/sim-cloudfront-distribution.js";
|
|
3
|
+
import { assertDefined } from "../../../../util/defined/defined.js";
|
|
4
|
+
import { SimCloudFrontS3Origin, } from "../../origin/sim-cloudfront-s3-origin.js";
|
|
5
|
+
/**
|
|
6
|
+
* CloudFront CreateDistributionCommand handler.
|
|
7
|
+
*
|
|
8
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/CreateDistributionCommand/
|
|
9
|
+
*/
|
|
10
|
+
export class CreateDistributionCommandHandler {
|
|
11
|
+
accountId;
|
|
12
|
+
distributions;
|
|
13
|
+
cloudFrontRegistry;
|
|
14
|
+
s3OriginResolver;
|
|
15
|
+
constructor(accountId, distributions, cloudFrontRegistry, s3OriginResolver) {
|
|
16
|
+
this.accountId = accountId;
|
|
17
|
+
this.distributions = distributions;
|
|
18
|
+
this.cloudFrontRegistry = cloudFrontRegistry;
|
|
19
|
+
this.s3OriginResolver = s3OriginResolver;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Handle creation of a new CloudFront Distribution.
|
|
23
|
+
*/
|
|
24
|
+
async handle(cmd) {
|
|
25
|
+
await jitter();
|
|
26
|
+
const distributionConfig = cmd.input.DistributionConfig;
|
|
27
|
+
assertDefined(distributionConfig, "CreateDistributionCommand.DistributionConfig");
|
|
28
|
+
const distributionId = this.cloudFrontRegistry.allocateDistributionId();
|
|
29
|
+
const distribution = new SimCloudFrontDistribution(distributionId);
|
|
30
|
+
this.configureDistribution(distribution, distributionConfig);
|
|
31
|
+
this.distributions.set(distribution.distributionId, distribution);
|
|
32
|
+
this.cloudFrontRegistry.registerDistribution(distribution.distributionId, this.accountId);
|
|
33
|
+
return {
|
|
34
|
+
Distribution: {
|
|
35
|
+
Id: distribution.distributionId,
|
|
36
|
+
ARN: `arn:aws:cloudfront::${this.accountId}:distribution/${distribution.distributionId}`,
|
|
37
|
+
Status: "Deployed",
|
|
38
|
+
LastModifiedTime: new Date(),
|
|
39
|
+
InProgressInvalidationBatches: 0,
|
|
40
|
+
DomainName: `${distribution.distributionId.toLowerCase()}.cloudfront.net`,
|
|
41
|
+
DistributionConfig: cmd.input.DistributionConfig,
|
|
42
|
+
},
|
|
43
|
+
Location: `https://cloudfront.amazonaws.com/2020-05-31/distribution/${distribution.distributionId}`,
|
|
44
|
+
$metadata: {},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
configureDistribution(distribution, distributionConfig) {
|
|
48
|
+
for (const alias of distributionConfig.Aliases?.Items ?? []) {
|
|
49
|
+
distribution.addAlternateDomainName(alias);
|
|
50
|
+
}
|
|
51
|
+
for (const origin of distributionConfig.Origins?.Items ?? []) {
|
|
52
|
+
this.configureOrigin(distribution, origin);
|
|
53
|
+
}
|
|
54
|
+
distribution.addBehavior(this.behaviorFromDefaultCacheBehavior(distributionConfig.DefaultCacheBehavior));
|
|
55
|
+
for (const cacheBehavior of distributionConfig.CacheBehaviors?.Items ??
|
|
56
|
+
[]) {
|
|
57
|
+
distribution.addBehavior(this.behaviorFromCacheBehavior(cacheBehavior));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
configureOrigin(distribution, origin) {
|
|
61
|
+
assertDefined(origin.Id, "CloudFront Origin Id");
|
|
62
|
+
assertDefined(origin.DomainName, "CloudFront Origin DomainName");
|
|
63
|
+
if (origin.S3OriginConfig !== undefined) {
|
|
64
|
+
const bucket = this.s3OriginResolver(origin.DomainName);
|
|
65
|
+
assertDefined(bucket, `Sim S3 Bucket for CloudFront Origin ${origin.DomainName}`);
|
|
66
|
+
distribution.addOrigin(origin.Id, new SimCloudFrontS3Origin(bucket, origin.OriginPath));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
throw new Error(`Unsupported sim CloudFront Origin type for Origin ${origin.Id}`);
|
|
70
|
+
}
|
|
71
|
+
behaviorFromDefaultCacheBehavior(cacheBehavior) {
|
|
72
|
+
assertDefined(cacheBehavior, "CloudFront DefaultCacheBehavior");
|
|
73
|
+
return {
|
|
74
|
+
targetOriginName: this.requiredTargetOriginId(cacheBehavior.TargetOriginId),
|
|
75
|
+
allowedMethods: this.methods(cacheBehavior.AllowedMethods, [
|
|
76
|
+
"GET",
|
|
77
|
+
"HEAD",
|
|
78
|
+
]),
|
|
79
|
+
cachedMethods: this.methods(cacheBehavior.AllowedMethods?.CachedMethods, [
|
|
80
|
+
"GET",
|
|
81
|
+
"HEAD",
|
|
82
|
+
]),
|
|
83
|
+
...(cacheBehavior.ViewerProtocolPolicy === undefined
|
|
84
|
+
? {}
|
|
85
|
+
: { viewerProtocolPolicy: cacheBehavior.ViewerProtocolPolicy }),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
behaviorFromCacheBehavior(cacheBehavior) {
|
|
89
|
+
assertDefined(cacheBehavior.PathPattern, "CloudFront CacheBehavior PathPattern");
|
|
90
|
+
return {
|
|
91
|
+
pathPattern: cacheBehavior.PathPattern,
|
|
92
|
+
targetOriginName: this.requiredTargetOriginId(cacheBehavior.TargetOriginId),
|
|
93
|
+
allowedMethods: this.methods(cacheBehavior.AllowedMethods, [
|
|
94
|
+
"GET",
|
|
95
|
+
"HEAD",
|
|
96
|
+
]),
|
|
97
|
+
cachedMethods: this.methods(cacheBehavior.AllowedMethods?.CachedMethods, [
|
|
98
|
+
"GET",
|
|
99
|
+
"HEAD",
|
|
100
|
+
]),
|
|
101
|
+
...(cacheBehavior.ViewerProtocolPolicy === undefined
|
|
102
|
+
? {}
|
|
103
|
+
: { viewerProtocolPolicy: cacheBehavior.ViewerProtocolPolicy }),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
requiredTargetOriginId(targetOriginId) {
|
|
107
|
+
assertDefined(targetOriginId, "CloudFront CacheBehavior TargetOriginId");
|
|
108
|
+
return targetOriginId;
|
|
109
|
+
}
|
|
110
|
+
methods(methods, fallback) {
|
|
111
|
+
return new Set(methods?.Items ?? fallback);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=create-distribution.handler.js.map
|