@kensio/yulin 0.2.0 → 0.4.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 +89 -1
- package/dist/serve/controller/sim-aws-service-controller-container.d.ts +17 -0
- package/dist/serve/controller/sim-aws-service-controller-container.d.ts.map +1 -0
- package/dist/serve/controller/sim-aws-service-controller-container.js +29 -0
- package/dist/serve/controller/sim-aws-service-controller-container.js.map +1 -0
- package/dist/serve/controller/sim-service-controller.d.ts +22 -0
- package/dist/serve/controller/sim-service-controller.d.ts.map +1 -0
- package/dist/serve/controller/sim-service-controller.js +2 -0
- package/dist/serve/controller/sim-service-controller.js.map +1 -0
- package/dist/serve/http/sim-aws-http.d.ts +20 -0
- package/dist/serve/http/sim-aws-http.d.ts.map +1 -0
- package/dist/serve/http/sim-aws-http.js +57 -0
- package/dist/serve/http/sim-aws-http.js.map +1 -0
- package/dist/serve/http/sim-aws-local-server.d.ts +37 -0
- package/dist/serve/http/sim-aws-local-server.d.ts.map +1 -0
- package/dist/serve/http/sim-aws-local-server.js +132 -0
- package/dist/serve/http/sim-aws-local-server.js.map +1 -0
- package/dist/serve/http/sim-aws-local.conf.d.ts +8 -0
- package/dist/serve/http/sim-aws-local.conf.d.ts.map +1 -0
- package/dist/serve/http/sim-aws-local.conf.js +8 -0
- package/dist/serve/http/sim-aws-local.conf.js.map +1 -0
- package/dist/serve/index.d.ts +3 -0
- package/dist/serve/index.d.ts.map +1 -0
- package/dist/serve/index.js +3 -0
- package/dist/serve/index.js.map +1 -0
- package/dist/serve/resolve/sim-aws-local-service-resolver.d.ts +13 -0
- package/dist/serve/resolve/sim-aws-local-service-resolver.d.ts.map +1 -0
- package/dist/serve/resolve/sim-aws-local-service-resolver.js +38 -0
- package/dist/serve/resolve/sim-aws-local-service-resolver.js.map +1 -0
- package/dist/service/aws/arn.d.ts +17 -0
- package/dist/service/aws/arn.d.ts.map +1 -0
- package/dist/service/aws/arn.js +21 -0
- package/dist/service/aws/arn.js.map +1 -0
- package/dist/service/aws/sim-aws-account-region-scope.d.ts +38 -0
- package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -0
- package/dist/service/aws/sim-aws-account-region-scope.js +52 -0
- package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -0
- package/dist/service/aws/sim-aws-account.d.ts +33 -0
- package/dist/service/aws/sim-aws-account.d.ts.map +1 -0
- package/dist/service/aws/sim-aws-account.js +38 -0
- package/dist/service/aws/sim-aws-account.js.map +1 -0
- package/dist/service/aws/sim-aws-region.d.ts +33 -0
- package/dist/service/aws/sim-aws-region.d.ts.map +1 -0
- package/dist/service/aws/sim-aws-region.js +74 -0
- package/dist/service/aws/sim-aws-region.js.map +1 -0
- package/dist/service/aws/sim-aws-services.d.ts +21 -0
- package/dist/service/aws/sim-aws-services.d.ts.map +1 -0
- package/dist/service/aws/sim-aws-services.js +2 -0
- package/dist/service/aws/sim-aws-services.js.map +1 -0
- package/dist/service/aws/sim-aws.d.ts +50 -0
- package/dist/service/aws/sim-aws.d.ts.map +1 -0
- package/dist/service/aws/sim-aws.js +82 -0
- package/dist/service/aws/sim-aws.js.map +1 -0
- package/dist/service/dynamodb/command/create-table/create-table.handler.d.ts +3 -1
- 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 +7 -3
- package/dist/service/dynamodb/command/create-table/create-table.handler.js.map +1 -1
- package/dist/service/dynamodb/index.d.ts +1 -1
- package/dist/service/dynamodb/index.d.ts.map +1 -1
- package/dist/service/dynamodb/index.js +1 -1
- package/dist/service/dynamodb/index.js.map +1 -1
- package/dist/service/dynamodb/sim-dynamodb.d.ts +29 -0
- package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -0
- package/dist/service/dynamodb/sim-dynamodb.js +47 -0
- package/dist/service/dynamodb/sim-dynamodb.js.map +1 -0
- package/dist/service/dynamodb/table/dynamodb-table.d.ts +7 -1
- package/dist/service/dynamodb/table/dynamodb-table.d.ts.map +1 -1
- package/dist/service/dynamodb/table/dynamodb-table.js +14 -1
- package/dist/service/dynamodb/table/dynamodb-table.js.map +1 -1
- package/dist/service/s3/bucket/s3-bucket.d.ts +18 -4
- package/dist/service/s3/bucket/s3-bucket.d.ts.map +1 -1
- package/dist/service/s3/bucket/s3-bucket.js +26 -11
- package/dist/service/s3/bucket/s3-bucket.js.map +1 -1
- package/dist/service/s3/bucket/website/s3-bucket-website.d.ts +39 -0
- package/dist/service/s3/bucket/website/s3-bucket-website.d.ts.map +1 -0
- package/dist/service/s3/bucket/website/s3-bucket-website.js +123 -0
- package/dist/service/s3/bucket/website/s3-bucket-website.js.map +1 -0
- package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +5 -1
- package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts.map +1 -1
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js +26 -5
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
- package/dist/service/s3/command/get-object/get-object.handler.d.ts +2 -2
- package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
- package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
- package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts +2 -2
- package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts.map +1 -1
- package/dist/service/s3/command/list-buckets/list-buckets.handler.js.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects.handler.d.ts +2 -2
- package/dist/service/s3/command/list-objects/list-objects.handler.d.ts.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts +17 -0
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts.map +1 -0
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js +37 -0
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js.map +1 -0
- package/dist/service/s3/command/put-object/put-object.handler.d.ts +3 -2
- package/dist/service/s3/command/put-object/put-object.handler.d.ts.map +1 -1
- package/dist/service/s3/command/put-object/put-object.handler.js +9 -1
- package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -1
- package/dist/service/s3/index.d.ts +1 -1
- package/dist/service/s3/index.d.ts.map +1 -1
- package/dist/service/s3/index.js +1 -1
- package/dist/service/s3/index.js.map +1 -1
- package/dist/service/s3/serve/sim-s3-controller.d.ts +15 -0
- package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -0
- package/dist/service/s3/serve/sim-s3-controller.js +29 -0
- package/dist/service/s3/serve/sim-s3-controller.js.map +1 -0
- package/dist/service/s3/serve/sim-s3-get-obj-controller.d.ts +14 -0
- package/dist/service/s3/serve/sim-s3-get-obj-controller.d.ts.map +1 -0
- package/dist/service/s3/serve/sim-s3-get-obj-controller.js +66 -0
- package/dist/service/s3/serve/sim-s3-get-obj-controller.js.map +1 -0
- package/dist/service/s3/serve/sim-s3-req-router.d.ts +26 -0
- package/dist/service/s3/serve/sim-s3-req-router.d.ts.map +1 -0
- package/dist/service/s3/serve/sim-s3-req-router.js +72 -0
- package/dist/service/s3/serve/sim-s3-req-router.js.map +1 -0
- package/dist/service/s3/sim-s3-global-registry.d.ts +20 -0
- package/dist/service/s3/sim-s3-global-registry.d.ts.map +1 -0
- package/dist/service/s3/sim-s3-global-registry.js +22 -0
- package/dist/service/s3/sim-s3-global-registry.js.map +1 -0
- package/dist/service/s3/sim-s3.d.ts +42 -0
- package/dist/service/s3/sim-s3.d.ts.map +1 -0
- package/dist/service/s3/sim-s3.js +69 -0
- package/dist/service/s3/sim-s3.js.map +1 -0
- package/dist/service/s3/storage/s3-bucket-storage.d.ts +2 -16
- package/dist/service/s3/storage/s3-bucket-storage.d.ts.map +1 -1
- package/dist/service/s3/storage/s3-bucket-storage.js +1 -63
- package/dist/service/s3/storage/s3-bucket-storage.js.map +1 -1
- package/dist/service/s3/storage/s3-filesystem-storage.d.ts +59 -0
- package/dist/service/s3/storage/s3-filesystem-storage.d.ts.map +1 -0
- package/dist/service/s3/storage/s3-filesystem-storage.js +266 -0
- package/dist/service/s3/storage/s3-filesystem-storage.js.map +1 -0
- package/dist/service/s3/storage/s3-memory-storage.d.ts +27 -0
- package/dist/service/s3/storage/s3-memory-storage.d.ts.map +1 -0
- package/dist/service/s3/storage/s3-memory-storage.js +37 -0
- package/dist/service/s3/storage/s3-memory-storage.js.map +1 -0
- package/dist/util/filesystem/temp-dir.d.ts +5 -0
- package/dist/util/filesystem/temp-dir.d.ts.map +1 -0
- package/dist/util/filesystem/temp-dir.js +14 -0
- package/dist/util/filesystem/temp-dir.js.map +1 -0
- package/package.json +21 -9
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { CreateTableCommandHandler } from "./command/create-table/create-table.handler.js";
|
|
2
|
+
import { BackgroundTasks, } from "../../util/background/background.js";
|
|
3
|
+
import { ListTablesCommandHandler } from "./command/list-tables/list-tables.handler.js";
|
|
4
|
+
import { DescribeTableCommandHandler } from "./command/describe-table/describe-table.handler.js";
|
|
5
|
+
import { PutItemCommandHandler } from "./command/put-item/put-item.handler.js";
|
|
6
|
+
import { simAwsAccountRegionScopeFactory, } from "../aws/sim-aws-account-region-scope.js";
|
|
7
|
+
/**
|
|
8
|
+
* Simulated DynamoDB. Handles SDK commands. Emulates AWS behaviour and state.
|
|
9
|
+
*/
|
|
10
|
+
export class SimDynamoDb {
|
|
11
|
+
accountRegionScope;
|
|
12
|
+
background;
|
|
13
|
+
tables = new Map();
|
|
14
|
+
constructor(accountRegionScope = simAwsAccountRegionScopeFactory.make(), background = new BackgroundTasks()) {
|
|
15
|
+
this.accountRegionScope = accountRegionScope;
|
|
16
|
+
this.background = background;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Handle a Create Table Command from the SDK.
|
|
20
|
+
*/
|
|
21
|
+
async createTable(cmd) {
|
|
22
|
+
const handler = new CreateTableCommandHandler(this.accountRegionScope, this.tables, this.background);
|
|
23
|
+
return await handler.handle(cmd);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Handle a List Tables Command from the SDK.
|
|
27
|
+
*/
|
|
28
|
+
async listTables(cmd) {
|
|
29
|
+
const handler = new ListTablesCommandHandler(this.tables);
|
|
30
|
+
return await handler.handle(cmd);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Handle a Describe Table Command from the SDK.
|
|
34
|
+
*/
|
|
35
|
+
async describeTable(cmd) {
|
|
36
|
+
const handler = new DescribeTableCommandHandler(this.tables);
|
|
37
|
+
return await handler.handle(cmd);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Handle a Put Item Command from the SDK.
|
|
41
|
+
*/
|
|
42
|
+
async putItem(cmd) {
|
|
43
|
+
const handler = new PutItemCommandHandler(this.tables);
|
|
44
|
+
return await handler.handle(cmd);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=sim-dynamodb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb.js","sourceRoot":"","sources":["../../../src/service/dynamodb/sim-dynamodb.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAEL,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAEL,+BAA+B,GAChC,MAAM,wCAAwC,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,WAAW;IAIH;IACA;IAJF,MAAM,GAAG,IAAI,GAAG,EAAuC,CAAC;IAEzE,YACmB,qBAA+C,+BAA+B,CAAC,IAAI,EAAE,EACrF,aAAkC,IAAI,eAAe,EAAE;QADvD,uBAAkB,GAAlB,kBAAkB,CAAmE;QACrF,eAAU,GAAV,UAAU,CAA6C;IACvE,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,GAAuB;QACvC,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAC3C,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,CAChB,CAAC;QACF,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,GAAsB;QACrC,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,GAAyB;QAC3C,MAAM,OAAO,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,GAAmB;QAC/B,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -2,18 +2,20 @@ import type { Brand } from "../../../util/brand.type.js";
|
|
|
2
2
|
import type { CreateTableCommand, TableStatus } from "@aws-sdk/client-dynamodb";
|
|
3
3
|
import type { DynamoDbItem } from "../item/dynamodb-item.js";
|
|
4
4
|
import type { BackgroundScheduler } from "../../../util/background/background.js";
|
|
5
|
+
import { type SimArn, type SimArnComponents } from "../../aws/arn.js";
|
|
5
6
|
export type DynamoDbTableName = Brand<string, "DynamoDbTableName">;
|
|
6
7
|
/**
|
|
7
8
|
* Simulated DynamoDB Table.
|
|
8
9
|
*/
|
|
9
10
|
export declare class SimDynamoDbTable {
|
|
11
|
+
readonly simArn: SimArn;
|
|
10
12
|
private readonly background;
|
|
11
13
|
readonly creationDateTime: Date;
|
|
12
14
|
readonly tableName: DynamoDbTableName;
|
|
13
15
|
private readonly _keySchema;
|
|
14
16
|
private _status;
|
|
15
17
|
private readonly items;
|
|
16
|
-
constructor(createCommand: CreateTableCommand, background: BackgroundScheduler);
|
|
18
|
+
constructor(createCommand: CreateTableCommand, simArn: SimArn, background: BackgroundScheduler);
|
|
17
19
|
/**
|
|
18
20
|
* Simulate the table entering ACTIVE status.
|
|
19
21
|
*/
|
|
@@ -27,4 +29,8 @@ export declare class SimDynamoDbTable {
|
|
|
27
29
|
*/
|
|
28
30
|
putItem(item: DynamoDbItem): Promise<void>;
|
|
29
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Generate a fake ARN for a DynamoDB Table.
|
|
34
|
+
*/
|
|
35
|
+
export declare function makeSimDynamoDbTableArn(overrides?: Exclude<Partial<SimArnComponents>, "service" | "resourceType">): SimArn;
|
|
30
36
|
//# sourceMappingURL=dynamodb-table.d.ts.map
|
|
@@ -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;
|
|
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;AAClF,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAEnE;;GAEG;AACH,qBAAa,gBAAgB;aAYT,MAAM,EAAE,MAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAZ7B,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,EACjB,MAAM,EAAE,MAAM,EACb,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;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC,GACzE,MAAM,CAMR"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { DynamoDbKeySchema } from "./dynamodb-key-schema.js";
|
|
2
2
|
import { assertDefined } from "../../../util/defined.js";
|
|
3
|
+
import { makeSimArn, } from "../../aws/arn.js";
|
|
3
4
|
/**
|
|
4
5
|
* Simulated DynamoDB Table.
|
|
5
6
|
*/
|
|
6
7
|
export class SimDynamoDbTable {
|
|
8
|
+
simArn;
|
|
7
9
|
background;
|
|
8
10
|
creationDateTime;
|
|
9
11
|
tableName;
|
|
10
12
|
_keySchema;
|
|
11
13
|
_status = "CREATING";
|
|
12
14
|
items = new Map();
|
|
13
|
-
constructor(createCommand, background) {
|
|
15
|
+
constructor(createCommand, simArn, background) {
|
|
16
|
+
this.simArn = simArn;
|
|
14
17
|
this.background = background;
|
|
15
18
|
assertDefined(createCommand.input.TableName, "createCommand.input.TableName");
|
|
16
19
|
this.tableName = createCommand.input.TableName;
|
|
@@ -46,4 +49,14 @@ export class SimDynamoDbTable {
|
|
|
46
49
|
return Promise.resolve();
|
|
47
50
|
}
|
|
48
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Generate a fake ARN for a DynamoDB Table.
|
|
54
|
+
*/
|
|
55
|
+
export function makeSimDynamoDbTableArn(overrides) {
|
|
56
|
+
return makeSimArn({
|
|
57
|
+
service: "dynamodb",
|
|
58
|
+
resourceType: "table",
|
|
59
|
+
...overrides,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
49
62
|
//# sourceMappingURL=dynamodb-table.js.map
|
|
@@ -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;
|
|
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;AAGzD,OAAO,EACL,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAI1B;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAYT;IACC;IAZH,gBAAgB,CAAO;IAEvB,SAAS,CAAoB;IAE5B,UAAU,CAAoB;IACvC,OAAO,GAAgB,UAAU,CAAC;IAEzB,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEzD,YACE,aAAiC,EACjB,MAAc,EACb,UAA+B;QADhC,WAAM,GAAN,MAAM,CAAQ;QACb,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;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAA0E;IAE1E,OAAO,UAAU,CAAC;QAChB,OAAO,EAAE,UAAU;QACnB,YAAY,EAAE,OAAO;QACrB,GAAG,SAAS;KACb,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import type { CreateBucketCommand } from "@aws-sdk/client-s3";
|
|
2
2
|
import type { Brand } from "../../../util/brand.type.js";
|
|
3
|
-
import {
|
|
3
|
+
import type { SimS3BucketStorage } from "../storage/s3-bucket-storage.js";
|
|
4
4
|
import type { SimS3Object } from "../object/s3-object.js";
|
|
5
|
-
|
|
5
|
+
import { S3BucketWebsite } from "./website/s3-bucket-website.js";
|
|
6
|
+
export type SimS3BucketName = Brand<string, "SimS3BucketName">;
|
|
6
7
|
/**
|
|
7
8
|
* Simulated S3 Bucket.
|
|
8
9
|
*/
|
|
9
10
|
export declare class SimS3Bucket {
|
|
10
|
-
private
|
|
11
|
+
private storage;
|
|
12
|
+
private website;
|
|
11
13
|
readonly bucketName: string;
|
|
12
|
-
constructor(createCommand: CreateBucketCommand, storage?: SimS3BucketStorage);
|
|
14
|
+
constructor(createCommand: CreateBucketCommand, storage?: SimS3BucketStorage, website?: S3BucketWebsite);
|
|
13
15
|
/**
|
|
14
16
|
* Put a simulated S3 Object into storage.
|
|
15
17
|
*/
|
|
@@ -22,5 +24,17 @@ export declare class SimS3Bucket {
|
|
|
22
24
|
* List simulated S3 Objects from storage.
|
|
23
25
|
*/
|
|
24
26
|
listObjects(prefix?: string): Promise<SimS3Object[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Change the storage implementation for this simulated S3 Bucket.
|
|
29
|
+
*/
|
|
30
|
+
configureSimStorage(storage: SimS3BucketStorage): void;
|
|
31
|
+
/**
|
|
32
|
+
* Configure static website hosting for this simulated S3 Bucket.
|
|
33
|
+
*/
|
|
34
|
+
configureWebsite(website: S3BucketWebsite): void;
|
|
35
|
+
/**
|
|
36
|
+
* Get static website configuration for this simulated S3 Bucket.
|
|
37
|
+
*/
|
|
38
|
+
getWebsite(): S3BucketWebsite;
|
|
25
39
|
}
|
|
26
40
|
//# sourceMappingURL=s3-bucket.d.ts.map
|
|
@@ -1 +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,
|
|
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,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE/D;;GAEG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IALjB,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAGjC,aAAa,EAAE,mBAAmB,EAC1B,OAAO,GAAE,kBAAgD,EACzD,OAAO,GAAE,eAAuC;IAM1D;;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;IAI1D;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAOtD;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAIhD;;OAEG;IACH,UAAU,IAAI,eAAe;CAG9B"}
|
|
@@ -1,25 +1,19 @@
|
|
|
1
1
|
import { assertDefined } from "../../../util/defined.js";
|
|
2
|
-
import { MemoryS3BucketStorage
|
|
2
|
+
import { MemoryS3BucketStorage } from "../storage/s3-memory-storage.js";
|
|
3
|
+
import { S3BucketWebsite } from "./website/s3-bucket-website.js";
|
|
3
4
|
/**
|
|
4
5
|
* Simulated S3 Bucket.
|
|
5
6
|
*/
|
|
6
7
|
export class SimS3Bucket {
|
|
7
8
|
storage;
|
|
9
|
+
website;
|
|
8
10
|
bucketName;
|
|
9
|
-
constructor(createCommand, storage = new MemoryS3BucketStorage()) {
|
|
11
|
+
constructor(createCommand, storage = new MemoryS3BucketStorage(), website = new S3BucketWebsite()) {
|
|
10
12
|
this.storage = storage;
|
|
13
|
+
this.website = website;
|
|
11
14
|
assertDefined(createCommand.input.Bucket, "createCommand.input.Bucket");
|
|
12
15
|
this.bucketName = createCommand.input.Bucket;
|
|
13
16
|
}
|
|
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
17
|
/**
|
|
24
18
|
* Put a simulated S3 Object into storage.
|
|
25
19
|
*/
|
|
@@ -38,5 +32,26 @@ export class SimS3Bucket {
|
|
|
38
32
|
async listObjects(prefix) {
|
|
39
33
|
return await this.storage.listObjects(prefix);
|
|
40
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Change the storage implementation for this simulated S3 Bucket.
|
|
37
|
+
*/
|
|
38
|
+
configureSimStorage(storage) {
|
|
39
|
+
if (!this.storage.allowChangeStorage()) {
|
|
40
|
+
throw new Error("Cannot change simulated S3 storage implementation");
|
|
41
|
+
}
|
|
42
|
+
this.storage = storage;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Configure static website hosting for this simulated S3 Bucket.
|
|
46
|
+
*/
|
|
47
|
+
configureWebsite(website) {
|
|
48
|
+
this.website = website;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get static website configuration for this simulated S3 Bucket.
|
|
52
|
+
*/
|
|
53
|
+
getWebsite() {
|
|
54
|
+
return this.website;
|
|
55
|
+
}
|
|
41
56
|
}
|
|
42
57
|
//# sourceMappingURL=s3-bucket.js.map
|
|
@@ -1 +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;
|
|
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;AAIzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAIjE;;GAEG;AACH,MAAM,OAAO,WAAW;IAKZ;IACA;IALM,UAAU,CAAS;IAEnC,YACE,aAAkC,EAC1B,UAA8B,IAAI,qBAAqB,EAAE,EACzD,UAA2B,IAAI,eAAe,EAAE;QADhD,YAAO,GAAP,OAAO,CAAkD;QACzD,YAAO,GAAP,OAAO,CAAyC;QAExD,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;;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;IAED;;OAEG;IACH,mBAAmB,CAAC,OAA2B;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAwB;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { WebsiteConfiguration } from "@aws-sdk/client-s3";
|
|
2
|
+
/**
|
|
3
|
+
* Static website configuration for simulated S3 bucket.
|
|
4
|
+
*
|
|
5
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html
|
|
6
|
+
*/
|
|
7
|
+
export declare class S3BucketWebsite {
|
|
8
|
+
private readonly websiteConfiguration;
|
|
9
|
+
constructor(websiteConfiguration?: WebsiteConfiguration);
|
|
10
|
+
/**
|
|
11
|
+
* Is static website hosting enabled for this simulated S3 bucket?
|
|
12
|
+
*/
|
|
13
|
+
websiteEnabled(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Does this website configuration redirect all requests?
|
|
16
|
+
*/
|
|
17
|
+
redirectsAllRequests(): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Choose the S3 object key that should be served for a website request.
|
|
20
|
+
*/
|
|
21
|
+
objectKeyForRequest(objectKey: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Get the S3 object key for this website's error document, if configured.
|
|
24
|
+
*/
|
|
25
|
+
errorDocumentKey(): string | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Choose an appropriate response for a request response pair based on static
|
|
28
|
+
* website configuration for this simulated S3 bucket.
|
|
29
|
+
*/
|
|
30
|
+
redirectForRequestResponse(req: Request, res: Response): Response;
|
|
31
|
+
private routingRuleMatches;
|
|
32
|
+
private redirectResponse;
|
|
33
|
+
private requestKey;
|
|
34
|
+
private matchingKeyPrefix;
|
|
35
|
+
private indexDocumentSpecified;
|
|
36
|
+
private errorDocumentSpecified;
|
|
37
|
+
private routingRulesSpecified;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=s3-bucket-website.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-bucket-website.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/website/s3-bucket-website.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQ/D;;;;GAIG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,GAAE,oBAAyB;IAGlE;;OAEG;IACH,cAAc,IAAI,OAAO;IASzB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAM/B;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAkB9C;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC;;;OAGG;IACH,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,QAAQ;IA0BjE,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,qBAAqB;CAO9B"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static website configuration for simulated S3 bucket.
|
|
3
|
+
*
|
|
4
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html
|
|
5
|
+
*/
|
|
6
|
+
export class S3BucketWebsite {
|
|
7
|
+
websiteConfiguration;
|
|
8
|
+
constructor(websiteConfiguration = {}) {
|
|
9
|
+
this.websiteConfiguration = websiteConfiguration;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Is static website hosting enabled for this simulated S3 bucket?
|
|
13
|
+
*/
|
|
14
|
+
websiteEnabled() {
|
|
15
|
+
return (this.indexDocumentSpecified() ||
|
|
16
|
+
this.errorDocumentSpecified() ||
|
|
17
|
+
this.redirectsAllRequests() ||
|
|
18
|
+
this.routingRulesSpecified());
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Does this website configuration redirect all requests?
|
|
22
|
+
*/
|
|
23
|
+
redirectsAllRequests() {
|
|
24
|
+
return (this.websiteConfiguration.RedirectAllRequestsTo?.HostName !== undefined);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Choose the S3 object key that should be served for a website request.
|
|
28
|
+
*/
|
|
29
|
+
objectKeyForRequest(objectKey) {
|
|
30
|
+
const indexSuffix = this.websiteConfiguration.IndexDocument?.Suffix;
|
|
31
|
+
if (indexSuffix === undefined) {
|
|
32
|
+
return objectKey;
|
|
33
|
+
}
|
|
34
|
+
if (objectKey === "") {
|
|
35
|
+
return indexSuffix;
|
|
36
|
+
}
|
|
37
|
+
if (objectKey.endsWith("/")) {
|
|
38
|
+
return `${objectKey}${indexSuffix}`;
|
|
39
|
+
}
|
|
40
|
+
return objectKey;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get the S3 object key for this website's error document, if configured.
|
|
44
|
+
*/
|
|
45
|
+
errorDocumentKey() {
|
|
46
|
+
return this.websiteConfiguration.ErrorDocument?.Key;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Choose an appropriate response for a request response pair based on static
|
|
50
|
+
* website configuration for this simulated S3 bucket.
|
|
51
|
+
*/
|
|
52
|
+
redirectForRequestResponse(req, res) {
|
|
53
|
+
if (!this.websiteEnabled()) {
|
|
54
|
+
return res;
|
|
55
|
+
}
|
|
56
|
+
const redirectAllRequestsTo = this.websiteConfiguration.RedirectAllRequestsTo;
|
|
57
|
+
if (redirectAllRequestsTo !== undefined) {
|
|
58
|
+
return this.redirectResponse(req, {
|
|
59
|
+
HostName: redirectAllRequestsTo.HostName,
|
|
60
|
+
Protocol: redirectAllRequestsTo.Protocol,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const routingRule = this.websiteConfiguration.RoutingRules?.find((rule) => this.routingRuleMatches(rule, req, res));
|
|
64
|
+
if (routingRule?.Redirect !== undefined) {
|
|
65
|
+
return this.redirectResponse(req, routingRule.Redirect);
|
|
66
|
+
}
|
|
67
|
+
return res;
|
|
68
|
+
}
|
|
69
|
+
routingRuleMatches(rule, req, res) {
|
|
70
|
+
const condition = rule.Condition;
|
|
71
|
+
if (condition === undefined) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
if (condition.HttpErrorCodeReturnedEquals !== undefined &&
|
|
75
|
+
condition.HttpErrorCodeReturnedEquals !== String(res.status)) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return !(condition.KeyPrefixEquals !== undefined &&
|
|
79
|
+
!this.requestKey(req).startsWith(condition.KeyPrefixEquals));
|
|
80
|
+
}
|
|
81
|
+
redirectResponse(req, redirect) {
|
|
82
|
+
const url = new URL(req.url);
|
|
83
|
+
if (redirect.Protocol !== undefined) {
|
|
84
|
+
url.protocol = `${redirect.Protocol}:`;
|
|
85
|
+
}
|
|
86
|
+
if (redirect.HostName !== undefined) {
|
|
87
|
+
url.hostname = redirect.HostName;
|
|
88
|
+
url.port = "";
|
|
89
|
+
}
|
|
90
|
+
if (redirect.ReplaceKeyWith !== undefined) {
|
|
91
|
+
url.pathname = `/${redirect.ReplaceKeyWith}`;
|
|
92
|
+
}
|
|
93
|
+
else if (redirect.ReplaceKeyPrefixWith !== undefined) {
|
|
94
|
+
url.pathname = `/${this.requestKey(req).replace(this.matchingKeyPrefix(req), redirect.ReplaceKeyPrefixWith)}`;
|
|
95
|
+
}
|
|
96
|
+
return new Response(undefined, {
|
|
97
|
+
status: Number(redirect.HttpRedirectCode ?? "301"),
|
|
98
|
+
headers: {
|
|
99
|
+
location: url.toString(),
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
requestKey(req) {
|
|
104
|
+
return new URL(req.url).pathname.replace(/^\/+/, "");
|
|
105
|
+
}
|
|
106
|
+
matchingKeyPrefix(req) {
|
|
107
|
+
const requestKey = this.requestKey(req);
|
|
108
|
+
return (this.websiteConfiguration.RoutingRules?.find((rule) => {
|
|
109
|
+
const keyPrefix = rule.Condition?.KeyPrefixEquals;
|
|
110
|
+
return keyPrefix !== undefined && requestKey.startsWith(keyPrefix);
|
|
111
|
+
})?.Condition?.KeyPrefixEquals ?? "");
|
|
112
|
+
}
|
|
113
|
+
indexDocumentSpecified() {
|
|
114
|
+
return this.websiteConfiguration.IndexDocument?.Suffix !== undefined;
|
|
115
|
+
}
|
|
116
|
+
errorDocumentSpecified() {
|
|
117
|
+
return this.errorDocumentKey() !== undefined;
|
|
118
|
+
}
|
|
119
|
+
routingRulesSpecified() {
|
|
120
|
+
return Boolean(this.websiteConfiguration.RoutingRules?.some((rule) => rule.Redirect !== undefined));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=s3-bucket-website.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-bucket-website.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/website/s3-bucket-website.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
2
|
import { type CreateBucketCommand, type CreateBucketCommandOutput } from "@aws-sdk/client-s3";
|
|
3
3
|
import { SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
4
|
+
import type { SimS3GlobalRegistry } from "../../sim-s3-global-registry.js";
|
|
5
|
+
import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
|
|
4
6
|
/**
|
|
5
7
|
* S3 CreateBucketCommand handler.
|
|
6
8
|
*
|
|
7
9
|
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/CreateBucketCommand/
|
|
8
10
|
*/
|
|
9
11
|
export declare class CreateBucketCommandHandler implements CommandHandler<CreateBucketCommand, CreateBucketCommandOutput> {
|
|
12
|
+
private readonly accountRegionScope;
|
|
10
13
|
private readonly buckets;
|
|
11
|
-
|
|
14
|
+
private readonly s3GlobalRegistry;
|
|
15
|
+
constructor(accountRegionScope: SimAwsAccountRegionScope, buckets: Map<string, SimS3Bucket>, s3GlobalRegistry: SimS3GlobalRegistry);
|
|
12
16
|
/**
|
|
13
17
|
* Handle creation of a new S3 Bucket.
|
|
14
18
|
*/
|
|
@@ -1 +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,
|
|
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,EAG/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAwB,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAE7F;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,cAAc,CAC/D,mBAAmB,EACnB,yBAAyB,CAC1B;IAEG,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAFhB,kBAAkB,EAAE,wBAAwB,EAC5C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACjC,gBAAgB,EAAE,mBAAmB;IAGxD;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CA0C3E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BucketAlreadyExists, } from "@aws-sdk/client-s3";
|
|
1
|
+
import { BucketAlreadyExists, BucketAlreadyOwnedByYou, } from "@aws-sdk/client-s3";
|
|
2
2
|
import { SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
3
3
|
import { assertDefined } from "../../../../util/defined.js";
|
|
4
4
|
import { jitter } from "../../../../util/sleep.js";
|
|
@@ -8,25 +8,46 @@ import { jitter } from "../../../../util/sleep.js";
|
|
|
8
8
|
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/CreateBucketCommand/
|
|
9
9
|
*/
|
|
10
10
|
export class CreateBucketCommandHandler {
|
|
11
|
+
accountRegionScope;
|
|
11
12
|
buckets;
|
|
12
|
-
|
|
13
|
+
s3GlobalRegistry;
|
|
14
|
+
constructor(accountRegionScope, buckets, s3GlobalRegistry) {
|
|
15
|
+
this.accountRegionScope = accountRegionScope;
|
|
13
16
|
this.buckets = buckets;
|
|
17
|
+
this.s3GlobalRegistry = s3GlobalRegistry;
|
|
14
18
|
}
|
|
15
19
|
/**
|
|
16
20
|
* Handle creation of a new S3 Bucket.
|
|
17
21
|
*/
|
|
18
22
|
async handle(cmd) {
|
|
19
23
|
assertDefined(cmd.input.Bucket, "CreateBucketCommand.input.Bucket");
|
|
24
|
+
await jitter();
|
|
20
25
|
const bucketName = cmd.input.Bucket;
|
|
21
|
-
|
|
26
|
+
const existingBucketScope = this.s3GlobalRegistry.findBucketScope(bucketName);
|
|
27
|
+
if (existingBucketScope !== undefined) {
|
|
28
|
+
if (existingBucketScope.accountId === this.accountRegionScope.accountId) {
|
|
29
|
+
throw new BucketAlreadyOwnedByYou({
|
|
30
|
+
message: `S3 Bucket ${bucketName} already exists in ${existingBucketScope.regionName} and is owned by ${existingBucketScope.accountId}`,
|
|
31
|
+
$metadata: {},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
22
34
|
throw new BucketAlreadyExists({
|
|
23
|
-
message: `S3 Bucket ${bucketName} already exists`,
|
|
35
|
+
message: `S3 Bucket ${bucketName} already exists in ${existingBucketScope.regionName} ${existingBucketScope.accountId}`,
|
|
36
|
+
$metadata: {},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/* v8 ignore if -- safety catch for situation that cannot happen in normal usage */
|
|
40
|
+
if (this.buckets.has(bucketName)) {
|
|
41
|
+
// Somehow the Bucket was absent from the global registry.
|
|
42
|
+
this.s3GlobalRegistry.registerBucket(bucketName, this.accountRegionScope);
|
|
43
|
+
throw new BucketAlreadyOwnedByYou({
|
|
44
|
+
message: `S3 Bucket ${bucketName} already exists in ${this.accountRegionScope.regionName} and is owned by ${this.accountRegionScope.accountId}`,
|
|
24
45
|
$metadata: {},
|
|
25
46
|
});
|
|
26
47
|
}
|
|
27
|
-
await jitter();
|
|
28
48
|
const bucket = new SimS3Bucket(cmd);
|
|
29
49
|
this.buckets.set(bucketName, bucket);
|
|
50
|
+
this.s3GlobalRegistry.registerBucket(bucketName, this.accountRegionScope);
|
|
30
51
|
return {
|
|
31
52
|
BucketArn: `arn:aws:s3:::${bucketName}`,
|
|
32
53
|
Location: `/${bucketName}`,
|
|
@@ -1 +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,
|
|
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,EACnB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAwB,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAInD;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IAKlB;IACA;IACA;IAHnB,YACmB,kBAA4C,EAC5C,OAAiC,EACjC,gBAAqC;QAFrC,uBAAkB,GAAlB,kBAAkB,CAA0B;QAC5C,YAAO,GAAP,OAAO,CAA0B;QACjC,qBAAgB,GAAhB,gBAAgB,CAAqB;IACrD,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAwB;QACnC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;QAEpE,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAyB,CAAC;QAEvD,MAAM,mBAAmB,GACvB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,mBAAmB,CAAC,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;gBACxE,MAAM,IAAI,uBAAuB,CAAC;oBAChC,OAAO,EAAE,aAAa,UAAU,sBAAsB,mBAAmB,CAAC,UAAU,oBAAoB,mBAAmB,CAAC,SAAS,EAAE;oBACvI,SAAS,EAAE,EAAE;iBACd,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,mBAAmB,CAAC;gBAC5B,OAAO,EAAE,aAAa,UAAU,sBAAsB,mBAAmB,CAAC,UAAU,IAAI,mBAAmB,CAAC,SAAS,EAAE;gBACvH,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QAED,mFAAmF;QACnF,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,0DAA0D;YAC1D,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1E,MAAM,IAAI,uBAAuB,CAAC;gBAChC,OAAO,EAAE,aAAa,UAAU,sBAAsB,IAAI,CAAC,kBAAkB,CAAC,UAAU,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;gBAC/I,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE1E,OAAO;YACL,SAAS,EAAE,gBAAgB,UAAU,EAAE;YACvC,QAAQ,EAAE,IAAI,UAAU,EAAE;YAC1B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
2
|
import { type GetObjectCommand, type GetObjectCommandOutput } from "@aws-sdk/client-s3";
|
|
3
|
-
import type {
|
|
3
|
+
import type { SimS3BucketName, SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
4
4
|
/**
|
|
5
5
|
* Simulated S3 GetObjectCommand handler.
|
|
6
6
|
*
|
|
@@ -8,7 +8,7 @@ import type { S3BucketName, SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class GetObjectCommandHandler implements CommandHandler<GetObjectCommand, GetObjectCommandOutput> {
|
|
10
10
|
private readonly buckets;
|
|
11
|
-
constructor(buckets: Map<
|
|
11
|
+
constructor(buckets: Map<SimS3BucketName, SimS3Bucket>);
|
|
12
12
|
/**
|
|
13
13
|
* Simulate getting an Object from an S3 Bucket.
|
|
14
14
|
*/
|
|
@@ -1 +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,
|
|
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,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI9E;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,gBAAgB,EAChB,sBAAsB,CACvB;IACa,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC;IAEvE;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CA+BrE"}
|
|
@@ -1 +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,
|
|
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,OAA0C;QAA1C,YAAO,GAAP,OAAO,CAAmC;IAAG,CAAC;IAE3E;;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,MAAyB,CAAC;QACvD,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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
2
|
import type { ListBucketsCommand, ListBucketsCommandOutput } from "@aws-sdk/client-s3";
|
|
3
|
-
import type {
|
|
3
|
+
import type { SimS3BucketName, SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
4
4
|
/**
|
|
5
5
|
* Simulated S3 ListBucketsCommand handler.
|
|
6
6
|
*
|
|
@@ -8,7 +8,7 @@ import type { S3BucketName, SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class ListBucketsCommandHandler implements CommandHandler<ListBucketsCommand, ListBucketsCommandOutput> {
|
|
10
10
|
private readonly buckets;
|
|
11
|
-
constructor(buckets: Map<
|
|
11
|
+
constructor(buckets: Map<SimS3BucketName, SimS3Bucket>);
|
|
12
12
|
/**
|
|
13
13
|
* Simulate listing S3 Buckets.
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-buckets.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"list-buckets.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG9E;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,kBAAkB,EAClB,wBAAwB,CACzB;IACa,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC;IAEvE;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAiDxE,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAGtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-buckets.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAIP;IAA7B,YAA6B,
|
|
1
|
+
{"version":3,"file":"list-buckets.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAIP;IAA7B,YAA6B,OAA0C;QAA1C,YAAO,GAAP,OAAO,CAAmC;IAAG,CAAC;IAE3E;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAuB;QAClC,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACtD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC;QAElD,MAAM,eAAe,GACnB,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvE,MAAM,eAAe,GACnB,iBAAiB,KAAK,SAAS;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAE1E,MAAM,UAAU,GACd,eAAe,KAAK,SAAS;YAC3B,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,CAAC,EACD,eAAe,CAAC,SAAS,CACvB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,eAAe,CAClD,GAAG,CAAC,CACN,CAAC;QAER,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QAEzE,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,MAAM,CAAC,UAAU;aACxB,CAAC,CAAC;YACH,iBAAiB,EACf,cAAc,IAAI,UAAU,KAAK,SAAS;gBACxC,CAAC,CAAC,yBAAyB,CAAC,qBAAqB,CAC7C,UAAU,CAAC,UAAU,CACtB;gBACH,CAAC,CAAC,SAAS;YACf,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,UAAkB;QACrD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,KAAa;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
2
2
|
import { type ListObjectsCommand, type ListObjectsCommandOutput } from "@aws-sdk/client-s3";
|
|
3
|
-
import type {
|
|
3
|
+
import type { SimS3BucketName, SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
4
4
|
/**
|
|
5
5
|
* Simulated S3 ListObjectsCommand handler.
|
|
6
6
|
*
|
|
@@ -8,7 +8,7 @@ import type { S3BucketName, SimS3Bucket } from "../../bucket/s3-bucket.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class ListObjectsCommandHandler implements CommandHandler<ListObjectsCommand, ListObjectsCommandOutput> {
|
|
10
10
|
private readonly buckets;
|
|
11
|
-
constructor(buckets: Map<
|
|
11
|
+
constructor(buckets: Map<SimS3BucketName, SimS3Bucket>);
|
|
12
12
|
/**
|
|
13
13
|
* Simulate listing Objects in an S3 Bucket.
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"list-objects.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI9E;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,kBAAkB,EAClB,wBAAwB,CACzB;IACa,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC;IAEvE;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CA6CzE"}
|