@kensio/yulin 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/service/cloudfront/factory/cloudfront-functions.factory.d.ts +1 -2
- package/dist/service/cloudfront/factory/cloudfront-functions.factory.d.ts.map +1 -1
- package/dist/service/cloudfront/factory/cloudfront-functions.factory.js.map +1 -1
- package/dist/service/cloudfront/globals.d.ts +22 -0
- package/dist/service/cloudfront/globals.d.ts.map +1 -0
- package/dist/service/cloudfront/globals.js +7 -0
- package/dist/service/cloudfront/globals.js.map +1 -0
- package/dist/service/cloudfront/index.d.ts +1 -1
- package/dist/service/cloudfront/index.d.ts.map +1 -1
- package/dist/service/cloudfront/typings/cloudfront-functions.namespace.d.ts +39 -0
- package/dist/service/cloudfront/typings/cloudfront-functions.namespace.d.ts.map +1 -0
- package/dist/service/cloudfront/typings/cloudfront-functions.namespace.js +2 -0
- package/dist/service/cloudfront/typings/cloudfront-functions.namespace.js.map +1 -0
- package/dist/service/dynamodb/command/create-table/create-table.handler.d.ts.map +1 -1
- package/dist/service/dynamodb/command/create-table/create-table.handler.js +2 -3
- package/dist/service/dynamodb/command/create-table/create-table.handler.js.map +1 -1
- package/dist/service/dynamodb/table/dynamodb-table.d.ts +1 -5
- package/dist/service/dynamodb/table/dynamodb-table.d.ts.map +1 -1
- package/dist/service/dynamodb/table/dynamodb-table.js +2 -8
- package/dist/service/dynamodb/table/dynamodb-table.js.map +1 -1
- package/dist/service/organizations/sim-aws-account.d.ts +12 -1
- package/dist/service/organizations/sim-aws-account.d.ts.map +1 -1
- package/dist/service/organizations/sim-aws-account.js +15 -2
- package/dist/service/organizations/sim-aws-account.js.map +1 -1
- package/dist/service/organizations/sim-aws-region.d.ts +23 -0
- package/dist/service/organizations/sim-aws-region.d.ts.map +1 -0
- package/dist/service/organizations/sim-aws-region.js +27 -0
- package/dist/service/organizations/sim-aws-region.js.map +1 -0
- package/dist/service/s3/bucket/s3-bucket.d.ts +26 -0
- package/dist/service/s3/bucket/s3-bucket.d.ts.map +1 -0
- package/dist/service/s3/bucket/s3-bucket.js +42 -0
- package/dist/service/s3/bucket/s3-bucket.js.map +1 -0
- package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +17 -0
- package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts.map +1 -0
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js +37 -0
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -0
- package/dist/service/s3/command/get-object/get-object.handler.d.ts +17 -0
- package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -0
- package/dist/service/s3/command/get-object/get-object.handler.js +44 -0
- package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts +19 -0
- package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts.map +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets.handler.js +52 -0
- package/dist/service/s3/command/list-buckets/list-buckets.handler.js.map +1 -0
- package/dist/service/s3/command/list-objects/list-objects.handler.d.ts +17 -0
- package/dist/service/s3/command/list-objects/list-objects.handler.d.ts.map +1 -0
- package/dist/service/s3/command/list-objects/list-objects.handler.js +54 -0
- package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -0
- package/dist/service/s3/command/put-object/put-object.handler.d.ts +18 -0
- package/dist/service/s3/command/put-object/put-object.handler.d.ts.map +1 -0
- package/dist/service/s3/command/put-object/put-object.handler.js +49 -0
- package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -0
- package/dist/service/s3/index.js +0 -1
- package/dist/service/s3/index.js.map +1 -1
- package/dist/service/s3/object/s3-object.d.ts +17 -0
- package/dist/service/s3/object/s3-object.d.ts.map +1 -0
- package/dist/service/s3/object/s3-object.js +23 -0
- package/dist/service/s3/object/s3-object.js.map +1 -0
- package/dist/service/s3/s3.d.ts +33 -0
- package/dist/service/s3/s3.d.ts.map +1 -0
- package/dist/service/s3/s3.js +56 -0
- package/dist/service/s3/s3.js.map +1 -0
- package/dist/service/s3/storage/s3-body-buffer.d.ts +5 -0
- package/dist/service/s3/storage/s3-body-buffer.d.ts.map +1 -0
- package/dist/service/s3/storage/s3-body-buffer.js +11 -0
- package/dist/service/s3/storage/s3-body-buffer.js.map +1 -0
- package/dist/service/s3/storage/s3-bucket-storage.d.ts +34 -0
- package/dist/service/s3/storage/s3-bucket-storage.d.ts.map +1 -0
- package/dist/service/s3/storage/s3-bucket-storage.js +64 -0
- package/dist/service/s3/storage/s3-bucket-storage.js.map +1 -0
- package/package.json +10 -5
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { CloudFrontEvent } from "../typings/cloudfront-functions.js";
|
|
2
1
|
import { VariantFactory } from "@kensio/part-factory";
|
|
3
2
|
/**
|
|
4
3
|
* Makes instances of the viewer-request CloudFrontEvent objects.
|
|
5
4
|
*/
|
|
6
|
-
export declare const cloudFrontViewerRequestEventFactory: VariantFactory<
|
|
5
|
+
export declare const cloudFrontViewerRequestEventFactory: VariantFactory<import("../index.js").CloudFrontFunction.Event>;
|
|
7
6
|
//# sourceMappingURL=cloudfront-functions.factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudfront-functions.factory.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/factory/cloudfront-functions.factory.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cloudfront-functions.factory.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/factory/cloudfront-functions.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoBtE;;GAEG;AACH,eAAO,MAAM,mCAAmC,gEAG5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudfront-functions.factory.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/factory/cloudfront-functions.factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloudfront-functions.factory.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/factory/cloudfront-functions.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC;;GAEG;AACH,MAAM,sBAAsB,GAAG,IAAI,cAAc,CAC/C,GAAG,EAAE,CAAC,CAAC;IACL,OAAO,EAAE;QACP,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YACpC,gBAAgB;YAChB,iBAAiB;SAClB,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;KAC/B;IACD,OAAO,EAAE,wBAAwB,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;CACtC,CAAC,CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAC9C,IAAI,cAAc,CAA2B,sBAAsB,EAAE;IACnE,OAAO,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;CACzC,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,wBAAwB,GAAG,IAAI,cAAc,CACjD,GAAG,EAAE,CAAC,CAAC;IACL,OAAO,EAAE;QACP,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;SAC3B;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE;YACN,KAAK,EACH,iEAAiE;SACpE;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,gBAAgB;SACxB;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,YAAY;SACpB;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;SAClC;KACF;IACD,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE;IACnC,WAAW,EAAE;QACX,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;SACX;KACF;IACD,GAAG,EAAE,cAAc;CACpB,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional global types for CloudFront Functions code.
|
|
3
|
+
* This is helpful because CloudFront Function JS2 syntax does not support
|
|
4
|
+
* imports, so global types provide useful type information.
|
|
5
|
+
*/
|
|
6
|
+
import type { CloudFrontFunction as CloudFrontFunctionType } from "./typings/cloudfront-functions.namespace.js";
|
|
7
|
+
declare global {
|
|
8
|
+
namespace CloudFrontFunction {
|
|
9
|
+
type Value = CloudFrontFunctionType.Value;
|
|
10
|
+
type MultiValue = CloudFrontFunctionType.MultiValue;
|
|
11
|
+
type Headers = CloudFrontFunctionType.Headers;
|
|
12
|
+
type QueryString = CloudFrontFunctionType.QueryString;
|
|
13
|
+
type Cookies = CloudFrontFunctionType.Cookies;
|
|
14
|
+
type Request = CloudFrontFunctionType.Request;
|
|
15
|
+
type Response = CloudFrontFunctionType.Response;
|
|
16
|
+
type EventContext = CloudFrontFunctionType.EventContext;
|
|
17
|
+
type Viewer = CloudFrontFunctionType.Viewer;
|
|
18
|
+
type Event = CloudFrontFunctionType.Event;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=globals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../../src/service/cloudfront/globals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAEhH,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,kBAAkB,CAAC;QAC3B,KAAK,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC;QAC1C,KAAK,UAAU,GAAG,sBAAsB,CAAC,UAAU,CAAC;QACpD,KAAK,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC;QAC9C,KAAK,WAAW,GAAG,sBAAsB,CAAC,WAAW,CAAC;QACtD,KAAK,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC;QAC9C,KAAK,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC;QAC9C,KAAK,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC;QAChD,KAAK,YAAY,GAAG,sBAAsB,CAAC,YAAY,CAAC;QACxD,KAAK,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC;QAC5C,KAAK,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC;KAC3C;CACF;AAED,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../../src/service/cloudfront/globals.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmBH,OAAO,EAAE,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { cloudFrontViewerRequestEventFactory } from "./factory/cloudfront-functions.factory.js";
|
|
2
|
-
export type {
|
|
2
|
+
export type { CloudFrontFunction } from "./typings/cloudfront-functions.namespace.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/cloudfront/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAChG,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/cloudfront/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAChG,YAAY,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare namespace CloudFrontFunction {
|
|
2
|
+
interface Value {
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
interface MultiValue {
|
|
6
|
+
multiValue: Value[];
|
|
7
|
+
}
|
|
8
|
+
type Headers = Record<string, Value>;
|
|
9
|
+
type QueryString = Record<string, Value | MultiValue>;
|
|
10
|
+
type Cookies = Record<string, Value>;
|
|
11
|
+
interface Request {
|
|
12
|
+
method: string;
|
|
13
|
+
uri: string;
|
|
14
|
+
headers: Headers;
|
|
15
|
+
querystring: QueryString;
|
|
16
|
+
cookies: Cookies;
|
|
17
|
+
}
|
|
18
|
+
interface Response {
|
|
19
|
+
statusCode: number;
|
|
20
|
+
statusDescription?: string;
|
|
21
|
+
headers?: Headers;
|
|
22
|
+
}
|
|
23
|
+
interface EventContext {
|
|
24
|
+
distributionDomainName?: string;
|
|
25
|
+
endpoint?: string;
|
|
26
|
+
distributionId?: string;
|
|
27
|
+
eventType: "viewer-request" | "viewer-response";
|
|
28
|
+
requestId: string;
|
|
29
|
+
}
|
|
30
|
+
interface Viewer {
|
|
31
|
+
ip: string;
|
|
32
|
+
}
|
|
33
|
+
interface Event {
|
|
34
|
+
context: EventContext;
|
|
35
|
+
viewer: Viewer;
|
|
36
|
+
request: Request;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=cloudfront-functions.namespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudfront-functions.namespace.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/typings/cloudfront-functions.namespace.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,kBAAkB,CAAC;IAC1C,UAAiB,KAAK;QACpB,KAAK,EAAE,MAAM,CAAC;KACf;IAED,UAAiB,UAAU;QACzB,UAAU,EAAE,KAAK,EAAE,CAAC;KACrB;IAED,KAAY,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE5C,KAAY,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;IAE7D,KAAY,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE5C,UAAiB,OAAO;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,WAAW,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC;KAClB;IAED,UAAiB,QAAQ;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB;IAED,UAAiB,YAAY;QAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;QAChD,SAAS,EAAE,MAAM,CAAC;KACnB;IAED,UAAiB,MAAM;QACrB,EAAE,EAAE,MAAM,CAAC;KACZ;IAED,UAAiB,KAAK;QACpB,OAAO,EAAE,YAAY,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudfront-functions.namespace.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/typings/cloudfront-functions.namespace.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-table.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/dynamodb/command/create-table/create-table.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAE9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-table.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/dynamodb/command/create-table/create-table.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAE9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAI7E;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,kBAAkB,EAClB,wBAAwB,CACzB;IAEG,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,MAAM,EAAE,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAChD,UAAU,EAAE,mBAAmB;IAGlD;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CA8BzE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SimDynamoDbTable } from "../../table/dynamodb-table.js";
|
|
2
2
|
import { ResourceInUseException, } from "@aws-sdk/client-dynamodb";
|
|
3
3
|
import { jitter } from "../../../../util/sleep.js";
|
|
4
|
+
import { assertDefined } from "../../../../util/defined.js";
|
|
4
5
|
/**
|
|
5
6
|
* DynamoDB CreateTableCommand handler.
|
|
6
7
|
*
|
|
@@ -17,9 +18,7 @@ export class CreateTableCommandHandler {
|
|
|
17
18
|
* Handle creation of a new DynamoDB Table.
|
|
18
19
|
*/
|
|
19
20
|
async handle(cmd) {
|
|
20
|
-
|
|
21
|
-
throw new Error("CreateTableCommand.input.TableName is required");
|
|
22
|
-
}
|
|
21
|
+
assertDefined(cmd.input.TableName, "CreateTableCommand.input.TableName");
|
|
23
22
|
const tableName = cmd.input.TableName;
|
|
24
23
|
if (this.tables.has(tableName)) {
|
|
25
24
|
throw new ResourceInUseException({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-table.handler.js","sourceRoot":"","sources":["../../../../../src/service/dynamodb/command/create-table/create-table.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAGL,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-table.handler.js","sourceRoot":"","sources":["../../../../../src/service/dynamodb/command/create-table/create-table.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAGL,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAKjB;IACA;IAFnB,YACmB,MAAgD,EAChD,UAA+B;QAD/B,WAAM,GAAN,MAAM,CAA0C;QAChD,eAAU,GAAV,UAAU,CAAqB;IAC/C,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAuB;QAClC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;QAEzE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAA8B,CAAC;QAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,OAAO,EAAE,kBAAkB,SAAS,iBAAiB;gBACrD,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAElC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjD,OAAO;YACL,gBAAgB,EAAE;gBAChB,oBAAoB,EAAE,EAAE;gBACxB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,sBAAsB,EAAE,EAAE;aAC3B;YACD,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -9,7 +9,7 @@ export type DynamoDbTableName = Brand<string, "DynamoDbTableName">;
|
|
|
9
9
|
export declare class SimDynamoDbTable {
|
|
10
10
|
private readonly background;
|
|
11
11
|
readonly creationDateTime: Date;
|
|
12
|
-
|
|
12
|
+
readonly tableName: DynamoDbTableName;
|
|
13
13
|
private readonly _keySchema;
|
|
14
14
|
private _status;
|
|
15
15
|
private readonly items;
|
|
@@ -18,10 +18,6 @@ export declare class SimDynamoDbTable {
|
|
|
18
18
|
* Simulate the table entering ACTIVE status.
|
|
19
19
|
*/
|
|
20
20
|
activate(): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Get the DynamoDB table name.
|
|
23
|
-
*/
|
|
24
|
-
get tableName(): DynamoDbTableName;
|
|
25
21
|
/**
|
|
26
22
|
* Get the current table status.
|
|
27
23
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamodb-table.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/dynamodb-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElF,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAEnE;;GAEG;AACH,qBAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"dynamodb-table.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/dynamodb-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElF,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAEnE;;GAEG;AACH,qBAAa,gBAAgB;IAYzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAX7B,SAAgB,gBAAgB,EAAE,IAAI,CAAC;IAEvC,SAAgB,SAAS,EAAE,iBAAiB,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;gBAGvD,aAAa,EAAE,kBAAkB,EAChB,UAAU,EAAE,mBAAmB;IAkBlD;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB;;OAEG;IACH,IAAW,MAAM,IAAI,WAAW,CAE/B;IAED;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAQlD"}
|
|
@@ -6,14 +6,14 @@ import { assertDefined } from "../../../util/defined.js";
|
|
|
6
6
|
export class SimDynamoDbTable {
|
|
7
7
|
background;
|
|
8
8
|
creationDateTime;
|
|
9
|
-
|
|
9
|
+
tableName;
|
|
10
10
|
_keySchema;
|
|
11
11
|
_status = "CREATING";
|
|
12
12
|
items = new Map();
|
|
13
13
|
constructor(createCommand, background) {
|
|
14
14
|
this.background = background;
|
|
15
15
|
assertDefined(createCommand.input.TableName, "createCommand.input.TableName");
|
|
16
|
-
this.
|
|
16
|
+
this.tableName = createCommand.input.TableName;
|
|
17
17
|
this.creationDateTime = new Date();
|
|
18
18
|
if (createCommand.input.KeySchema === undefined ||
|
|
19
19
|
createCommand.input.KeySchema.length === 0) {
|
|
@@ -28,12 +28,6 @@ export class SimDynamoDbTable {
|
|
|
28
28
|
this._status = "ACTIVE";
|
|
29
29
|
return Promise.resolve();
|
|
30
30
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Get the DynamoDB table name.
|
|
33
|
-
*/
|
|
34
|
-
get tableName() {
|
|
35
|
-
return this._tableName;
|
|
36
|
-
}
|
|
37
31
|
/**
|
|
38
32
|
* Get the current table status.
|
|
39
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamodb-table.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/dynamodb-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD;;GAEG;AACH,MAAM,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"dynamodb-table.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/dynamodb-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAYR;IAXH,gBAAgB,CAAO;IAEvB,SAAS,CAAoB;IAE5B,UAAU,CAAoB;IACvC,OAAO,GAAgB,UAAU,CAAC;IAEzB,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEzD,YACE,aAAiC,EAChB,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;QAEhD,aAAa,CACX,aAAa,CAAC,KAAK,CAAC,SAAS,EAC7B,+BAA+B,CAChC,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,SAA8B,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;QAEnC,IACE,aAAa,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;YAC3C,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAC1C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,IAAkB;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
import { type BackgroundCompleter, type BackgroundScheduler } from "../../util/background/background.js";
|
|
2
|
-
import { SimDynamoDb } from "../dynamodb/dynamodb.js";
|
|
2
|
+
import type { SimDynamoDb } from "../dynamodb/dynamodb.js";
|
|
3
|
+
import { type AwsRegionName, SimAwsRegion } from "./sim-aws-region.js";
|
|
4
|
+
import type { SimS3 } from "../s3/s3.js";
|
|
3
5
|
/**
|
|
4
6
|
* Container for simulated AWS services.
|
|
5
7
|
*/
|
|
6
8
|
export declare class SimAwsAccount {
|
|
7
9
|
private readonly background;
|
|
8
10
|
private readonly memo;
|
|
11
|
+
private readonly defaultRegion;
|
|
9
12
|
constructor(background?: BackgroundScheduler & BackgroundCompleter);
|
|
10
13
|
/**
|
|
11
14
|
* Wait for all outstanding background tasks in this Account to complete.
|
|
12
15
|
*/
|
|
13
16
|
backgroundTasksComplete(): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Get a simulated AWS Region in this simulated Account.
|
|
19
|
+
*/
|
|
20
|
+
getRegion(region?: AwsRegionName): SimAwsRegion;
|
|
14
21
|
/**
|
|
15
22
|
* Get the simulated DynamoDB service in this simulated Account.
|
|
16
23
|
*/
|
|
17
24
|
getDynamoDb(): SimDynamoDb;
|
|
25
|
+
/**
|
|
26
|
+
* Get the simulated S3 service in this simulated Account.
|
|
27
|
+
*/
|
|
28
|
+
getS3(): SimS3;
|
|
18
29
|
}
|
|
19
30
|
//# sourceMappingURL=sim-aws-account.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-account.d.ts","sourceRoot":"","sources":["../../../src/service/organizations/sim-aws-account.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-aws-account.d.ts","sourceRoot":"","sources":["../../../src/service/organizations/sim-aws-account.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACL,KAAK,aAAa,EAElB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,qBAAa,aAAa;IAMtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAE3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;gBAGrC,UAAU,GAAE,mBAAmB,GAC9C,mBAA2C;IAG/C;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9C;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,YAAY;IAO/C;;OAEG;IACH,WAAW,IAAI,WAAW;IAI1B;;OAEG;IACH,KAAK,IAAI,KAAK;CAGf"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { BackgroundTasks, } from "../../util/background/background.js";
|
|
2
|
-
import { SimDynamoDb } from "../dynamodb/dynamodb.js";
|
|
3
2
|
import { Memo } from "../../util/memo/memo.js";
|
|
3
|
+
import { DEFAULT_SIM_AWS_REGION, SimAwsRegion, } from "./sim-aws-region.js";
|
|
4
4
|
/**
|
|
5
5
|
* Container for simulated AWS services.
|
|
6
6
|
*/
|
|
7
7
|
export class SimAwsAccount {
|
|
8
8
|
background;
|
|
9
9
|
memo = new Memo();
|
|
10
|
+
defaultRegion = DEFAULT_SIM_AWS_REGION;
|
|
10
11
|
constructor(background = new BackgroundTasks()) {
|
|
11
12
|
this.background = background;
|
|
12
13
|
}
|
|
@@ -16,11 +17,23 @@ export class SimAwsAccount {
|
|
|
16
17
|
async backgroundTasksComplete() {
|
|
17
18
|
await this.background.complete();
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Get a simulated AWS Region in this simulated Account.
|
|
22
|
+
*/
|
|
23
|
+
getRegion(region) {
|
|
24
|
+
return this.memo.getOrCreate(`Region:${region ?? this.defaultRegion}`, () => new SimAwsRegion(this.background));
|
|
25
|
+
}
|
|
19
26
|
/**
|
|
20
27
|
* Get the simulated DynamoDB service in this simulated Account.
|
|
21
28
|
*/
|
|
22
29
|
getDynamoDb() {
|
|
23
|
-
return this.
|
|
30
|
+
return this.getRegion().getDynamoDb();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get the simulated S3 service in this simulated Account.
|
|
34
|
+
*/
|
|
35
|
+
getS3() {
|
|
36
|
+
return this.getRegion().getS3();
|
|
24
37
|
}
|
|
25
38
|
}
|
|
26
39
|
//# sourceMappingURL=sim-aws-account.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-aws-account.js","sourceRoot":"","sources":["../../../src/service/organizations/sim-aws-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,GAChB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-aws-account.js","sourceRoot":"","sources":["../../../src/service/organizations/sim-aws-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAEL,sBAAsB,EACtB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAG7B;;GAEG;AACH,MAAM,OAAO,aAAa;IAML;IALF,IAAI,GAAG,IAAI,IAAI,EAAU,CAAC;IAE1B,aAAa,GAAG,sBAAsB,CAAC;IAExD,YACmB,aACO,IAAI,eAAe,EAAE;QAD5B,eAAU,GAAV,UAAU,CACkB;IAC5C,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,uBAAuB;QAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAsB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAC1B,UAAU,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,EACxC,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CACxC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../util/background/background.js";
|
|
2
|
+
import type { Brand } from "../../util/brand.type.js";
|
|
3
|
+
import { SimDynamoDb } from "../dynamodb/dynamodb.js";
|
|
4
|
+
import { SimS3 } from "../s3/s3.js";
|
|
5
|
+
export type AwsRegionName = Brand<string, "AwsRegionName">;
|
|
6
|
+
export declare const DEFAULT_SIM_AWS_REGION: AwsRegionName;
|
|
7
|
+
/**
|
|
8
|
+
* Container for simulated AWS services in one Region.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SimAwsRegion {
|
|
11
|
+
private readonly background;
|
|
12
|
+
private readonly memo;
|
|
13
|
+
constructor(background: BackgroundScheduler);
|
|
14
|
+
/**
|
|
15
|
+
* Get the simulated DynamoDB service in this simulated Region.
|
|
16
|
+
*/
|
|
17
|
+
getDynamoDb(): SimDynamoDb;
|
|
18
|
+
/**
|
|
19
|
+
* Get the simulated S3 service in this simulated Region.
|
|
20
|
+
*/
|
|
21
|
+
getS3(): SimS3;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=sim-aws-region.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-aws-region.d.ts","sourceRoot":"","sources":["../../../src/service/organizations/sim-aws-region.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE3D,eAAO,MAAM,sBAAsB,EAAkB,aAAa,CAAC;AAEnE;;GAEG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;gBAEd,UAAU,EAAE,mBAAmB;IAE5D;;OAEG;IACH,WAAW,IAAI,WAAW;IAO1B;;OAEG;IACH,KAAK,IAAI,KAAK;CAGf"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Memo } from "../../util/memo/memo.js";
|
|
2
|
+
import { SimDynamoDb } from "../dynamodb/dynamodb.js";
|
|
3
|
+
import { SimS3 } from "../s3/s3.js";
|
|
4
|
+
export const DEFAULT_SIM_AWS_REGION = "us-east-1";
|
|
5
|
+
/**
|
|
6
|
+
* Container for simulated AWS services in one Region.
|
|
7
|
+
*/
|
|
8
|
+
export class SimAwsRegion {
|
|
9
|
+
background;
|
|
10
|
+
memo = new Memo();
|
|
11
|
+
constructor(background) {
|
|
12
|
+
this.background = background;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the simulated DynamoDB service in this simulated Region.
|
|
16
|
+
*/
|
|
17
|
+
getDynamoDb() {
|
|
18
|
+
return this.memo.getOrCreate("DynamoDB", () => new SimDynamoDb(this.background));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the simulated S3 service in this simulated Region.
|
|
22
|
+
*/
|
|
23
|
+
getS3() {
|
|
24
|
+
return this.memo.getOrCreate("S3", () => new SimS3());
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sim-aws-region.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-aws-region.js","sourceRoot":"","sources":["../../../src/service/organizations/sim-aws-region.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAA4B,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,YAAY;IAGM;IAFZ,IAAI,GAAG,IAAI,IAAI,EAAU,CAAC;IAE3C,YAA6B,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAAG,CAAC;IAEhE;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAC1B,UAAU,EACV,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CreateBucketCommand } from "@aws-sdk/client-s3";
|
|
2
|
+
import type { Brand } from "../../../util/brand.type.js";
|
|
3
|
+
import { type SimS3BucketStorage } from "../storage/s3-bucket-storage.js";
|
|
4
|
+
import type { SimS3Object } from "../object/s3-object.js";
|
|
5
|
+
export type S3BucketName = Brand<string, "S3BucketName">;
|
|
6
|
+
/**
|
|
7
|
+
* Simulated S3 Bucket.
|
|
8
|
+
*/
|
|
9
|
+
export declare class SimS3Bucket {
|
|
10
|
+
private readonly storage;
|
|
11
|
+
readonly bucketName: string;
|
|
12
|
+
constructor(createCommand: CreateBucketCommand, storage?: SimS3BucketStorage);
|
|
13
|
+
/**
|
|
14
|
+
* Put a simulated S3 Object into storage.
|
|
15
|
+
*/
|
|
16
|
+
putObject(object: SimS3Object): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Get a simulated S3 Object from storage.
|
|
19
|
+
*/
|
|
20
|
+
getObject(key: string): Promise<SimS3Object | undefined>;
|
|
21
|
+
/**
|
|
22
|
+
* List simulated S3 Objects from storage.
|
|
23
|
+
*/
|
|
24
|
+
listObjects(prefix?: string): Promise<SimS3Object[]>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=s3-bucket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-bucket.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/bucket/s3-bucket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEzD;;GAEG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAGjC,aAAa,EAAE,mBAAmB,EACjB,OAAO,GAAE,kBAAgD;IAgB5E;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAI9D;;OAEG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAG3D"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { assertDefined } from "../../../util/defined.js";
|
|
2
|
+
import { MemoryS3BucketStorage, } from "../storage/s3-bucket-storage.js";
|
|
3
|
+
/**
|
|
4
|
+
* Simulated S3 Bucket.
|
|
5
|
+
*/
|
|
6
|
+
export class SimS3Bucket {
|
|
7
|
+
storage;
|
|
8
|
+
bucketName;
|
|
9
|
+
constructor(createCommand, storage = new MemoryS3BucketStorage()) {
|
|
10
|
+
this.storage = storage;
|
|
11
|
+
assertDefined(createCommand.input.Bucket, "createCommand.input.Bucket");
|
|
12
|
+
this.bucketName = createCommand.input.Bucket;
|
|
13
|
+
}
|
|
14
|
+
// /**
|
|
15
|
+
// * Change the storage implementation for this simulated S3 Bucket.
|
|
16
|
+
// */
|
|
17
|
+
// configureSimStorage(storage: SimS3BucketStorage): void {
|
|
18
|
+
// if (!this.storage.allowChangeStorage()) {
|
|
19
|
+
// throw new Error("Cannot change simulated S3 storage implementation");
|
|
20
|
+
// }
|
|
21
|
+
// this.storage = storage;
|
|
22
|
+
// }
|
|
23
|
+
/**
|
|
24
|
+
* Put a simulated S3 Object into storage.
|
|
25
|
+
*/
|
|
26
|
+
async putObject(object) {
|
|
27
|
+
await this.storage.putObject(object);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get a simulated S3 Object from storage.
|
|
31
|
+
*/
|
|
32
|
+
async getObject(key) {
|
|
33
|
+
return await this.storage.getObject(key);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* List simulated S3 Objects from storage.
|
|
37
|
+
*/
|
|
38
|
+
async listObjects(prefix) {
|
|
39
|
+
return await this.storage.listObjects(prefix);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=s3-bucket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-bucket.js","sourceRoot":"","sources":["../../../../src/service/s3/bucket/s3-bucket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EACL,qBAAqB,GAEtB,MAAM,iCAAiC,CAAC;AAKzC;;GAEG;AACH,MAAM,OAAO,WAAW;IAKH;IAJH,UAAU,CAAS;IAEnC,YACE,aAAkC,EACjB,UAA8B,IAAI,qBAAqB,EAAE;QAAzD,YAAO,GAAP,OAAO,CAAkD;QAE1E,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;IAC/C,CAAC;IAED,MAAM;IACN,qEAAqE;IACrE,MAAM;IACN,2DAA2D;IAC3D,8CAA8C;IAC9C,4EAA4E;IAC5E,MAAM;IACN,4BAA4B;IAC5B,IAAI;IAEJ;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAmB;QACjC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAe;QAC/B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
+
import { type CreateBucketCommand, type CreateBucketCommandOutput } from "@aws-sdk/client-s3";
|
|
3
|
+
import { SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
4
|
+
/**
|
|
5
|
+
* S3 CreateBucketCommand handler.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/CreateBucketCommand/
|
|
8
|
+
*/
|
|
9
|
+
export declare class CreateBucketCommandHandler implements CommandHandler<CreateBucketCommand, CreateBucketCommandOutput> {
|
|
10
|
+
private readonly buckets;
|
|
11
|
+
constructor(buckets: Map<string, SimS3Bucket>);
|
|
12
|
+
/**
|
|
13
|
+
* Handle creation of a new S3 Bucket.
|
|
14
|
+
*/
|
|
15
|
+
handle(cmd: CreateBucketCommand): Promise<CreateBucketCommandOutput>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=create-bucket.handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-bucket.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/create-bucket/create-bucket.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAqB,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI3E;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,cAAc,CAC/D,mBAAmB,EACnB,yBAAyB,CAC1B;IACa,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAE9D;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAsB3E"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BucketAlreadyExists, } from "@aws-sdk/client-s3";
|
|
2
|
+
import { SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
3
|
+
import { assertDefined } from "../../../../util/defined.js";
|
|
4
|
+
import { jitter } from "../../../../util/sleep.js";
|
|
5
|
+
/**
|
|
6
|
+
* S3 CreateBucketCommand handler.
|
|
7
|
+
*
|
|
8
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/CreateBucketCommand/
|
|
9
|
+
*/
|
|
10
|
+
export class CreateBucketCommandHandler {
|
|
11
|
+
buckets;
|
|
12
|
+
constructor(buckets) {
|
|
13
|
+
this.buckets = buckets;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Handle creation of a new S3 Bucket.
|
|
17
|
+
*/
|
|
18
|
+
async handle(cmd) {
|
|
19
|
+
assertDefined(cmd.input.Bucket, "CreateBucketCommand.input.Bucket");
|
|
20
|
+
const bucketName = cmd.input.Bucket;
|
|
21
|
+
if (this.buckets.has(bucketName)) {
|
|
22
|
+
throw new BucketAlreadyExists({
|
|
23
|
+
message: `S3 Bucket ${bucketName} already exists`,
|
|
24
|
+
$metadata: {},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
await jitter();
|
|
28
|
+
const bucket = new SimS3Bucket(cmd);
|
|
29
|
+
this.buckets.set(bucketName, bucket);
|
|
30
|
+
return {
|
|
31
|
+
BucketArn: `arn:aws:s3:::${bucketName}`,
|
|
32
|
+
Location: `/${bucketName}`,
|
|
33
|
+
$metadata: {},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=create-bucket.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-bucket.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/create-bucket/create-bucket.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAqB,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IAIR;IAA7B,YAA6B,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;IAAG,CAAC;IAElE;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAwB;QACnC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAsB,CAAC;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,mBAAmB,CAAC;gBAC5B,OAAO,EAAE,aAAa,UAAU,iBAAiB;gBACjD,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAErC,OAAO;YACL,SAAS,EAAE,gBAAgB,UAAU,EAAE;YACvC,QAAQ,EAAE,IAAI,UAAU,EAAE;YAC1B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
+
import { type GetObjectCommand, type GetObjectCommandOutput } from "@aws-sdk/client-s3";
|
|
3
|
+
import type { S3BucketName, SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated S3 GetObjectCommand handler.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/GetObjectCommand/
|
|
8
|
+
*/
|
|
9
|
+
export declare class GetObjectCommandHandler implements CommandHandler<GetObjectCommand, GetObjectCommandOutput> {
|
|
10
|
+
private readonly buckets;
|
|
11
|
+
constructor(buckets: Map<S3BucketName, SimS3Bucket>);
|
|
12
|
+
/**
|
|
13
|
+
* Simulate getting an Object from an S3 Bucket.
|
|
14
|
+
*/
|
|
15
|
+
handle(cmd: GetObjectCommand): Promise<GetObjectCommandOutput>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=get-object.handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-object.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI3E;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,gBAAgB,EAChB,sBAAsB,CACvB;IACa,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC;IAEpE;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CA+BrE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { NoSuchBucket, NoSuchKey, } from "@aws-sdk/client-s3";
|
|
2
|
+
import { Readable } from "node:stream";
|
|
3
|
+
import { assertDefined } from "../../../../util/defined.js";
|
|
4
|
+
import { jitter } from "../../../../util/sleep.js";
|
|
5
|
+
/**
|
|
6
|
+
* Simulated S3 GetObjectCommand handler.
|
|
7
|
+
*
|
|
8
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/GetObjectCommand/
|
|
9
|
+
*/
|
|
10
|
+
export class GetObjectCommandHandler {
|
|
11
|
+
buckets;
|
|
12
|
+
constructor(buckets) {
|
|
13
|
+
this.buckets = buckets;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Simulate getting an Object from an S3 Bucket.
|
|
17
|
+
*/
|
|
18
|
+
async handle(cmd) {
|
|
19
|
+
assertDefined(cmd.input.Bucket, "GetObjectCommand.input.Bucket");
|
|
20
|
+
assertDefined(cmd.input.Key, "GetObjectCommand.input.Key");
|
|
21
|
+
const bucketName = cmd.input.Bucket;
|
|
22
|
+
const bucket = this.buckets.get(bucketName);
|
|
23
|
+
if (bucket === undefined) {
|
|
24
|
+
throw new NoSuchBucket({
|
|
25
|
+
message: `No S3 Bucket named ${bucketName}`,
|
|
26
|
+
$metadata: {},
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
await jitter();
|
|
30
|
+
const object = await bucket.getObject(cmd.input.Key);
|
|
31
|
+
if (object === undefined) {
|
|
32
|
+
throw new NoSuchKey({
|
|
33
|
+
message: `No S3 Object named ${cmd.input.Key}`,
|
|
34
|
+
$metadata: {},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
Body: Readable.from([object.body]),
|
|
39
|
+
Metadata: object.metadata.values,
|
|
40
|
+
$metadata: {},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=get-object.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-object.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object.handler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,SAAS,GAGV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAIL;IAA7B,YAA6B,OAAuC;QAAvC,YAAO,GAAP,OAAO,CAAgC;IAAG,CAAC;IAExE;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAqB;QAChC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QACjE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAsB,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,YAAY,CAAC;gBACrB,OAAO,EAAE,sBAAsB,UAAU,EAAE;gBAC3C,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,SAAS,CAAC;gBAClB,OAAO,EAAE,sBAAsB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC9C,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAEhC;YACD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAChC,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
|
+
import type { ListBucketsCommand, ListBucketsCommandOutput } from "@aws-sdk/client-s3";
|
|
3
|
+
import type { S3BucketName, SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simulated S3 ListBucketsCommand handler.
|
|
6
|
+
*
|
|
7
|
+
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/ListBucketsCommand/
|
|
8
|
+
*/
|
|
9
|
+
export declare class ListBucketsCommandHandler implements CommandHandler<ListBucketsCommand, ListBucketsCommandOutput> {
|
|
10
|
+
private readonly buckets;
|
|
11
|
+
constructor(buckets: Map<S3BucketName, SimS3Bucket>);
|
|
12
|
+
/**
|
|
13
|
+
* Simulate listing S3 Buckets.
|
|
14
|
+
*/
|
|
15
|
+
handle(cmd: ListBucketsCommand): Promise<ListBucketsCommandOutput>;
|
|
16
|
+
private static makeContinuationToken;
|
|
17
|
+
private static parseContinuationToken;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=list-buckets.handler.d.ts.map
|