@kensio/yulin 1.18.0 → 1.18.1
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/cfn/distro/sim-cfn-cf-distro-creator.d.ts +8 -2
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts.map +1 -1
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +9 -3
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js.map +1 -1
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-web-acl.d.ts +25 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-web-acl.d.ts.map +1 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-web-acl.js +36 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-web-acl.js.map +1 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts.map +1 -1
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +6 -5
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects-authorizer.d.ts +6 -4
- package/dist/service/s3/command/list-objects/list-objects-authorizer.d.ts.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects-authorizer.js +6 -4
- package/dist/service/s3/command/list-objects/list-objects-authorizer.js.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +4 -2
- package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects-page-builder.js +8 -2
- package/dist/service/s3/command/list-objects/list-objects-page-builder.js.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects.command.d.ts +7 -0
- package/dist/service/s3/command/list-objects/list-objects.command.d.ts.map +1 -1
- 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 +2 -0
- package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +1 -0
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts.map +1 -1
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +6 -1
- package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js.map +1 -1
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +8 -2
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts.map +1 -1
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.d.ts.map +1 -1
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +2 -0
- package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js.map +1 -1
- package/dist/service/s3/object/s3-common-prefix.d.ts +22 -0
- package/dist/service/s3/object/s3-common-prefix.d.ts.map +1 -0
- package/dist/service/s3/object/s3-common-prefix.js +16 -0
- package/dist/service/s3/object/s3-common-prefix.js.map +1 -0
- package/dist/service/s3/object/s3-object-listing.d.ts +9 -2
- package/dist/service/s3/object/s3-object-listing.d.ts.map +1 -1
- package/dist/service/s3/object/s3-object-listing.js +70 -13
- package/dist/service/s3/object/s3-object-listing.js.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-input.d.ts.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -0
- package/dist/service/s3/serve/api/sim-s3-api-input.js.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
- package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-listing.js +6 -1
- package/dist/service/s3/serve/api/sim-s3-api-listing.js.map +1 -1
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.d.ts +4 -0
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.d.ts.map +1 -1
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.js +9 -0
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.js.map +1 -1
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-skip.d.ts +22 -0
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-skip.d.ts.map +1 -0
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-skip.js +28 -0
- package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-skip.js.map +1 -0
- package/dist/service/wafv2/cfn/sim-cfn-waf-resource-error.d.ts +25 -6
- package/dist/service/wafv2/cfn/sim-cfn-waf-resource-error.d.ts.map +1 -1
- package/dist/service/wafv2/cfn/sim-cfn-waf-resource-error.js +32 -7
- package/dist/service/wafv2/cfn/sim-cfn-waf-resource-error.js.map +1 -1
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-evaluatable-rules.d.ts +16 -0
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-evaluatable-rules.d.ts.map +1 -0
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-evaluatable-rules.js +22 -0
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-evaluatable-rules.js.map +1 -0
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-config.d.ts +13 -4
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-config.d.ts.map +1 -1
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-config.js +21 -11
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-config.js.map +1 -1
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.d.ts +11 -1
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.d.ts.map +1 -1
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.js +19 -2
- package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.js.map +1 -1
- package/dist/service/wafv2/command/web-acl/sim-wafv2-unsimulated-web-acl-input.d.ts +9 -0
- package/dist/service/wafv2/command/web-acl/sim-wafv2-unsimulated-web-acl-input.d.ts.map +1 -1
- package/dist/service/wafv2/command/web-acl/sim-wafv2-unsimulated-web-acl-input.js +9 -0
- package/dist/service/wafv2/command/web-acl/sim-wafv2-unsimulated-web-acl-input.js.map +1 -1
- package/dist/service/wafv2/sim-wafv2.d.ts +12 -0
- package/dist/service/wafv2/sim-wafv2.d.ts.map +1 -1
- package/dist/service/wafv2/sim-wafv2.js +17 -0
- package/dist/service/wafv2/sim-wafv2.js.map +1 -1
- package/dist/service/wafv2/web-acl/sim-waf-unevaluatable-rules.d.ts +26 -0
- package/dist/service/wafv2/web-acl/sim-waf-unevaluatable-rules.d.ts.map +1 -0
- package/dist/service/wafv2/web-acl/sim-waf-unevaluatable-rules.js +34 -0
- package/dist/service/wafv2/web-acl/sim-waf-unevaluatable-rules.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
1
|
+
import type { SimCfnResource, SimCloudFormationResourceCreateContext } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
2
|
import type { SimCloudFront } from "../../sim-cloudfront.js";
|
|
3
3
|
import type { SimCloudFrontDistribution } from "../../distribution/sim-cloudfront-distribution.js";
|
|
4
4
|
import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
|
|
@@ -7,6 +7,12 @@ interface SimCfnCfDistroCreatorProperties {
|
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Creates simulated CloudFront Distributions from CloudFormation Resources.
|
|
10
|
+
*
|
|
11
|
+
* A `WebACLId` naming a web ACL this simulation does not hold is left out and
|
|
12
|
+
* recorded. CloudFront has no association Resource, so the reference lives on
|
|
13
|
+
* the Distribution itself, and refusing it would take the Distribution down
|
|
14
|
+
* over a web ACL that was never the point of the template. The site a local
|
|
15
|
+
* dev server and a suite of tests make requests to has to survive that.
|
|
10
16
|
*/
|
|
11
17
|
export declare class SimCfnCfDistroCreator {
|
|
12
18
|
private readonly cloudFront;
|
|
@@ -15,7 +21,7 @@ export declare class SimCfnCfDistroCreator {
|
|
|
15
21
|
* Create a simulated CloudFront Distribution from an
|
|
16
22
|
* AWS::CloudFront::Distribution Resource.
|
|
17
23
|
*/
|
|
18
|
-
create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimCloudFrontDistribution>;
|
|
24
|
+
create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord, context: SimCloudFormationResourceCreateContext): Promise<SimCloudFrontDistribution>;
|
|
19
25
|
}
|
|
20
26
|
export {};
|
|
21
27
|
//# sourceMappingURL=sim-cfn-cf-distro-creator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-cf-distro-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sim-cfn-cf-distro-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,sDAAsD,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAIlH,UAAU,+BAA+B;IACvC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAE3C,YAAY,UAAU,EAAE,+BAA+B,EAEtD;IAED;;;OAGG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,EACrC,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,yBAAyB,CAAC,CAwCpC;CACF"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { assertDefined, assertNotNull, } from "../../../../util/type-guard/defined.js";
|
|
2
2
|
import { SimCfnCfDistroConfigValidator } from "./sim-cfn-cf-distro-config-validator.js";
|
|
3
|
+
import { simCfnCfDistroWithoutAbsentWebAcl } from "./sim-cfn-cf-distro-web-acl.js";
|
|
3
4
|
/**
|
|
4
5
|
* Creates simulated CloudFront Distributions from CloudFormation Resources.
|
|
6
|
+
*
|
|
7
|
+
* A `WebACLId` naming a web ACL this simulation does not hold is left out and
|
|
8
|
+
* recorded. CloudFront has no association Resource, so the reference lives on
|
|
9
|
+
* the Distribution itself, and refusing it would take the Distribution down
|
|
10
|
+
* over a web ACL that was never the point of the template. The site a local
|
|
11
|
+
* dev server and a suite of tests make requests to has to survive that.
|
|
5
12
|
*/
|
|
6
13
|
export class SimCfnCfDistroCreator {
|
|
7
14
|
cloudFront;
|
|
@@ -12,7 +19,7 @@ export class SimCfnCfDistroCreator {
|
|
|
12
19
|
* Create a simulated CloudFront Distribution from an
|
|
13
20
|
* AWS::CloudFront::Distribution Resource.
|
|
14
21
|
*/
|
|
15
|
-
async create(resource, properties) {
|
|
22
|
+
async create(resource, properties, context) {
|
|
16
23
|
const distributionConfigValue = properties["DistributionConfig"];
|
|
17
24
|
assertDefined(distributionConfigValue, `AWS::CloudFront::Distribution ${resource.logicalId} DistributionConfig`);
|
|
18
25
|
assertNotNull(distributionConfigValue, `AWS::CloudFront::Distribution ${resource.logicalId} DistributionConfig`);
|
|
@@ -20,10 +27,9 @@ export class SimCfnCfDistroCreator {
|
|
|
20
27
|
logicalId: resource.logicalId,
|
|
21
28
|
distributionConfig: distributionConfigValue,
|
|
22
29
|
});
|
|
23
|
-
const distributionConfig = validator.validate();
|
|
24
30
|
const output = await this.cloudFront.createDistribution({
|
|
25
31
|
input: {
|
|
26
|
-
DistributionConfig:
|
|
32
|
+
DistributionConfig: simCfnCfDistroWithoutAbsentWebAcl(resource, validator.validate(), context.simAws),
|
|
27
33
|
},
|
|
28
34
|
});
|
|
29
35
|
const distributionId = output.Distribution?.Id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-cf-distro-creator.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,GACd,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-cfn-cf-distro-creator.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,GACd,MAAM,wCAAwC,CAAC;AAQhD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,iCAAiC,EAAE,MAAM,gCAAgC,CAAC;AAMnF;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IACf,UAAU,CAAgB;IAE3C,YAAY,UAA2C;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC,EACrC,OAA+C;QAE/C,MAAM,uBAAuB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAEjE,aAAa,CACX,uBAAuB,EACvB,iCAAiC,QAAQ,CAAC,SAAS,qBAAqB,CACzE,CAAC;QACF,aAAa,CACX,uBAAuB,EACvB,iCAAiC,QAAQ,CAAC,SAAS,qBAAqB,CACzE,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;YAClD,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,kBAAkB,EAAE,uBAAuB;SAC5C,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;YACtD,KAAK,EAAE;gBACL,kBAAkB,EAAE,iCAAiC,CACnD,QAAQ,EACR,SAAS,CAAC,QAAQ,EAAE,EACpB,OAAO,CAAC,MAAM,CACf;aACF;SACF,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;QAC/C,aAAa,CACX,cAAc,EACd,iCAAiC,QAAQ,CAAC,SAAS,0BAA0B,CAC9E,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAE5E,aAAa,CACX,YAAY,EACZ,wCAAwC,cAAc,yCAAyC,CAChG,CAAC;QAEF,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SimAws } from "../../../aws/sim-aws.js";
|
|
2
|
+
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
3
|
+
import type { SimCloudFrontDistributionConfig } from "../../command/create-distribution/create-distribution.command.js";
|
|
4
|
+
/**
|
|
5
|
+
* The DistributionConfig to deploy, without a `WebACLId` naming a web ACL this
|
|
6
|
+
* simulation does not hold.
|
|
7
|
+
*
|
|
8
|
+
* `CreateDistribution` refuses such a `WebACLId`, as real CloudFront refuses
|
|
9
|
+
* one, and a Distribution deployed from a template is the one place that
|
|
10
|
+
* refusal costs more than it is worth. A stack naming a web ACL from a real
|
|
11
|
+
* account is ordinary. So is one whose web ACL lost a rule this simulation
|
|
12
|
+
* cannot evaluate. Neither says anything about the site the Distribution
|
|
13
|
+
* serves, and a Distribution that failed to deploy takes every request a local
|
|
14
|
+
* dev server and a test suite make with it.
|
|
15
|
+
*
|
|
16
|
+
* So the property is left out and recorded on `stack.ignoredProperties`. The
|
|
17
|
+
* Distribution deploys and serves every request, including the ones the web
|
|
18
|
+
* ACL was written to block. A test that cares reads the record.
|
|
19
|
+
*
|
|
20
|
+
* A `WebACLId` naming a web ACL that is here goes through untouched, wrong
|
|
21
|
+
* scope and all, so a `REGIONAL` web ACL on a Distribution still fails the
|
|
22
|
+
* deployment the way real CloudFront fails it.
|
|
23
|
+
*/
|
|
24
|
+
export declare function simCfnCfDistroWithoutAbsentWebAcl(resource: SimCfnResource, distributionConfig: SimCloudFrontDistributionConfig, simAws: SimAws): SimCloudFrontDistributionConfig;
|
|
25
|
+
//# sourceMappingURL=sim-cfn-cf-distro-web-acl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-cf-distro-web-acl.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/distro/sim-cfn-cf-distro-web-acl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kEAAkE,CAAC;AAIxH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,cAAc,EACxB,kBAAkB,EAAE,+BAA+B,EACnD,MAAM,EAAE,MAAM,GACb,+BAA+B,CAmBjC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { simCfWebAclArn } from "../../web-acl/sim-cf-distribution-web-acl.js";
|
|
2
|
+
import { makeSimCfWebAclResolver } from "../../web-acl/sim-cf-web-acl-resolver.factory.js";
|
|
3
|
+
/**
|
|
4
|
+
* The DistributionConfig to deploy, without a `WebACLId` naming a web ACL this
|
|
5
|
+
* simulation does not hold.
|
|
6
|
+
*
|
|
7
|
+
* `CreateDistribution` refuses such a `WebACLId`, as real CloudFront refuses
|
|
8
|
+
* one, and a Distribution deployed from a template is the one place that
|
|
9
|
+
* refusal costs more than it is worth. A stack naming a web ACL from a real
|
|
10
|
+
* account is ordinary. So is one whose web ACL lost a rule this simulation
|
|
11
|
+
* cannot evaluate. Neither says anything about the site the Distribution
|
|
12
|
+
* serves, and a Distribution that failed to deploy takes every request a local
|
|
13
|
+
* dev server and a test suite make with it.
|
|
14
|
+
*
|
|
15
|
+
* So the property is left out and recorded on `stack.ignoredProperties`. The
|
|
16
|
+
* Distribution deploys and serves every request, including the ones the web
|
|
17
|
+
* ACL was written to block. A test that cares reads the record.
|
|
18
|
+
*
|
|
19
|
+
* A `WebACLId` naming a web ACL that is here goes through untouched, wrong
|
|
20
|
+
* scope and all, so a `REGIONAL` web ACL on a Distribution still fails the
|
|
21
|
+
* deployment the way real CloudFront fails it.
|
|
22
|
+
*/
|
|
23
|
+
export function simCfnCfDistroWithoutAbsentWebAcl(resource, distributionConfig, simAws) {
|
|
24
|
+
const webAclArn = simCfWebAclArn(distributionConfig);
|
|
25
|
+
if (webAclArn === undefined) {
|
|
26
|
+
return distributionConfig;
|
|
27
|
+
}
|
|
28
|
+
if (makeSimCfWebAclResolver(simAws)(webAclArn) !== undefined) {
|
|
29
|
+
return distributionConfig;
|
|
30
|
+
}
|
|
31
|
+
resource.ignoreProperty("DistributionConfig.WebACLId", `web ACL ${webAclArn} is not held by this simulation, so the ` +
|
|
32
|
+
`Distribution is deployed with nothing in front of it and serves every ` +
|
|
33
|
+
`request that web ACL would have decided`);
|
|
34
|
+
return { ...distributionConfig, WebACLId: undefined };
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=sim-cfn-cf-distro-web-acl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-cf-distro-web-acl.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/cfn/distro/sim-cfn-cf-distro-web-acl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,iCAAiC,CAC/C,QAAwB,EACxB,kBAAmD,EACnD,MAAc;IAEd,MAAM,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAErD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,cAAc,CACrB,6BAA6B,EAC7B,WAAW,SAAS,0CAA0C;QAC5D,wEAAwE;QACxE,yCAAyC,CAC5C,CAAC;IAEF,OAAO,EAAE,GAAG,kBAAkB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-cloudfront-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAC3H,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAU3D;;GAEG;AACH,qBAAa,0CAA2C,YAAW,4BAA4B;IAC7F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAuC;IACpF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAqC;IAChF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;IAEpE,YAAY,UAAU,EAAE,aAAa,EAapC;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"sim-cfn-cloudfront-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAC3H,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAU3D;;GAEG;AACH,qBAAa,0CAA2C,YAAW,4BAA4B;IAC7F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAuC;IACpF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAqC;IAChF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;IAEpE,YAAY,UAAU,EAAE,aAAa,EAapC;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyB7B;IAED;;;OAGG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CA4Bf;YAEa,cAAc;CAa7B"}
|
|
@@ -34,21 +34,22 @@ export class SimCloudFrontCloudFormationResourceFactory {
|
|
|
34
34
|
* Create a simulated CloudFront resource from a CloudFormation Resource.
|
|
35
35
|
*/
|
|
36
36
|
async create(resourceTypeName, resource, context) {
|
|
37
|
+
const properties = context.resolvedProperties ?? resource.properties;
|
|
37
38
|
switch (resourceTypeName) {
|
|
38
39
|
case "Distribution": {
|
|
39
|
-
return await this.distroCreator.create(resource, context
|
|
40
|
+
return await this.distroCreator.create(resource, properties, context);
|
|
40
41
|
}
|
|
41
42
|
case "Function": {
|
|
42
|
-
return await this.functionCreator.create(resource,
|
|
43
|
+
return await this.functionCreator.create(resource, properties, context);
|
|
43
44
|
}
|
|
44
45
|
case "ResponseHeadersPolicy": {
|
|
45
|
-
return this.responseHeadersPolicyCreator.create(resource,
|
|
46
|
+
return this.responseHeadersPolicyCreator.create(resource, properties);
|
|
46
47
|
}
|
|
47
48
|
case "OriginAccessControl": {
|
|
48
|
-
return this.originAccessControlCreator.create(resource,
|
|
49
|
+
return this.originAccessControlCreator.create(resource, properties);
|
|
49
50
|
}
|
|
50
51
|
case "KeyValueStore": {
|
|
51
|
-
return await this.keyValueStoreCreator.create(resource,
|
|
52
|
+
return await this.keyValueStoreCreator.create(resource, properties);
|
|
52
53
|
}
|
|
53
54
|
default: {
|
|
54
55
|
throw new Error(`Unsupported sim CloudFront CloudFormation Resource ${resourceTypeName}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-cloudfront-resource-factory.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,oCAAoC,EAAE,MAAM,2DAA2D,CAAC;AACjH,OAAO,EAAE,kCAAkC,EAAE,MAAM,mDAAmD,CAAC;AACvG,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE;;GAEG;AACH,MAAM,OAAO,0CAA0C;IACpC,UAAU,CAAgB;IAC1B,aAAa,CAAwB;IACrC,eAAe,CAAmB;IAClC,aAAa,CAAwB;IACrC,4BAA4B,CAAuC;IACnE,0BAA0B,CAAqC;IAC/D,oBAAoB,CAA+B;IAEpE,YAAY,UAAyB;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,IAAI,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,4BAA4B;YAC/B,IAAI,oCAAoC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,0BAA0B,GAAG,IAAI,kCAAkC,CAAC;YACvE,UAAU;SACX,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,4BAA4B,CAAC;YAC3D,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,OAA+C;QAE/C,QAAQ,gBAAgB,EAAE,CAAC;YACzB,KAAK,cAAc,EAAE,CAAC;gBACpB,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"sim-cfn-cloudfront-resource-factory.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ interface ListObjectsAuthorizerProperties {
|
|
|
7
7
|
interface ListObjectsAuthorizationInput {
|
|
8
8
|
readonly bucket: SimS3Bucket;
|
|
9
9
|
readonly prefix?: string | undefined;
|
|
10
|
+
readonly delimiter?: string | undefined;
|
|
10
11
|
readonly maxKeys: number;
|
|
11
12
|
readonly options?: SimS3RequestOptions | undefined;
|
|
12
13
|
}
|
|
@@ -17,10 +18,11 @@ interface ListObjectsAuthorizationInput {
|
|
|
17
18
|
* action. The resource is the Bucket ARN because listing examines a Bucket's
|
|
18
19
|
* key namespace rather than reading any individual Object.
|
|
19
20
|
*
|
|
20
|
-
* Prefix and maximum-result constraints are request attributes used
|
|
21
|
-
* policies to limit which listings a principal may perform. They are
|
|
22
|
-
* as S3 condition keys so policy evaluation can distinguish, for
|
|
23
|
-
* permitted app prefix from a restricted private prefix
|
|
21
|
+
* Prefix, delimiter and maximum-result constraints are request attributes used
|
|
22
|
+
* by IAM policies to limit which listings a principal may perform. They are
|
|
23
|
+
* supplied as S3 condition keys so policy evaluation can distinguish, for
|
|
24
|
+
* example, a permitted app prefix from a restricted private prefix, or a
|
|
25
|
+
* listing of one folder from a listing of a whole Bucket.
|
|
24
26
|
*/
|
|
25
27
|
export declare class ListObjectsAuthorizer {
|
|
26
28
|
private static readonly action;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects-authorizer.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-authorizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAEtG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,UAAU,+BAA+B;IACvC,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;CACvC;AAED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACpD;AAED
|
|
1
|
+
{"version":3,"file":"list-objects-authorizer.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-authorizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAEtG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,UAAU,+BAA+B;IACvC,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;CACvC;AAED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAEjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAE9C,YAAY,UAAU,EAAE,+BAA+B,EAEtD;IAED;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,6BAA6B,GAAG,IAAI,CAgCpD;CACF"}
|
|
@@ -7,10 +7,11 @@ import { simS3ConditionContext } from "../authorize/sim-s3-condition-context.js"
|
|
|
7
7
|
* action. The resource is the Bucket ARN because listing examines a Bucket's
|
|
8
8
|
* key namespace rather than reading any individual Object.
|
|
9
9
|
*
|
|
10
|
-
* Prefix and maximum-result constraints are request attributes used
|
|
11
|
-
* policies to limit which listings a principal may perform. They are
|
|
12
|
-
* as S3 condition keys so policy evaluation can distinguish, for
|
|
13
|
-
* permitted app prefix from a restricted private prefix
|
|
10
|
+
* Prefix, delimiter and maximum-result constraints are request attributes used
|
|
11
|
+
* by IAM policies to limit which listings a principal may perform. They are
|
|
12
|
+
* supplied as S3 condition keys so policy evaluation can distinguish, for
|
|
13
|
+
* example, a permitted app prefix from a restricted private prefix, or a
|
|
14
|
+
* listing of one folder from a listing of a whole Bucket.
|
|
14
15
|
*/
|
|
15
16
|
export class ListObjectsAuthorizer {
|
|
16
17
|
static action = "s3:ListBucket";
|
|
@@ -31,6 +32,7 @@ export class ListObjectsAuthorizer {
|
|
|
31
32
|
conditionContext: {
|
|
32
33
|
...simS3ConditionContext(input.options),
|
|
33
34
|
"s3:prefix": input.prefix ?? "",
|
|
35
|
+
"s3:delimiter": input.delimiter ?? "",
|
|
34
36
|
"s3:max-keys": input.maxKeys,
|
|
35
37
|
},
|
|
36
38
|
resourcePolicies: policy === undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects-authorizer.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-authorizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"list-objects-authorizer.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-authorizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAejF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAU,MAAM,GAAG,eAAe,CAAC;IAEhC,GAAG,CAA0B;IAE9C,YAAY,UAA2C;QACrD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAoC;QAC5C,MAAM,QAAQ,GAAG,gBAAgB,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,MAAM,EAAE,qBAAqB,CAAC,MAAM;YACpC,QAAQ;YACR,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM;YAC7B,gBAAgB,EAAE;gBAChB,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC;gBACvC,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;gBAC/B,cAAc,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;gBACrC,aAAa,EAAE,KAAK,CAAC,OAAO;aAC7B;YACD,gBAAgB,EACd,MAAM,KAAK,SAAS;gBAClB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE;wBACE,QAAQ,EAAE,MAAM;wBAChB,UAAU,EAAE,cAAc;wBAC1B,WAAW,EAAE,QAAQ;qBACtB;iBACF;SACR,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;gBACpC,MAAM,EAAE,qBAAqB,CAAC,MAAM;gBACpC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -3,6 +3,7 @@ import type { SimListObjectsCommandOutput } from "./list-objects.command.js";
|
|
|
3
3
|
interface ListObjectsPageInput {
|
|
4
4
|
readonly bucket: SimS3Bucket;
|
|
5
5
|
readonly prefix?: string | undefined;
|
|
6
|
+
readonly delimiter?: string | undefined;
|
|
6
7
|
readonly marker?: string | undefined;
|
|
7
8
|
readonly maxKeys: number;
|
|
8
9
|
}
|
|
@@ -17,8 +18,9 @@ interface ListObjectsPageInput {
|
|
|
17
18
|
* operations differ in how a caller names where to resume rather than in which
|
|
18
19
|
* keys a page holds. The marker is exclusive, so a page begins after it.
|
|
19
20
|
*
|
|
20
|
-
* NextMarker is returned only when another page exists and identifies the
|
|
21
|
-
*
|
|
21
|
+
* NextMarker is returned only when another page exists, and identifies the
|
|
22
|
+
* final entry in the current page. That entry is a common prefix where the
|
|
23
|
+
* page ended on one, and the marker steps over the whole rolled-up prefix.
|
|
22
24
|
*/
|
|
23
25
|
export declare class ListObjectsPageBuilder {
|
|
24
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects-page-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"list-objects-page-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAE7E,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACG,KAAK,CACT,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,2BAA2B,CAAC,CAqBtC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { simS3CommonPrefixes } from "../../object/s3-common-prefix.js";
|
|
1
2
|
import { simS3ObjectPage } from "../../object/s3-object-listing.js";
|
|
2
3
|
import { simS3ObjectSummaries } from "../../object/s3-object-summary.js";
|
|
3
4
|
/**
|
|
@@ -11,8 +12,9 @@ import { simS3ObjectSummaries } from "../../object/s3-object-summary.js";
|
|
|
11
12
|
* operations differ in how a caller names where to resume rather than in which
|
|
12
13
|
* keys a page holds. The marker is exclusive, so a page begins after it.
|
|
13
14
|
*
|
|
14
|
-
* NextMarker is returned only when another page exists and identifies the
|
|
15
|
-
*
|
|
15
|
+
* NextMarker is returned only when another page exists, and identifies the
|
|
16
|
+
* final entry in the current page. That entry is a common prefix where the
|
|
17
|
+
* page ended on one, and the marker steps over the whole rolled-up prefix.
|
|
16
18
|
*/
|
|
17
19
|
export class ListObjectsPageBuilder {
|
|
18
20
|
/**
|
|
@@ -21,13 +23,17 @@ export class ListObjectsPageBuilder {
|
|
|
21
23
|
async build(input) {
|
|
22
24
|
const page = simS3ObjectPage({
|
|
23
25
|
objects: await input.bucket.listObjects(input.prefix),
|
|
26
|
+
prefix: input.prefix,
|
|
27
|
+
delimiter: input.delimiter,
|
|
24
28
|
startAfter: input.marker,
|
|
25
29
|
maxKeys: input.maxKeys,
|
|
26
30
|
});
|
|
27
31
|
return {
|
|
28
32
|
Contents: simS3ObjectSummaries(page.objects),
|
|
33
|
+
CommonPrefixes: simS3CommonPrefixes(page.commonPrefixes),
|
|
29
34
|
Name: input.bucket.bucketName,
|
|
30
35
|
Prefix: input.prefix,
|
|
36
|
+
Delimiter: input.delimiter,
|
|
31
37
|
Marker: input.marker,
|
|
32
38
|
MaxKeys: input.maxKeys,
|
|
33
39
|
IsTruncated: page.isTruncated,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects-page-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-page-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"list-objects-page-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-page-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAWzE;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,sBAAsB;IACjC;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,KAA2B;QAE3B,MAAM,IAAI,GAAG,eAAe,CAAC;YAC3B,OAAO,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;YACrD,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5C,cAAc,EAAE,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC;YACxD,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
|
+
import type { SimS3CommonPrefix } from "../../object/s3-common-prefix.js";
|
|
2
3
|
import type { SimS3ObjectSummary } from "../../object/s3-object-summary.js";
|
|
3
4
|
export type { SimS3ObjectSummary } from "../../object/s3-object-summary.js";
|
|
4
5
|
/**
|
|
@@ -9,10 +10,14 @@ export interface SimListObjectsCommand {
|
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* Minimal structural sim S3 ListObjects input.
|
|
13
|
+
*
|
|
14
|
+
* `Delimiter` rolls every key holding it after the `Prefix` up into a common
|
|
15
|
+
* prefix, which is how a Bucket is walked one folder at a time.
|
|
12
16
|
*/
|
|
13
17
|
export interface SimListObjectsCommandInput {
|
|
14
18
|
readonly Bucket?: string | undefined;
|
|
15
19
|
readonly Prefix?: string | undefined;
|
|
20
|
+
readonly Delimiter?: string | undefined;
|
|
16
21
|
readonly Marker?: string | undefined;
|
|
17
22
|
readonly MaxKeys?: number | undefined;
|
|
18
23
|
}
|
|
@@ -21,8 +26,10 @@ export interface SimListObjectsCommandInput {
|
|
|
21
26
|
*/
|
|
22
27
|
export interface SimListObjectsCommandOutput {
|
|
23
28
|
readonly Contents?: SimS3ObjectSummary[] | undefined;
|
|
29
|
+
readonly CommonPrefixes?: SimS3CommonPrefix[] | undefined;
|
|
24
30
|
readonly Name?: string;
|
|
25
31
|
readonly Prefix?: string | undefined;
|
|
32
|
+
readonly Delimiter?: string | undefined;
|
|
26
33
|
readonly Marker?: string | undefined;
|
|
27
34
|
readonly MaxKeys?: number;
|
|
28
35
|
readonly IsTruncated?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;CAC5C;AAED
|
|
1
|
+
{"version":3,"file":"list-objects.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;CAC5C;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC"}
|
|
@@ -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,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CAC7C;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,YAAY,UAAU,EAAE,mCAAmC,EAY1D;IAED;;;;;;OAMG;IACG,MAAM,CACV,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,2BAA2B,CAAC,
|
|
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,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CAC7C;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,YAAY,UAAU,EAAE,mCAAmC,EAY1D;IAED;;;;;;OAMG;IACG,MAAM,CACV,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,2BAA2B,CAAC,CAgCtC;CACF"}
|
|
@@ -44,12 +44,14 @@ export class ListObjectsCommandHandler {
|
|
|
44
44
|
this.authorizer.authorize({
|
|
45
45
|
bucket,
|
|
46
46
|
prefix: command.input.Prefix,
|
|
47
|
+
delimiter: command.input.Delimiter,
|
|
47
48
|
maxKeys,
|
|
48
49
|
options,
|
|
49
50
|
});
|
|
50
51
|
return await this.pageBuilder.build({
|
|
51
52
|
bucket,
|
|
52
53
|
prefix: command.input.Prefix,
|
|
54
|
+
delimiter: command.input.Delimiter,
|
|
53
55
|
marker: command.input.Marker,
|
|
54
56
|
maxKeys,
|
|
55
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AASxE;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,OAAO,CAAoC;IAC3C,UAAU,CAAwB;IAClC,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAC3C,UAAU,CAAsB;IAChC,OAAO,CAA2B;IAEnD,YAAY,UAA+C;QACzD,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,EAClC,OAAO,GAAG,IAAI,wBAAwB,EAAE,GACzC,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,OAA8B,EAC9B,OAA6B;QAE7B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAyB,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,uEAAuE;QACvE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,qBAAqB,CACnC,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAC5B,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAClC,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"list-objects.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AASxE;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,OAAO,CAAoC;IAC3C,UAAU,CAAwB;IAClC,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAC3C,UAAU,CAAsB;IAChC,OAAO,CAA2B;IAEnD,YAAY,UAA+C;QACzD,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,EAClC,OAAO,GAAG,IAAI,wBAAwB,EAAE,GACzC,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,OAA8B,EAC9B,OAA6B;QAE7B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAyB,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,uEAAuE;QACvE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,qBAAqB,CACnC,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAC5B,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS;YAClC,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAClC,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS;YAClC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -3,6 +3,7 @@ import type { SimListObjectsV2CommandOutput } from "./list-objects-v2.command.js
|
|
|
3
3
|
interface ListObjectsV2PageInput {
|
|
4
4
|
readonly bucket: SimS3Bucket;
|
|
5
5
|
readonly prefix?: string | undefined;
|
|
6
|
+
readonly delimiter?: string | undefined;
|
|
6
7
|
readonly continuationToken?: string | undefined;
|
|
7
8
|
readonly startAfter?: string | undefined;
|
|
8
9
|
readonly maxKeys: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects-v2-page-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2-page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"list-objects-v2-page-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2-page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAQjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAElF,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAwB;IACnC;;OAEG;IACG,KAAK,CACT,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,6BAA6B,CAAC,CA0BxC;IAED,OAAO,CAAC,WAAW;CAKpB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { simS3CommonPrefixes } from "../../object/s3-common-prefix.js";
|
|
1
2
|
import { simS3ObjectPage } from "../../object/s3-object-listing.js";
|
|
2
3
|
import { simS3ObjectSummaries } from "../../object/s3-object-summary.js";
|
|
3
4
|
import { simS3ContinuationToken, simS3ContinuationTokenKey, } from "./list-objects-v2-continuation-token.js";
|
|
@@ -21,15 +22,19 @@ export class ListObjectsV2PageBuilder {
|
|
|
21
22
|
async build(input) {
|
|
22
23
|
const page = simS3ObjectPage({
|
|
23
24
|
objects: await input.bucket.listObjects(input.prefix),
|
|
25
|
+
prefix: input.prefix,
|
|
26
|
+
delimiter: input.delimiter,
|
|
24
27
|
startAfter: this.resumeAfter(input),
|
|
25
28
|
maxKeys: input.maxKeys,
|
|
26
29
|
});
|
|
27
30
|
return {
|
|
28
31
|
Contents: simS3ObjectSummaries(page.objects),
|
|
32
|
+
CommonPrefixes: simS3CommonPrefixes(page.commonPrefixes),
|
|
29
33
|
Name: input.bucket.bucketName,
|
|
30
34
|
Prefix: input.prefix,
|
|
35
|
+
Delimiter: input.delimiter,
|
|
31
36
|
MaxKeys: input.maxKeys,
|
|
32
|
-
KeyCount: page.objects.length,
|
|
37
|
+
KeyCount: page.objects.length + page.commonPrefixes.length,
|
|
33
38
|
IsTruncated: page.isTruncated,
|
|
34
39
|
ContinuationToken: input.continuationToken,
|
|
35
40
|
NextContinuationToken: page.resumeAfter === undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects-v2-page-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2-page-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"list-objects-v2-page-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2-page-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,yCAAyC,CAAC;AAYjD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,wBAAwB;IACnC;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,KAA6B;QAE7B,MAAM,IAAI,GAAG,eAAe,CAAC;YAC3B,OAAO,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;YACrD,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACnC,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5C,cAAc,EAAE,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC;YACxD,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM;YAC1D,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,qBAAqB,EACnB,IAAI,CAAC,WAAW,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;YAC9C,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,KAA6B;QAC/C,OAAO,KAAK,CAAC,iBAAiB,KAAK,SAAS;YAC1C,CAAC,CAAC,KAAK,CAAC,UAAU;YAClB,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
|
|
2
|
+
import type { SimS3CommonPrefix } from "../../object/s3-common-prefix.js";
|
|
2
3
|
import type { SimS3ObjectSummary } from "../../object/s3-object-summary.js";
|
|
3
4
|
/**
|
|
4
5
|
* Minimal structural sim S3 ListObjectsV2 command.
|
|
@@ -10,11 +11,13 @@ export interface SimListObjectsV2Command {
|
|
|
10
11
|
* Minimal structural sim S3 ListObjectsV2 input.
|
|
11
12
|
*
|
|
12
13
|
* `ContinuationToken` resumes a truncated listing and takes precedence over
|
|
13
|
-
* `StartAfter`, which only positions the first page.
|
|
14
|
+
* `StartAfter`, which only positions the first page. `Delimiter` rolls every
|
|
15
|
+
* key holding it after the `Prefix` up into a common prefix.
|
|
14
16
|
*/
|
|
15
17
|
export interface SimListObjectsV2CommandInput {
|
|
16
18
|
readonly Bucket?: string | undefined;
|
|
17
19
|
readonly Prefix?: string | undefined;
|
|
20
|
+
readonly Delimiter?: string | undefined;
|
|
18
21
|
readonly MaxKeys?: number | undefined;
|
|
19
22
|
readonly ContinuationToken?: string | undefined;
|
|
20
23
|
readonly StartAfter?: string | undefined;
|
|
@@ -24,12 +27,15 @@ export interface SimListObjectsV2CommandInput {
|
|
|
24
27
|
*
|
|
25
28
|
* `KeyCount` is what makes this version worth using over the first: it says how
|
|
26
29
|
* many keys came back without the caller having to measure `Contents`, which
|
|
27
|
-
* may be absent rather than empty.
|
|
30
|
+
* may be absent rather than empty. It counts the common prefixes alongside the
|
|
31
|
+
* keys, as real S3 counts them.
|
|
28
32
|
*/
|
|
29
33
|
export interface SimListObjectsV2CommandOutput {
|
|
30
34
|
readonly Contents?: SimS3ObjectSummary[] | undefined;
|
|
35
|
+
readonly CommonPrefixes?: SimS3CommonPrefix[] | undefined;
|
|
31
36
|
readonly Name?: string;
|
|
32
37
|
readonly Prefix?: string | undefined;
|
|
38
|
+
readonly Delimiter?: string | undefined;
|
|
33
39
|
readonly MaxKeys?: number;
|
|
34
40
|
readonly KeyCount?: number;
|
|
35
41
|
readonly IsTruncated?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects-v2.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;CAC9C;AAED
|
|
1
|
+
{"version":3,"file":"list-objects-v2.command.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects-v2.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,UAAU,qCAAqC;IAC7C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,qBAAa,2BAA4B,YAAW,cAAc,CAChE,uBAAuB,EACvB,6BAA6B,CAC9B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,YAAY,UAAU,EAAE,qCAAqC,EAY5D;IAED;;;;;;OAMG;IACG,MAAM,CACV,OAAO,EAAE,uBAAuB,EAChC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,6BAA6B,CAAC,
|
|
1
|
+
{"version":3,"file":"list-objects-v2.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,UAAU,qCAAqC;IAC7C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,qBAAa,2BAA4B,YAAW,cAAc,CAChE,uBAAuB,EACvB,6BAA6B,CAC9B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,YAAY,UAAU,EAAE,qCAAqC,EAY5D;IAED;;;;;;OAMG;IACG,MAAM,CACV,OAAO,EAAE,uBAAuB,EAChC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,6BAA6B,CAAC,CAiCxC;CACF"}
|
|
@@ -49,12 +49,14 @@ export class ListObjectsV2CommandHandler {
|
|
|
49
49
|
this.authorizer.authorize({
|
|
50
50
|
bucket,
|
|
51
51
|
prefix: command.input.Prefix,
|
|
52
|
+
delimiter: command.input.Delimiter,
|
|
52
53
|
maxKeys,
|
|
53
54
|
options,
|
|
54
55
|
});
|
|
55
56
|
return await this.pageBuilder.build({
|
|
56
57
|
bucket,
|
|
57
58
|
prefix: command.input.Prefix,
|
|
59
|
+
delimiter: command.input.Delimiter,
|
|
58
60
|
continuationToken: command.input.ContinuationToken,
|
|
59
61
|
startAfter: command.input.StartAfter,
|
|
60
62
|
maxKeys,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects-v2.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAS7E;;;;;;;;;GASG;AACH,MAAM,OAAO,2BAA2B;IAIrB,OAAO,CAAoC;IAC3C,UAAU,CAAwB;IAClC,WAAW,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAC7C,UAAU,CAAsB;IAChC,OAAO,CAA2B;IAEnD,YAAY,UAAiD;QAC3D,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,EAClC,OAAO,GAAG,IAAI,wBAAwB,EAAE,GACzC,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,OAAgC,EAChC,OAA6B;QAE7B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAyB,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,uEAAuE;QACvE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,qBAAqB,CACnC,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAC5B,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAClC,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,iBAAiB;YAClD,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;YACpC,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"list-objects-v2.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects-v2/list-objects-v2.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAS7E;;;;;;;;;GASG;AACH,MAAM,OAAO,2BAA2B;IAIrB,OAAO,CAAoC;IAC3C,UAAU,CAAwB;IAClC,WAAW,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAC7C,UAAU,CAAsB;IAChC,OAAO,CAA2B;IAEnD,YAAY,UAAiD;QAC3D,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,EAClC,OAAO,GAAG,IAAI,wBAAwB,EAAE,GACzC,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,OAAgC,EAChC,OAA6B;QAE7B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAyB,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,uEAAuE;QACvE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,qBAAqB,CACnC,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAC5B,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS;YAClC,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAClC,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS;YAClC,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,iBAAiB;YAClD,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;YACpC,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One folder of a Bucket, as a listing under a delimiter describes it.
|
|
3
|
+
*
|
|
4
|
+
* Both list operations answer with these. A common prefix stands in for every
|
|
5
|
+
* key beneath it, and carries no size, entity tag or timestamp of its own,
|
|
6
|
+
* because S3 stores no such folder.
|
|
7
|
+
*/
|
|
8
|
+
export interface SimS3CommonPrefix {
|
|
9
|
+
readonly Prefix?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Describe the prefixes a page rolled keys up into, or nothing when it rolled
|
|
13
|
+
* up none.
|
|
14
|
+
*
|
|
15
|
+
* Real S3 leaves `CommonPrefixes` out of a listing that rolled nothing up,
|
|
16
|
+
* matching the way it leaves `Contents` out of one that found no keys. A
|
|
17
|
+
* caller written against AWS reaches for `CommonPrefixes ?? []`, and answering
|
|
18
|
+
* with an empty array here would let one that skipped the guard pass a test
|
|
19
|
+
* and fail against AWS.
|
|
20
|
+
*/
|
|
21
|
+
export declare function simS3CommonPrefixes(prefixes: readonly string[]): SimS3CommonPrefix[] | undefined;
|
|
22
|
+
//# sourceMappingURL=s3-common-prefix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-common-prefix.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/object/s3-common-prefix.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,iBAAiB,EAAE,GAAG,SAAS,CAIjC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Describe the prefixes a page rolled keys up into, or nothing when it rolled
|
|
3
|
+
* up none.
|
|
4
|
+
*
|
|
5
|
+
* Real S3 leaves `CommonPrefixes` out of a listing that rolled nothing up,
|
|
6
|
+
* matching the way it leaves `Contents` out of one that found no keys. A
|
|
7
|
+
* caller written against AWS reaches for `CommonPrefixes ?? []`, and answering
|
|
8
|
+
* with an empty array here would let one that skipped the guard pass a test
|
|
9
|
+
* and fail against AWS.
|
|
10
|
+
*/
|
|
11
|
+
export function simS3CommonPrefixes(prefixes) {
|
|
12
|
+
return prefixes.length === 0
|
|
13
|
+
? undefined
|
|
14
|
+
: prefixes.map((prefix) => ({ Prefix: prefix }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=s3-common-prefix.js.map
|