@brianmcd/di 0.0.9 → 0.0.11

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 (42) hide show
  1. package/README.md +72 -10
  2. package/dist/cjs/index.d.ts +1 -0
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/index.js +3 -1
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/cjs/lib/container-builder.d.ts +10 -2
  7. package/dist/cjs/lib/container-builder.d.ts.map +1 -1
  8. package/dist/cjs/lib/container-builder.js +14 -0
  9. package/dist/cjs/lib/container-builder.js.map +1 -1
  10. package/dist/cjs/lib/container.d.ts +8 -0
  11. package/dist/cjs/lib/container.d.ts.map +1 -1
  12. package/dist/cjs/lib/container.js +11 -0
  13. package/dist/cjs/lib/container.js.map +1 -1
  14. package/dist/cjs/lib/scope-builder.d.ts +26 -0
  15. package/dist/cjs/lib/scope-builder.d.ts.map +1 -0
  16. package/dist/cjs/lib/scope-builder.js +46 -0
  17. package/dist/cjs/lib/scope-builder.js.map +1 -0
  18. package/dist/cjs/lib/scoped-container.d.ts +2 -1
  19. package/dist/cjs/lib/scoped-container.d.ts.map +1 -1
  20. package/dist/cjs/lib/scoped-container.js +11 -2
  21. package/dist/cjs/lib/scoped-container.js.map +1 -1
  22. package/dist/esm/index.d.ts +1 -0
  23. package/dist/esm/index.d.ts.map +1 -1
  24. package/dist/esm/index.js +1 -0
  25. package/dist/esm/index.js.map +1 -1
  26. package/dist/esm/lib/container-builder.d.ts +10 -2
  27. package/dist/esm/lib/container-builder.d.ts.map +1 -1
  28. package/dist/esm/lib/container-builder.js +14 -0
  29. package/dist/esm/lib/container-builder.js.map +1 -1
  30. package/dist/esm/lib/container.d.ts +8 -0
  31. package/dist/esm/lib/container.d.ts.map +1 -1
  32. package/dist/esm/lib/container.js +11 -0
  33. package/dist/esm/lib/container.js.map +1 -1
  34. package/dist/esm/lib/scope-builder.d.ts +26 -0
  35. package/dist/esm/lib/scope-builder.d.ts.map +1 -0
  36. package/dist/esm/lib/scope-builder.js +42 -0
  37. package/dist/esm/lib/scope-builder.js.map +1 -0
  38. package/dist/esm/lib/scoped-container.d.ts +2 -1
  39. package/dist/esm/lib/scoped-container.d.ts.map +1 -1
  40. package/dist/esm/lib/scoped-container.js +11 -2
  41. package/dist/esm/lib/scoped-container.js.map +1 -1
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -16,10 +16,12 @@ A lightweight, type-safe dependency injection container for Node.
16
16
  - [Factory Providers](#factory-providers)
17
17
  - [Value Providers](#value-providers)
18
18
  - [Scoped Containers](#scoped-containers)
19
+ - [Scope-Provided Values](#scope-provided-values)
19
20
  - [Creating Reusable Packages](#creating-reusable-packages)
20
21
  - [API Reference](#api-reference)
21
22
  - [ContainerBuilder](#containerbuilder)
22
23
  - [Container](#container)
24
+ - [ScopeBuilder](#scopebuilder)
23
25
  - [ScopedContainer](#scopedcontainer)
24
26
  - [Helper Functions](#helper-functions)
25
27
  - [Interfaces](#interfaces)
@@ -34,13 +36,14 @@ Why yet another DI container for Node?
34
36
 
35
37
  I couldn't find one with the following feature set:
36
38
 
37
- - **No decorators**: I don't want to rely on experimental decorators, emitDecoratorMetadata, or reflect-metadata.
38
- - **Async factories**: When using a factory provider, the factory needs to be able to be async.
39
- - **Lifecycle hooks**: When providing a class, I want to be able to have async `onInit` and `onDestroy` methods so that I can do initialization and cleanup.
40
- - **Scoped containers**: By default, providers create singletons, but sometimes you need things to be scoped in some way (e.g. request-scoped).
41
- - **Type safety**: If I have a mismatch between what I've declared and what I'm using, I want a compiler error.
39
+ - **No decorators**: No need for experimentalDecorators, emitDecoratorMetadata, or reflect-metadata.
40
+ - **Async factories**: Factories can be sync or async, so you can easily handle things like connecting to a database.
41
+ - **Lifecycle hooks**: When created class-based providers, you can implement async `onInit` and `onDestroy` methods to easily handle init and cleanup.
42
+ - **Scoped containers**: Easily implement request-scoping by created a scoped container, which creates and caches instances on-demand.
43
+ - **Type safety**: Tokens convey type information instead of just being strings. Type matching between the `deps` array and class constructors is enforced.
44
+ - **Zero dependencies**: Who doesn't love that?
42
45
 
43
- These are the core design goals of `@brianmcd/di`. Beyond these, the goal is to keep the library small and simple.
46
+ `@brianmcd/di` implements all of these features in a small, simple library.
44
47
 
45
48
  ## Installation
46
49
 
@@ -192,9 +195,9 @@ const container = await new ContainerBuilder().registerValue(CONFIG, { value: 't
192
195
  expect(container.get(CONFIG)).toEqual({ value: 'test' });
193
196
  ```
194
197
 
195
- ## Scoped Containers
198
+ ## Scoped Containers (Implementing Request-scoping)
196
199
 
197
- The default behavior of the Container is to create singleton instances whose lifetime is the lifetime of the application. Sometimes, however, you have a set of providers that need to create new instances within some other scope, such as per-request. You can achieve that with Scoped Containers and defining the scope when you register your provider.
200
+ The default behavior of the Container is to create singleton instances whose lifetime matches the lifetime of the Container. Sometimes, however, you have a set of providers that need to create new instances within some other scope, such as per-request. You can achieve that with Scoped Containers and seting the scope when you register your provider.
198
201
 
199
202
  ### Provider Scope
200
203
 
@@ -203,7 +206,7 @@ There are 2 scope options when registering a provider:
203
206
  1. Singleton (default): The provider is instantiated once when `.build()` is called on the `ContainerBuilder`.
204
207
  2. Scoped: The provider can only be created in a ScopedContainer. This is how you implement request-scoping.
205
208
 
206
- **Important:** Singleton providers cannot depend on Scoped providers. This constraint is validated at build time - you'll get an error if a singleton tries to inject a scoped dependency.
209
+ **Important:** Singleton providers cannot depend on Scoped providers. This constraint is enforced when you call `build` on the `Container` - you'll get an error if a singleton tries to inject a scoped dependency.
207
210
 
208
211
  ### Using a Scoped Container
209
212
 
@@ -224,6 +227,53 @@ Within a `ScopedContainer`, Scoped dependencies are created **once** and then ca
224
227
 
225
228
  When you're done with your `ScopedContainer`, be sure to call `.destroy()` on it to run any `onDestroy` hooks.
226
229
 
230
+ ### Scope-Provided Values
231
+
232
+ Sometimes you need to inject a value that is only known at scope creation time, such as request data. You can do this by declaring a **scoped value** at build time and then providing its value when creating a scope.
233
+
234
+ 1. Use `registerScopedValue(token)` on the `ContainerBuilder` to declare the token. This tells the container that the value will be provided later, per-scope.
235
+ 2. Use `container.createScopeBuilder()` to get a `ScopeBuilder`, call `.provideValue()` for each declared scoped value, and then call `.build()` to create the `ScopedContainer`.
236
+
237
+ Scoped providers can depend on scoped values just like any other dependency. Singletons **cannot** depend on scoped values (this is enforced at build time).
238
+
239
+ ```typescript
240
+ import { ContainerBuilder, Scope, createToken } from '@brianmcd/di';
241
+
242
+ interface RequestData {
243
+ url: string;
244
+ method: string;
245
+ }
246
+
247
+ const REQUEST_DATA = createToken<RequestData>('REQUEST_DATA');
248
+
249
+ class RequestHandler {
250
+ static readonly deps = [REQUEST_DATA] as const;
251
+ constructor(private readonly request: RequestData) {}
252
+
253
+ handle() {
254
+ return `${this.request.method} ${this.request.url}`;
255
+ }
256
+ }
257
+
258
+ const container = await new ContainerBuilder()
259
+ .registerScopedValue(REQUEST_DATA)
260
+ .registerClass(RequestHandler, { scope: Scope.Scoped })
261
+ .build();
262
+
263
+ // Per-request: create a scope with the request data
264
+ const scope = container
265
+ .createScopeBuilder()
266
+ .provideValue(REQUEST_DATA, { url: '/api/users', method: 'GET' })
267
+ .build();
268
+
269
+ const handler = await scope.getScoped(RequestHandler);
270
+ handler.handle(); // 'GET /api/users'
271
+
272
+ await scope.destroy();
273
+ ```
274
+
275
+ Scope-provided values are accessible via `getScoped()`, just like other scoped providers. Like value providers, they are considered externally managed -- lifecycle hooks are never called on them.
276
+
227
277
  ## Creating Reusable Packages
228
278
 
229
279
  A common pattern is to break applications up into separate packages or libraries. `@brianmcd/di` supports this use case well via `ContainerBuilder`'s `merge` method.
@@ -235,6 +285,7 @@ In your library, register your providers with a `ContainerBuilder`, but don't ca
235
285
  In your consuming application, simply call `.merge(yourLibraryContainerBuilder)`. This will merge all of the library's providers into the application's `ContainerBuilder`.
236
286
 
237
287
  Two important caveats:
288
+
238
289
  1. A `ContainerBuilder` forms a single namespace, so you can't provide the same token in your library and in your application.
239
290
  2. BUT, you can merge a single `ContainerBuilder` in multiple times without issue, which you might want to do if you have some reusable code used in multiple libraries that export `ContainerBuilder`s, and then those `ContainerBuilder`s are in turn merged into your application's `ContainerBuilder`.
240
291
 
@@ -272,6 +323,7 @@ Fluent builder for constructing Containers. Call `.build()` at the end to get yo
272
323
  - `registerValue<T>(token, value): this` - Register a plain value
273
324
  - `registerClass<T>(Class, options?): this` - Register a class with static `deps` property
274
325
  - `registerFactory<T>(provider, options?): this` - Register a factory provider
326
+ - `registerScopedValue<T>(token): this` - Declare a scoped value token whose value will be provided at scope creation time via `ScopeBuilder`
275
327
  - `merge(otherBuilder): this` - Merge registrations from another builder
276
328
  - `has(token): boolean` - Check if a token has been registered
277
329
  - `build(options?: { init?: boolean }): Promise<Container>` - Build the container. By default, also calls `init()` on the container. Set `{ init: false }` to skip automatic initialization if you need manual control over when `onInit` hooks run (useful for testing or staged startup).
@@ -294,10 +346,20 @@ The core DI container that holds service instances.
294
346
  - `init(): Promise<void>` - Initialize all services (calls `onInit` on all services, ensuring dependencies are initialized before dependents).
295
347
  - `destroy(): Promise<void>` - Destroy all services (calls `onDestroy` in reverse order, ensuring dependencies are destroyed after dependents).
296
348
  - `createScope(): ScopedContainer` - Create a new scoped container for scoped dependencies.
349
+ - `createScopeBuilder(): ScopeBuilder` - Create a `ScopeBuilder` for constructing a scoped container with provided values. Use this when you have scoped value tokens declared with `registerScopedValue()`.
350
+
351
+ ### ScopeBuilder
352
+
353
+ Builder for constructing a `ScopedContainer` with scope-provided values. Created via `container.createScopeBuilder()`.
354
+
355
+ #### Methods
356
+
357
+ - `provideValue<T>(token, value): this` - Provide a value for a scoped value token declared with `registerScopedValue()`. Throws if the token was not declared.
358
+ - `build(): ScopedContainer` - Build the scoped container. Throws if any declared scoped value tokens have not been provided.
297
359
 
298
360
  ### ScopedContainer
299
361
 
300
- Container for scoped instances, created via `container.createScope()`.
362
+ Container for scoped instances, created via `container.createScope()` or `container.createScopeBuilder().build()`.
301
363
 
302
364
  #### Methods
303
365
 
@@ -1,5 +1,6 @@
1
1
  export { Container } from './lib/container.js';
2
2
  export { ContainerBuilder } from './lib/container-builder.js';
3
+ export { ScopeBuilder } from './lib/scope-builder.js';
3
4
  export { ScopedContainer } from './lib/scoped-container.js';
4
5
  export type { OnDestroy, OnInit } from './lib/types/lifecycle.js';
5
6
  export type { FactoryProvider } from './lib/types/factory-provider.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,YAAY,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,YAAY,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineFactory = exports.createToken = exports.Scope = exports.ScopedContainer = exports.ContainerBuilder = exports.Container = void 0;
3
+ exports.defineFactory = exports.createToken = exports.Scope = exports.ScopedContainer = exports.ScopeBuilder = exports.ContainerBuilder = exports.Container = void 0;
4
4
  var container_js_1 = require("./lib/container.js");
5
5
  Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return container_js_1.Container; } });
6
6
  var container_builder_js_1 = require("./lib/container-builder.js");
7
7
  Object.defineProperty(exports, "ContainerBuilder", { enumerable: true, get: function () { return container_builder_js_1.ContainerBuilder; } });
8
+ var scope_builder_js_1 = require("./lib/scope-builder.js");
9
+ Object.defineProperty(exports, "ScopeBuilder", { enumerable: true, get: function () { return scope_builder_js_1.ScopeBuilder; } });
8
10
  var scoped_container_js_1 = require("./lib/scoped-container.js");
9
11
  Object.defineProperty(exports, "ScopedContainer", { enumerable: true, get: function () { return scoped_container_js_1.ScopedContainer; } });
10
12
  var scope_js_1 = require("./lib/types/scope.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAAtC,yGAAA,SAAS,OAAA;AAClB,mEAA8D;AAArD,wHAAA,gBAAgB,OAAA;AACzB,iEAA4D;AAAnD,sHAAA,eAAe,OAAA;AAKxB,iDAA6C;AAApC,iGAAA,KAAK,OAAA;AAId,+DAA0D;AAAjD,8GAAA,WAAW,OAAA;AACpB,mEAA8D;AAArD,kHAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAAtC,yGAAA,SAAS,OAAA;AAClB,mEAA8D;AAArD,wHAAA,gBAAgB,OAAA;AACzB,2DAAsD;AAA7C,gHAAA,YAAY,OAAA;AACrB,iEAA4D;AAAnD,sHAAA,eAAe,OAAA;AAKxB,iDAA6C;AAApC,iGAAA,KAAK,OAAA;AAId,+DAA0D;AAAjD,8GAAA,WAAW,OAAA;AACpB,mEAA8D;AAArD,kHAAA,aAAa,OAAA"}
@@ -3,6 +3,7 @@ import type { FactoryProvider } from './types/factory-provider.js';
3
3
  import type { InjectableClass } from './types/injectable-class.js';
4
4
  import type { RegistrationOptions } from './types/options.js';
5
5
  import type { Token } from './types/tokens.js';
6
+ type ValidateArity<C extends new (...args: any[]) => any, Deps extends readonly Token<any>[]> = Deps['length'] extends ConstructorParameters<C>['length'] ? ConstructorParameters<C>['length'] extends Deps['length'] ? unknown : never : never;
6
7
  /**
7
8
  * ContainerBuilder is the class you use to configure a Container.
8
9
  *
@@ -22,12 +23,18 @@ export declare class ContainerBuilder {
22
23
  * Register a static value.
23
24
  */
24
25
  registerValue<T>(token: Token<T>, value: T): this;
26
+ /**
27
+ * Declare a scoped value token whose value will be provided at scope creation time.
28
+ * Scoped providers can depend on this token; the actual value is supplied via
29
+ * `container.createScopeBuilder().provideValue(token, value).build()`.
30
+ */
31
+ registerScopedValue<T>(token: Token<T>): this;
25
32
  /**
26
33
  * Register a class with static deps property.
27
34
  * Dependencies are resolved automatically during build().
28
35
  * Type safety between the deps array and constructor params is enforced at this method.
29
36
  */
30
- registerClass<T, Deps extends readonly Token<any>[] = readonly []>(Class: InjectableClass<T, Deps>, options?: RegistrationOptions): this;
37
+ registerClass<T, Deps extends readonly Token<any>[] = readonly [], C extends InjectableClass<T, Deps> = InjectableClass<T, Deps>>(Class: C & InjectableClass<T, Deps> & ValidateArity<C, Deps>, options?: RegistrationOptions): this;
31
38
  /**
32
39
  * Register a factory provider, which can be async or sync and can inject other dependencies.
33
40
  */
@@ -52,7 +59,7 @@ export declare class ContainerBuilder {
52
59
  * Override an existing provider with a class; intended for mocking during tests.
53
60
  * Preserves the original provider's scope.
54
61
  */
55
- overrideClass<T, Deps extends readonly Token<any>[] = readonly []>(token: Token<T>, Class: InjectableClass<T, Deps>): this;
62
+ overrideClass<T, Deps extends readonly Token<any>[] = readonly [], C extends InjectableClass<T, Deps> = InjectableClass<T, Deps>>(token: Token<T>, Class: C & InjectableClass<T, Deps> & ValidateArity<C, Deps>): this;
56
63
  /**
57
64
  * Override an existing provider with a factory; intended for mocking during tests.
58
65
  * Preserves the original provider's scope.
@@ -89,4 +96,5 @@ export declare class ContainerBuilder {
89
96
  */
90
97
  private resolveDeps;
91
98
  }
99
+ export {};
92
100
  //# sourceMappingURL=container-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/container-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAE9E;;OAEG;IACI,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAKxD;;;;OAIG;IACI,aAAa,CAAC,CAAC,EAAE,IAAI,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,EACtE,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAC/B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAYP;;OAEG;IACI,eAAe,CACpB,CAAC,EACD,IAAI,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EAClC,WAAW,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EACzC,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAYvF;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAO3C;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;IAI1C;;;OAGG;IACI,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAWxD;;;OAGG;IACI,aAAa,CAAC,CAAC,EAAE,IAAI,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,EACtE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,GAC9B,IAAI;IAYP;;;OAGG;IACI,eAAe,CACpB,CAAC,EACD,IAAI,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EAClC,WAAW,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EACzC,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,IAAI;IAaxD,OAAO,CAAC,qBAAqB;IAQ7B;;;;OAIG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IA+DpE;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IA4FvB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAmDrB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,WAAW;CAYpB"}
1
+ {"version":3,"file":"container-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/container-builder.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,15 @@ class ContainerBuilder {
26
26
  this.addRegistration(token, { type: 'value', scope: scope_js_1.Scope.Singleton, token, value });
27
27
  return this;
28
28
  }
29
+ /**
30
+ * Declare a scoped value token whose value will be provided at scope creation time.
31
+ * Scoped providers can depend on this token; the actual value is supplied via
32
+ * `container.createScopeBuilder().provideValue(token, value).build()`.
33
+ */
34
+ registerScopedValue(token) {
35
+ this.addRegistration(token, { type: 'scopedValue', scope: scope_js_1.Scope.Scoped, token });
36
+ return this;
37
+ }
29
38
  /**
30
39
  * Register a class with static deps property.
31
40
  * Dependencies are resolved automatically during build().
@@ -139,6 +148,7 @@ class ContainerBuilder {
139
148
  initOrder: [],
140
149
  scopedClassProviders: new Map(),
141
150
  scopedFactoryProviders: new Map(),
151
+ scopedValueTokens: new Set(),
142
152
  };
143
153
  for (const token of sorted) {
144
154
  const registration = this.registrations.get(token);
@@ -179,6 +189,10 @@ class ContainerBuilder {
179
189
  }
180
190
  break;
181
191
  }
192
+ case 'scopedValue': {
193
+ state.scopedValueTokens.add(token);
194
+ break;
195
+ }
182
196
  }
183
197
  }
184
198
  const container = new container_js_1.Container(state);
@@ -1 +1 @@
1
- {"version":3,"file":"container-builder.js","sourceRoot":"","sources":["../../../src/lib/container-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-builder.js","sourceRoot":"","sources":["../../../src/lib/container-builder.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAI3D,+CAAyC;AAEzC,mEAA2D;AAW3D;;;;;;;;;;;;GAYG;AACH,MAAa,gBAAgB;IACV,aAAa,GAAsC,IAAI,GAAG,EAAE,CAAC;IAE9E;;OAEG;IACI,aAAa,CAAI,KAAe,EAAE,KAAQ;QAC/C,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAI,KAAe;QAC3C,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,aAAa,CAKlB,KAA4D,EAC5D,OAA6B;QAE7B,MAAM,KAAK,GAAG,KAAiB,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;YAC1B,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,gBAAK,CAAC,SAAS;YACxC,KAAK;YACL,KAAK;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,eAAe,CAIpB,QAA+C,EAAE,OAA6B;QAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;YAC1B,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,gBAAK,CAAC,SAAS;YACxC,KAAK;YACL,QAAQ;YACR,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,KAAuB;QAClC,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,KAAqB;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,aAAa,CAAI,KAAe,EAAE,KAAQ;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,KAAK,KAAK,gBAAK,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAA,kCAAa,EAAC,KAAK,CAAC,gCAAgC,CACpG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,aAAa,CAIlB,KAAe,EAAE,KAA4D;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE;YAC5B,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK;YACL,KAAK;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,eAAe,CAIpB,QAA+C;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE;YAC5B,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK;YACL,QAAQ;YACR,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,qBAAqB,CAAC,KAAqB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAA,kCAAa,EAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CAAC,OAA4B;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEtC,uCAAuC;QACvC,MAAM,KAAK,GAAmB;YAC5B,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,gBAAgB,EAAE,IAAI,GAAG,EAAE;YAC3B,cAAc,EAAE,IAAI,GAAG,EAAE;YACzB,SAAS,EAAE,EAAE;YACb,oBAAoB,EAAE,IAAI,GAAG,EAAE;YAC/B,sBAAsB,EAAE,IAAI,GAAG,EAAE;YACjC,iBAAiB,EAAE,IAAI,GAAG,EAAE;SAC7B,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;YAEpD,QAAQ,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC1B,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/C,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAChC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5B,MAAM;gBACR,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAK,CAAC,MAAM,EAAE,CAAC;wBACxC,iEAAiE;wBACjE,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE;4BACpC,KAAK,EAAE,YAAY,CAAC,KAAK;4BACzB,IAAI,EAAE,YAAY,CAAC,IAAI;yBACxB,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC1E,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC;wBACzD,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBACrC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAK,CAAC,MAAM,EAAE,CAAC;wBACxC,iEAAiE;wBACjE,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACjE,CAAC;yBAAM,CAAC;wBACN,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC1E,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;wBACtE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBACrC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;wBACzD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACnC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,wBAAS,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,OAAO,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACK,eAAe;QACrB,gEAAgE;QAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;QAEnD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuC,CAAC;QAElE,wBAAwB;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACvB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,oDAAoD;QACpD,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;YAE3C,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;gBACpC,mCAAmC;gBACnC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,SAAS,GAAG,IAAA,kCAAa,EAAC,KAAK,CAAC,CAAC;oBACvC,MAAM,UAAU,GAAG,IAAA,kCAAa,EAAC,GAAG,CAAC,CAAC;oBAEtC,MAAM,IAAI,KAAK,CACb,yBAAyB,SAAS,eAAe,UAAU,iBAAiB,CAC7E,CAAC;gBACJ,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAElB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,SAAS,GAAG,IAAA,kCAAa,EAAC,KAAK,CAAC,CAAC;oBACvC,MAAM,UAAU,GAAG,IAAA,kCAAa,EAAC,GAAG,CAAC,CAAC;oBAEtC,MAAM,IAAI,KAAK,CACb,uBAAuB,SAAS,eAAe,UAAU,2BAA2B,CACrF,CAAC;gBACJ,CAAC;gBAED,8CAA8C;gBAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;gBACrD,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBACrE,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAA,kCAAa,EAAC,KAAK,CAAC,4BAA4B,IAAA,kCAAa,EAAC,GAAG,CAAC,EAAE,CACtG,CAAC;gBACJ,CAAC;gBAED,sCAAsC;gBACtC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,iFAAiF;QACjF,8EAA8E;QAC9E,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAErB,kCAAkC;YAClC,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACnC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;oBACpB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kCAAa,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErE,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,aAAa;QACnB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,gCAAgC;QAChD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,oBAAoB;QAErC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;QAEhD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,IAAI,GAAqB,EAAE,CAAC;QAElC,MAAM,GAAG,GAAG,CAAC,KAAqB,EAA2B,EAAE;YAC7D,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,YAAY,IAAI,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAE7E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC5B,4DAA4D;oBAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvB,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzB,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC,CAAC,0DAA0D;IACvE,CAAC;IAEO,eAAe,CAAC,KAAqB,EAAE,YAA0B;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,yFAAyF;YACzF,0FAA0F;YAC1F,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAA,kCAAa,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAEO,QAAQ,CAAC,YAA0B;QACzC,OAAO,YAAY,CAAC,KAAK,KAAK,gBAAK,CAAC,MAAM,CAAC;IAC7C,CAAC;IAEO,WAAW,CAAC,YAA0B;QAC5C,OAAO,YAAY,CAAC,KAAK,KAAK,gBAAK,CAAC,SAAS,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,WAAW,CACjB,IAA+B,EAC/B,SAAuC;QAEvC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAA,kCAAa,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA5ZD,4CA4ZC"}
@@ -1,6 +1,7 @@
1
1
  import type { FactoryProvider } from './types/factory-provider.js';
2
2
  import type { InjectableClass } from './types/injectable-class.js';
3
3
  import type { Token } from './types/tokens.js';
4
+ import { ScopeBuilder } from './scope-builder.js';
4
5
  import { ScopedContainer } from './scoped-container.js';
5
6
  /**
6
7
  * Data for a scoped class registration.
@@ -20,6 +21,7 @@ export interface ContainerState {
20
21
  initOrder: Token<unknown>[];
21
22
  scopedClassProviders: Map<Token<unknown>, ScopedClassData>;
22
23
  scopedFactoryProviders: Map<Token<unknown>, FactoryProvider<any, any, any>>;
24
+ scopedValueTokens: Set<Token<unknown>>;
23
25
  }
24
26
  export declare class Container {
25
27
  private readonly instances;
@@ -28,6 +30,7 @@ export declare class Container {
28
30
  private readonly initOrder;
29
31
  private readonly scopedClassProviders;
30
32
  private readonly scopedFactoryProviders;
33
+ private readonly scopedValueTokens;
31
34
  private isInitialized;
32
35
  constructor(state: ContainerState);
33
36
  /**
@@ -39,6 +42,11 @@ export declare class Container {
39
42
  * Scoped instances are created on-demand within the container and destroyed when the scoped container is destroyed.
40
43
  */
41
44
  createScope(): ScopedContainer;
45
+ /**
46
+ * Create a ScopeBuilder for constructing a scoped container with provided values.
47
+ * Use this when you have scoped value tokens that need to be supplied per-scope.
48
+ */
49
+ createScopeBuilder(): ScopeBuilder;
42
50
  /**
43
51
  * Initialize all instances - calls onInit() in topological order (dependencies before dependents).
44
52
  * Only class-registered instances have onInit called (not values or factories).
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/lib/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACxC,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAE5B,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;IAC3D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;CAC7E;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsD;IACvF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuC;IAC5E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsD;IAC7F,OAAO,CAAC,aAAa,CAAS;gBAEX,KAAK,EAAE,cAAc;IASxC;;OAEG;IACI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAWjC;;;OAGG;IACI,WAAW,IAAI,eAAe;IAQrC;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAiDtC"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/lib/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACxC,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAE5B,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;IAC3D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5E,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CACxC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsD;IACvF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuC;IAC5E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsD;IAC7F,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,aAAa,CAAS;gBAEX,KAAK,EAAE,cAAc;IAUxC;;OAEG;IACI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAWjC;;;OAGG;IACI,WAAW,IAAI,eAAe;IAQrC;;;OAGG;IACI,kBAAkB,IAAI,YAAY;IASzC;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAkDtC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Container = void 0;
4
+ const scope_builder_js_1 = require("./scope-builder.js");
4
5
  const scoped_container_js_1 = require("./scoped-container.js");
5
6
  const has_on_destroy_js_1 = require("./utils/has-on-destroy.js");
6
7
  const has_on_init_js_1 = require("./utils/has-on-init.js");
@@ -12,6 +13,7 @@ class Container {
12
13
  initOrder;
13
14
  scopedClassProviders;
14
15
  scopedFactoryProviders;
16
+ scopedValueTokens;
15
17
  isInitialized = false;
16
18
  constructor(state) {
17
19
  this.instances = state.instances;
@@ -20,6 +22,7 @@ class Container {
20
22
  this.initOrder = state.initOrder;
21
23
  this.scopedClassProviders = state.scopedClassProviders;
22
24
  this.scopedFactoryProviders = state.scopedFactoryProviders;
25
+ this.scopedValueTokens = state.scopedValueTokens;
23
26
  }
24
27
  /**
25
28
  * Get an instance by its token.
@@ -41,6 +44,13 @@ class Container {
41
44
  createScope() {
42
45
  return new scoped_container_js_1.ScopedContainer(this.instances, this.scopedClassProviders, this.scopedFactoryProviders);
43
46
  }
47
+ /**
48
+ * Create a ScopeBuilder for constructing a scoped container with provided values.
49
+ * Use this when you have scoped value tokens that need to be supplied per-scope.
50
+ */
51
+ createScopeBuilder() {
52
+ return new scope_builder_js_1.ScopeBuilder(this.instances, this.scopedClassProviders, this.scopedFactoryProviders, this.scopedValueTokens);
53
+ }
44
54
  /**
45
55
  * Initialize all instances - calls onInit() in topological order (dependencies before dependents).
46
56
  * Only class-registered instances have onInit called (not values or factories).
@@ -103,6 +113,7 @@ class Container {
103
113
  this.initOrder.length = 0;
104
114
  this.scopedClassProviders.clear();
105
115
  this.scopedFactoryProviders.clear();
116
+ this.scopedValueTokens.clear();
106
117
  this.isInitialized = false;
107
118
  if (errors.length > 0) {
108
119
  throw new AggregateError(errors, 'Errors during container destruction');
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/lib/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/lib/container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { FactoryProvider } from './types/factory-provider.js';
2
+ import type { Token } from './types/tokens.js';
3
+ import type { ScopedClassData } from './container.js';
4
+ import { ScopedContainer } from './scoped-container.js';
5
+ /**
6
+ * A builder for creating scoped containers with provided values.
7
+ * Use this to supply values for tokens declared with `registerScopedValue()`.
8
+ */
9
+ export declare class ScopeBuilder {
10
+ private readonly parentInstances;
11
+ private readonly scopedClassProviders;
12
+ private readonly scopedFactoryProviders;
13
+ private readonly scopedValueTokens;
14
+ private readonly values;
15
+ constructor(parentInstances: Map<Token<unknown>, unknown>, scopedClassProviders: Map<Token<unknown>, ScopedClassData>, scopedFactoryProviders: Map<Token<unknown>, FactoryProvider<any, any, any>>, scopedValueTokens: Set<Token<unknown>>);
16
+ /**
17
+ * Provide a value for a scoped value token declared with `registerScopedValue()`.
18
+ */
19
+ provideValue<T>(token: Token<T>, value: T): this;
20
+ /**
21
+ * Build the scoped container with all provided values.
22
+ * Throws if any declared scoped value tokens have not been provided.
23
+ */
24
+ build(): ScopedContainer;
25
+ }
26
+ //# sourceMappingURL=scope-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/scope-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;GAGG;AACH,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IANpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;gBAG/C,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAC7C,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,EAC1D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAC3E,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAGzD;;OAEG;IACI,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAUvD;;;OAGG;IACI,KAAK,IAAI,eAAe;CAiBhC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScopeBuilder = void 0;
4
+ const scoped_container_js_1 = require("./scoped-container.js");
5
+ const token_to_string_js_1 = require("./utils/token-to-string.js");
6
+ /**
7
+ * A builder for creating scoped containers with provided values.
8
+ * Use this to supply values for tokens declared with `registerScopedValue()`.
9
+ */
10
+ class ScopeBuilder {
11
+ parentInstances;
12
+ scopedClassProviders;
13
+ scopedFactoryProviders;
14
+ scopedValueTokens;
15
+ values = new Map();
16
+ constructor(parentInstances, scopedClassProviders, scopedFactoryProviders, scopedValueTokens) {
17
+ this.parentInstances = parentInstances;
18
+ this.scopedClassProviders = scopedClassProviders;
19
+ this.scopedFactoryProviders = scopedFactoryProviders;
20
+ this.scopedValueTokens = scopedValueTokens;
21
+ }
22
+ /**
23
+ * Provide a value for a scoped value token declared with `registerScopedValue()`.
24
+ */
25
+ provideValue(token, value) {
26
+ if (!this.scopedValueTokens.has(token)) {
27
+ throw new Error(`Token ${(0, token_to_string_js_1.tokenToString)(token)} is not registered as a scoped value. Use ContainerBuilder.registerScopedValue() first.`);
28
+ }
29
+ this.values.set(token, value);
30
+ return this;
31
+ }
32
+ /**
33
+ * Build the scoped container with all provided values.
34
+ * Throws if any declared scoped value tokens have not been provided.
35
+ */
36
+ build() {
37
+ for (const token of this.scopedValueTokens) {
38
+ if (!this.values.has(token)) {
39
+ throw new Error(`Missing scope value for token: ${(0, token_to_string_js_1.tokenToString)(token)}. Call .provideValue() before .build().`);
40
+ }
41
+ }
42
+ return new scoped_container_js_1.ScopedContainer(this.parentInstances, this.scopedClassProviders, this.scopedFactoryProviders, this.values, this.scopedValueTokens);
43
+ }
44
+ }
45
+ exports.ScopeBuilder = ScopeBuilder;
46
+ //# sourceMappingURL=scope-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-builder.js","sourceRoot":"","sources":["../../../src/lib/scope-builder.ts"],"names":[],"mappings":";;;AAGA,+DAAwD;AACxD,mEAA2D;AAE3D;;;GAGG;AACH,MAAa,YAAY;IAIJ;IACA;IACA;IACA;IANF,MAAM,GAAiC,IAAI,GAAG,EAAE,CAAC;IAElE,YACmB,eAA6C,EAC7C,oBAA0D,EAC1D,sBAA2E,EAC3E,iBAAsC;QAHtC,oBAAe,GAAf,eAAe,CAA8B;QAC7C,yBAAoB,GAApB,oBAAoB,CAAsC;QAC1D,2BAAsB,GAAtB,sBAAsB,CAAqD;QAC3E,sBAAiB,GAAjB,iBAAiB,CAAqB;IACtD,CAAC;IAEJ;;OAEG;IACI,YAAY,CAAI,KAAe,EAAE,KAAQ;QAC9C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,SAAS,IAAA,kCAAa,EAAC,KAAK,CAAC,yFAAyF,CACvH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAA,kCAAa,EAAC,KAAK,CAAC,yCAAyC,CAChG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,qCAAe,CACxB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,iBAAiB,CACvB,CAAC;IACJ,CAAC;CACF;AA5CD,oCA4CC"}
@@ -10,11 +10,12 @@ export declare class ScopedContainer {
10
10
  private readonly parentInstances;
11
11
  private readonly scopedClassProviders;
12
12
  private readonly scopedFactoryProviders;
13
+ private readonly scopedValueTokens;
13
14
  private readonly instances;
14
15
  private readonly pendingPromises;
15
16
  private readonly creationOrder;
16
17
  private _isDestroyed;
17
- constructor(parentInstances: Map<Token<unknown>, unknown>, scopedClassProviders: Map<Token<unknown>, ScopedClassData>, scopedFactoryProviders: Map<Token<unknown>, FactoryProvider<any, any, any>>);
18
+ constructor(parentInstances: Map<Token<unknown>, unknown>, scopedClassProviders: Map<Token<unknown>, ScopedClassData>, scopedFactoryProviders: Map<Token<unknown>, FactoryProvider<any, any, any>>, scopeValues?: Map<Token<unknown>, unknown>, scopedValueTokens?: Set<Token<unknown>>);
18
19
  get isDestroyed(): boolean;
19
20
  /**
20
21
  * Get a singleton instance from the parent container.
@@ -1 +1 @@
1
- {"version":3,"file":"scoped-container.d.ts","sourceRoot":"","sources":["../../../src/lib/scoped-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKtD;;;;GAIG;AACH,qBAAa,eAAe;IAYxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAbzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IAIrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;IAEpF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IAEtD,OAAO,CAAC,YAAY,CAAS;gBAGV,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAC7C,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,EAC1D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAG9F,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;;OAGG;IACI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAsBjC;;;;OAIG;IACU,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBtD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA0CvB,yBAAyB;YAgBzB,2BAA2B;IAazC;;;OAGG;YACW,OAAO;IAcrB;;;OAGG;YACW,aAAa;CAmC5B"}
1
+ {"version":3,"file":"scoped-container.d.ts","sourceRoot":"","sources":["../../../src/lib/scoped-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKtD;;;;GAIG;AACH,qBAAa,eAAe;IAYxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAfpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IAIrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;IAEpF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IAEtD,OAAO,CAAC,YAAY,CAAS;gBAGV,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAC7C,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,EAC1D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAC5F,WAAW,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EACzB,iBAAiB,GAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAa;IASrE,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;;OAGG;IACI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IA0BjC;;;;OAIG;IACU,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBtD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA0CvB,yBAAyB;YAgBzB,2BAA2B;IAazC;;;OAGG;YACW,OAAO;IAcrB;;;OAGG;YACW,aAAa;CAmC5B"}
@@ -13,16 +13,23 @@ class ScopedContainer {
13
13
  parentInstances;
14
14
  scopedClassProviders;
15
15
  scopedFactoryProviders;
16
+ scopedValueTokens;
16
17
  instances = new Map();
17
18
  // Scoped instances are created async, so we need to track pending promises to ensure that
18
19
  // multiple `.getScoped` calls resolve to the same value instead of creating multiple instances.
19
20
  pendingPromises = new Map();
20
21
  creationOrder = [];
21
22
  _isDestroyed = false;
22
- constructor(parentInstances, scopedClassProviders, scopedFactoryProviders) {
23
+ constructor(parentInstances, scopedClassProviders, scopedFactoryProviders, scopeValues, scopedValueTokens = new Set()) {
23
24
  this.parentInstances = parentInstances;
24
25
  this.scopedClassProviders = scopedClassProviders;
25
26
  this.scopedFactoryProviders = scopedFactoryProviders;
27
+ this.scopedValueTokens = scopedValueTokens;
28
+ if (scopeValues) {
29
+ for (const [token, value] of scopeValues) {
30
+ this.instances.set(token, value);
31
+ }
32
+ }
26
33
  }
27
34
  get isDestroyed() {
28
35
  return this._isDestroyed;
@@ -36,7 +43,9 @@ class ScopedContainer {
36
43
  throw new Error('Scope has been destroyed');
37
44
  }
38
45
  // Check if this is a scoped provider - if so, throw an error
39
- if (this.scopedClassProviders.has(token) || this.scopedFactoryProviders.has(token)) {
46
+ if (this.scopedClassProviders.has(token) ||
47
+ this.scopedFactoryProviders.has(token) ||
48
+ this.scopedValueTokens.has(token)) {
40
49
  throw new Error(`Token ${(0, token_to_string_js_1.tokenToString)(token)} is a scoped provider. Use getScoped() instead of get().`);
41
50
  }
42
51
  // Only return singletons from parent container
@@ -1 +1 @@
1
- {"version":3,"file":"scoped-container.js","sourceRoot":"","sources":["../../../src/lib/scoped-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoped-container.js","sourceRoot":"","sources":["../../../src/lib/scoped-container.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export { Container } from './lib/container.js';
2
2
  export { ContainerBuilder } from './lib/container-builder.js';
3
+ export { ScopeBuilder } from './lib/scope-builder.js';
3
4
  export { ScopedContainer } from './lib/scoped-container.js';
4
5
  export type { OnDestroy, OnInit } from './lib/types/lifecycle.js';
5
6
  export type { FactoryProvider } from './lib/types/factory-provider.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,YAAY,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,YAAY,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { Container } from './lib/container.js';
2
2
  export { ContainerBuilder } from './lib/container-builder.js';
3
+ export { ScopeBuilder } from './lib/scope-builder.js';
3
4
  export { ScopedContainer } from './lib/scoped-container.js';
4
5
  export { Scope } from './lib/types/scope.js';
5
6
  export { createToken } from './lib/utils/create-token.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAK5D,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI7C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAK5D,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI7C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
@@ -3,6 +3,7 @@ import type { FactoryProvider } from './types/factory-provider.js';
3
3
  import type { InjectableClass } from './types/injectable-class.js';
4
4
  import type { RegistrationOptions } from './types/options.js';
5
5
  import type { Token } from './types/tokens.js';
6
+ type ValidateArity<C extends new (...args: any[]) => any, Deps extends readonly Token<any>[]> = Deps['length'] extends ConstructorParameters<C>['length'] ? ConstructorParameters<C>['length'] extends Deps['length'] ? unknown : never : never;
6
7
  /**
7
8
  * ContainerBuilder is the class you use to configure a Container.
8
9
  *
@@ -22,12 +23,18 @@ export declare class ContainerBuilder {
22
23
  * Register a static value.
23
24
  */
24
25
  registerValue<T>(token: Token<T>, value: T): this;
26
+ /**
27
+ * Declare a scoped value token whose value will be provided at scope creation time.
28
+ * Scoped providers can depend on this token; the actual value is supplied via
29
+ * `container.createScopeBuilder().provideValue(token, value).build()`.
30
+ */
31
+ registerScopedValue<T>(token: Token<T>): this;
25
32
  /**
26
33
  * Register a class with static deps property.
27
34
  * Dependencies are resolved automatically during build().
28
35
  * Type safety between the deps array and constructor params is enforced at this method.
29
36
  */
30
- registerClass<T, Deps extends readonly Token<any>[] = readonly []>(Class: InjectableClass<T, Deps>, options?: RegistrationOptions): this;
37
+ registerClass<T, Deps extends readonly Token<any>[] = readonly [], C extends InjectableClass<T, Deps> = InjectableClass<T, Deps>>(Class: C & InjectableClass<T, Deps> & ValidateArity<C, Deps>, options?: RegistrationOptions): this;
31
38
  /**
32
39
  * Register a factory provider, which can be async or sync and can inject other dependencies.
33
40
  */
@@ -52,7 +59,7 @@ export declare class ContainerBuilder {
52
59
  * Override an existing provider with a class; intended for mocking during tests.
53
60
  * Preserves the original provider's scope.
54
61
  */
55
- overrideClass<T, Deps extends readonly Token<any>[] = readonly []>(token: Token<T>, Class: InjectableClass<T, Deps>): this;
62
+ overrideClass<T, Deps extends readonly Token<any>[] = readonly [], C extends InjectableClass<T, Deps> = InjectableClass<T, Deps>>(token: Token<T>, Class: C & InjectableClass<T, Deps> & ValidateArity<C, Deps>): this;
56
63
  /**
57
64
  * Override an existing provider with a factory; intended for mocking during tests.
58
65
  * Preserves the original provider's scope.
@@ -89,4 +96,5 @@ export declare class ContainerBuilder {
89
96
  */
90
97
  private resolveDeps;
91
98
  }
99
+ export {};
92
100
  //# sourceMappingURL=container-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/container-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAE9E;;OAEG;IACI,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAKxD;;;;OAIG;IACI,aAAa,CAAC,CAAC,EAAE,IAAI,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,EACtE,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAC/B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAYP;;OAEG;IACI,eAAe,CACpB,CAAC,EACD,IAAI,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EAClC,WAAW,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EACzC,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAYvF;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAO3C;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;IAI1C;;;OAGG;IACI,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAWxD;;;OAGG;IACI,aAAa,CAAC,CAAC,EAAE,IAAI,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,EACtE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,GAC9B,IAAI;IAYP;;;OAGG;IACI,eAAe,CACpB,CAAC,EACD,IAAI,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EAClC,WAAW,SAAS,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EACzC,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,IAAI;IAaxD,OAAO,CAAC,qBAAqB;IAQ7B;;;;OAIG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IA+DpE;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IA4FvB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAmDrB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,WAAW;CAYpB"}
1
+ {"version":3,"file":"container-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/container-builder.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,15 @@ export class ContainerBuilder {
23
23
  this.addRegistration(token, { type: 'value', scope: Scope.Singleton, token, value });
24
24
  return this;
25
25
  }
26
+ /**
27
+ * Declare a scoped value token whose value will be provided at scope creation time.
28
+ * Scoped providers can depend on this token; the actual value is supplied via
29
+ * `container.createScopeBuilder().provideValue(token, value).build()`.
30
+ */
31
+ registerScopedValue(token) {
32
+ this.addRegistration(token, { type: 'scopedValue', scope: Scope.Scoped, token });
33
+ return this;
34
+ }
26
35
  /**
27
36
  * Register a class with static deps property.
28
37
  * Dependencies are resolved automatically during build().
@@ -136,6 +145,7 @@ export class ContainerBuilder {
136
145
  initOrder: [],
137
146
  scopedClassProviders: new Map(),
138
147
  scopedFactoryProviders: new Map(),
148
+ scopedValueTokens: new Set(),
139
149
  };
140
150
  for (const token of sorted) {
141
151
  const registration = this.registrations.get(token);
@@ -176,6 +186,10 @@ export class ContainerBuilder {
176
186
  }
177
187
  break;
178
188
  }
189
+ case 'scopedValue': {
190
+ state.scopedValueTokens.add(token);
191
+ break;
192
+ }
179
193
  }
180
194
  }
181
195
  const container = new Container(state);
@@ -1 +1 @@
1
- {"version":3,"file":"container-builder.js","sourceRoot":"","sources":["../../../src/lib/container-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-builder.js","sourceRoot":"","sources":["../../../src/lib/container-builder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { FactoryProvider } from './types/factory-provider.js';
2
2
  import type { InjectableClass } from './types/injectable-class.js';
3
3
  import type { Token } from './types/tokens.js';
4
+ import { ScopeBuilder } from './scope-builder.js';
4
5
  import { ScopedContainer } from './scoped-container.js';
5
6
  /**
6
7
  * Data for a scoped class registration.
@@ -20,6 +21,7 @@ export interface ContainerState {
20
21
  initOrder: Token<unknown>[];
21
22
  scopedClassProviders: Map<Token<unknown>, ScopedClassData>;
22
23
  scopedFactoryProviders: Map<Token<unknown>, FactoryProvider<any, any, any>>;
24
+ scopedValueTokens: Set<Token<unknown>>;
23
25
  }
24
26
  export declare class Container {
25
27
  private readonly instances;
@@ -28,6 +30,7 @@ export declare class Container {
28
30
  private readonly initOrder;
29
31
  private readonly scopedClassProviders;
30
32
  private readonly scopedFactoryProviders;
33
+ private readonly scopedValueTokens;
31
34
  private isInitialized;
32
35
  constructor(state: ContainerState);
33
36
  /**
@@ -39,6 +42,11 @@ export declare class Container {
39
42
  * Scoped instances are created on-demand within the container and destroyed when the scoped container is destroyed.
40
43
  */
41
44
  createScope(): ScopedContainer;
45
+ /**
46
+ * Create a ScopeBuilder for constructing a scoped container with provided values.
47
+ * Use this when you have scoped value tokens that need to be supplied per-scope.
48
+ */
49
+ createScopeBuilder(): ScopeBuilder;
42
50
  /**
43
51
  * Initialize all instances - calls onInit() in topological order (dependencies before dependents).
44
52
  * Only class-registered instances have onInit called (not values or factories).
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/lib/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACxC,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAE5B,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;IAC3D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;CAC7E;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsD;IACvF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuC;IAC5E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsD;IAC7F,OAAO,CAAC,aAAa,CAAS;gBAEX,KAAK,EAAE,cAAc;IASxC;;OAEG;IACI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAWjC;;;OAGG;IACI,WAAW,IAAI,eAAe;IAQrC;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAiDtC"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/lib/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACxC,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAE5B,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;IAC3D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5E,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CACxC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsD;IACvF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuC;IAC5E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsD;IAC7F,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,aAAa,CAAS;gBAEX,KAAK,EAAE,cAAc;IAUxC;;OAEG;IACI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAWjC;;;OAGG;IACI,WAAW,IAAI,eAAe;IAQrC;;;OAGG;IACI,kBAAkB,IAAI,YAAY;IASzC;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAkDtC"}
@@ -1,3 +1,4 @@
1
+ import { ScopeBuilder } from './scope-builder.js';
1
2
  import { ScopedContainer } from './scoped-container.js';
2
3
  import { hasOnDestroy } from './utils/has-on-destroy.js';
3
4
  import { hasOnInit } from './utils/has-on-init.js';
@@ -9,6 +10,7 @@ export class Container {
9
10
  initOrder;
10
11
  scopedClassProviders;
11
12
  scopedFactoryProviders;
13
+ scopedValueTokens;
12
14
  isInitialized = false;
13
15
  constructor(state) {
14
16
  this.instances = state.instances;
@@ -17,6 +19,7 @@ export class Container {
17
19
  this.initOrder = state.initOrder;
18
20
  this.scopedClassProviders = state.scopedClassProviders;
19
21
  this.scopedFactoryProviders = state.scopedFactoryProviders;
22
+ this.scopedValueTokens = state.scopedValueTokens;
20
23
  }
21
24
  /**
22
25
  * Get an instance by its token.
@@ -38,6 +41,13 @@ export class Container {
38
41
  createScope() {
39
42
  return new ScopedContainer(this.instances, this.scopedClassProviders, this.scopedFactoryProviders);
40
43
  }
44
+ /**
45
+ * Create a ScopeBuilder for constructing a scoped container with provided values.
46
+ * Use this when you have scoped value tokens that need to be supplied per-scope.
47
+ */
48
+ createScopeBuilder() {
49
+ return new ScopeBuilder(this.instances, this.scopedClassProviders, this.scopedFactoryProviders, this.scopedValueTokens);
50
+ }
41
51
  /**
42
52
  * Initialize all instances - calls onInit() in topological order (dependencies before dependents).
43
53
  * Only class-registered instances have onInit called (not values or factories).
@@ -100,6 +110,7 @@ export class Container {
100
110
  this.initOrder.length = 0;
101
111
  this.scopedClassProviders.clear();
102
112
  this.scopedFactoryProviders.clear();
113
+ this.scopedValueTokens.clear();
103
114
  this.isInitialized = false;
104
115
  if (errors.length > 0) {
105
116
  throw new AggregateError(errors, 'Errors during container destruction');
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/lib/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/lib/container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { FactoryProvider } from './types/factory-provider.js';
2
+ import type { Token } from './types/tokens.js';
3
+ import type { ScopedClassData } from './container.js';
4
+ import { ScopedContainer } from './scoped-container.js';
5
+ /**
6
+ * A builder for creating scoped containers with provided values.
7
+ * Use this to supply values for tokens declared with `registerScopedValue()`.
8
+ */
9
+ export declare class ScopeBuilder {
10
+ private readonly parentInstances;
11
+ private readonly scopedClassProviders;
12
+ private readonly scopedFactoryProviders;
13
+ private readonly scopedValueTokens;
14
+ private readonly values;
15
+ constructor(parentInstances: Map<Token<unknown>, unknown>, scopedClassProviders: Map<Token<unknown>, ScopedClassData>, scopedFactoryProviders: Map<Token<unknown>, FactoryProvider<any, any, any>>, scopedValueTokens: Set<Token<unknown>>);
16
+ /**
17
+ * Provide a value for a scoped value token declared with `registerScopedValue()`.
18
+ */
19
+ provideValue<T>(token: Token<T>, value: T): this;
20
+ /**
21
+ * Build the scoped container with all provided values.
22
+ * Throws if any declared scoped value tokens have not been provided.
23
+ */
24
+ build(): ScopedContainer;
25
+ }
26
+ //# sourceMappingURL=scope-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/scope-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;GAGG;AACH,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IANpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;gBAG/C,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAC7C,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,EAC1D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAC3E,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAGzD;;OAEG;IACI,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAUvD;;;OAGG;IACI,KAAK,IAAI,eAAe;CAiBhC"}
@@ -0,0 +1,42 @@
1
+ import { ScopedContainer } from './scoped-container.js';
2
+ import { tokenToString } from './utils/token-to-string.js';
3
+ /**
4
+ * A builder for creating scoped containers with provided values.
5
+ * Use this to supply values for tokens declared with `registerScopedValue()`.
6
+ */
7
+ export class ScopeBuilder {
8
+ parentInstances;
9
+ scopedClassProviders;
10
+ scopedFactoryProviders;
11
+ scopedValueTokens;
12
+ values = new Map();
13
+ constructor(parentInstances, scopedClassProviders, scopedFactoryProviders, scopedValueTokens) {
14
+ this.parentInstances = parentInstances;
15
+ this.scopedClassProviders = scopedClassProviders;
16
+ this.scopedFactoryProviders = scopedFactoryProviders;
17
+ this.scopedValueTokens = scopedValueTokens;
18
+ }
19
+ /**
20
+ * Provide a value for a scoped value token declared with `registerScopedValue()`.
21
+ */
22
+ provideValue(token, value) {
23
+ if (!this.scopedValueTokens.has(token)) {
24
+ throw new Error(`Token ${tokenToString(token)} is not registered as a scoped value. Use ContainerBuilder.registerScopedValue() first.`);
25
+ }
26
+ this.values.set(token, value);
27
+ return this;
28
+ }
29
+ /**
30
+ * Build the scoped container with all provided values.
31
+ * Throws if any declared scoped value tokens have not been provided.
32
+ */
33
+ build() {
34
+ for (const token of this.scopedValueTokens) {
35
+ if (!this.values.has(token)) {
36
+ throw new Error(`Missing scope value for token: ${tokenToString(token)}. Call .provideValue() before .build().`);
37
+ }
38
+ }
39
+ return new ScopedContainer(this.parentInstances, this.scopedClassProviders, this.scopedFactoryProviders, this.values, this.scopedValueTokens);
40
+ }
41
+ }
42
+ //# sourceMappingURL=scope-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-builder.js","sourceRoot":"","sources":["../../../src/lib/scope-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;GAGG;AACH,MAAM,OAAO,YAAY;IAIJ;IACA;IACA;IACA;IANF,MAAM,GAAiC,IAAI,GAAG,EAAE,CAAC;IAElE,YACmB,eAA6C,EAC7C,oBAA0D,EAC1D,sBAA2E,EAC3E,iBAAsC;QAHtC,oBAAe,GAAf,eAAe,CAA8B;QAC7C,yBAAoB,GAApB,oBAAoB,CAAsC;QAC1D,2BAAsB,GAAtB,sBAAsB,CAAqD;QAC3E,sBAAiB,GAAjB,iBAAiB,CAAqB;IACtD,CAAC;IAEJ;;OAEG;IACI,YAAY,CAAI,KAAe,EAAE,KAAQ;QAC9C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,SAAS,aAAa,CAAC,KAAK,CAAC,yFAAyF,CACvH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,kCAAkC,aAAa,CAAC,KAAK,CAAC,yCAAyC,CAChG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,eAAe,CACxB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,iBAAiB,CACvB,CAAC;IACJ,CAAC;CACF"}
@@ -10,11 +10,12 @@ export declare class ScopedContainer {
10
10
  private readonly parentInstances;
11
11
  private readonly scopedClassProviders;
12
12
  private readonly scopedFactoryProviders;
13
+ private readonly scopedValueTokens;
13
14
  private readonly instances;
14
15
  private readonly pendingPromises;
15
16
  private readonly creationOrder;
16
17
  private _isDestroyed;
17
- constructor(parentInstances: Map<Token<unknown>, unknown>, scopedClassProviders: Map<Token<unknown>, ScopedClassData>, scopedFactoryProviders: Map<Token<unknown>, FactoryProvider<any, any, any>>);
18
+ constructor(parentInstances: Map<Token<unknown>, unknown>, scopedClassProviders: Map<Token<unknown>, ScopedClassData>, scopedFactoryProviders: Map<Token<unknown>, FactoryProvider<any, any, any>>, scopeValues?: Map<Token<unknown>, unknown>, scopedValueTokens?: Set<Token<unknown>>);
18
19
  get isDestroyed(): boolean;
19
20
  /**
20
21
  * Get a singleton instance from the parent container.
@@ -1 +1 @@
1
- {"version":3,"file":"scoped-container.d.ts","sourceRoot":"","sources":["../../../src/lib/scoped-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKtD;;;;GAIG;AACH,qBAAa,eAAe;IAYxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAbzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IAIrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;IAEpF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IAEtD,OAAO,CAAC,YAAY,CAAS;gBAGV,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAC7C,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,EAC1D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAG9F,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;;OAGG;IACI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAsBjC;;;;OAIG;IACU,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBtD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA0CvB,yBAAyB;YAgBzB,2BAA2B;IAazC;;;OAGG;YACW,OAAO;IAcrB;;;OAGG;YACW,aAAa;CAmC5B"}
1
+ {"version":3,"file":"scoped-container.d.ts","sourceRoot":"","sources":["../../../src/lib/scoped-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKtD;;;;GAIG;AACH,qBAAa,eAAe;IAYxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAfpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IAIrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;IAEpF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IAEtD,OAAO,CAAC,YAAY,CAAS;gBAGV,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAC7C,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,EAC1D,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAC5F,WAAW,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EACzB,iBAAiB,GAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAa;IASrE,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;;OAGG;IACI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IA0BjC;;;;OAIG;IACU,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBtD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA0CvB,yBAAyB;YAgBzB,2BAA2B;IAazC;;;OAGG;YACW,OAAO;IAcrB;;;OAGG;YACW,aAAa;CAmC5B"}
@@ -10,16 +10,23 @@ export class ScopedContainer {
10
10
  parentInstances;
11
11
  scopedClassProviders;
12
12
  scopedFactoryProviders;
13
+ scopedValueTokens;
13
14
  instances = new Map();
14
15
  // Scoped instances are created async, so we need to track pending promises to ensure that
15
16
  // multiple `.getScoped` calls resolve to the same value instead of creating multiple instances.
16
17
  pendingPromises = new Map();
17
18
  creationOrder = [];
18
19
  _isDestroyed = false;
19
- constructor(parentInstances, scopedClassProviders, scopedFactoryProviders) {
20
+ constructor(parentInstances, scopedClassProviders, scopedFactoryProviders, scopeValues, scopedValueTokens = new Set()) {
20
21
  this.parentInstances = parentInstances;
21
22
  this.scopedClassProviders = scopedClassProviders;
22
23
  this.scopedFactoryProviders = scopedFactoryProviders;
24
+ this.scopedValueTokens = scopedValueTokens;
25
+ if (scopeValues) {
26
+ for (const [token, value] of scopeValues) {
27
+ this.instances.set(token, value);
28
+ }
29
+ }
23
30
  }
24
31
  get isDestroyed() {
25
32
  return this._isDestroyed;
@@ -33,7 +40,9 @@ export class ScopedContainer {
33
40
  throw new Error('Scope has been destroyed');
34
41
  }
35
42
  // Check if this is a scoped provider - if so, throw an error
36
- if (this.scopedClassProviders.has(token) || this.scopedFactoryProviders.has(token)) {
43
+ if (this.scopedClassProviders.has(token) ||
44
+ this.scopedFactoryProviders.has(token) ||
45
+ this.scopedValueTokens.has(token)) {
37
46
  throw new Error(`Token ${tokenToString(token)} is a scoped provider. Use getScoped() instead of get().`);
38
47
  }
39
48
  // Only return singletons from parent container
@@ -1 +1 @@
1
- {"version":3,"file":"scoped-container.js","sourceRoot":"","sources":["../../../src/lib/scoped-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoped-container.js","sourceRoot":"","sources":["../../../src/lib/scoped-container.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAYP;IACA;IACA;IAEA;IAfF,SAAS,GAAiC,IAAI,GAAG,EAAE,CAAC;IAErE,0FAA0F;IAC1F,gGAAgG;IAC/E,eAAe,GAA0C,IAAI,GAAG,EAAE,CAAC;IAEnE,aAAa,GAAqB,EAAE,CAAC;IAE9C,YAAY,GAAG,KAAK,CAAC;IAE7B,YACmB,eAA6C,EAC7C,oBAA0D,EAC1D,sBAA2E,EAC5F,WAA0C,EACzB,oBAAyC,IAAI,GAAG,EAAE;QAJlD,oBAAe,GAAf,eAAe,CAA8B;QAC7C,yBAAoB,GAApB,oBAAoB,CAAsC;QAC1D,2BAAsB,GAAtB,sBAAsB,CAAqD;QAE3E,sBAAiB,GAAjB,iBAAiB,CAAiC;QAEnE,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,GAAG,CAAI,KAAe;QAC3B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,6DAA6D;QAC7D,IACE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;YACpC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EACjC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,SAAS,aAAa,CAAC,KAAK,CAAC,0DAA0D,CACxF,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,QAAa,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,SAAS,CAAI,KAAe;QACvC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,kDAAkD;QAClD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,SAAS,aAAa,CAAC,KAAK,CAAC,oDAAoD,CAClF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,oCAAoC;QACpC,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,uDAAuD;gBACvD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAE/D,IAAI,eAAe,EAAE,SAAS,EAAE,CAAC;oBAC/B,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;oBACtD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CACzD,CAAC;oBACF,MAAM,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;oBACzD,SAAS;gBACX,CAAC;gBAED,4DAA4D;gBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAE3C,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAI,KAAe;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAM,CAAC;QAE9D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,6BAA6B;QAC7B,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAI,KAAe;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAC9D,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;QAEzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,OAAO,CAAI,KAAe;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;QAC9C,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CAAI,KAAe;QAC5C,wCAAwC;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;QACxC,CAAC;QAED,qEAAqE;QACrE,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAe,CAAC;QACvD,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC;YACvB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC;YACvB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brianmcd/di",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "Lightweight, decorator-free, type-safe dependency injection container for TypeScript",
5
5
  "author": "Brian McDaniel",
6
6
  "license": "MIT",