@kensio/yulin 0.14.0 → 0.16.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.
Files changed (73) hide show
  1. package/dist/config/eslint/cffjs2.eslint.config.d.ts +3 -0
  2. package/dist/config/eslint/cffjs2.eslint.config.d.ts.map +1 -0
  3. package/dist/config/eslint/cffjs2.eslint.config.js +119 -0
  4. package/dist/config/eslint/cffjs2.eslint.config.js.map +1 -0
  5. package/dist/config/eslint/index.d.ts +2 -0
  6. package/dist/config/eslint/index.d.ts.map +1 -0
  7. package/dist/config/eslint/index.js +2 -0
  8. package/dist/config/eslint/index.js.map +1 -0
  9. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  10. package/dist/service/aws/sim-aws.js +1 -0
  11. package/dist/service/aws/sim-aws.js.map +1 -1
  12. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +1 -1
  13. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  14. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +2 -2
  15. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  16. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -1
  17. package/dist/service/cloudfront/command/create-function/create-function.handler.js +2 -2
  18. package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -1
  19. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts +3 -0
  20. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts.map +1 -1
  21. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js +7 -3
  22. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js.map +1 -1
  23. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  24. package/dist/service/cloudfront/sim-cloudfront.js +1 -0
  25. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  26. package/dist/service/dynamodb/command/create-table/create-table.handler.d.ts.map +1 -1
  27. package/dist/service/dynamodb/command/create-table/create-table.handler.js +2 -2
  28. package/dist/service/dynamodb/command/create-table/create-table.handler.js.map +1 -1
  29. package/dist/service/dynamodb/command/describe-table/describe-table.handler.d.ts +3 -0
  30. package/dist/service/dynamodb/command/describe-table/describe-table.handler.d.ts.map +1 -1
  31. package/dist/service/dynamodb/command/describe-table/describe-table.handler.js +7 -3
  32. package/dist/service/dynamodb/command/describe-table/describe-table.handler.js.map +1 -1
  33. package/dist/service/dynamodb/command/list-tables/list-tables.handler.d.ts +3 -0
  34. package/dist/service/dynamodb/command/list-tables/list-tables.handler.d.ts.map +1 -1
  35. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js +7 -3
  36. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js.map +1 -1
  37. package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
  38. package/dist/service/dynamodb/sim-dynamodb.js +8 -2
  39. package/dist/service/dynamodb/sim-dynamodb.js.map +1 -1
  40. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +3 -0
  41. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts.map +1 -1
  42. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +9 -5
  43. package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
  44. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -1
  45. package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
  46. package/dist/service/s3/command/get-object/get-object.handler.js +7 -3
  47. package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
  48. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts +4 -1
  49. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts.map +1 -1
  50. package/dist/service/s3/command/list-buckets/list-buckets.handler.js +7 -3
  51. package/dist/service/s3/command/list-buckets/list-buckets.handler.js.map +1 -1
  52. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts +4 -1
  53. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts.map +1 -1
  54. package/dist/service/s3/command/list-objects/list-objects.handler.js +7 -3
  55. package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
  56. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts +3 -0
  57. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts.map +1 -1
  58. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js +7 -3
  59. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js.map +1 -1
  60. package/dist/service/s3/command/put-object/put-object.handler.d.ts +3 -0
  61. package/dist/service/s3/command/put-object/put-object.handler.d.ts.map +1 -1
  62. package/dist/service/s3/command/put-object/put-object.handler.js +7 -3
  63. package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -1
  64. package/dist/service/s3/sim-s3.d.ts +3 -0
  65. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  66. package/dist/service/s3/sim-s3.js +22 -5
  67. package/dist/service/s3/sim-s3.js.map +1 -1
  68. package/dist/tsconfig.tsbuildinfo +1 -1
  69. package/dist/util/background/background.d.ts +47 -2
  70. package/dist/util/background/background.d.ts.map +1 -1
  71. package/dist/util/background/background.js +71 -4
  72. package/dist/util/background/background.js.map +1 -1
  73. package/package.json +18 -2
