@kensio/yulin 0.5.0 → 0.6.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/README.md +9 -5
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/serve/controller/sim-aws-service-controller-container.d.ts +1 -3
- package/dist/serve/controller/sim-aws-service-controller-container.d.ts.map +1 -1
- package/dist/serve/controller/sim-aws-service-controller-container.js +1 -12
- package/dist/serve/controller/sim-aws-service-controller-container.js.map +1 -1
- package/dist/serve/controller/sim-service-controller.d.ts +1 -2
- package/dist/serve/controller/sim-service-controller.d.ts.map +1 -1
- package/dist/service/aws/arn.d.ts +3 -3
- package/dist/service/aws/arn.d.ts.map +1 -1
- package/dist/service/aws/arn.js +2 -2
- package/dist/service/aws/arn.js.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.d.ts +11 -16
- package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.js +7 -18
- package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
- package/dist/service/aws/sim-aws-account.d.ts +8 -12
- package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account.js +5 -9
- package/dist/service/aws/sim-aws-account.js.map +1 -1
- package/dist/service/aws/sim-aws-region.d.ts +8 -12
- package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-region.js +5 -9
- package/dist/service/aws/sim-aws-region.js.map +1 -1
- package/dist/service/aws/sim-aws-services.d.ts +12 -11
- package/dist/service/aws/sim-aws-services.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-services.js +1 -1
- package/dist/service/aws/sim-aws-services.js.map +1 -1
- package/dist/service/aws/sim-aws.d.ts +25 -15
- package/dist/service/aws/sim-aws.d.ts.map +1 -1
- package/dist/service/aws/sim-aws.js +35 -13
- package/dist/service/aws/sim-aws.js.map +1 -1
- package/dist/service/dynamodb/index.d.ts +1 -0
- package/dist/service/dynamodb/index.d.ts.map +1 -1
- package/dist/service/dynamodb/index.js +1 -0
- package/dist/service/dynamodb/index.js.map +1 -1
- package/dist/service/dynamodb/install-sim-dynamodb.d.ts +12 -0
- package/dist/service/dynamodb/install-sim-dynamodb.d.ts.map +1 -0
- package/dist/service/dynamodb/install-sim-dynamodb.js +11 -0
- package/dist/service/dynamodb/install-sim-dynamodb.js.map +1 -0
- package/dist/service/s3/index.d.ts +1 -0
- package/dist/service/s3/index.d.ts.map +1 -1
- package/dist/service/s3/index.js +1 -0
- package/dist/service/s3/index.js.map +1 -1
- package/dist/service/s3/install-sim-s3.d.ts +12 -0
- package/dist/service/s3/install-sim-s3.d.ts.map +1 -0
- package/dist/service/s3/install-sim-s3.js +17 -0
- package/dist/service/s3/install-sim-s3.js.map +1 -0
- package/dist/service/s3/serve/sim-s3-controller.d.ts +2 -1
- package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
- package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
- package/dist/service/s3/serve/sim-s3-req-router.d.ts +2 -1
- package/dist/service/s3/serve/sim-s3-req-router.d.ts.map +1 -1
- package/dist/service/s3/serve/sim-s3-req-router.js +2 -4
- package/dist/service/s3/serve/sim-s3-req-router.js.map +1 -1
- package/dist/service/s3/sim-s3.d.ts +6 -0
- package/dist/service/s3/sim-s3.d.ts.map +1 -1
- package/dist/service/s3/sim-s3.js +8 -0
- package/dist/service/s3/sim-s3.js.map +1 -1
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -16,12 +16,14 @@ Create and interact directly with a simulated AWS:
|
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
18
|
import { SimAws } from "@kensio/yulin";
|
|
19
|
+
import { installSimDynamoDb } from "@kensio/yulin/dynamodb"
|
|
19
20
|
import { CreateTableCommand } from "@aws-sdk/client-dynamodb";
|
|
20
21
|
|
|
21
22
|
const simAws = new SimAws();
|
|
23
|
+
installSimDynamoDb(simAws);
|
|
22
24
|
|
|
23
25
|
// Default Account and Region.
|
|
24
|
-
await simAws.dynamoDb
|
|
26
|
+
await simAws.service("dynamoDb").createTable(
|
|
25
27
|
new CreateTableCommand({
|
|
26
28
|
TableName: "FoobarTable",
|
|
27
29
|
KeySchema: [{ AttributeName: "id", KeyType: "HASH" }],
|
|
@@ -29,13 +31,13 @@ await simAws.dynamoDb().createTable(
|
|
|
29
31
|
);
|
|
30
32
|
|
|
31
33
|
// Specify Account.
|
|
32
|
-
await simAws.account("111111111111").dynamoDb
|
|
34
|
+
await simAws.account("111111111111").service("dynamoDb").createTable({ ... });
|
|
33
35
|
|
|
34
36
|
// Specify Region.
|
|
35
|
-
await simAws.region("eu-west-2").dynamoDb
|
|
37
|
+
await simAws.region("eu-west-2").service("dynamoDb").createTable({ ... });
|
|
36
38
|
|
|
37
39
|
// Specify Account and Region.
|
|
38
|
-
await simAws.account("111111111111").region("eu-west-2").dynamoDb
|
|
40
|
+
await simAws.account("111111111111").region("eu-west-2").service("dynamoDb").createTable({ ... });
|
|
39
41
|
```
|
|
40
42
|
|
|
41
43
|
AWS state is simulated internally, so you can test realistic interactions with multiple AWS
|
|
@@ -63,6 +65,7 @@ You can listen on a port to serve your simulated AWS on localhost:
|
|
|
63
65
|
|
|
64
66
|
```typescript
|
|
65
67
|
import { SimAws } from "@kensio/yulin";
|
|
68
|
+
import { installSimS3 } from "@kensio/yulin/s3";
|
|
66
69
|
import { serveSimAws } from "@kensio/yulin/serve";
|
|
67
70
|
import {
|
|
68
71
|
CreateBucketCommand,
|
|
@@ -71,9 +74,10 @@ import {
|
|
|
71
74
|
} from "@aws-sdk/client-s3";
|
|
72
75
|
|
|
73
76
|
const simAws = new SimAws();
|
|
77
|
+
installSimS3(simAws);
|
|
74
78
|
const srv = await serveSimAws(simAws); // Chooses available port on localhost.
|
|
75
79
|
|
|
76
|
-
const simS3 = srv.simAws.region("eu-west-2").s3
|
|
80
|
+
const simS3 = srv.simAws.region("eu-west-2").service("s3");
|
|
77
81
|
await simS3.createBucket(new CreateBucketCommand({ Bucket: "foo-site" }));
|
|
78
82
|
await simS3.putBucketWebsite(new PutBucketWebsiteCommand({
|
|
79
83
|
Bucket: "foo-site",
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { SimAws } from "./service/aws/sim-aws.js";
|
|
2
|
+
export { SimAwsAccount } from "./service/aws/sim-aws-account.js";
|
|
3
|
+
export { SimAwsRegion } from "./service/aws/sim-aws-region.js";
|
|
4
|
+
export { SimAwsAccountRegionContainer } from "./service/aws/sim-aws-account-region-scope.js";
|
|
5
|
+
export type { NoSimAwsServices, SimAwsAccountRegionScopes, SimAwsServiceMap, } from "./service/aws/sim-aws-services.js";
|
|
6
|
+
export type { AwsRegionName } from "./service/aws/sim-aws-region.js";
|
|
7
|
+
export type { SimAwsAccountId } from "./service/aws/sim-aws-account.js";
|
|
8
|
+
export type { SimAwsAccountRegionScope } from "./service/aws/sim-aws-account-region-scope.js";
|
|
2
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,YAAY,EACV,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { SimAws } from "./service/aws/sim-aws.js";
|
|
2
|
+
export { SimAwsAccount } from "./service/aws/sim-aws-account.js";
|
|
3
|
+
export { SimAwsRegion } from "./service/aws/sim-aws-region.js";
|
|
4
|
+
export { SimAwsAccountRegionContainer } from "./service/aws/sim-aws-account-region-scope.js";
|
|
2
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { SimAws } from "../../service/aws/sim-aws.js";
|
|
2
|
-
import type { SimAwsServiceName } from "../../service/aws/sim-aws-services.js";
|
|
3
2
|
import type { SimAwsServiceController } from "./sim-service-controller.js";
|
|
4
3
|
/**
|
|
5
4
|
* Registry for simulated AWS localhost service controllers.
|
|
@@ -7,11 +6,10 @@ import type { SimAwsServiceController } from "./sim-service-controller.js";
|
|
|
7
6
|
export declare class SimAwsServiceControllerContainer {
|
|
8
7
|
private readonly simAws;
|
|
9
8
|
private readonly controllers;
|
|
10
|
-
private readonly controllerFactories;
|
|
11
9
|
constructor(simAws: SimAws);
|
|
12
10
|
/**
|
|
13
11
|
* Get the singleton controller for a simulated AWS service.
|
|
14
12
|
*/
|
|
15
|
-
controllerForService(service:
|
|
13
|
+
controllerForService(service: string): SimAwsServiceController;
|
|
16
14
|
}
|
|
17
15
|
//# sourceMappingURL=sim-aws-service-controller-container.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-service-controller-container.d.ts","sourceRoot":"","sources":["../../../src/serve/controller/sim-aws-service-controller-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-aws-service-controller-container.d.ts","sourceRoot":"","sources":["../../../src/serve/controller/sim-aws-service-controller-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E;;GAEG;AACH,qBAAa,gCAAgC;IAG/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;gBAEtC,MAAM,EAAE,MAAM;IAE3C;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB;CAK/D"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SimS3ServiceController } from "../../service/s3/serve/sim-s3-controller.js";
|
|
2
1
|
import { Memo } from "../../util/memo/memo.js";
|
|
3
2
|
/**
|
|
4
3
|
* Registry for simulated AWS localhost service controllers.
|
|
@@ -6,12 +5,6 @@ import { Memo } from "../../util/memo/memo.js";
|
|
|
6
5
|
export class SimAwsServiceControllerContainer {
|
|
7
6
|
simAws;
|
|
8
7
|
controllers = new Memo();
|
|
9
|
-
controllerFactories = new Map([
|
|
10
|
-
[
|
|
11
|
-
"s3",
|
|
12
|
-
(simAws) => new SimS3ServiceController(simAws),
|
|
13
|
-
],
|
|
14
|
-
]);
|
|
15
8
|
constructor(simAws) {
|
|
16
9
|
this.simAws = simAws;
|
|
17
10
|
}
|
|
@@ -19,11 +12,7 @@ export class SimAwsServiceControllerContainer {
|
|
|
19
12
|
* Get the singleton controller for a simulated AWS service.
|
|
20
13
|
*/
|
|
21
14
|
controllerForService(service) {
|
|
22
|
-
|
|
23
|
-
if (factory === undefined) {
|
|
24
|
-
throw new Error(`No controller implemented for simulated AWS service ${service}`);
|
|
25
|
-
}
|
|
26
|
-
return this.controllers.getOrCreate(service, () => factory(this.simAws));
|
|
15
|
+
return this.controllers.getOrCreate(service, () => this.simAws.createServiceController(service));
|
|
27
16
|
}
|
|
28
17
|
}
|
|
29
18
|
//# sourceMappingURL=sim-aws-service-controller-container.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-service-controller-container.js","sourceRoot":"","sources":["../../../src/serve/controller/sim-aws-service-controller-container.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-aws-service-controller-container.js","sourceRoot":"","sources":["../../../src/serve/controller/sim-aws-service-controller-container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/C;;GAEG;AACH,MAAM,OAAO,gCAAgC;IAGd;IAFZ,WAAW,GAAG,IAAI,IAAI,EAA2B,CAAC;IAEnE,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C;;OAEG;IACH,oBAAoB,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,CAChD,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAC7C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type { SimAwsServiceName } from "../../service/aws/sim-aws-services.js";
|
|
2
1
|
import type { AwsRegionName } from "../../service/aws/sim-aws-region.js";
|
|
3
2
|
import type { SimAws } from "../../service/aws/sim-aws.js";
|
|
4
3
|
export interface SimAwsServiceTarget {
|
|
5
|
-
readonly service:
|
|
4
|
+
readonly service: string;
|
|
6
5
|
readonly resourceName: string;
|
|
7
6
|
readonly regionName?: AwsRegionName;
|
|
8
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,
|
|
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,MAAM,CAAC;IACzB,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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type AwsRegionName } from "./sim-aws-region.js";
|
|
2
2
|
import { type SimAwsAccountId } from "./sim-aws-account.js";
|
|
3
|
-
|
|
4
|
-
export type SimArn = `arn:aws:${
|
|
3
|
+
export type SimArnServiceName = string;
|
|
4
|
+
export type SimArn = `arn:aws:${SimArnServiceName}:${AwsRegionName}:${SimAwsAccountId}:${string}/${string}`;
|
|
5
5
|
export interface SimArnComponents {
|
|
6
6
|
partition: "aws";
|
|
7
|
-
service:
|
|
7
|
+
service: SimArnServiceName;
|
|
8
8
|
region: AwsRegionName;
|
|
9
9
|
accountId: SimAwsAccountId;
|
|
10
10
|
resourceType: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arn.d.ts","sourceRoot":"","sources":["../../../src/service/aws/arn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"arn.d.ts","sourceRoot":"","sources":["../../../src/service/aws/arn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,MAAM,GAChB,WAAW,iBAAiB,IAAI,aAAa,IAAI,eAAe,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAEzF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAGxE"}
|
package/dist/service/aws/arn.js
CHANGED
|
@@ -2,10 +2,10 @@ import { makeAwsRegionName } from "./sim-aws-region.js";
|
|
|
2
2
|
import { makeSimAwsAccountId, } from "./sim-aws-account.js";
|
|
3
3
|
import { DynamicFactory } from "@kensio/part-factory";
|
|
4
4
|
import { faker } from "@faker-js/faker";
|
|
5
|
-
|
|
5
|
+
const defaultSimArnServiceNames = ["s3", "dynamodb"];
|
|
6
6
|
const simArnComponentsFactory = new DynamicFactory(() => ({
|
|
7
7
|
partition: "aws",
|
|
8
|
-
service: faker.helpers.arrayElement(
|
|
8
|
+
service: faker.helpers.arrayElement(defaultSimArnServiceNames),
|
|
9
9
|
region: makeAwsRegionName(),
|
|
10
10
|
accountId: makeSimAwsAccountId(),
|
|
11
11
|
resourceType: "resource",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arn.js","sourceRoot":"","sources":["../../../src/service/aws/arn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"arn.js","sourceRoot":"","sources":["../../../src/service/aws/arn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAgBxC,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,UAAU,CAAU,CAAC;AAE9D,MAAM,uBAAuB,GAAG,IAAI,cAAc,CAAmB,GAAG,EAAE,CAAC,CAAC;IAC1E,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,yBAAyB,CAAC;IAC9D,MAAM,EAAE,iBAAiB,EAAE;IAC3B,SAAS,EAAE,mBAAmB,EAAE;IAChC,YAAY,EAAE,UAAU;IACxB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;CACtD,CAAC,CAAC,CAAC;AAEJ;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,SAAqC;IAC9D,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,OAAO,OAAO,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;AAC9J,CAAC"}
|
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
import { type SimAwsAccount, type SimAwsAccountId } from "./sim-aws-account.js";
|
|
2
2
|
import { type AwsRegionName, type SimAwsRegion } from "./sim-aws-region.js";
|
|
3
|
-
import type {
|
|
4
|
-
import { SimDynamoDb } from "../dynamodb/sim-dynamodb.js";
|
|
5
|
-
import { SimS3 } from "../s3/sim-s3.js";
|
|
3
|
+
import type { NoSimAwsServices, SimAwsServiceMap } from "./sim-aws-services.js";
|
|
6
4
|
import { SimAws } from "./sim-aws.js";
|
|
7
5
|
import { DynamicFactory } from "@kensio/part-factory";
|
|
8
|
-
import type { SimS3GlobalRegistry } from "../s3/sim-s3-global-registry.js";
|
|
9
6
|
export type SimAccountRegionScopeKey = `${SimAwsAccountId}:${AwsRegionName}`;
|
|
10
7
|
/**
|
|
11
8
|
* Combined simulated AWS Account and Region scope.
|
|
9
|
+
* This is the real container for simulated services.
|
|
12
10
|
*/
|
|
13
|
-
export declare class SimAwsAccountRegionContainer
|
|
11
|
+
export declare class SimAwsAccountRegionContainer<TServices extends SimAwsServiceMap = NoSimAwsServices> {
|
|
14
12
|
private readonly simAws;
|
|
15
|
-
readonly account: SimAwsAccount
|
|
16
|
-
readonly region: SimAwsRegion
|
|
17
|
-
private readonly s3GlobalRegistry;
|
|
13
|
+
readonly account: SimAwsAccount<TServices>;
|
|
14
|
+
readonly region: SimAwsRegion<TServices>;
|
|
18
15
|
private readonly memo;
|
|
19
|
-
|
|
20
|
-
constructor(simAws?: SimAws
|
|
16
|
+
readonly accountRegionScope: SimAwsAccountRegionScope;
|
|
17
|
+
constructor(simAws?: SimAws<TServices>, account?: SimAwsAccount<TServices>, region?: SimAwsRegion<TServices>);
|
|
21
18
|
/**
|
|
22
|
-
* Get
|
|
19
|
+
* Get an installed simulated AWS service for this account and region.
|
|
20
|
+
* The service must be installed with the appropriate installer function
|
|
21
|
+
* first.
|
|
23
22
|
*/
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Get the simulated S3 service for this account and region.
|
|
27
|
-
*/
|
|
28
|
-
s3(): SimS3;
|
|
23
|
+
service<TKey extends keyof TServices>(serviceName: TKey): TServices[TKey];
|
|
29
24
|
}
|
|
30
25
|
export interface SimAwsAccountRegionScope {
|
|
31
26
|
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,
|
|
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;CAK1E;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,+BAA+B,0CAIvC,CAAC"}
|
|
@@ -1,45 +1,34 @@
|
|
|
1
1
|
import { makeSimAwsAccountId, } from "./sim-aws-account.js";
|
|
2
2
|
import { makeAwsRegionName, } from "./sim-aws-region.js";
|
|
3
|
-
import { SimDynamoDb } from "../dynamodb/sim-dynamodb.js";
|
|
4
|
-
import { SimS3 } from "../s3/sim-s3.js";
|
|
5
3
|
import { Memo } from "../../util/memo/memo.js";
|
|
6
4
|
import { SimAws } from "./sim-aws.js";
|
|
7
5
|
import { DynamicFactory } from "@kensio/part-factory";
|
|
8
6
|
/**
|
|
9
7
|
* Combined simulated AWS Account and Region scope.
|
|
8
|
+
* This is the real container for simulated services.
|
|
10
9
|
*/
|
|
11
10
|
export class SimAwsAccountRegionContainer {
|
|
12
11
|
simAws;
|
|
13
12
|
account;
|
|
14
13
|
region;
|
|
15
|
-
s3GlobalRegistry;
|
|
16
14
|
memo = new Memo();
|
|
17
15
|
accountRegionScope;
|
|
18
|
-
constructor(simAws = new SimAws(), account = this.simAws.account(), region = this.simAws.region()
|
|
16
|
+
constructor(simAws = new SimAws(), account = this.simAws.account(), region = this.simAws.region()) {
|
|
19
17
|
this.simAws = simAws;
|
|
20
18
|
this.account = account;
|
|
21
19
|
this.region = region;
|
|
22
|
-
this.s3GlobalRegistry = s3GlobalRegistry;
|
|
23
20
|
this.accountRegionScope = {
|
|
24
21
|
accountId: this.account.accountId,
|
|
25
22
|
regionName: this.region.regionName,
|
|
26
23
|
};
|
|
27
24
|
}
|
|
28
25
|
/**
|
|
29
|
-
* Get
|
|
26
|
+
* Get an installed simulated AWS service for this account and region.
|
|
27
|
+
* The service must be installed with the appropriate installer function
|
|
28
|
+
* first.
|
|
30
29
|
*/
|
|
31
|
-
|
|
32
|
-
return this.memo.getOrCreate(
|
|
33
|
-
return new SimDynamoDb(this.accountRegionScope, this.simAws.background);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Get the simulated S3 service for this account and region.
|
|
38
|
-
*/
|
|
39
|
-
s3() {
|
|
40
|
-
return this.memo.getOrCreate("s3", () => {
|
|
41
|
-
return new SimS3(this.accountRegionScope, this.s3GlobalRegistry);
|
|
42
|
-
});
|
|
30
|
+
service(serviceName) {
|
|
31
|
+
return this.memo.getOrCreate(String(serviceName), () => this.simAws.createService(serviceName, this));
|
|
43
32
|
}
|
|
44
33
|
}
|
|
45
34
|
/**
|
|
@@ -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,
|
|
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,30 +1,26 @@
|
|
|
1
|
-
import type { SimDynamoDb } from "../dynamodb/sim-dynamodb.js";
|
|
2
1
|
import type { AwsRegionName } from "./sim-aws-region.js";
|
|
3
|
-
import type { SimS3 } from "../s3/sim-s3.js";
|
|
4
2
|
import type { Brand } from "../../util/brand.type.js";
|
|
5
|
-
import type { SimAwsAccountRegionScopes,
|
|
3
|
+
import type { NoSimAwsServices, SimAwsAccountRegionScopes, SimAwsServiceMap } from "./sim-aws-services.js";
|
|
6
4
|
import type { SimAwsAccountRegionContainer } from "./sim-aws-account-region-scope.js";
|
|
7
5
|
export type SimAwsAccountId = Brand<string, "SimAwsAccountId">;
|
|
8
6
|
export declare const DEFAULT_SIM_AWS_ACCOUNT_ID: SimAwsAccountId;
|
|
9
7
|
/**
|
|
10
8
|
* Container for simulated AWS services in one AWS Account.
|
|
11
9
|
*/
|
|
12
|
-
export declare class SimAwsAccount
|
|
10
|
+
export declare class SimAwsAccount<TServices extends SimAwsServiceMap = NoSimAwsServices> {
|
|
13
11
|
private readonly accountRegionScopes;
|
|
14
12
|
readonly accountId: SimAwsAccountId;
|
|
15
|
-
constructor(accountRegionScopes: SimAwsAccountRegionScopes
|
|
13
|
+
constructor(accountRegionScopes: SimAwsAccountRegionScopes<TServices>, accountId?: SimAwsAccountId);
|
|
16
14
|
/**
|
|
17
15
|
* Get a simulated AWS Region scoped for this Account.
|
|
18
16
|
*/
|
|
19
|
-
region(regionName?: AwsRegionName): SimAwsAccountRegionContainer
|
|
17
|
+
region(regionName?: AwsRegionName): SimAwsAccountRegionContainer<TServices>;
|
|
20
18
|
/**
|
|
21
|
-
* Get
|
|
19
|
+
* Get an installed simulated AWS service for this Account's default Region.
|
|
20
|
+
* The service must be installed with the appropriate installer function
|
|
21
|
+
* first.
|
|
22
22
|
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Get the simulated S3 service for this Account.
|
|
26
|
-
*/
|
|
27
|
-
s3(): SimS3;
|
|
23
|
+
service<TKey extends keyof TServices>(serviceName: TKey): TServices[TKey];
|
|
28
24
|
}
|
|
29
25
|
/**
|
|
30
26
|
* Generate a fake AWS Account ID.
|
|
@@ -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,
|
|
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;;GAEG;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"}
|
|
@@ -17,16 +17,12 @@ export class SimAwsAccount {
|
|
|
17
17
|
return this.accountRegionScopes.accountRegionScope(this.accountId, regionName);
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* Get
|
|
20
|
+
* Get an installed simulated AWS service for this Account's default Region.
|
|
21
|
+
* The service must be installed with the appropriate installer function
|
|
22
|
+
* first.
|
|
21
23
|
*/
|
|
22
|
-
|
|
23
|
-
return this.region().
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Get the simulated S3 service for this Account.
|
|
27
|
-
*/
|
|
28
|
-
s3() {
|
|
29
|
-
return this.region().s3();
|
|
24
|
+
service(serviceName) {
|
|
25
|
+
return this.region().service(serviceName);
|
|
30
26
|
}
|
|
31
27
|
}
|
|
32
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-account.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-account.ts"],"names":[],"mappings":"
|
|
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;;GAEG;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"}
|
|
@@ -1,30 +1,26 @@
|
|
|
1
1
|
import type { SimAwsAccountId } from "./sim-aws-account.js";
|
|
2
2
|
import type { SimAwsAccountRegionContainer } from "./sim-aws-account-region-scope.js";
|
|
3
|
-
import type { SimAwsAccountRegionScopes,
|
|
4
|
-
import type { SimS3 } from "../s3/sim-s3.js";
|
|
5
|
-
import type { SimDynamoDb } from "../dynamodb/sim-dynamodb.js";
|
|
3
|
+
import type { NoSimAwsServices, SimAwsAccountRegionScopes, SimAwsServiceMap } from "./sim-aws-services.js";
|
|
6
4
|
export declare const AWS_REGION_NAMES: readonly ["us-east-1", "us-east-2", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-2", "ap-southeast-3", "ap-southeast-5", "ap-southeast-4", "ap-south-1", "ap-southeast-6", "ap-northeast-3", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "ap-east-2", "ap-southeast-7", "ap-northeast-1", "ca-central-1", "ca-west-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-south-1", "eu-west-3", "eu-south-2", "eu-north-1", "eu-central-2", "il-central-1", "mx-central-1", "me-south-1", "me-central-1", "sa-east-1"];
|
|
7
5
|
export type AwsRegionName = (typeof AWS_REGION_NAMES)[number];
|
|
8
6
|
export declare const DEFAULT_SIM_AWS_REGION_NAME: "us-east-1";
|
|
9
7
|
/**
|
|
10
8
|
* Simulated AWS Region.
|
|
11
9
|
*/
|
|
12
|
-
export declare class SimAwsRegion
|
|
10
|
+
export declare class SimAwsRegion<TServices extends SimAwsServiceMap = NoSimAwsServices> {
|
|
13
11
|
private readonly accountRegionScopes;
|
|
14
12
|
readonly regionName: AwsRegionName;
|
|
15
|
-
constructor(accountRegionScopes: SimAwsAccountRegionScopes
|
|
13
|
+
constructor(accountRegionScopes: SimAwsAccountRegionScopes<TServices>, regionName?: AwsRegionName);
|
|
16
14
|
/**
|
|
17
15
|
* Get a simulated AWS Account scoped for this Region.
|
|
18
16
|
*/
|
|
19
|
-
account(accountId?: SimAwsAccountId | string): SimAwsAccountRegionContainer
|
|
17
|
+
account(accountId?: SimAwsAccountId | string): SimAwsAccountRegionContainer<TServices>;
|
|
20
18
|
/**
|
|
21
|
-
* Get
|
|
19
|
+
* Get an installed simulated AWS service for this Region's default Account.
|
|
20
|
+
* The service must be installed with the appropriate installer function
|
|
21
|
+
* first.
|
|
22
22
|
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Get the simulated S3 service scoped for this Region.
|
|
26
|
-
*/
|
|
27
|
-
s3(): SimS3;
|
|
23
|
+
service<TKey extends keyof TServices>(serviceName: TKey): TServices[TKey];
|
|
28
24
|
}
|
|
29
25
|
/**
|
|
30
26
|
* Choose a random AWS Region name.
|
|
@@ -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,yBAAyB,EACzB,
|
|
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;;GAEG;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"}
|
|
@@ -53,16 +53,12 @@ export class SimAwsRegion {
|
|
|
53
53
|
return this.accountRegionScopes.accountRegionScope(accountId, this.regionName);
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
|
-
* Get
|
|
56
|
+
* Get an installed simulated AWS service for this Region's default Account.
|
|
57
|
+
* The service must be installed with the appropriate installer function
|
|
58
|
+
* first.
|
|
57
59
|
*/
|
|
58
|
-
|
|
59
|
-
return this.account().
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get the simulated S3 service scoped for this Region.
|
|
63
|
-
*/
|
|
64
|
-
s3() {
|
|
65
|
-
return this.account().s3();
|
|
60
|
+
service(serviceName) {
|
|
61
|
+
return this.account().service(serviceName);
|
|
66
62
|
}
|
|
67
63
|
}
|
|
68
64
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-region.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-region.ts"],"names":[],"mappings":"
|
|
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;;GAEG;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"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import type { SimDynamoDb } from "../dynamodb/index.js";
|
|
2
|
-
import type { SimS3 } from "../s3/sim-s3.js";
|
|
3
1
|
import type { SimAwsAccountId } from "./sim-aws-account.js";
|
|
4
2
|
import type { AwsRegionName } from "./sim-aws-region.js";
|
|
5
3
|
import type { SimAwsAccountRegionContainer } from "./sim-aws-account-region-scope.js";
|
|
6
4
|
/**
|
|
7
|
-
*
|
|
5
|
+
* Empty installed service map for a simulated AWS environment.
|
|
8
6
|
*/
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export type NoSimAwsServices = Record<never, never>;
|
|
8
|
+
/**
|
|
9
|
+
* Installed service map for a simulated AWS environment.
|
|
10
|
+
*/
|
|
11
|
+
export type SimAwsServiceMap = object;
|
|
12
|
+
/**
|
|
13
|
+
* Runtime factory for creating a simulated AWS service in an Account Region scope.
|
|
14
|
+
*/
|
|
15
|
+
export type SimAwsServiceFactory = (scope: SimAwsAccountRegionContainer<SimAwsServiceMap>) => unknown;
|
|
13
16
|
/**
|
|
14
17
|
* Interface for accessing combined simulated AWS Account Region scopes.
|
|
15
18
|
*/
|
|
16
|
-
export interface SimAwsAccountRegionScopes {
|
|
17
|
-
accountRegionScope(accountId?: SimAwsAccountId, regionName?: AwsRegionName): SimAwsAccountRegionContainer
|
|
19
|
+
export interface SimAwsAccountRegionScopes<TServices extends SimAwsServiceMap = NoSimAwsServices> {
|
|
20
|
+
accountRegionScope(accountId?: SimAwsAccountId, regionName?: AwsRegionName): SimAwsAccountRegionContainer<TServices>;
|
|
18
21
|
}
|
|
19
|
-
export declare const SIM_AWS_SERVICE_NAMES: readonly ["dynamodb", "s3"];
|
|
20
|
-
export type SimAwsServiceName = (typeof SIM_AWS_SERVICE_NAMES)[number];
|
|
21
22
|
//# sourceMappingURL=sim-aws-services.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-services.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sim-aws-services.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEtF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,KAAK,EAAE,4BAA4B,CAAC,gBAAgB,CAAC,KAClD,OAAO,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,yBAAyB,CACxC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB;IAErD,kBAAkB,CAChB,SAAS,CAAC,EAAE,eAAe,EAC3B,UAAU,CAAC,EAAE,aAAa,GACzB,4BAA4B,CAAC,SAAS,CAAC,CAAC;CAC5C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=sim-aws-services.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-services.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-aws-services.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws-services.ts"],"names":[],"mappings":""}
|
|
@@ -1,47 +1,57 @@
|
|
|
1
1
|
import { SimAwsAccount, type SimAwsAccountId } from "./sim-aws-account.js";
|
|
2
2
|
import { type BackgroundCompleter, type BackgroundScheduler } from "../../util/background/background.js";
|
|
3
3
|
import { SimAwsRegion, type AwsRegionName } from "./sim-aws-region.js";
|
|
4
|
-
import type { SimAwsAccountRegionScopes,
|
|
5
|
-
import type { SimS3 } from "../s3/sim-s3.js";
|
|
6
|
-
import type { SimDynamoDb } from "../dynamodb/sim-dynamodb.js";
|
|
4
|
+
import type { NoSimAwsServices, SimAwsAccountRegionScopes, SimAwsServiceFactory, SimAwsServiceMap } from "./sim-aws-services.js";
|
|
7
5
|
import { SimAwsAccountRegionContainer } from "./sim-aws-account-region-scope.js";
|
|
8
|
-
import {
|
|
6
|
+
import type { SimAwsServiceController, SimAwsServiceControllerFactory } from "../../serve/controller/sim-service-controller.js";
|
|
9
7
|
/**
|
|
10
8
|
* Top-level container for simulated AWS.
|
|
9
|
+
* Contains Account scopes, Region scopes, Account/Region scopes.
|
|
11
10
|
*/
|
|
12
|
-
export declare class SimAws implements
|
|
11
|
+
export declare class SimAws<TServices extends SimAwsServiceMap = NoSimAwsServices> implements SimAwsAccountRegionScopes<TServices> {
|
|
13
12
|
readonly defaultAccountId: SimAwsAccountId;
|
|
14
13
|
readonly defaultRegionName: "us-east-1";
|
|
15
14
|
readonly background: BackgroundScheduler & BackgroundCompleter;
|
|
16
15
|
private readonly accounts;
|
|
17
16
|
private readonly regions;
|
|
18
17
|
private readonly accountRegionScopes;
|
|
19
|
-
private readonly
|
|
18
|
+
private readonly serviceFactories;
|
|
19
|
+
private readonly serviceControllerFactories;
|
|
20
20
|
constructor(defaultAccountId?: SimAwsAccountId, defaultRegionName?: "us-east-1", background?: BackgroundScheduler & BackgroundCompleter);
|
|
21
21
|
/**
|
|
22
22
|
* Get a simulated AWS Account.
|
|
23
23
|
*/
|
|
24
|
-
account(accountId?: string): SimAwsAccount
|
|
24
|
+
account(accountId?: string): SimAwsAccount<TServices>;
|
|
25
25
|
/**
|
|
26
26
|
* Get a simulated AWS Account Region scope.
|
|
27
27
|
*/
|
|
28
|
-
region(regionName?: AwsRegionName): SimAwsRegion
|
|
28
|
+
region(regionName?: AwsRegionName): SimAwsRegion<TServices>;
|
|
29
29
|
/**
|
|
30
30
|
* Get an Account Region scope in this simulated AWS.
|
|
31
31
|
*/
|
|
32
|
-
accountRegionScope(accountId?: SimAwsAccountId, regionName?: AwsRegionName): SimAwsAccountRegionContainer
|
|
32
|
+
accountRegionScope(accountId?: SimAwsAccountId, regionName?: AwsRegionName): SimAwsAccountRegionContainer<TServices>;
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
34
|
+
* Install a simulated AWS service factory.
|
|
35
35
|
*/
|
|
36
|
-
|
|
36
|
+
installService(serviceName: PropertyKey, factory: SimAwsServiceFactory): void;
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* Install a simulated AWS HTTP service controller factory.
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
installServiceController(serviceName: string, factory: SimAwsServiceControllerFactory): void;
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* Create an installed simulated AWS service for an Account Region scope.
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
createService<TKey extends keyof TServices>(serviceName: TKey, scope: SimAwsAccountRegionContainer<TServices>): TServices[TKey];
|
|
45
|
+
/**
|
|
46
|
+
* Create an installed simulated AWS HTTP service controller.
|
|
47
|
+
*/
|
|
48
|
+
createServiceController(serviceName: string): SimAwsServiceController;
|
|
49
|
+
/**
|
|
50
|
+
* Get an installed simulated AWS service in the default Account Region scope.
|
|
51
|
+
* The service must be installed with the appropriate installer function
|
|
52
|
+
* first.
|
|
53
|
+
*/
|
|
54
|
+
service<TKey extends keyof TServices>(serviceName: TKey): TServices[TKey];
|
|
45
55
|
/**
|
|
46
56
|
* Wait for all outstanding background tasks to complete.
|
|
47
57
|
*/
|
|
@@ -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,yBAAyB,EACzB,
|
|
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;;;GAGG;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;IAIP;;OAEG;IACH,wBAAwB,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,8BAA8B,GACtC,IAAI;IAIP;;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;;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"}
|
|
@@ -2,10 +2,9 @@ import { DEFAULT_SIM_AWS_ACCOUNT_ID, SimAwsAccount, } from "./sim-aws-account.js
|
|
|
2
2
|
import { BackgroundTasks, } from "../../util/background/background.js";
|
|
3
3
|
import { DEFAULT_SIM_AWS_REGION_NAME, SimAwsRegion, } from "./sim-aws-region.js";
|
|
4
4
|
import { SimAwsAccountRegionContainer, } from "./sim-aws-account-region-scope.js";
|
|
5
|
-
import { Memo } from "../../util/memo/memo.js";
|
|
6
|
-
import { SimS3GlobalRegistry } from "../s3/sim-s3-global-registry.js";
|
|
7
5
|
/**
|
|
8
6
|
* Top-level container for simulated AWS.
|
|
7
|
+
* Contains Account scopes, Region scopes, Account/Region scopes.
|
|
9
8
|
*/
|
|
10
9
|
export class SimAws {
|
|
11
10
|
defaultAccountId;
|
|
@@ -14,7 +13,8 @@ export class SimAws {
|
|
|
14
13
|
accounts = new Map();
|
|
15
14
|
regions = new Map();
|
|
16
15
|
accountRegionScopes = new Map();
|
|
17
|
-
|
|
16
|
+
serviceFactories = new Map();
|
|
17
|
+
serviceControllerFactories = new Map();
|
|
18
18
|
constructor(defaultAccountId = DEFAULT_SIM_AWS_ACCOUNT_ID, defaultRegionName = DEFAULT_SIM_AWS_REGION_NAME, background = new BackgroundTasks()) {
|
|
19
19
|
this.defaultAccountId = defaultAccountId;
|
|
20
20
|
this.defaultRegionName = defaultRegionName;
|
|
@@ -49,28 +49,50 @@ export class SimAws {
|
|
|
49
49
|
const scopeKey = `${accountId}:${regionName}`;
|
|
50
50
|
let accountRegionScope = this.accountRegionScopes.get(scopeKey);
|
|
51
51
|
if (accountRegionScope === undefined) {
|
|
52
|
-
accountRegionScope = new SimAwsAccountRegionContainer(this, this.account(accountId), this.region(regionName)
|
|
52
|
+
accountRegionScope = new SimAwsAccountRegionContainer(this, this.account(accountId), this.region(regionName));
|
|
53
53
|
this.accountRegionScopes.set(scopeKey, accountRegionScope);
|
|
54
54
|
}
|
|
55
55
|
return accountRegionScope;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* Install a simulated AWS service factory.
|
|
59
59
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
installService(serviceName, factory) {
|
|
61
|
+
this.serviceFactories.set(serviceName, factory);
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
|
-
*
|
|
64
|
+
* Install a simulated AWS HTTP service controller factory.
|
|
65
65
|
*/
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
installServiceController(serviceName, factory) {
|
|
67
|
+
this.serviceControllerFactories.set(serviceName, factory);
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* Create an installed simulated AWS service for an Account Region scope.
|
|
71
71
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
createService(serviceName, scope) {
|
|
73
|
+
const factory = this.serviceFactories.get(serviceName);
|
|
74
|
+
if (factory === undefined) {
|
|
75
|
+
throw new Error(`Sim AWS service is not installed: ${String(serviceName)}. Call installer function to install it.`);
|
|
76
|
+
}
|
|
77
|
+
return factory(scope);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create an installed simulated AWS HTTP service controller.
|
|
81
|
+
*/
|
|
82
|
+
createServiceController(serviceName) {
|
|
83
|
+
const factory = this.serviceControllerFactories.get(serviceName);
|
|
84
|
+
if (factory === undefined) {
|
|
85
|
+
throw new Error(`No controller installed for simulated AWS service ${serviceName}`);
|
|
86
|
+
}
|
|
87
|
+
return factory(this);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get an installed simulated AWS service in the default Account Region scope.
|
|
91
|
+
* The service must be installed with the appropriate installer function
|
|
92
|
+
* first.
|
|
93
|
+
*/
|
|
94
|
+
service(serviceName) {
|
|
95
|
+
return this.accountRegionScope().service(serviceName);
|
|
74
96
|
}
|
|
75
97
|
/**
|
|
76
98
|
* Wait for all outstanding background tasks to complete.
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"sim-aws.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/dynamodb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/dynamodb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/dynamodb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/dynamodb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SimAws } from "../aws/sim-aws.js";
|
|
2
|
+
import type { SimAwsServiceMap } from "../aws/sim-aws-services.js";
|
|
3
|
+
import { SimDynamoDb } from "./sim-dynamodb.js";
|
|
4
|
+
export { SimDynamoDb } from "./sim-dynamodb.js";
|
|
5
|
+
export interface SimDynamoDbServices {
|
|
6
|
+
dynamoDb: SimDynamoDb;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Install simulated DynamoDB into a simulated AWS environment.
|
|
10
|
+
*/
|
|
11
|
+
export declare function installSimDynamoDb<TServices extends SimAwsServiceMap>(simAws: SimAws<TServices>): asserts simAws is SimAws<TServices & SimDynamoDbServices>;
|
|
12
|
+
//# sourceMappingURL=install-sim-dynamodb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-sim-dynamodb.d.ts","sourceRoot":"","sources":["../../../src/service/dynamodb/install-sim-dynamodb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,gBAAgB,EACnE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,mBAAmB,CAAC,CAI3D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SimDynamoDb } from "./sim-dynamodb.js";
|
|
2
|
+
export { SimDynamoDb } from "./sim-dynamodb.js";
|
|
3
|
+
/**
|
|
4
|
+
* Install simulated DynamoDB into a simulated AWS environment.
|
|
5
|
+
*/
|
|
6
|
+
export function installSimDynamoDb(simAws) {
|
|
7
|
+
simAws.installService("dynamoDb", (scope) => {
|
|
8
|
+
return new SimDynamoDb(scope.accountRegionScope, simAws.background);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=install-sim-dynamodb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-sim-dynamodb.js","sourceRoot":"","sources":["../../../src/service/dynamodb/install-sim-dynamodb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAyB;IAEzB,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/service/s3/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SimAws } from "../aws/sim-aws.js";
|
|
2
|
+
import type { SimAwsServiceMap } from "../aws/sim-aws-services.js";
|
|
3
|
+
import { SimS3 } from "./sim-s3.js";
|
|
4
|
+
export { SimS3 } from "./sim-s3.js";
|
|
5
|
+
export interface SimS3Services {
|
|
6
|
+
s3: SimS3;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Install simulated S3 into a simulated AWS environment.
|
|
10
|
+
*/
|
|
11
|
+
export declare function installSimS3<TServices extends SimAwsServiceMap>(simAws: SimAws<TServices>): asserts simAws is SimAws<TServices & SimS3Services>;
|
|
12
|
+
//# sourceMappingURL=install-sim-s3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/install-sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,KAAK,CAAC;CACX;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,SAAS,gBAAgB,EAC7D,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,CAYrD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SimS3 } from "./sim-s3.js";
|
|
2
|
+
import { SimS3GlobalRegistry } from "./sim-s3-global-registry.js";
|
|
3
|
+
import { SimS3ServiceController } from "./serve/sim-s3-controller.js";
|
|
4
|
+
export { SimS3 } from "./sim-s3.js";
|
|
5
|
+
/**
|
|
6
|
+
* Install simulated S3 into a simulated AWS environment.
|
|
7
|
+
*/
|
|
8
|
+
export function installSimS3(simAws) {
|
|
9
|
+
const s3GlobalRegistry = new SimS3GlobalRegistry();
|
|
10
|
+
simAws.installService("s3", (scope) => {
|
|
11
|
+
return new SimS3(scope.accountRegionScope, s3GlobalRegistry);
|
|
12
|
+
});
|
|
13
|
+
simAws.installServiceController("s3", (controllerSimAws) => {
|
|
14
|
+
return new SimS3ServiceController(controllerSimAws);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=install-sim-s3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-sim-s3.js","sourceRoot":"","sources":["../../../src/service/s3/install-sim-s3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMpC;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAyB;IAEzB,MAAM,gBAAgB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAEnD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;QACpC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,EAAE;QACzD,OAAO,IAAI,sBAAsB,CAC/B,gBAAyC,CAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimAws } from "../../aws/sim-aws.js";
|
|
2
|
+
import type { SimS3Services } from "../install-sim-s3.js";
|
|
2
3
|
import type { SimAwsServiceController, SimAwsServiceTarget } from "../../../serve/controller/sim-service-controller.js";
|
|
3
4
|
/**
|
|
4
5
|
* Localhost HTTP controller for simulated S3.
|
|
@@ -6,7 +7,7 @@ import type { SimAwsServiceController, SimAwsServiceTarget } from "../../../serv
|
|
|
6
7
|
export declare class SimS3ServiceController implements SimAwsServiceController {
|
|
7
8
|
private readonly router;
|
|
8
9
|
private readonly getObjectController;
|
|
9
|
-
constructor(simAws: SimAws);
|
|
10
|
+
constructor(simAws: SimAws<SimS3Services>);
|
|
10
11
|
/**
|
|
11
12
|
* Handle an HTTP request routed to a simulated S3 Bucket.
|
|
12
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-controller.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,qDAAqD,CAAC;AAI7D;;GAEG;AACH,qBAAa,sBAAuB,YAAW,uBAAuB;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;gBAEnD,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"sim-s3-controller.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,qDAAqD,CAAC;AAI7D;;GAEG;AACH,qBAAa,sBAAuB,YAAW,uBAAuB;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;gBAEnD,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC;IAKzC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC;CAkBrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-controller.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-s3-controller.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAChB,MAAM,CAAqB;IAC3B,mBAAmB,CAA2B;IAE/D,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,MAA2B,EAC3B,OAAgB;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;gBACjC,MAAM,EAAE,KAAK,CAAC,UAAU;gBACxB,OAAO,EAAE;oBACP,cAAc,EAAE,2BAA2B;iBAC5C;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAC3C,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,SAAS,EACf,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { SimAws } from "../../aws/sim-aws.js";
|
|
2
2
|
import type { SimS3Bucket } from "../bucket/s3-bucket.js";
|
|
3
3
|
import type { SimAwsServiceTarget } from "../../../serve/controller/sim-service-controller.js";
|
|
4
|
+
import type { SimS3Services } from "../install-sim-s3.js";
|
|
4
5
|
export interface SimS3GetObjectRoute {
|
|
5
6
|
readonly action: "getObject";
|
|
6
7
|
readonly bucket: SimS3Bucket;
|
|
@@ -17,7 +18,7 @@ export type SimS3Route = SimS3GetObjectRoute | SimS3RouteFailure;
|
|
|
17
18
|
*/
|
|
18
19
|
export declare class SimS3RequestRouter {
|
|
19
20
|
private readonly simAws;
|
|
20
|
-
constructor(simAws: SimAws);
|
|
21
|
+
constructor(simAws: SimAws<SimS3Services>);
|
|
21
22
|
/**
|
|
22
23
|
* Route an incoming service target and HTTP request to a simulated S3 action.
|
|
23
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-req-router.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-req-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-s3-req-router.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-req-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEjE;;GAEG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC;IAE1D;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU;CAkEjE"}
|
|
@@ -34,9 +34,7 @@ export class SimS3RequestRouter {
|
|
|
34
34
|
const url = new URL(request.url);
|
|
35
35
|
const objectKey = decodeURIComponent(url.pathname.replace(/^\/+/u, ""));
|
|
36
36
|
const bucketName = target.resourceName;
|
|
37
|
-
const bucketScope = this.simAws
|
|
38
|
-
.s3GlobalRegistry()
|
|
39
|
-
.findBucketScope(bucketName);
|
|
37
|
+
const bucketScope = this.simAws.service("s3").findBucketScope(bucketName);
|
|
40
38
|
if (bucketScope === undefined) {
|
|
41
39
|
return {
|
|
42
40
|
action: "failure",
|
|
@@ -53,7 +51,7 @@ export class SimS3RequestRouter {
|
|
|
53
51
|
}
|
|
54
52
|
const bucket = this.simAws
|
|
55
53
|
.accountRegionScope(bucketScope.accountId, bucketScope.regionName)
|
|
56
|
-
.s3
|
|
54
|
+
.service("s3")
|
|
57
55
|
.getSimBucketByName(bucketName);
|
|
58
56
|
if (bucket === undefined) {
|
|
59
57
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-req-router.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-req-router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-s3-req-router.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-req-router.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAE9D;;OAEG;IACH,KAAK,CAAC,MAA2B,EAAE,OAAgB;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1D,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,sBAAsB;aAChC,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,0BAA0B;aACpC,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,4BAA4B;aACtC,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,MAAM,CAAC,YAA+B,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE1E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,mBAAmB,UAAU,YAAY;aACnD,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;YACjD,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,mBAAmB,UAAU,iBAAiB,WAAW,CAAC,UAAU,mBAAmB,MAAM,CAAC,UAAU,EAAE;aACpH,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;aACvB,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC;aACjE,OAAO,CAAC,IAAI,CAAC;aACb,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAElC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,mBAAmB,UAAU,YAAY;aACnD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,MAAM;YACN,SAAS;SACV,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -4,6 +4,8 @@ import { SimS3GlobalRegistry } from "./sim-s3-global-registry.js";
|
|
|
4
4
|
import { type SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
|
|
5
5
|
/**
|
|
6
6
|
* Simulated S3. Handles SDK commands. Emulates AWS behaviour and state.
|
|
7
|
+
* Scoped to an Account and Region, but has access to a global (as in
|
|
8
|
+
* cross-region) registry of simulated S3 Buckets.
|
|
7
9
|
*/
|
|
8
10
|
export declare class SimS3 {
|
|
9
11
|
private readonly accountRegionScope;
|
|
@@ -38,6 +40,10 @@ export declare class SimS3 {
|
|
|
38
40
|
* Get a simulated S3 Bucket instance by name.
|
|
39
41
|
*/
|
|
40
42
|
getSimBucketByName(bucketName: SimS3BucketName | string): SimS3Bucket | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Find the Account Region scope for a globally registered simulated S3 Bucket.
|
|
45
|
+
*/
|
|
46
|
+
findBucketScope(bucketName: SimS3BucketName | string): SimAwsAccountRegionScope | undefined;
|
|
41
47
|
/**
|
|
42
48
|
* Have a simulated S3 Bucket use a local filesystem directory for storage.
|
|
43
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,wCAAwC,CAAC;AAKhD
|
|
1
|
+
{"version":3,"file":"sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,wCAAwC,CAAC;AAKhD;;;;GAIG;AACH,qBAAa,KAAK;IAId,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAJnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;gBAGhD,kBAAkB,GAAE,wBAAiE,EACrF,gBAAgB,GAAE,mBAA+C;IAGpF;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,yBAAyB,CAAC;IASrC;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAAC,6BAA6B,CAAC;IAKzC;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKvE;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKvE;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;OAEG;IACH,kBAAkB,CAChB,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,WAAW,GAAG,SAAS;IAI1B;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,wBAAwB,GAAG,SAAS;IAIvC;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,eAAe,GAAG,MAAM,EACpC,aAAa,EAAE,MAAM,GACpB,IAAI;CAKR"}
|
|
@@ -10,6 +10,8 @@ import { assertDefined } from "../../util/defined.js";
|
|
|
10
10
|
import { FilesystemS3BucketStorage } from "./storage/s3-filesystem-storage.js";
|
|
11
11
|
/**
|
|
12
12
|
* Simulated S3. Handles SDK commands. Emulates AWS behaviour and state.
|
|
13
|
+
* Scoped to an Account and Region, but has access to a global (as in
|
|
14
|
+
* cross-region) registry of simulated S3 Buckets.
|
|
13
15
|
*/
|
|
14
16
|
export class SimS3 {
|
|
15
17
|
accountRegionScope;
|
|
@@ -67,6 +69,12 @@ export class SimS3 {
|
|
|
67
69
|
getSimBucketByName(bucketName) {
|
|
68
70
|
return this.buckets.get(bucketName);
|
|
69
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Find the Account Region scope for a globally registered simulated S3 Bucket.
|
|
74
|
+
*/
|
|
75
|
+
findBucketScope(bucketName) {
|
|
76
|
+
return this.s3GlobalRegistry.findBucketScope(bucketName);
|
|
77
|
+
}
|
|
70
78
|
/**
|
|
71
79
|
* Have a simulated S3 Bucket use a local filesystem directory for storage.
|
|
72
80
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3.js","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAEL,+BAA+B,GAChC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4DAA4D,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E
|
|
1
|
+
{"version":3,"file":"sim-s3.js","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kensio/yulin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "AWS system behaviour simulation for isolated unit testing",
|
|
5
5
|
"repository": "https://github.com/KensioSoftware/yulin",
|
|
6
6
|
"type": "module",
|
|
@@ -52,7 +52,6 @@
|
|
|
52
52
|
"@aws-sdk/client-dynamodb": "^3.1057.0",
|
|
53
53
|
"@aws-sdk/client-s3": "^3.1057.0",
|
|
54
54
|
"@eslint/js": "^10.0.1",
|
|
55
|
-
"@faker-js/faker": "^10.4.0",
|
|
56
55
|
"@kensio/smartass": "^1.1.0",
|
|
57
56
|
"@smithy/smithy-client": "^4.13.5",
|
|
58
57
|
"@smithy/types": "^4.14.2",
|
|
@@ -92,6 +91,7 @@
|
|
|
92
91
|
}
|
|
93
92
|
},
|
|
94
93
|
"dependencies": {
|
|
94
|
+
"@faker-js/faker": "^10.4.0",
|
|
95
95
|
"@kensio/part-factory": "^0.1.1",
|
|
96
96
|
"lodash-es": "^4.18.1"
|
|
97
97
|
},
|
|
@@ -100,6 +100,8 @@
|
|
|
100
100
|
"fmt": "eslint --fix '{src,test}/**/*.{ts,js}' && prettier --write '{src,test}/**/*.{ts,js,json,md,css,html,yml,yaml}'",
|
|
101
101
|
"lint": "eslint '{src,test}/**/*.{ts,js}' && prettier --check '{src,test}/**/*.{ts,js,json,md,css,html,yml,yaml}'",
|
|
102
102
|
"test": "vitest run",
|
|
103
|
-
"test:coverage": "vitest run --coverage"
|
|
103
|
+
"test:coverage": "vitest run --coverage",
|
|
104
|
+
"test:iso": "vitest run --project isolatedTests",
|
|
105
|
+
"test:local": "vitest run --project localTests"
|
|
104
106
|
}
|
|
105
107
|
}
|