@kensio/yulin 0.5.0 → 0.7.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 (71) hide show
  1. package/README.md +9 -5
  2. package/dist/index.d.ts +8 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +4 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/serve/controller/sim-aws-service-controller-container.d.ts +1 -3
  7. package/dist/serve/controller/sim-aws-service-controller-container.d.ts.map +1 -1
  8. package/dist/serve/controller/sim-aws-service-controller-container.js +1 -12
  9. package/dist/serve/controller/sim-aws-service-controller-container.js.map +1 -1
  10. package/dist/serve/controller/sim-service-controller.d.ts +1 -2
  11. package/dist/serve/controller/sim-service-controller.d.ts.map +1 -1
  12. package/dist/service/aws/arn.d.ts +3 -3
  13. package/dist/service/aws/arn.d.ts.map +1 -1
  14. package/dist/service/aws/arn.js +2 -2
  15. package/dist/service/aws/arn.js.map +1 -1
  16. package/dist/service/aws/sim-aws-account-region-scope.d.ts +11 -16
  17. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  18. package/dist/service/aws/sim-aws-account-region-scope.js +7 -18
  19. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  20. package/dist/service/aws/sim-aws-account.d.ts +8 -12
  21. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  22. package/dist/service/aws/sim-aws-account.js +5 -9
  23. package/dist/service/aws/sim-aws-account.js.map +1 -1
  24. package/dist/service/aws/sim-aws-region.d.ts +8 -12
  25. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  26. package/dist/service/aws/sim-aws-region.js +5 -9
  27. package/dist/service/aws/sim-aws-region.js.map +1 -1
  28. package/dist/service/aws/sim-aws-services.d.ts +12 -11
  29. package/dist/service/aws/sim-aws-services.d.ts.map +1 -1
  30. package/dist/service/aws/sim-aws-services.js +1 -1
  31. package/dist/service/aws/sim-aws-services.js.map +1 -1
  32. package/dist/service/aws/sim-aws.d.ts +25 -15
  33. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  34. package/dist/service/aws/sim-aws.js +35 -13
  35. package/dist/service/aws/sim-aws.js.map +1 -1
  36. package/dist/service/dynamodb/index.d.ts +1 -0
  37. package/dist/service/dynamodb/index.d.ts.map +1 -1
  38. package/dist/service/dynamodb/index.js +1 -0
  39. package/dist/service/dynamodb/index.js.map +1 -1
  40. package/dist/service/dynamodb/install/install-sim-dynamodb.d.ts +12 -0
  41. package/dist/service/dynamodb/install/install-sim-dynamodb.d.ts.map +1 -0
  42. package/dist/service/dynamodb/install/install-sim-dynamodb.js +11 -0
  43. package/dist/service/dynamodb/install/install-sim-dynamodb.js.map +1 -0
  44. package/dist/service/dynamodb/install-sim-dynamodb.d.ts +12 -0
  45. package/dist/service/dynamodb/install-sim-dynamodb.d.ts.map +1 -0
  46. package/dist/service/dynamodb/install-sim-dynamodb.js +11 -0
  47. package/dist/service/dynamodb/install-sim-dynamodb.js.map +1 -0
  48. package/dist/service/s3/index.d.ts +1 -0
  49. package/dist/service/s3/index.d.ts.map +1 -1
  50. package/dist/service/s3/index.js +1 -0
  51. package/dist/service/s3/index.js.map +1 -1
  52. package/dist/service/s3/install/install-sim-s3.d.ts +12 -0
  53. package/dist/service/s3/install/install-sim-s3.d.ts.map +1 -0
  54. package/dist/service/s3/install/install-sim-s3.js +17 -0
  55. package/dist/service/s3/install/install-sim-s3.js.map +1 -0
  56. package/dist/service/s3/install-sim-s3.d.ts +12 -0
  57. package/dist/service/s3/install-sim-s3.d.ts.map +1 -0
  58. package/dist/service/s3/install-sim-s3.js +17 -0
  59. package/dist/service/s3/install-sim-s3.js.map +1 -0
  60. package/dist/service/s3/serve/sim-s3-controller.d.ts +2 -1
  61. package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
  62. package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
  63. package/dist/service/s3/serve/sim-s3-req-router.d.ts +2 -1
  64. package/dist/service/s3/serve/sim-s3-req-router.d.ts.map +1 -1
  65. package/dist/service/s3/serve/sim-s3-req-router.js +2 -4
  66. package/dist/service/s3/serve/sim-s3-req-router.js.map +1 -1
  67. package/dist/service/s3/sim-s3.d.ts +6 -0
  68. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  69. package/dist/service/s3/sim-s3.js +8 -0
  70. package/dist/service/s3/sim-s3.js.map +1 -1
  71. package/package.json +5 -3