@@ -3,10 +3,12 @@ import type { SimCreateBucketCommand, SimCreateBucketCommandOutput } from "./cre
3
3
  import { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
4
4
  import type { SimS3GlobalRegistry } from "../../sim-s3-global-registry.js";
5
5
  import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
6
+ import { type BackgroundScheduler } from "../../../../util/background/background.js";
6
7
  interface CreateBucketCommandHandlerProps {
7
8
  readonly accountRegionScope: SimAwsAccountRegionScope;
8
9
  readonly buckets: Map<string, SimS3Bucket>;
9
10
  readonly s3GlobalRegistry: SimS3GlobalRegistry;
11
+ readonly background?: BackgroundScheduler;
10
12
  }
11
13
  /**
12
14
  * S3 CreateBucketCommand handler.
@@ -17,6 +19,7 @@ export declare class CreateBucketCommandHandler implements CommandHandler<SimCre
17
19
  private readonly accountRegionScope;
18
20
  private readonly buckets;
19
21
  private readonly s3GlobalRegistry;
22
+ private readonly background;
20
23
  constructor(props: CreateBucketCommandHandlerProps);
21
24
  /**
22
25
  * Handle creation of a new S3 Bucket.
@@ -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,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,WAAW,EAEZ,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAM7F,UAAU,+BAA+B;IACvC,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;CAChD;AAED;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,cAAc,CAC/D,sBAAsB,EACtB,4BAA4B,CAC7B;IACC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;gBAE3C,KAAK,EAAE,+BAA+B;IAMlD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,4BAA4B,CAAC;CA0CzC"}
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,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,WAAW,EAEZ,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAK7F,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,UAAU,+BAA+B;IACvC,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,cAAc,CAC/D,sBAAsB,EACtB,4BAA4B,CAC7B;IACC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,KAAK,EAAE,+BAA+B;IAalD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,4BAA4B,CAAC;CA2CzC"}
@@ -1,7 +1,7 @@
1
1
  import { SimS3Bucket, } from "../../bucket/sim-s3-bucket.js";
2
2
  import { assertDefined } from "../../../../util/defined/defined.js";
3
- import { jitter } from "../../../../util/sleep.js";
4
3
  import { SimS3BucketAlreadyExists, SimS3BucketAlreadyOwnedByYou, } from "../../error/s3.error.js";
4
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
5
5
  /**
6
6
  * S3 CreateBucketCommand handler.
7
7
  *
@@ -11,17 +11,21 @@ export class CreateBucketCommandHandler {
11
11
  accountRegionScope;
12
12
  buckets;
13
13
  s3GlobalRegistry;
14
+ background;
14
15
  constructor(props) {
15
- this.accountRegionScope = props.accountRegionScope;
16
- this.buckets = props.buckets;
17
- this.s3GlobalRegistry = props.s3GlobalRegistry;
16
+ const { accountRegionScope, buckets, s3GlobalRegistry, background = new BackgroundTasks(), } = props;
17
+ this.accountRegionScope = accountRegionScope;
18
+ this.buckets = buckets;
19
+ this.s3GlobalRegistry = s3GlobalRegistry;
20
+ this.background = background;
18
21
  }
19
22
  /**
20
23
  * Handle creation of a new S3 Bucket.
21
24
  */
22
25
  async handle(cmd) {
23
26
  assertDefined(cmd.input.Bucket, "CreateBucketCommand.input.Bucket");
24
- await jitter();
27
+ // Allow for potential non-deterministic sequencing of async events.
28
+ await this.background.sequence();
25
29
  const bucketName = cmd.input.Bucket;
26
30
  const existingBucketScope = this.s3GlobalRegistry.findBucketScope(bucketName);
27
31
  if (existingBucketScope !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"create-bucket.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/create-bucket/create-bucket.handler.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,GAEZ,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGnD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAQjC;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IAIpB,kBAAkB,CAA2B;IAC7C,OAAO,CAA2B;IAClC,gBAAgB,CAAsB;IAEvD,YAAY,KAAsC;QAChD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA2B;QAE3B,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,4BAA4B,CACpC,aAAa,UAAU,sBAAsB,mBAAmB,CAAC,UAAU,oBAAoB,mBAAmB,CAAC,SAAS,EAAE,CAC/H,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,wBAAwB,CAChC,aAAa,UAAU,sBAAsB,mBAAmB,CAAC,UAAU,IAAI,mBAAmB,CAAC,SAAS,EAAE,CAC/G,CAAC;QACJ,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,4BAA4B,CACpC,aAAa,UAAU,sBAAsB,IAAI,CAAC,kBAAkB,CAAC,UAAU,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CACvI,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;YAC7B,UAAU;YACV,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC5C,CAAC,CAAC;QACH,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
+ {"version":3,"file":"create-bucket.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/create-bucket/create-bucket.handler.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,GAEZ,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AASnD;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IAIpB,kBAAkB,CAA2B;IAC7C,OAAO,CAA2B;IAClC,gBAAgB,CAAsB;IACtC,UAAU,CAAsB;IAEjD,YAAY,KAAsC;QAChD,MAAM,EACJ,kBAAkB,EAClB,OAAO,EACP,gBAAgB,EAChB,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,KAAK,CAAC;QACV,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA2B;QAE3B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;QAEpE,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,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,4BAA4B,CACpC,aAAa,UAAU,sBAAsB,mBAAmB,CAAC,UAAU,oBAAoB,mBAAmB,CAAC,SAAS,EAAE,CAC/H,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,wBAAwB,CAChC,aAAa,UAAU,sBAAsB,mBAAmB,CAAC,UAAU,IAAI,mBAAmB,CAAC,SAAS,EAAE,CAC/G,CAAC;QACJ,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,4BAA4B,CACpC,aAAa,UAAU,sBAAsB,IAAI,CAAC,kBAAkB,CAAC,UAAU,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CACvI,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;YAC7B,UAAU;YACV,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC5C,CAAC,CAAC;QACH,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,8 +1,10 @@
1
1
  import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { SimGetObjectCommand, SimGetObjectCommandOutput } from "./get-object.cmd.js";
3
- import type { SimS3BucketName, SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
3
+ import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
4
+ import { type BackgroundScheduler } from "../../../../util/background/background.js";
4
5
  interface GetObjectCommandHandlerProps {
5
6
  readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
7
+ readonly background?: BackgroundScheduler;
6
8
  }
7
9
  /**
8
10
  * Simulated S3 GetObjectCommand handler.
@@ -11,6 +13,7 @@ interface GetObjectCommandHandlerProps {
11
13
  */
12
14
  export declare class GetObjectCommandHandler implements CommandHandler<SimGetObjectCommand, SimGetObjectCommandOutput> {
13
15
  private readonly buckets;
16
+ private readonly background;
14
17
  constructor(props: GetObjectCommandHandlerProps);
15
18
  /**
16
19
  * Simulate getting an Object from an S3 Bucket.
@@ -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,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAKvC,UAAU,4BAA4B;IACpC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAEhD,KAAK,EAAE,4BAA4B;IAI/C;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAuB3E"}
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,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,UAAU,4BAA4B;IACpC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,KAAK,EAAE,4BAA4B;IAM/C;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAwB3E"}
@@ -1,7 +1,7 @@
1
1
  import { Readable } from "node:stream";
2
2
  import { assertDefined } from "../../../../util/defined/defined.js";
3
- import { jitter } from "../../../../util/sleep.js";
4
3
  import { SimS3NoSuchBucket, SimS3NoSuchKey } from "../../error/s3.error.js";
4
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
5
5
  /**
6
6
  * Simulated S3 GetObjectCommand handler.
7
7
  *
@@ -9,8 +9,11 @@ import { SimS3NoSuchBucket, SimS3NoSuchKey } from "../../error/s3.error.js";
9
9
  */
10
10
  export class GetObjectCommandHandler {
11
11
  buckets;
12
+ background;
12
13
  constructor(props) {
13
- this.buckets = props.buckets;
14
+ const { buckets, background = new BackgroundTasks() } = props;
15
+ this.buckets = buckets;
16
+ this.background = background;
14
17
  }
15
18
  /**
16
19
  * Simulate getting an Object from an S3 Bucket.
@@ -23,7 +26,8 @@ export class GetObjectCommandHandler {
23
26
  if (bucket === undefined) {
24
27
  throw new SimS3NoSuchBucket(`No S3 Bucket named ${bucketName}`);
25
28
  }
26
- await jitter();
29
+ // Allow for potential non-deterministic sequencing of async events.
30
+ await this.background.sequence();
27
31
  const object = await bucket.getObject(cmd.input.Key);
28
32
  if (object === undefined) {
29
33
  throw new SimS3NoSuchKey(`No S3 Object named ${cmd.input.Key}`);
@@ -1 +1 @@
1
- {"version":3,"file":"get-object.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object.handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM5E;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAIjB,OAAO,CAAoC;IAE5D,YAAY,KAAmC;QAC7C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAwB;QACnC,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,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,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,cAAc,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAChC,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"get-object.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/get-object/get-object.handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AAOnD;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAIjB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAEjD,YAAY,KAAmC;QAC7C,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAwB;QACnC,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,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,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,cAAc,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAChC,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -1,8 +1,10 @@
1
1
  import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { SimListBucketsCommand, SimListBucketsCommandOutput } from "./list-buckets.cmd.js";
3
- import type { SimS3BucketName, SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
3
+ import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
4
+ import { type BackgroundScheduler } from "../../../../util/background/background.js";
4
5
  interface ListBucketsCommandHandlerProps {
5
6
  readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
7
+ readonly background?: BackgroundScheduler;
6
8
  }
7
9
  /**
8
10
  * Simulated S3 ListBucketsCommand handler.
@@ -11,6 +13,7 @@ interface ListBucketsCommandHandlerProps {
11
13
  */
12
14
  export declare class ListBucketsCommandHandler implements CommandHandler<SimListBucketsCommand, SimListBucketsCommandOutput> {
13
15
  private readonly buckets;
16
+ private readonly background;
14
17
  constructor(props: ListBucketsCommandHandlerProps);
15
18
  /**
16
19
  * Simulate listing S3 Buckets.
@@ -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,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAGvC,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAEhD,KAAK,EAAE,8BAA8B;IAIjD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC;IAiDvC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAGtC"}
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,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;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,CAAsB;gBAErC,KAAK,EAAE,8BAA8B;IAMjD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC;IAkDvC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAGtC"}
@@ -1,4 +1,4 @@
1
- import { jitter } from "../../../../util/sleep.js";
1
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
2
2
  /**
3
3
  * Simulated S3 ListBucketsCommand handler.
4
4
  *
@@ -6,14 +6,18 @@ import { jitter } from "../../../../util/sleep.js";
6
6
  */
7
7
  export class ListBucketsCommandHandler {
8
8
  buckets;
9
+ background;
9
10
  constructor(props) {
10
- this.buckets = props.buckets;
11
+ const { buckets, background = new BackgroundTasks() } = props;
12
+ this.buckets = buckets;
13
+ this.background = background;
11
14
  }
12
15
  /**
13
16
  * Simulate listing S3 Buckets.
14
17
  */
15
18
  async handle(cmd) {
16
- await jitter();
19
+ // Allow for potential non-deterministic sequencing of async events.
20
+ await this.background.sequence();
17
21
  const buckets = [...this.buckets.values()];
18
22
  buckets.sort((a, b) => a.bucketName.localeCompare(b.bucketName));
19
23
  const prefix = cmd.input.Prefix;
@@ -1 +1 @@
1
- {"version":3,"file":"list-buckets.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAMnD;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,OAAO,CAAoC;IAE5D,YAAY,KAAqC;QAC/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA0B;QAE1B,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
+ {"version":3,"file":"list-buckets.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AAOnD;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAEjD,YAAY,KAAqC;QAC/C,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA0B;QAE1B,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,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,8 +1,10 @@
1
1
  import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { SimListObjectsCommand, SimListObjectsCommandOutput } from "./list-objects.cmd.js";
3
- import type { SimS3BucketName, SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
3
+ import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
4
+ import { type BackgroundScheduler } from "../../../../util/background/background.js";
4
5
  interface ListObjectsCommandHandlerProps {
5
6
  readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
7
+ readonly background?: BackgroundScheduler;
6
8
  }
7
9
  /**
8
10
  * Simulated S3 ListObjectsCommand handler.
@@ -11,6 +13,7 @@ interface ListObjectsCommandHandlerProps {
11
13
  */
12
14
  export declare class ListObjectsCommandHandler implements CommandHandler<SimListObjectsCommand, SimListObjectsCommandOutput> {
13
15
  private readonly buckets;
16
+ private readonly background;
14
17
  constructor(props: ListObjectsCommandHandlerProps);
15
18
  /**
16
19
  * Simulate listing Objects in an S3 Bucket.
@@ -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,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAKvC,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAEhD,KAAK,EAAE,8BAA8B;IAIjD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC;CA0CxC"}
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,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;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,CAAsB;gBAErC,KAAK,EAAE,8BAA8B;IAMjD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC;CA2CxC"}
@@ -1,6 +1,6 @@
1
1
  import { assertDefined } from "../../../../util/defined/defined.js";
2
- import { jitter } from "../../../../util/sleep.js";
3
2
  import { SimS3NoSuchBucket } from "../../error/s3.error.js";
3
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
4
4
  /**
5
5
  * Simulated S3 ListObjectsCommand handler.
6
6
  *
@@ -8,8 +8,11 @@ import { SimS3NoSuchBucket } from "../../error/s3.error.js";
8
8
  */
9
9
  export class ListObjectsCommandHandler {
10
10
  buckets;
11
+ background;
11
12
  constructor(props) {
12
- this.buckets = props.buckets;
13
+ const { buckets, background = new BackgroundTasks() } = props;
14
+ this.buckets = buckets;
15
+ this.background = background;
13
16
  }
14
17
  /**
15
18
  * Simulate listing Objects in an S3 Bucket.
@@ -21,7 +24,8 @@ export class ListObjectsCommandHandler {
21
24
  if (bucket === undefined) {
22
25
  throw new SimS3NoSuchBucket(`No S3 Bucket named ${bucketName}`);
23
26
  }
24
- await jitter();
27
+ // Allow for potential non-deterministic sequencing of async events.
28
+ await this.background.sequence();
25
29
  const prefix = cmd.input.Prefix;
26
30
  const marker = cmd.input.Marker;
27
31
  const maxKeys = cmd.input.MaxKeys ?? 1000;
@@ -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,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,OAAO,CAAoC;IAE5D,YAAY,KAAqC;QAC/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA0B;QAE1B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAEnE,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,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;QAE1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnD,MAAM,UAAU,GACd,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5E,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9D,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,IAAI,EAAE,MAAM,CAAC,UAAU;YACvB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,WAAW;YACxB,UAAU,EACR,WAAW,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACtE,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,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,qCAAqC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AAOnD;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAEjD,YAAY,KAAqC;QAC/C,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA0B;QAE1B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAEnE,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,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;QAE1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnD,MAAM,UAAU,GACd,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5E,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9D,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,IAAI,EAAE,MAAM,CAAC,UAAU;YACvB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,WAAW;YACxB,UAAU,EACR,WAAW,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACtE,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -1,8 +1,10 @@
1
1
  import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { SimPutBucketWebsiteCommand, SimPutBucketWebsiteCommandOutput } from "./put-bucket-website.cmd.js";
3
3
  import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
4
+ import { type BackgroundScheduler } from "../../../../util/background/background.js";
4
5
  interface PutBucketWebsiteCommandHandlerProps {
5
6
  readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
7
+ readonly background?: BackgroundScheduler;
6
8
  }
7
9
  /**
8
10
  * Simulated S3 PutBucketWebsiteCommand handler.
@@ -11,6 +13,7 @@ interface PutBucketWebsiteCommandHandlerProps {
11
13
  */
12
14
  export declare class PutBucketWebsiteCommandHandler implements CommandHandler<SimPutBucketWebsiteCommand, SimPutBucketWebsiteCommandOutput> {
13
15
  private readonly buckets;
16
+ private readonly background;
14
17
  constructor(props: PutBucketWebsiteCommandHandlerProps);
15
18
  /**
16
19
  * Configure static website hosting for an S3 Bucket.
@@ -1 +1 @@
1
- {"version":3,"file":"put-bucket-website.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-bucket-website/put-bucket-website.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAMvC,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,qBAAa,8BAA+B,YAAW,cAAc,CACnE,0BAA0B,EAC1B,gCAAgC,CACjC;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAEhD,KAAK,EAAE,mCAAmC;IAItD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAAC,gCAAgC,CAAC;CAwB7C"}
1
+ {"version":3,"file":"put-bucket-website.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-bucket-website/put-bucket-website.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,8BAA+B,YAAW,cAAc,CACnE,0BAA0B,EAC1B,gCAAgC,CACjC;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,KAAK,EAAE,mCAAmC;IAMtD;;OAEG;IACG,MAAM,CACV,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAAC,gCAAgC,CAAC;CAyB7C"}
@@ -1,7 +1,7 @@
1
1
  import { S3BucketWebsite } from "../../bucket/website/s3-bucket-website.js";
2
2
  import { assertDefined } from "../../../../util/defined/defined.js";
3
- import { jitter } from "../../../../util/sleep.js";
4
3
  import { SimS3NoSuchBucket } from "../../error/s3.error.js";
4
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
5
5
  /**
6
6
  * Simulated S3 PutBucketWebsiteCommand handler.
7
7
  *
@@ -9,8 +9,11 @@ import { SimS3NoSuchBucket } from "../../error/s3.error.js";
9
9
  */
10
10
  export class PutBucketWebsiteCommandHandler {
11
11
  buckets;
12
+ background;
12
13
  constructor(props) {
13
- this.buckets = props.buckets;
14
+ const { buckets, background = new BackgroundTasks() } = props;
15
+ this.buckets = buckets;
16
+ this.background = background;
14
17
  }
15
18
  /**
16
19
  * Configure static website hosting for an S3 Bucket.
@@ -23,7 +26,8 @@ export class PutBucketWebsiteCommandHandler {
23
26
  if (bucket === undefined) {
24
27
  throw new SimS3NoSuchBucket(`No S3 Bucket named ${bucketName}`);
25
28
  }
26
- await jitter();
29
+ // Allow for potential non-deterministic sequencing of async events.
30
+ await this.background.sequence();
27
31
  bucket.configureWebsite(new S3BucketWebsite(cmd.input.WebsiteConfiguration));
28
32
  return {
29
33
  $metadata: {},
@@ -1 +1 @@
1
- {"version":3,"file":"put-bucket-website.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-bucket-website/put-bucket-website.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D;;;;GAIG;AACH,MAAM,OAAO,8BAA8B;IAIxB,OAAO,CAAoC;IAE5D,YAAY,KAA0C;QACpD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA+B;QAE/B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;QACxE,aAAa,CACX,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAC9B,oDAAoD,CACrD,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAyB,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,CAAC,gBAAgB,CACrB,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CACpD,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"put-bucket-website.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-bucket-website/put-bucket-website.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AAOnD;;;;GAIG;AACH,MAAM,OAAO,8BAA8B;IAIxB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAEjD,YAAY,KAA0C;QACpD,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,GAA+B;QAE/B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;QACxE,aAAa,CACX,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAC9B,oDAAoD,CACrD,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAyB,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,CAAC,gBAAgB,CACrB,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CACpD,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -1,8 +1,10 @@
1
1
  import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { SimPutObjectCommand, SimPutObjectCommandOutput } from "./put-object.cmd.js";
3
3
  import type { SimS3BucketName, SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
4
+ import { type BackgroundScheduler } from "../../../../util/background/background.js";
4
5
  interface PutObjectCommandHandlerProps {
5
6
  readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
7
+ readonly background?: BackgroundScheduler;
6
8
  }
7
9
  /**
8
10
  * Simulated S3 PutObjectCommand handler.
@@ -11,6 +13,7 @@ interface PutObjectCommandHandlerProps {
11
13
  */
12
14
  export declare class PutObjectCommandHandler implements CommandHandler<SimPutObjectCommand, SimPutObjectCommandOutput> {
13
15
  private readonly buckets;
16
+ private readonly background;
14
17
  constructor(props: PutObjectCommandHandlerProps);
15
18
  /**
16
19
  * Simulate putting an Object into an S3 Bucket.
@@ -1 +1 @@
1
- {"version":3,"file":"put-object.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAMvC,UAAU,4BAA4B;IACpC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAEhD,KAAK,EAAE,4BAA4B;IAI/C;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA0B1E,OAAO,CAAC,MAAM,CAAC,UAAU;IASzB,OAAO,CAAC,MAAM,CAAC,QAAQ;CAiBxB"}
1
+ {"version":3,"file":"put-object.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAGnD,UAAU,4BAA4B;IACpC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,KAAK,EAAE,4BAA4B;IAM/C;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA2B1E,OAAO,CAAC,MAAM,CAAC,UAAU;IASzB,OAAO,CAAC,MAAM,CAAC,QAAQ;CAiBxB"}
@@ -1,6 +1,6 @@
1
1
  import { SimS3Object, SimS3ObjectMetadata } from "../../object/s3-object.js";
2
2
  import { assertDefined } from "../../../../util/defined/defined.js";
3
- import { jitter } from "../../../../util/sleep.js";
3
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
4
4
  import { SimS3NoSuchBucket } from "../../error/s3.error.js";
5
5
  /**
6
6
  * Simulated S3 PutObjectCommand handler.
@@ -9,8 +9,11 @@ import { SimS3NoSuchBucket } from "../../error/s3.error.js";
9
9
  */
10
10
  export class PutObjectCommandHandler {
11
11
  buckets;
12
+ background;
12
13
  constructor(props) {
13
- this.buckets = props.buckets;
14
+ const { buckets, background = new BackgroundTasks() } = props;
15
+ this.buckets = buckets;
16
+ this.background = background;
14
17
  }
15
18
  /**
16
19
  * Simulate putting an Object into an S3 Bucket.
@@ -23,7 +26,8 @@ export class PutObjectCommandHandler {
23
26
  if (bucket === undefined) {
24
27
  throw new SimS3NoSuchBucket(`No S3 Bucket named ${bucketName}`);
25
28
  }
26
- await jitter();
29
+ // Allow for potential non-deterministic sequencing of async events.
30
+ await this.background.sequence();
27
31
  const object = new SimS3Object({
28
32
  key: cmd.input.Key,
29
33
  body: PutObjectCommandHandler.toBuffer(cmd.input.Body),
@@ -1 +1 @@
1
- {"version":3,"file":"put-object.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAIjB,OAAO,CAAoC;IAE5D,YAAY,KAAmC;QAC7C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAwB;QACnC,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,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;YAC7B,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG;YAClB,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACtD,QAAQ,EAAE,IAAI,mBAAmB,CAC/B,uBAAuB,CAAC,UAAU,CAAC,GAAG,CAAC,CACxC;SACF,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO;YACL,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,GAAwB;QAChD,OAAO;YACL,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ;YACrB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,IAA0C;QAChE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"put-object.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAO5D;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAIjB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAEjD,YAAY,KAAmC;QAC7C,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAwB;QACnC,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,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;YAC7B,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG;YAClB,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACtD,QAAQ,EAAE,IAAI,mBAAmB,CAC/B,uBAAuB,CAAC,UAAU,CAAC,GAAG,CAAC,CACxC;SACF,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO;YACL,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,GAAwB;QAChD,OAAO;YACL,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ;YACrB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,IAA0C;QAChE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;CACF"}
@@ -7,9 +7,11 @@ import type { SimListObjectsCommand, SimListObjectsCommandOutput } from "./comma
7
7
  import type { SimListBucketsCommand, SimListBucketsCommandOutput } from "./command/list-buckets/list-buckets.cmd.js";
8
8
  import type { SimGetObjectCommand, SimGetObjectCommandOutput } from "./command/get-object/get-object.cmd.js";
9
9
  import type { SimCreateBucketCommand, SimCreateBucketCommandOutput } from "./command/create-bucket/create-bucket.cmd.js";
10
+ import { type BackgroundScheduler } from "../../util/background/background.js";
10
11
  interface SimS3Props {
11
12
  readonly accountRegionScope?: SimAwsAccountRegionScope;
12
13
  readonly s3GlobalRegistry?: SimS3GlobalRegistry;
14
+ readonly background?: BackgroundScheduler;
13
15
  }
14
16
  /**
15
17
  * Simulated S3. Handles SDK commands. Emulates AWS behaviour and state.
@@ -20,6 +22,7 @@ export declare class SimS3 {
20
22
  private readonly buckets;
21
23
  private readonly accountRegionScope;
22
24
  private readonly s3GlobalRegistry;
25
+ private readonly background;
23
26
  constructor(props?: SimS3Props);
24
27
  /**
25
28
  * Handle a Create Bucket Command from the SDK.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAM9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,wCAAwC,CAAC;AAIhD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,8CAA8C,CAAC;AAEtD,UAAU,UAAU;IAClB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;CACjD;AAED;;;;GAIG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;gBAE3C,KAAK,GAAE,UAAe;IAUlC;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,4BAA4B,CAAC;IASxC;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAAC,gCAAgC,CAAC;IAO5C;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC;IAKvC;;OAEG;IACG,SAAS,CACb,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,yBAAyB,CAAC;IAKrC;;OAEG;IACG,SAAS,CACb,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,yBAAyB,CAAC;IAKrC;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC;IAKvC;;OAEG;IACH,kBAAkB,CAChB,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,WAAW,GAAG,SAAS;IAI1B;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,GAAG,GAAG;IAO9D;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,wBAAwB,GAAG,SAAS;IAIvC;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,eAAe,GAAG,MAAM,EACpC,aAAa,EAAE,MAAM,GACpB,IAAI;CAOR"}
1
+ {"version":3,"file":"sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAM9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,wCAAwC,CAAC;AAIhD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAE7C,UAAU,UAAU;IAClB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,KAAK,GAAE,UAAe;IAYlC;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,4BAA4B,CAAC;IAUxC;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAAC,gCAAgC,CAAC;IAQ5C;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC;IAQvC;;OAEG;IACG,SAAS,CACb,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,yBAAyB,CAAC;IAQrC;;OAEG;IACG,SAAS,CACb,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,yBAAyB,CAAC;IAQrC;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC;IAQvC;;OAEG;IACH,kBAAkB,CAChB,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,WAAW,GAAG,SAAS;IAI1B;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,GAAG,GAAG;IAO9D;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,wBAAwB,GAAG,SAAS;IAIvC;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,eAAe,GAAG,MAAM,EACpC,aAAa,EAAE,MAAM,GACpB,IAAI;CAOR"}
@@ -8,6 +8,7 @@ import { simAwsAccountRegionScopeFactory, } from "../aws/sim-aws-account-region-
8
8
  import { PutBucketWebsiteCommandHandler } from "./command/put-bucket-website/put-bucket-website.handler.js";
9
9
  import { assertDefined } from "../../util/defined/defined.js";
10
10
  import { FilesystemS3BucketStorage } from "./storage/s3-filesystem-storage.js";
11
+ import { BackgroundTasks, } from "../../util/background/background.js";
11
12
  /**
12
13
  * Simulated S3. Handles SDK commands. Emulates AWS behaviour and state.
13
14
  * Scoped to an Account and Region, but has access to a global (as in
@@ -17,10 +18,12 @@ export class SimS3 {
17
18
  buckets = new Map();
18
19
  accountRegionScope;
19
20
  s3GlobalRegistry;
21
+ background;
20
22
  constructor(props = {}) {
21
- const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), s3GlobalRegistry = new SimS3GlobalRegistry(), } = props;
23
+ const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), s3GlobalRegistry = new SimS3GlobalRegistry(), background = new BackgroundTasks(), } = props;
22
24
  this.accountRegionScope = accountRegionScope;
23
25
  this.s3GlobalRegistry = s3GlobalRegistry;
26
+ this.background = background;
24
27
  }
25
28
  /**
26
29
  * Handle a Create Bucket Command from the SDK.
@@ -30,6 +33,7 @@ export class SimS3 {
30
33
  accountRegionScope: this.accountRegionScope,
31
34
  buckets: this.buckets,
32
35
  s3GlobalRegistry: this.s3GlobalRegistry,
36
+ background: this.background,
33
37
  });
34
38
  return await handler.handle(cmd);
35
39
  }
@@ -39,6 +43,7 @@ export class SimS3 {
39
43
  async putBucketWebsite(cmd) {
40
44
  const handler = new PutBucketWebsiteCommandHandler({
41
45
  buckets: this.buckets,
46
+ background: this.background,
42
47
  });
43
48
  return await handler.handle(cmd);
44
49
  }
@@ -46,28 +51,40 @@ export class SimS3 {
46
51
  * Handle a List Buckets Command from the SDK.
47
52
  */
48
53
  async listBuckets(cmd) {
49
- const handler = new ListBucketsCommandHandler({ buckets: this.buckets });
54
+ const handler = new ListBucketsCommandHandler({
55
+ buckets: this.buckets,
56
+ background: this.background,
57
+ });
50
58
  return await handler.handle(cmd);
51
59
  }
52
60
  /**
53
61
  * Handle a Put Object Command from the SDK.
54
62
  */
55
63
  async putObject(cmd) {
56
- const handler = new PutObjectCommandHandler({ buckets: this.buckets });
64
+ const handler = new PutObjectCommandHandler({
65
+ buckets: this.buckets,
66
+ background: this.background,
67
+ });
57
68
  return await handler.handle(cmd);
58
69
  }
59
70
  /**
60
71
  * Handle a Get Object Command from the SDK.
61
72
  */
62
73
  async getObject(cmd) {
63
- const handler = new GetObjectCommandHandler({ buckets: this.buckets });
74
+ const handler = new GetObjectCommandHandler({
75
+ buckets: this.buckets,
76
+ background: this.background,
77
+ });
64
78
  return await handler.handle(cmd);
65
79
  }
66
80
  /**
67
81
  * Handle a List Objects Command from the SDK.
68
82
  */
69
83
  async listObjects(cmd) {
70
- const handler = new ListObjectsCommandHandler({ buckets: this.buckets });
84
+ const handler = new ListObjectsCommandHandler({
85
+ buckets: this.buckets,
86
+ background: this.background,
87
+ });
71
88
  return await handler.handle(cmd);
72
89
  }
73
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3.js","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-s3.js","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"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"}