@@ -1,47 +1,57 @@
1
1
  import { SimAwsAccount, type SimAwsAccountId } from "./sim-aws-account.js";
2
2
  import { type BackgroundCompleter, type BackgroundScheduler } from "../../util/background/background.js";
3
3
  import { SimAwsRegion, type AwsRegionName } from "./sim-aws-region.js";
4
- import type { SimAwsAccountRegionScopes, SimAwsServices } from "./sim-aws-services.js";
5
- import type { SimS3 } from "../s3/sim-s3.js";
6
- import type { SimDynamoDb } from "../dynamodb/sim-dynamodb.js";
4
+ import type { NoSimAwsServices, SimAwsAccountRegionScopes, SimAwsServiceFactory, SimAwsServiceMap } from "./sim-aws-services.js";
7
5
  import { SimAwsAccountRegionContainer } from "./sim-aws-account-region-scope.js";
8
- import { SimS3GlobalRegistry } from "../s3/sim-s3-global-registry.js";
6
+ import type { SimAwsServiceController, SimAwsServiceControllerFactory } from "../../serve/controller/sim-service-controller.js";
9
7
  /**
10
8
  * Top-level container for simulated AWS.
9
+ * Contains Account scopes, Region scopes, Account/Region scopes.
11
10
  */
12
- export declare class SimAws implements SimAwsServices, SimAwsAccountRegionScopes {
11
+ export declare class SimAws<TServices extends SimAwsServiceMap = NoSimAwsServices> implements SimAwsAccountRegionScopes<TServices> {
13
12
  readonly defaultAccountId: SimAwsAccountId;
14
13
  readonly defaultRegionName: "us-east-1";
15
14
  readonly background: BackgroundScheduler & BackgroundCompleter;
16
15
  private readonly accounts;
17
16
  private readonly regions;
18
17
  private readonly accountRegionScopes;
19
- private readonly memo;
18
+ private readonly serviceFactories;
19
+ private readonly serviceControllerFactories;
20
20
  constructor(defaultAccountId?: SimAwsAccountId, defaultRegionName?: "us-east-1", background?: BackgroundScheduler & BackgroundCompleter);
21
21
  /**
22
22
  * Get a simulated AWS Account.
23
23
  */
24
- account(accountId?: string): SimAwsAccount;
24
+ account(accountId?: string): SimAwsAccount<TServices>;
25
25
  /**
26
26
  * Get a simulated AWS Account Region scope.
27
27
  */
28
- region(regionName?: AwsRegionName): SimAwsRegion;
28
+ region(regionName?: AwsRegionName): SimAwsRegion<TServices>;
29
29
  /**
30
30
  * Get an Account Region scope in this simulated AWS.
31
31
  */
32
- accountRegionScope(accountId?: SimAwsAccountId, regionName?: AwsRegionName): SimAwsAccountRegionContainer;
32
+ accountRegionScope(accountId?: SimAwsAccountId, regionName?: AwsRegionName): SimAwsAccountRegionContainer<TServices>;
33
33
  /**
34
- * Get the simulated global S3 registry for this AWS environment.
34
+ * Install a simulated AWS service factory.
35
35
  */
36
- s3GlobalRegistry(): SimS3GlobalRegistry;
36
+ installService(serviceName: PropertyKey, factory: SimAwsServiceFactory): void;
37
37
  /**
38
- * Get a simulated DynamoDB service in the default Account Region scope.
38
+ * Install a simulated AWS HTTP service controller factory.
39
39
  */
40
- dynamoDb(): SimDynamoDb;
40
+ installServiceController(serviceName: string, factory: SimAwsServiceControllerFactory): void;
41
41
  /**
42
- * Get a simulated S3 service in the default Account Region scope.
42
+ * Create an installed simulated AWS service for an Account Region scope.
43
43
  */
44
- s3(): SimS3;
44
+ createService<TKey extends keyof TServices>(serviceName: TKey, scope: SimAwsAccountRegionContainer<TServices>): TServices[TKey];
45
+ /**
46
+ * Create an installed simulated AWS HTTP service controller.
47
+ */
48
+ createServiceController(serviceName: string): SimAwsServiceController;
49
+ /**
50
+ * Get an installed simulated AWS service in the default Account Region scope.
51
+ * The service must be installed with the appropriate installer function
52
+ * first.
53
+ */
54
+ service<TKey extends keyof TServices>(serviceName: TKey): TServices[TKey];
45
55
  /**
46
56
  * Wait for all outstanding background tasks to complete.
47
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-aws.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,YAAY,EACZ,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,yBAAyB,EACzB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAEL,4BAA4B,EAC7B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE;;GAEG;AACH,qBAAa,MAAO,YAAW,cAAc,EAAE,yBAAyB;aAWpD,gBAAgB;aAChB,iBAAiB;aACjB,UAAU,EAAE,mBAAmB,GAC7C,mBAAmB;IAbvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;IAEJ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;gBAGzB,gBAAgB,kBAA6B,EAC7C,iBAAiB,cAA8B,EAC/C,UAAU,GAAE,mBAAmB,GAC7C,mBAA2C;IAG/C;;OAEG;IACH,OAAO,CAAC,SAAS,GAAE,MAA8B,GAAG,aAAa;IAWjE;;OAEG;IACH,MAAM,CAAC,UAAU,GAAE,aAAsC,GAAG,YAAY;IAWxE;;OAEG;IACH,kBAAkB,CAChB,SAAS,GAAE,eAAuC,EAClD,UAAU,GAAE,aAAsC,GACjD,4BAA4B;IAiB/B;;OAEG;IACH,gBAAgB,IAAI,mBAAmB;IAOvC;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,EAAE,IAAI,KAAK;IAIX;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/C"}
1
+ {"version":3,"file":"sim-aws.d.ts","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,YAAY,EACZ,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,4BAA4B,EAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,kDAAkD,CAAC;AAE1D;;;GAGG;AACH,qBAAa,MAAM,CACjB,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,CACrD,YAAW,yBAAyB,CAAC,SAAS,CAAC;aA2B7B,gBAAgB;aAChB,iBAAiB;aACjB,UAAU,EAAE,mBAAmB,GAC7C,mBAAmB;IA7BvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAGrB;IAEJ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGpB;IAEJ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;IAEJ,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAG7B;IAEJ,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAGvC;gBAGc,gBAAgB,kBAA6B,EAC7C,iBAAiB,cAA8B,EAC/C,UAAU,GAAE,mBAAmB,GAC7C,mBAA2C;IAG/C;;OAEG;IACH,OAAO,CAAC,SAAS,GAAE,MAA8B,GAAG,aAAa,CAAC,SAAS,CAAC;IAc5E;;OAEG;IACH,MAAM,CACJ,UAAU,GAAE,aAAsC,GACjD,YAAY,CAAC,SAAS,CAAC;IAW1B;;OAEG;IACH,kBAAkB,CAChB,SAAS,GAAE,eAAuC,EAClD,UAAU,GAAE,aAAsC,GACjD,4BAA4B,CAAC,SAAS,CAAC;IAgB1C;;OAEG;IACH,cAAc,CACZ,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,oBAAoB,GAC5B,IAAI;IAIP;;OAEG;IACH,wBAAwB,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,8BAA8B,GACtC,IAAI;IAIP;;OAEG;IACH,aAAa,CAAC,IAAI,SAAS,MAAM,SAAS,EACxC,WAAW,EAAE,IAAI,EACjB,KAAK,EAAE,4BAA4B,CAAC,SAAS,CAAC,GAC7C,SAAS,CAAC,IAAI,CAAC;IAYlB;;OAEG;IACH,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,uBAAuB;IAYrE;;;;OAIG;IACH,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,EAAE,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAIzE;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/C"}
@@ -2,10 +2,9 @@ import { DEFAULT_SIM_AWS_ACCOUNT_ID, SimAwsAccount, } from "./sim-aws-account.js
2
2
  import { BackgroundTasks, } from "../../util/background/background.js";
3
3
  import { DEFAULT_SIM_AWS_REGION_NAME, SimAwsRegion, } from "./sim-aws-region.js";
4
4
  import { SimAwsAccountRegionContainer, } from "./sim-aws-account-region-scope.js";
5
- import { Memo } from "../../util/memo/memo.js";
6
- import { SimS3GlobalRegistry } from "../s3/sim-s3-global-registry.js";
7
5
  /**
8
6
  * Top-level container for simulated AWS.
7
+ * Contains Account scopes, Region scopes, Account/Region scopes.
9
8
  */
10
9
  export class SimAws {
11
10
  defaultAccountId;
@@ -14,7 +13,8 @@ export class SimAws {
14
13
  accounts = new Map();
15
14
  regions = new Map();
16
15
  accountRegionScopes = new Map();
17
- memo = new Memo();
16
+ serviceFactories = new Map();
17
+ serviceControllerFactories = new Map();
18
18
  constructor(defaultAccountId = DEFAULT_SIM_AWS_ACCOUNT_ID, defaultRegionName = DEFAULT_SIM_AWS_REGION_NAME, background = new BackgroundTasks()) {
19
19
  this.defaultAccountId = defaultAccountId;
20
20
  this.defaultRegionName = defaultRegionName;
@@ -49,28 +49,50 @@ export class SimAws {
49
49
  const scopeKey = `${accountId}:${regionName}`;
50
50
  let accountRegionScope = this.accountRegionScopes.get(scopeKey);
51
51
  if (accountRegionScope === undefined) {
52
- accountRegionScope = new SimAwsAccountRegionContainer(this, this.account(accountId), this.region(regionName), this.s3GlobalRegistry());
52
+ accountRegionScope = new SimAwsAccountRegionContainer(this, this.account(accountId), this.region(regionName));
53
53
  this.accountRegionScopes.set(scopeKey, accountRegionScope);
54
54
  }
55
55
  return accountRegionScope;
56
56
  }
57
57
  /**
58
- * Get the simulated global S3 registry for this AWS environment.
58
+ * Install a simulated AWS service factory.
59
59
  */
60
- s3GlobalRegistry() {
61
- return this.memo.getOrCreate("s3GlobalRegistry", () => new SimS3GlobalRegistry());
60
+ installService(serviceName, factory) {
61
+ this.serviceFactories.set(serviceName, factory);
62
62
  }
63
63
  /**
64
- * Get a simulated DynamoDB service in the default Account Region scope.
64
+ * Install a simulated AWS HTTP service controller factory.
65
65
  */
66
- dynamoDb() {
67
- return this.accountRegionScope().dynamoDb();
66
+ installServiceController(serviceName, factory) {
67
+ this.serviceControllerFactories.set(serviceName, factory);
68
68
  }
69
69
  /**
70
- * Get a simulated S3 service in the default Account Region scope.
70
+ * Create an installed simulated AWS service for an Account Region scope.
71
71
  */
72
- s3() {
73
- return this.accountRegionScope().s3();
72
+ createService(serviceName, scope) {
73
+ const factory = this.serviceFactories.get(serviceName);
74
+ if (factory === undefined) {
75
+ throw new Error(`Sim AWS service is not installed: ${String(serviceName)}. Call installer function to install it.`);
76
+ }
77
+ return factory(scope);
78
+ }
79
+ /**
80
+ * Create an installed simulated AWS HTTP service controller.
81
+ */
82
+ createServiceController(serviceName) {
83
+ const factory = this.serviceControllerFactories.get(serviceName);
84
+ if (factory === undefined) {
85
+ throw new Error(`No controller installed for simulated AWS service ${serviceName}`);
86
+ }
87
+ return factory(this);
88
+ }
89
+ /**
90
+ * Get an installed simulated AWS service in the default Account Region scope.
91
+ * The service must be installed with the appropriate installer function
92
+ * first.
93
+ */
94
+ service(serviceName) {
95
+ return this.accountRegionScope().service(serviceName);
74
96
  }
75
97
  /**
76
98
  * Wait for all outstanding background tasks to complete.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-aws.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-aws.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export { SimDynamoDb } from "./sim-dynamodb.js";
2
+ export { installSimDynamoDb } from "./install/install-sim-dynamodb.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/dynamodb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/dynamodb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { SimDynamoDb } from "./sim-dynamodb.js";
2
+ export { installSimDynamoDb } from "./install/install-sim-dynamodb.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/dynamodb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/dynamodb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { SimAws } from "../../aws/sim-aws.js";
2
+ import type { SimAwsServiceMap } from "../../aws/sim-aws-services.js";
3
+ import { SimDynamoDb } from "../sim-dynamodb.js";
4
+ export { SimDynamoDb } from "../sim-dynamodb.js";
5
+ export interface SimDynamoDbServices {
6
+ dynamoDb: SimDynamoDb;
7
+ }
8
+ /**
9
+ * Install simulated DynamoDB into a simulated AWS environment.
10
+ */
11
+ export declare function installSimDynamoDb<TServices extends SimAwsServiceMap>(simAws: SimAws<TServices>): asserts simAws is SimAws<TServices & SimDynamoDbServices>;
12
+ //# sourceMappingURL=install-sim-dynamodb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-sim-dynamodb.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/install/install-sim-dynamodb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,gBAAgB,EACnE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,mBAAmB,CAAC,CAI3D"}
@@ -0,0 +1,11 @@
1
+ import { SimDynamoDb } from "../sim-dynamodb.js";
2
+ export { SimDynamoDb } from "../sim-dynamodb.js";
3
+ /**
4
+ * Install simulated DynamoDB into a simulated AWS environment.
5
+ */
6
+ export function installSimDynamoDb(simAws) {
7
+ simAws.installService("dynamoDb", (scope) => {
8
+ return new SimDynamoDb(scope.accountRegionScope, simAws.background);
9
+ });
10
+ }
11
+ //# sourceMappingURL=install-sim-dynamodb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-sim-dynamodb.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/install/install-sim-dynamodb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMjD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAyB;IAEzB,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { SimAws } from "../aws/sim-aws.js";
2
+ import type { SimAwsServiceMap } from "../aws/sim-aws-services.js";
3
+ import { SimDynamoDb } from "./sim-dynamodb.js";
4
+ export { SimDynamoDb } from "./sim-dynamodb.js";
5
+ export interface SimDynamoDbServices {
6
+ dynamoDb: SimDynamoDb;
7
+ }
8
+ /**
9
+ * Install simulated DynamoDB into a simulated AWS environment.
10
+ */
11
+ export declare function installSimDynamoDb<TServices extends SimAwsServiceMap>(simAws: SimAws<TServices>): asserts simAws is SimAws<TServices & SimDynamoDbServices>;
12
+ //# sourceMappingURL=install-sim-dynamodb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-sim-dynamodb.d.ts","sourceRoot":"","sources":["../../../src/service/dynamodb/install-sim-dynamodb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,gBAAgB,EACnE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,mBAAmB,CAAC,CAI3D"}
@@ -0,0 +1,11 @@
1
+ import { SimDynamoDb } from "./sim-dynamodb.js";
2
+ export { SimDynamoDb } from "./sim-dynamodb.js";
3
+ /**
4
+ * Install simulated DynamoDB into a simulated AWS environment.
5
+ */
6
+ export function installSimDynamoDb(simAws) {
7
+ simAws.installService("dynamoDb", (scope) => {
8
+ return new SimDynamoDb(scope.accountRegionScope, simAws.background);
9
+ });
10
+ }
11
+ //# sourceMappingURL=install-sim-dynamodb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-sim-dynamodb.js","sourceRoot":"","sources":["../../../src/service/dynamodb/install-sim-dynamodb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAyB;IAEzB,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { SimS3 } from "./sim-s3.js";
2
+ export { installSimS3 } from "./install/install-sim-s3.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { SimS3 } from "./sim-s3.js";
2
+ export { installSimS3 } from "./install/install-sim-s3.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { SimAws } from "../../aws/sim-aws.js";
2
+ import type { SimAwsServiceMap } from "../../aws/sim-aws-services.js";
3
+ import { SimS3 } from "../sim-s3.js";
4
+ export { SimS3 } from "../sim-s3.js";
5
+ export interface SimS3Services {
6
+ s3: SimS3;
7
+ }
8
+ /**
9
+ * Install simulated S3 into a simulated AWS environment.
10
+ */
11
+ export declare function installSimS3<TServices extends SimAwsServiceMap>(simAws: SimAws<TServices>): asserts simAws is SimAws<TServices & SimS3Services>;
12
+ //# sourceMappingURL=install-sim-s3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-sim-s3.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/install/install-sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAIrC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,KAAK,CAAC;CACX;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,SAAS,gBAAgB,EAC7D,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,CAYrD"}
@@ -0,0 +1,17 @@
1
+ import { SimS3 } from "../sim-s3.js";
2
+ import { SimS3GlobalRegistry } from "../sim-s3-global-registry.js";
3
+ import { SimS3ServiceController } from "../serve/sim-s3-controller.js";
4
+ export { SimS3 } from "../sim-s3.js";
5
+ /**
6
+ * Install simulated S3 into a simulated AWS environment.
7
+ */
8
+ export function installSimS3(simAws) {
9
+ const s3GlobalRegistry = new SimS3GlobalRegistry();
10
+ simAws.installService("s3", (scope) => {
11
+ return new SimS3(scope.accountRegionScope, s3GlobalRegistry);
12
+ });
13
+ simAws.installServiceController("s3", (controllerSimAws) => {
14
+ return new SimS3ServiceController(controllerSimAws);
15
+ });
16
+ }
17
+ //# sourceMappingURL=install-sim-s3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-sim-s3.js","sourceRoot":"","sources":["../../../../src/service/s3/install/install-sim-s3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAMrC;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAyB;IAEzB,MAAM,gBAAgB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAEnD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;QACpC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,EAAE;QACzD,OAAO,IAAI,sBAAsB,CAC/B,gBAAyC,CAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { SimAws } from "../aws/sim-aws.js";
2
+ import type { SimAwsServiceMap } from "../aws/sim-aws-services.js";
3
+ import { SimS3 } from "./sim-s3.js";
4
+ export { SimS3 } from "./sim-s3.js";
5
+ export interface SimS3Services {
6
+ s3: SimS3;
7
+ }
8
+ /**
9
+ * Install simulated S3 into a simulated AWS environment.
10
+ */
11
+ export declare function installSimS3<TServices extends SimAwsServiceMap>(simAws: SimAws<TServices>): asserts simAws is SimAws<TServices & SimS3Services>;
12
+ //# sourceMappingURL=install-sim-s3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/install-sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,KAAK,CAAC;CACX;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,SAAS,gBAAgB,EAC7D,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,CAYrD"}
@@ -0,0 +1,17 @@
1
+ import { SimS3 } from "./sim-s3.js";
2
+ import { SimS3GlobalRegistry } from "./sim-s3-global-registry.js";
3
+ import { SimS3ServiceController } from "./serve/sim-s3-controller.js";
4
+ export { SimS3 } from "./sim-s3.js";
5
+ /**
6
+ * Install simulated S3 into a simulated AWS environment.
7
+ */
8
+ export function installSimS3(simAws) {
9
+ const s3GlobalRegistry = new SimS3GlobalRegistry();
10
+ simAws.installService("s3", (scope) => {
11
+ return new SimS3(scope.accountRegionScope, s3GlobalRegistry);
12
+ });
13
+ simAws.installServiceController("s3", (controllerSimAws) => {
14
+ return new SimS3ServiceController(controllerSimAws);
15
+ });
16
+ }
17
+ //# sourceMappingURL=install-sim-s3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-sim-s3.js","sourceRoot":"","sources":["../../../src/service/s3/install-sim-s3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMpC;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAyB;IAEzB,MAAM,gBAAgB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAEnD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;QACpC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,EAAE;QACzD,OAAO,IAAI,sBAAsB,CAC/B,gBAAyC,CAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { SimAws } from "../../aws/sim-aws.js";
2
+ import type { SimS3Services } from "../install/install-sim-s3.js";
2
3
  import type { SimAwsServiceController, SimAwsServiceTarget } from "../../../serve/controller/sim-service-controller.js";
3
4
  /**
4
5
  * Localhost HTTP controller for simulated S3.
@@ -6,7 +7,7 @@ import type { SimAwsServiceController, SimAwsServiceTarget } from "../../../serv
6
7
  export declare class SimS3ServiceController implements SimAwsServiceController {
7
8
  private readonly router;
8
9
  private readonly getObjectController;
9
- constructor(simAws: SimAws);
10
+ constructor(simAws: SimAws<SimS3Services>);
10
11
  /**
11
12
  * Handle an HTTP request routed to a simulated S3 Bucket.
12
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-controller.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,qDAAqD,CAAC;AAI7D;;GAEG;AACH,qBAAa,sBAAuB,YAAW,uBAAuB;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;gBAEnD,MAAM,EAAE,MAAM;IAK1B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC;CAkBrB"}
1
+ {"version":3,"file":"sim-s3-controller.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,qDAAqD,CAAC;AAI7D;;GAEG;AACH,qBAAa,sBAAuB,YAAW,uBAAuB;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;gBAEnD,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC;IAKzC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC;CAkBrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-controller.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAChB,MAAM,CAAqB;IAC3B,mBAAmB,CAA2B;IAE/D,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,MAA2B,EAC3B,OAAgB;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;gBACjC,MAAM,EAAE,KAAK,CAAC,UAAU;gBACxB,OAAO,EAAE;oBACP,cAAc,EAAE,2BAA2B;iBAC5C;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAC3C,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,SAAS,EACf,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-s3-controller.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAChB,MAAM,CAAqB;IAC3B,mBAAmB,CAA2B;IAE/D,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,MAA2B,EAC3B,OAAgB;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;gBACjC,MAAM,EAAE,KAAK,CAAC,UAAU;gBACxB,OAAO,EAAE;oBACP,cAAc,EAAE,2BAA2B;iBAC5C;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAC3C,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,SAAS,EACf,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
@@ -1,6 +1,7 @@
1
1
  import type { SimAws } from "../../aws/sim-aws.js";
2
2
  import type { SimS3Bucket } from "../bucket/s3-bucket.js";
3
3
  import type { SimAwsServiceTarget } from "../../../serve/controller/sim-service-controller.js";
4
+ import type { SimS3Services } from "../install/install-sim-s3.js";
4
5
  export interface SimS3GetObjectRoute {
5
6
  readonly action: "getObject";
6
7
  readonly bucket: SimS3Bucket;
@@ -17,7 +18,7 @@ export type SimS3Route = SimS3GetObjectRoute | SimS3RouteFailure;
17
18
  */
18
19
  export declare class SimS3RequestRouter {
19
20
  private readonly simAws;
20
- constructor(simAws: SimAws);
21
+ constructor(simAws: SimAws<SimS3Services>);
21
22
  /**
22
23
  * Route an incoming service target and HTTP request to a simulated S3 action.
23
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-req-router.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-req-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAE/F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEjE;;GAEG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU;CAoEjE"}
1
+ {"version":3,"file":"sim-s3-req-router.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-req-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEjE;;GAEG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC;IAE1D;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU;CAkEjE"}
@@ -34,9 +34,7 @@ export class SimS3RequestRouter {
34
34
  const url = new URL(request.url);
35
35
  const objectKey = decodeURIComponent(url.pathname.replace(/^\/+/u, ""));
36
36
  const bucketName = target.resourceName;
37
- const bucketScope = this.simAws
38
- .s3GlobalRegistry()
39
- .findBucketScope(bucketName);
37
+ const bucketScope = this.simAws.service("s3").findBucketScope(bucketName);
40
38
  if (bucketScope === undefined) {
41
39
  return {
42
40
  action: "failure",
@@ -53,7 +51,7 @@ export class SimS3RequestRouter {
53
51
  }
54
52
  const bucket = this.simAws
55
53
  .accountRegionScope(bucketScope.accountId, bucketScope.regionName)
56
- .s3()
54
+ .service("s3")
57
55
  .getSimBucketByName(bucketName);
58
56
  if (bucket === undefined) {
59
57
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-req-router.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-req-router.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C;;OAEG;IACH,KAAK,CAAC,MAA2B,EAAE,OAAgB;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1D,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,sBAAsB;aAChC,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,0BAA0B;aACpC,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,4BAA4B;aACtC,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,MAAM,CAAC,YAA+B,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM;aAC5B,gBAAgB,EAAE;aAClB,eAAe,CAAC,UAAU,CAAC,CAAC;QAE/B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,mBAAmB,UAAU,YAAY;aACnD,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;YACjD,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,mBAAmB,UAAU,iBAAiB,WAAW,CAAC,UAAU,mBAAmB,MAAM,CAAC,UAAU,EAAE;aACpH,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;aACvB,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC;aACjE,EAAE,EAAE;aACJ,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAElC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,mBAAmB,UAAU,YAAY;aACnD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,MAAM;YACN,SAAS;SACV,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-s3-req-router.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-req-router.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAE9D;;OAEG;IACH,KAAK,CAAC,MAA2B,EAAE,OAAgB;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1D,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,sBAAsB;aAChC,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,0BAA0B;aACpC,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,4BAA4B;aACtC,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,MAAM,CAAC,YAA+B,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE1E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,mBAAmB,UAAU,YAAY;aACnD,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;YACjD,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,mBAAmB,UAAU,iBAAiB,WAAW,CAAC,UAAU,mBAAmB,MAAM,CAAC,UAAU,EAAE;aACpH,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;aACvB,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC;aACjE,OAAO,CAAC,IAAI,CAAC;aACb,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAElC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,mBAAmB,UAAU,YAAY;aACnD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,MAAM;YACN,SAAS;SACV,CAAC;IACJ,CAAC;CACF"}
@@ -4,6 +4,8 @@ import { SimS3GlobalRegistry } from "./sim-s3-global-registry.js";
4
4
  import { type SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
5
5
  /**
6
6
  * Simulated S3. Handles SDK commands. Emulates AWS behaviour and state.
7
+ * Scoped to an Account and Region, but has access to a global (as in
8
+ * cross-region) registry of simulated S3 Buckets.
7
9
  */
8
10
  export declare class SimS3 {
9
11
  private readonly accountRegionScope;
@@ -38,6 +40,10 @@ export declare class SimS3 {
38
40
  * Get a simulated S3 Bucket instance by name.
39
41
  */
40
42
  getSimBucketByName(bucketName: SimS3BucketName | string): SimS3Bucket | undefined;
43
+ /**
44
+ * Find the Account Region scope for a globally registered simulated S3 Bucket.
45
+ */
46
+ findBucketScope(bucketName: SimS3BucketName | string): SimAwsAccountRegionScope | undefined;
41
47
  /**
42
48
  * Have a simulated S3 Bucket use a local filesystem directory for storage.
43
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,wCAAwC,CAAC;AAKhD;;GAEG;AACH,qBAAa,KAAK;IAId,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAJnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;gBAGhD,kBAAkB,GAAE,wBAAiE,EACrF,gBAAgB,GAAE,mBAA+C;IAGpF;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,yBAAyB,CAAC;IASrC;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAAC,6BAA6B,CAAC;IAKzC;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKvE;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKvE;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;OAEG;IACH,kBAAkB,CAChB,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,WAAW,GAAG,SAAS;IAI1B;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,eAAe,GAAG,MAAM,EACpC,aAAa,EAAE,MAAM,GACpB,IAAI;CAKR"}
1
+ {"version":3,"file":"sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,wCAAwC,CAAC;AAKhD;;;;GAIG;AACH,qBAAa,KAAK;IAId,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAJnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;gBAGhD,kBAAkB,GAAE,wBAAiE,EACrF,gBAAgB,GAAE,mBAA+C;IAGpF;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,yBAAyB,CAAC;IASrC;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAAC,6BAA6B,CAAC;IAKzC;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKvE;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKvE;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;OAEG;IACH,kBAAkB,CAChB,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,WAAW,GAAG,SAAS;IAI1B;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,wBAAwB,GAAG,SAAS;IAIvC;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,eAAe,GAAG,MAAM,EACpC,aAAa,EAAE,MAAM,GACpB,IAAI;CAKR"}
@@ -10,6 +10,8 @@ import { assertDefined } from "../../util/defined.js";
10
10
  import { FilesystemS3BucketStorage } from "./storage/s3-filesystem-storage.js";
11
11
  /**
12
12
  * Simulated S3. Handles SDK commands. Emulates AWS behaviour and state.
13
+ * Scoped to an Account and Region, but has access to a global (as in
14
+ * cross-region) registry of simulated S3 Buckets.
13
15
  */
14
16
  export class SimS3 {
15
17
  accountRegionScope;
@@ -67,6 +69,12 @@ export class SimS3 {
67
69
  getSimBucketByName(bucketName) {
68
70
  return this.buckets.get(bucketName);
69
71
  }
72
+ /**
73
+ * Find the Account Region scope for a globally registered simulated S3 Bucket.
74
+ */
75
+ findBucketScope(bucketName) {
76
+ return this.s3GlobalRegistry.findBucketScope(bucketName);
77
+ }
70
78
  /**
71
79
  * Have a simulated S3 Bucket use a local filesystem directory for storage.
72
80
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3.js","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"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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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kensio/yulin",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "AWS system behaviour simulation for isolated unit testing",
5
5
  "repository": "https://github.com/KensioSoftware/yulin",
6
6
  "type": "module",
@@ -52,7 +52,6 @@
52
52
  "@aws-sdk/client-dynamodb": "^3.1057.0",
53
53
  "@aws-sdk/client-s3": "^3.1057.0",
54
54
  "@eslint/js": "^10.0.1",
55
- "@faker-js/faker": "^10.4.0",
56
55
  "@kensio/smartass": "^1.1.0",
57
56
  "@smithy/smithy-client": "^4.13.5",
58
57
  "@smithy/types": "^4.14.2",
@@ -92,6 +91,7 @@
92
91
  }
93
92
  },
94
93
  "dependencies": {
94
+ "@faker-js/faker": "^10.4.0",
95
95
  "@kensio/part-factory": "^0.1.1",
96
96
  "lodash-es": "^4.18.1"
97
97
  },
@@ -100,6 +100,8 @@
100
100
  "fmt": "eslint --fix '{src,test}/**/*.{ts,js}' && prettier --write '{src,test}/**/*.{ts,js,json,md,css,html,yml,yaml}'",
101
101
  "lint": "eslint '{src,test}/**/*.{ts,js}' && prettier --check '{src,test}/**/*.{ts,js,json,md,css,html,yml,yaml}'",
102
102
  "test": "vitest run",
103
- "test:coverage": "vitest run --coverage"
103
+ "test:coverage": "vitest run --coverage",
104
+ "test:iso": "vitest run --project isolatedTests",
105
+ "test:local": "vitest run --project localTests"
104
106
  }
105
107
  }