@codefast/di 0.5.0-canary.6 → 0.5.0-canary.7

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 (161) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +13 -4
  3. package/dist/binding.d.ts +36 -19
  4. package/dist/binding.d.ts.map +1 -1
  5. package/dist/binding.js +2 -2
  6. package/dist/binding.js.map +1 -1
  7. package/dist/container/binding-builders.d.ts +35 -0
  8. package/dist/container/binding-builders.d.ts.map +1 -0
  9. package/dist/container/binding-builders.js +247 -0
  10. package/dist/container/binding-builders.js.map +1 -0
  11. package/dist/{container.d.ts → container/container.d.ts} +2 -2
  12. package/dist/container/container.d.ts.map +1 -0
  13. package/dist/container/container.js +641 -0
  14. package/dist/container/container.js.map +1 -0
  15. package/dist/decorators/inject.d.ts +12 -1
  16. package/dist/decorators/inject.d.ts.map +1 -1
  17. package/dist/decorators/inject.js +2 -2
  18. package/dist/decorators/inject.js.map +1 -1
  19. package/dist/decorators/injectable.js +3 -3
  20. package/dist/decorators/injectable.js.map +1 -1
  21. package/dist/index.d.ts +12 -7
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +8 -4
  24. package/dist/index.js.map +1 -1
  25. package/dist/introspection/dependency-graph.d.ts.map +1 -0
  26. package/dist/{dependency-graph.js → introspection/dependency-graph.js} +1 -1
  27. package/dist/introspection/dependency-graph.js.map +1 -0
  28. package/dist/{graph-adapters → introspection/graph-adapters}/cytoscape.d.ts +1 -1
  29. package/dist/introspection/graph-adapters/cytoscape.d.ts.map +1 -0
  30. package/dist/introspection/graph-adapters/cytoscape.js.map +1 -0
  31. package/dist/introspection/graph-adapters/dot.d.ts +6 -0
  32. package/dist/introspection/graph-adapters/dot.d.ts.map +1 -0
  33. package/dist/introspection/graph-adapters/dot.js.map +1 -0
  34. package/dist/{graph-adapters → introspection/graph-adapters}/reactflow.d.ts +2 -2
  35. package/dist/introspection/graph-adapters/reactflow.d.ts.map +1 -0
  36. package/dist/{graph-adapters → introspection/graph-adapters}/reactflow.js +11 -1
  37. package/dist/introspection/graph-adapters/reactflow.js.map +1 -0
  38. package/dist/{inspector.d.ts → introspection/inspector.d.ts} +3 -8
  39. package/dist/introspection/inspector.d.ts.map +1 -0
  40. package/dist/{inspector.js → introspection/inspector.js} +23 -23
  41. package/dist/introspection/inspector.js.map +1 -0
  42. package/dist/metadata/symbol-metadata-reader.d.ts +1 -1
  43. package/dist/metadata/symbol-metadata-reader.d.ts.map +1 -1
  44. package/dist/metadata/symbol-metadata-reader.js +4 -4
  45. package/dist/metadata/symbol-metadata-reader.js.map +1 -1
  46. package/dist/module.d.ts +9 -2
  47. package/dist/module.d.ts.map +1 -1
  48. package/dist/module.js +9 -2
  49. package/dist/module.js.map +1 -1
  50. package/dist/registry.d.ts +5 -13
  51. package/dist/registry.d.ts.map +1 -1
  52. package/dist/registry.js +102 -61
  53. package/dist/registry.js.map +1 -1
  54. package/dist/resolution/binding-scope.d.ts.map +1 -0
  55. package/dist/resolution/binding-scope.js.map +1 -0
  56. package/dist/resolution/binding-select.d.ts.map +1 -0
  57. package/dist/{binding-select.js → resolution/binding-select.js} +16 -3
  58. package/dist/resolution/binding-select.js.map +1 -0
  59. package/dist/resolution/constraints.d.ts.map +1 -0
  60. package/dist/resolution/constraints.js.map +1 -0
  61. package/dist/{environment.d.ts → resolution/environment.d.ts} +2 -6
  62. package/dist/resolution/environment.d.ts.map +1 -0
  63. package/dist/resolution/environment.js +100 -0
  64. package/dist/resolution/environment.js.map +1 -0
  65. package/dist/resolution/instantiation-plan.d.ts +67 -0
  66. package/dist/resolution/instantiation-plan.d.ts.map +1 -0
  67. package/dist/resolution/instantiation-plan.js +163 -0
  68. package/dist/resolution/instantiation-plan.js.map +1 -0
  69. package/dist/{lifecycle.d.ts → resolution/lifecycle.d.ts} +3 -3
  70. package/dist/resolution/lifecycle.d.ts.map +1 -0
  71. package/dist/{lifecycle.js → resolution/lifecycle.js} +17 -13
  72. package/dist/resolution/lifecycle.js.map +1 -0
  73. package/dist/resolution/resolution-path.d.ts +31 -0
  74. package/dist/resolution/resolution-path.d.ts.map +1 -0
  75. package/dist/resolution/resolution-path.js +53 -0
  76. package/dist/resolution/resolution-path.js.map +1 -0
  77. package/dist/resolution/resolve-options.d.ts.map +1 -0
  78. package/dist/resolution/resolve-options.js.map +1 -0
  79. package/dist/resolution/resolver.d.ts +35 -0
  80. package/dist/resolution/resolver.d.ts.map +1 -0
  81. package/dist/resolution/resolver.js +1320 -0
  82. package/dist/resolution/resolver.js.map +1 -0
  83. package/dist/{scope.d.ts → resolution/scope.d.ts} +10 -3
  84. package/dist/resolution/scope.d.ts.map +1 -0
  85. package/dist/resolution/scope.js +76 -0
  86. package/dist/resolution/scope.js.map +1 -0
  87. package/dist/token.d.ts.map +1 -1
  88. package/dist/token.js +0 -3
  89. package/dist/token.js.map +1 -1
  90. package/package.json +80 -65
  91. package/src/binding.ts +38 -22
  92. package/src/container/binding-builders.ts +397 -0
  93. package/src/container/container.ts +838 -0
  94. package/src/decorators/inject.ts +16 -3
  95. package/src/decorators/injectable.ts +3 -3
  96. package/src/index.ts +14 -7
  97. package/src/{dependency-graph.ts → introspection/dependency-graph.ts} +1 -1
  98. package/src/{graph-adapters → introspection/graph-adapters}/cytoscape.ts +1 -1
  99. package/src/{graph-adapters → introspection/graph-adapters}/dot.ts +1 -1
  100. package/src/{graph-adapters → introspection/graph-adapters}/reactflow.ts +13 -2
  101. package/src/{inspector.ts → introspection/inspector.ts} +26 -21
  102. package/src/metadata/symbol-metadata-reader.ts +4 -4
  103. package/src/module.ts +14 -6
  104. package/src/registry.ts +115 -61
  105. package/src/{binding-select.ts → resolution/binding-select.ts} +16 -3
  106. package/src/{environment.ts → resolution/environment.ts} +35 -35
  107. package/src/resolution/instantiation-plan.ts +240 -0
  108. package/src/{lifecycle.ts → resolution/lifecycle.ts} +20 -13
  109. package/src/resolution/resolution-path.ts +77 -0
  110. package/src/resolution/resolver.ts +1755 -0
  111. package/src/{scope.ts → resolution/scope.ts} +35 -18
  112. package/src/token.ts +0 -3
  113. package/dist/binding-scope.d.ts.map +0 -1
  114. package/dist/binding-scope.js.map +0 -1
  115. package/dist/binding-select.d.ts.map +0 -1
  116. package/dist/binding-select.js.map +0 -1
  117. package/dist/constraints.d.ts.map +0 -1
  118. package/dist/constraints.js.map +0 -1
  119. package/dist/container.d.ts.map +0 -1
  120. package/dist/container.js +0 -853
  121. package/dist/container.js.map +0 -1
  122. package/dist/dependency-graph.d.ts.map +0 -1
  123. package/dist/dependency-graph.js.map +0 -1
  124. package/dist/environment.d.ts.map +0 -1
  125. package/dist/environment.js +0 -100
  126. package/dist/environment.js.map +0 -1
  127. package/dist/graph-adapters/cytoscape.d.ts.map +0 -1
  128. package/dist/graph-adapters/cytoscape.js.map +0 -1
  129. package/dist/graph-adapters/dot.d.ts +0 -6
  130. package/dist/graph-adapters/dot.d.ts.map +0 -1
  131. package/dist/graph-adapters/dot.js.map +0 -1
  132. package/dist/graph-adapters/reactflow.d.ts.map +0 -1
  133. package/dist/graph-adapters/reactflow.js.map +0 -1
  134. package/dist/inspector.d.ts.map +0 -1
  135. package/dist/inspector.js.map +0 -1
  136. package/dist/lifecycle.d.ts.map +0 -1
  137. package/dist/lifecycle.js.map +0 -1
  138. package/dist/resolve-options.d.ts.map +0 -1
  139. package/dist/resolve-options.js.map +0 -1
  140. package/dist/resolver.d.ts +0 -90
  141. package/dist/resolver.d.ts.map +0 -1
  142. package/dist/resolver.js +0 -1208
  143. package/dist/resolver.js.map +0 -1
  144. package/dist/scope.d.ts.map +0 -1
  145. package/dist/scope.js +0 -61
  146. package/dist/scope.js.map +0 -1
  147. package/src/container.ts +0 -1141
  148. package/src/resolver.ts +0 -1626
  149. /package/dist/{dependency-graph.d.ts → introspection/dependency-graph.d.ts} +0 -0
  150. /package/dist/{graph-adapters → introspection/graph-adapters}/cytoscape.js +0 -0
  151. /package/dist/{graph-adapters → introspection/graph-adapters}/dot.js +0 -0
  152. /package/dist/{binding-scope.d.ts → resolution/binding-scope.d.ts} +0 -0
  153. /package/dist/{binding-scope.js → resolution/binding-scope.js} +0 -0
  154. /package/dist/{binding-select.d.ts → resolution/binding-select.d.ts} +0 -0
  155. /package/dist/{constraints.d.ts → resolution/constraints.d.ts} +0 -0
  156. /package/dist/{constraints.js → resolution/constraints.js} +0 -0
  157. /package/dist/{resolve-options.d.ts → resolution/resolve-options.d.ts} +0 -0
  158. /package/dist/{resolve-options.js → resolution/resolve-options.js} +0 -0
  159. /package/src/{binding-scope.ts → resolution/binding-scope.ts} +0 -0
  160. /package/src/{constraints.ts → resolution/constraints.ts} +0 -0
  161. /package/src/{resolve-options.ts → resolution/resolve-options.ts} +0 -0
package/dist/module.js CHANGED
@@ -1,6 +1,13 @@
1
1
  // ── Branded types (runtime symbols for branding) ─────────────────────────────
2
2
  const SYNC_MODULE_BRAND = Symbol("di:sync-module");
3
3
  const ASYNC_MODULE_BRAND = Symbol("di:async-module");
4
+ /**
5
+ * Key for the module's setup callback. A symbol (not exported from the package root)
6
+ * keeps the container-only member out of consumer-facing autocomplete entirely.
7
+ *
8
+ * @since 0.5.0-canary.7
9
+ */
10
+ export const MODULE_SETUP = Symbol("di:module-setup");
4
11
  // ── Static factories ──────────────────────────────────────────────────────────
5
12
  /**
6
13
  * @since 0.3.16-canary.0
@@ -10,7 +17,7 @@ export const SyncModule = {
10
17
  return {
11
18
  name,
12
19
  [SYNC_MODULE_BRAND]: true,
13
- _setup: setup,
20
+ [MODULE_SETUP]: setup,
14
21
  };
15
22
  },
16
23
  };
@@ -22,7 +29,7 @@ export const AsyncModule = {
22
29
  return {
23
30
  name,
24
31
  [ASYNC_MODULE_BRAND]: true,
25
- _setup: setup,
32
+ [MODULE_SETUP]: setup,
26
33
  };
27
34
  },
28
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAIA,gFAAgF;AAEhF,MAAM,iBAAiB,GAAkB,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClE,MAAM,kBAAkB,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAsCpE,iFAAiF;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,IAAY,EAAE,KAAuC;QAC1D,OAAO;YACL,IAAI;YACJ,CAAC,iBAAiB,CAAC,EAAE,IAAa;YAClC,MAAM,EAAE,KAAK;SACA,CAAC;IAClB,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,CAAC,IAAY,EAAE,KAAqD;QACxE,OAAO;YACL,IAAI;YACJ,CAAC,kBAAkB,CAAC,EAAE,IAAa;YACnC,MAAM,EAAE,KAAK;SACC,CAAC;IACnB,CAAC;CACF,CAAC;AAEF,iFAAiF;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,CAAC,IAAY,EAAE,KAAuC;QAC1D,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,WAAW,CAAC,IAAY,EAAE,KAAqD;QAC7E,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAgC;IAC3D,OAAQ,MAAqB,CAAC,iBAAiB,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAIA,gFAAgF;AAEhF,MAAM,iBAAiB,GAAkB,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClE,MAAM,kBAAkB,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAsCrE,iFAAiF;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,IAAY,EAAE,KAAuC;QAC1D,OAAO;YACL,IAAI;YACJ,CAAC,iBAAiB,CAAC,EAAE,IAAa;YAClC,CAAC,YAAY,CAAC,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,CAAC,IAAY,EAAE,KAAqD;QACxE,OAAO;YACL,IAAI;YACJ,CAAC,kBAAkB,CAAC,EAAE,IAAa;YACnC,CAAC,YAAY,CAAC,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,iFAAiF;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,CAAC,IAAY,EAAE,KAAuC;QAC1D,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,WAAW,CAAC,IAAY,EAAE,KAAqD;QAC7E,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAgC;IAC3D,OAAQ,MAAqB,CAAC,iBAAiB,CAAC,CAAC;AACnD,CAAC"}
@@ -5,13 +5,11 @@ import type { BindingIdentifier, Constructor } from "#/types";
5
5
  * @since 0.3.16-canary.0
6
6
  */
7
7
  export declare class BindingRegistry {
8
- private readonly _bindings;
9
- private readonly _byId;
10
- private readonly _simpleNamed;
11
- private readonly _fastDefault;
12
- private readonly _simpleTagged;
13
- /** Add or replace binding using slot-aware last-wins. */
14
- add(binding: Binding): void;
8
+ #private;
9
+ /** Monotonic version — increments on every mutation. */
10
+ get version(): number;
11
+ /** Add or replace binding using slot-aware last-wins. Returns the displaced binding, if any. */
12
+ add(uncommittedBinding: Binding): Binding | undefined;
15
13
  /** Remove all bindings for a token. Returns removed bindings. */
16
14
  removeByToken(token: Token<unknown> | Constructor): Array<Binding>;
17
15
  /** Remove a specific binding by ID. Returns the removed binding or undefined. */
@@ -31,11 +29,5 @@ export declare class BindingRegistry {
31
29
  getFastDefault(token: Token<unknown> | Constructor): Binding | undefined;
32
30
  /** Summarize available slot strings for a token (for error messages). */
33
31
  availableSlotStrings(token: Token<unknown> | Constructor): Array<string>;
34
- private _indexSimpleTaggedBinding;
35
- private _deindexSimpleTaggedBinding;
36
- private _isPurePredicateBinding;
37
- private _indexSimpleNamedBinding;
38
- private _deindexSimpleNamedBinding;
39
- private _refreshFastDefaultForToken;
40
32
  }
41
33
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAiB,MAAM,SAAS,CAAC;AAE7E;;GAEG;AACH,qBAAa,eAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAE/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkD;IAE/E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAElE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgE;IAE9F,yDAAyD;IACzD,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsB1B;IAED,iEAAiE;IACjE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAWjE;IAED,iFAAiF;IACjF,UAAU,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,GAAG,SAAS,CAyBrD;IAED,oCAAoC;IACpC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAElE;IAED,yBAAyB;IACzB,OAAO,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,GAAG,SAAS,CAElD;IAED,6CAA6C;IAC7C,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,OAAO,CAIhD;IAED,oCAAoC;IACpC,WAAW,IAAI,aAAa,CAAC,OAAO,CAAC,CAMpC;IAED,gDAAgD;IAChD,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,CAQ9B;IAED,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAErF;IAED,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAK3G;IAED,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAEvE;IAED,yEAAyE;IACzE,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAGvE;IAED,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,2BAA2B;IA0BnC,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,0BAA0B;IAkBlC,OAAO,CAAC,2BAA2B;CAcpC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAiB,MAAM,SAAS,CAAC;AAwC7E;;GAEG;AACH,qBAAa,eAAe;;IAc1B,wDAAwD;IACxD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gGAAgG;IAChG,GAAG,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CA4BpD;IAED,iEAAiE;IACjE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAYjE;IAED,iFAAiF;IACjF,UAAU,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,GAAG,SAAS,CA0BrD;IAED,oCAAoC;IACpC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAElE;IAED,yBAAyB;IACzB,OAAO,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,GAAG,SAAS,CAElD;IAED,6CAA6C;IAC7C,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,OAAO,CAIhD;IAED,oCAAoC;IACpC,WAAW,IAAI,aAAa,CAAC,OAAO,CAAC,CAMpC;IAED,gDAAgD;IAChD,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,CAS9B;IAED,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAErF;IAED,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAK3G;IAED,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAEvE;IAED,yEAAyE;IACzE,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAGvE;CAwFF"}
package/dist/registry.js CHANGED
@@ -1,145 +1,186 @@
1
1
  import { bindingSlotEquals, bindingSlotToString } from "#/binding";
2
+ /**
3
+ * Rebuilds a binding with every kind's fields in one fixed key order, so all stored
4
+ * bindings share a single V8 hidden class. Mixed binding kinds otherwise turn the
5
+ * resolver's hot property reads (kind/scope/factory/...) megamorphic, which costs
6
+ * ~30% throughput in processes that exercise many kinds. The value-erasing cast is
7
+ * safe: every declared field is copied verbatim and `kind` stays the discriminant.
8
+ */
9
+ function normalizeBindingShape(binding) {
10
+ const source = binding;
11
+ return {
12
+ kind: source.kind,
13
+ id: source.id,
14
+ inFlight: false,
15
+ frame: undefined,
16
+ token: source.token,
17
+ slot: source.slot,
18
+ predicate: source.predicate,
19
+ scope: source.scope,
20
+ target: source.target,
21
+ factory: source.factory,
22
+ deps: source.deps,
23
+ value: source.value,
24
+ onActivation: source.onActivation,
25
+ onDeactivation: source.onDeactivation,
26
+ };
27
+ }
2
28
  /**
3
29
  * @since 0.3.16-canary.0
4
30
  */
5
31
  export class BindingRegistry {
32
+ // Monotonic mutation counter — lets resolvers version-stamp lookup caches across a container chain.
33
+ #version = 0;
6
34
  // Map from token key -> array of bindings (order matters for last-wins)
7
- _bindings = new Map();
35
+ #bindings = new Map();
8
36
  // Fast lookup by binding ID
9
- _byId = new Map();
37
+ #byId = new Map();
10
38
  // Fast lookup for slot { name, tags: [] }
11
- _simpleNamed = new Map();
39
+ #simpleNamed = new Map();
12
40
  // Fast path for one default slot binding with no predicate
13
- _fastDefault = new Map();
41
+ #fastDefault = new Map();
14
42
  // Fast lookup for slot { name: undefined, tags: [[key, value]] } with no predicate
15
- _simpleTagged = new Map();
16
- /** Add or replace binding using slot-aware last-wins. */
17
- add(binding) {
43
+ #simpleTagged = new Map();
44
+ /** Monotonic version — increments on every mutation. */
45
+ get version() {
46
+ return this.#version;
47
+ }
48
+ /** Add or replace binding using slot-aware last-wins. Returns the displaced binding, if any. */
49
+ add(uncommittedBinding) {
50
+ this.#version += 1;
51
+ const binding = normalizeBindingShape(uncommittedBinding);
18
52
  const key = binding.token;
19
53
  // ✓ TS6.0: Map.getOrInsert (ES2025) replaces the manual get+check+set upsert
20
- const bindingsForToken = this._bindings.getOrInsert(key, []);
54
+ const bindingsForToken = this.#bindings.getOrInsert(key, []);
21
55
  // Only apply last-wins for slot-based bindings (not predicate-only)
22
- if (!this._isPurePredicateBinding(binding)) {
23
- const existingIndex = bindingsForToken.findIndex((candidate) => !this._isPurePredicateBinding(candidate) && bindingSlotEquals(candidate.slot, binding.slot));
56
+ let displacedBinding;
57
+ if (!this.#isPurePredicateBinding(binding)) {
58
+ const existingIndex = bindingsForToken.findIndex((candidate) => !this.#isPurePredicateBinding(candidate) && bindingSlotEquals(candidate.slot, binding.slot));
24
59
  if (existingIndex !== -1) {
25
- const replacedBinding = bindingsForToken[existingIndex];
26
- this._byId.delete(replacedBinding.id);
60
+ displacedBinding = bindingsForToken[existingIndex];
61
+ this.#byId.delete(displacedBinding.id);
27
62
  bindingsForToken.splice(existingIndex, 1);
63
+ this.#deindexSimpleNamedBinding(key, displacedBinding);
64
+ this.#deindexSimpleTaggedBinding(key, displacedBinding);
28
65
  }
29
66
  }
30
67
  bindingsForToken.push(binding);
31
- this._byId.set(binding.id, binding);
32
- this._indexSimpleNamedBinding(key, binding);
33
- this._indexSimpleTaggedBinding(key, binding);
34
- this._refreshFastDefaultForToken(key);
68
+ this.#byId.set(binding.id, binding);
69
+ this.#indexSimpleNamedBinding(key, binding);
70
+ this.#indexSimpleTaggedBinding(key, binding);
71
+ this.#refreshFastDefaultForToken(key);
72
+ return displacedBinding;
35
73
  }
36
74
  /** Remove all bindings for a token. Returns removed bindings. */
37
75
  removeByToken(token) {
76
+ this.#version += 1;
38
77
  const key = token;
39
- const bindingsForToken = this._bindings.get(key) ?? [];
40
- this._bindings.delete(key);
41
- this._simpleNamed.delete(key);
42
- this._simpleTagged.delete(key);
43
- this._fastDefault.delete(key);
78
+ const bindingsForToken = this.#bindings.get(key) ?? [];
79
+ this.#bindings.delete(key);
80
+ this.#simpleNamed.delete(key);
81
+ this.#simpleTagged.delete(key);
82
+ this.#fastDefault.delete(key);
44
83
  for (const binding of bindingsForToken) {
45
- this._byId.delete(binding.id);
84
+ this.#byId.delete(binding.id);
46
85
  }
47
86
  return bindingsForToken;
48
87
  }
49
88
  /** Remove a specific binding by ID. Returns the removed binding or undefined. */
50
89
  removeById(id) {
51
- const binding = this._byId.get(id);
90
+ const binding = this.#byId.get(id);
52
91
  if (binding === undefined) {
53
92
  return undefined;
54
93
  }
55
- this._byId.delete(id);
94
+ this.#version += 1;
95
+ this.#byId.delete(id);
56
96
  const key = binding.token;
57
- const bindingsForToken = this._bindings.get(key);
97
+ const bindingsForToken = this.#bindings.get(key);
58
98
  if (bindingsForToken !== undefined) {
59
99
  const bindingIndex = bindingsForToken.findIndex((candidate) => candidate.id === id);
60
100
  if (bindingIndex !== -1) {
61
101
  bindingsForToken.splice(bindingIndex, 1);
62
102
  }
63
- this._deindexSimpleNamedBinding(key, binding);
64
- this._deindexSimpleTaggedBinding(key, binding);
103
+ this.#deindexSimpleNamedBinding(key, binding);
104
+ this.#deindexSimpleTaggedBinding(key, binding);
65
105
  if (bindingsForToken.length === 0) {
66
- this._bindings.delete(key);
67
- this._simpleNamed.delete(key);
68
- this._simpleTagged.delete(key);
69
- this._fastDefault.delete(key);
106
+ this.#bindings.delete(key);
107
+ this.#simpleNamed.delete(key);
108
+ this.#simpleTagged.delete(key);
109
+ this.#fastDefault.delete(key);
70
110
  }
71
111
  else {
72
- this._refreshFastDefaultForToken(key);
112
+ this.#refreshFastDefaultForToken(key);
73
113
  }
74
114
  }
75
115
  return binding;
76
116
  }
77
117
  /** Get all bindings for a token. */
78
118
  getAll(token) {
79
- return this._bindings.get(token) ?? [];
119
+ return this.#bindings.get(token) ?? [];
80
120
  }
81
121
  /** Get binding by ID. */
82
122
  getById(id) {
83
- return this._byId.get(id);
123
+ return this.#byId.get(id);
84
124
  }
85
125
  /** Check if any binding exists for token. */
86
126
  has(token) {
87
127
  const key = token;
88
- const list = this._bindings.get(key);
128
+ const list = this.#bindings.get(key);
89
129
  return list !== undefined && list.length > 0;
90
130
  }
91
131
  /** All bindings in the registry. */
92
132
  allBindings() {
93
133
  const allBindings = [];
94
- for (const bindingsForToken of this._bindings.values()) {
134
+ for (const bindingsForToken of this.#bindings.values()) {
95
135
  allBindings.push(...bindingsForToken);
96
136
  }
97
137
  return allBindings;
98
138
  }
99
139
  /** Remove all bindings. Returns all removed. */
100
140
  clear() {
141
+ this.#version += 1;
101
142
  const all = this.allBindings();
102
- this._bindings.clear();
103
- this._byId.clear();
104
- this._simpleNamed.clear();
105
- this._simpleTagged.clear();
106
- this._fastDefault.clear();
143
+ this.#bindings.clear();
144
+ this.#byId.clear();
145
+ this.#simpleNamed.clear();
146
+ this.#simpleTagged.clear();
147
+ this.#fastDefault.clear();
107
148
  return all;
108
149
  }
109
150
  getSimpleNamed(token, name) {
110
- return this._simpleNamed.get(token)?.get(name);
151
+ return this.#simpleNamed.get(token)?.get(name);
111
152
  }
112
153
  getSimpleTagged(token, tagKey, tagValue) {
113
- return this._simpleTagged
154
+ return this.#simpleTagged
114
155
  .get(token)
115
156
  ?.get(tagKey)
116
157
  ?.get(tagValue);
117
158
  }
118
159
  getFastDefault(token) {
119
- return this._fastDefault.get(token);
160
+ return this.#fastDefault.get(token);
120
161
  }
121
162
  /** Summarize available slot strings for a token (for error messages). */
122
163
  availableSlotStrings(token) {
123
- const bindingsForToken = this._bindings.get(token) ?? [];
164
+ const bindingsForToken = this.#bindings.get(token) ?? [];
124
165
  return bindingsForToken.map((binding) => bindingSlotToString(binding.slot));
125
166
  }
126
- _indexSimpleTaggedBinding(tokenKey, binding) {
167
+ #indexSimpleTaggedBinding(tokenKey, binding) {
127
168
  const slot = binding.slot;
128
169
  if (slot.name !== undefined || slot.tags.length !== 1 || binding.predicate !== undefined) {
129
170
  return;
130
171
  }
131
172
  const [tagKey, tagValue] = slot.tags[0];
132
- const byTagKey = this._simpleTagged.getOrInsert(tokenKey, new Map());
173
+ const byTagKey = this.#simpleTagged.getOrInsert(tokenKey, new Map());
133
174
  const byTagValue = byTagKey.getOrInsert(tagKey, new Map());
134
175
  byTagValue.set(tagValue, binding);
135
176
  }
136
- _deindexSimpleTaggedBinding(tokenKey, binding) {
177
+ #deindexSimpleTaggedBinding(tokenKey, binding) {
137
178
  const slot = binding.slot;
138
179
  if (slot.name !== undefined || slot.tags.length !== 1 || binding.predicate !== undefined) {
139
180
  return;
140
181
  }
141
182
  const [tagKey, tagValue] = slot.tags[0];
142
- const byTagKey = this._simpleTagged.get(tokenKey);
183
+ const byTagKey = this.#simpleTagged.get(tokenKey);
143
184
  if (byTagKey === undefined) {
144
185
  return;
145
186
  }
@@ -153,32 +194,32 @@ export class BindingRegistry {
153
194
  if (byTagValue.size === 0) {
154
195
  byTagKey.delete(tagKey);
155
196
  if (byTagKey.size === 0) {
156
- this._simpleTagged.delete(tokenKey);
197
+ this.#simpleTagged.delete(tokenKey);
157
198
  }
158
199
  }
159
200
  }
160
201
  }
161
- _isPurePredicateBinding(binding) {
202
+ #isPurePredicateBinding(binding) {
162
203
  const slot = binding.slot;
163
204
  const hasPredicate = binding.predicate !== undefined;
164
205
  const hasConstraint = slot.name !== undefined || slot.tags.length > 0;
165
206
  // Pure predicate = has predicate but no slot constraint (name/tags)
166
207
  return hasPredicate && !hasConstraint;
167
208
  }
168
- _indexSimpleNamedBinding(tokenKey, binding) {
209
+ #indexSimpleNamedBinding(tokenKey, binding) {
169
210
  const slot = binding.slot;
170
211
  if (slot.name === undefined || slot.tags.length > 0) {
171
212
  return;
172
213
  }
173
- const bindingsByName = this._simpleNamed.getOrInsert(tokenKey, new Map());
214
+ const bindingsByName = this.#simpleNamed.getOrInsert(tokenKey, new Map());
174
215
  bindingsByName.set(slot.name, binding);
175
216
  }
176
- _deindexSimpleNamedBinding(tokenKey, binding) {
217
+ #deindexSimpleNamedBinding(tokenKey, binding) {
177
218
  const slot = binding.slot;
178
219
  if (slot.name === undefined || slot.tags.length > 0) {
179
220
  return;
180
221
  }
181
- const bindingsByName = this._simpleNamed.get(tokenKey);
222
+ const bindingsByName = this.#simpleNamed.get(tokenKey);
182
223
  if (bindingsByName === undefined) {
183
224
  return;
184
225
  }
@@ -186,23 +227,23 @@ export class BindingRegistry {
186
227
  if (currentBinding?.id === binding.id) {
187
228
  bindingsByName.delete(slot.name);
188
229
  if (bindingsByName.size === 0) {
189
- this._simpleNamed.delete(tokenKey);
230
+ this.#simpleNamed.delete(tokenKey);
190
231
  }
191
232
  }
192
233
  }
193
- _refreshFastDefaultForToken(tokenKey) {
194
- const bindingsForToken = this._bindings.get(tokenKey);
234
+ #refreshFastDefaultForToken(tokenKey) {
235
+ const bindingsForToken = this.#bindings.get(tokenKey);
195
236
  if (bindingsForToken === undefined || bindingsForToken.length !== 1) {
196
- this._fastDefault.delete(tokenKey);
237
+ this.#fastDefault.delete(tokenKey);
197
238
  return;
198
239
  }
199
240
  const onlyBinding = bindingsForToken[0];
200
241
  const isDefaultSlot = onlyBinding.slot.name === undefined && onlyBinding.slot.tags.length === 0;
201
242
  if (!isDefaultSlot || onlyBinding.predicate !== undefined) {
202
- this._fastDefault.delete(tokenKey);
243
+ this.#fastDefault.delete(tokenKey);
203
244
  return;
204
245
  }
205
- this._fastDefault.set(tokenKey, onlyBinding);
246
+ this.#fastDefault.set(tokenKey, onlyBinding);
206
247
  }
207
248
  }
208
249
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-scope.d.ts","sourceRoot":"","sources":["../../src/resolution/binding-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAgBpE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-scope.js","sourceRoot":"","sources":["../../src/resolution/binding-scope.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,WAAW,CAAC;QACrB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,eAAe,CAAC;QACrB,KAAK,UAAU,CAAC;QAChB,KAAK,gBAAgB;YACnB,OAAO,OAAO,CAAC,KAAK,CAAC;QACvB,SAAS,CAAC;YACR,MAAM,UAAU,GAAU,OAAO,CAAC;YAClC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-select.d.ts","sourceRoot":"","sources":["../../src/resolution/binding-select.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAc,iBAAiB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,GAAG,EAAE,iBAAiB,EACtB,gBAAgB,EAAE,MAAM,GACvB,OAAO,GAAG,SAAS,CA4BrB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,GAAG,EAAE,iBAAiB,GACrB,KAAK,CAAC,OAAO,CAAC,CAEhB"}
@@ -13,9 +13,22 @@ export function selectBinding(bindings, options, ctx, tokenDisplayName) {
13
13
  if (candidates.length === 1) {
14
14
  return candidates[0];
15
15
  }
16
- // Multiple candidates — check if any is unambiguous (slot-based selection)
17
- // Slot-based bindings already have last-wins applied in registry, so
18
- // multiple candidates here means ambiguous predicate-only bindings
16
+ // Most specific wins: a single matching predicate-carrying candidate beats
17
+ // predicate-less ones (a predicate is a deliberate specialization of the
18
+ // default). Two matching predicates are genuinely ambiguous.
19
+ let predicatedCandidate;
20
+ for (const candidate of candidates) {
21
+ if (candidate.predicate !== undefined) {
22
+ if (predicatedCandidate !== undefined) {
23
+ predicatedCandidate = undefined;
24
+ break;
25
+ }
26
+ predicatedCandidate = candidate;
27
+ }
28
+ }
29
+ if (predicatedCandidate !== undefined) {
30
+ return predicatedCandidate;
31
+ }
19
32
  throw new AmbiguousBindingError(tokenDisplayName, candidates.map((c) => c.id));
20
33
  }
21
34
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-select.js","sourceRoot":"","sources":["../../src/resolution/binding-select.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/resolution/constraints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM1E;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAInH;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAIrH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAClC,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAInD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAClC,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAInD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAE/F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAEpG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAI/G;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAKpH;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,GAC9B,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAWnD;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,GAC9B,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAQnD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../src/resolution/constraints.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Container } from "#/container";
1
+ import type { Container } from "#/container/container";
2
2
  import type { Token } from "#/token";
3
3
  import type { BindingIdentifier, BindingKind, BindingScope, ConstraintContext, Constructor, ResolutionFrame, ResolutionContext, ResolveOptions } from "#/types";
4
4
  /**
@@ -26,12 +26,8 @@ export interface ResolverCallbacks {
26
26
  * @since 0.3.16-canary.0
27
27
  */
28
28
  export declare class DefaultResolutionContext implements ResolutionContext {
29
- private _resolver;
30
- private _resolutionPath;
31
- private _resolutionStack;
32
- private _currentOptions;
29
+ #private;
33
30
  constructor(resolver: ResolverCallbacks, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>, currentOptions: ResolveOptions | undefined);
34
- private _graph;
35
31
  get graph(): ConstraintContext;
36
32
  reset(resolver: ResolverCallbacks, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>, currentOptions: ResolveOptions | undefined): void;
37
33
  resolve<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Value;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/resolution/environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,cAAc,EACf,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,MAAM,GAAG,MAAM,CAQvF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,GAAG,SAAS,CAE1D;AAID;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,KAAK,CAAC;IACT,OAAO,CAAC,KAAK,CAAC,KAAK,EACjB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,KAAK,CAAC;IACT,uBAAuB,CAAC,KAAK,CAAC,KAAK,EACjC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClB,YAAY,CAAC,KAAK,CAAC,KAAK,EACtB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClB,eAAe,CAAC,KAAK,CAAC,KAAK,EACzB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,KAAK,GAAG,SAAS,CAAC;IACrB,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IAC9B,UAAU,CAAC,KAAK,CAAC,KAAK,EACpB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChB,eAAe,CAAC,KAAK,CAAC,KAAK,EACzB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,wBAAyB,YAAW,iBAAiB;;IAMhE,YACE,QAAQ,EAAE,iBAAiB,EAC3B,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,EACvC,cAAc,EAAE,cAAc,GAAG,SAAS,EAM3C;IAID,IAAI,KAAK,IAAI,iBAAiB,CAK7B;IAED,KAAK,CACH,QAAQ,EAAE,iBAAiB,EAC3B,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,EACvC,cAAc,EAAE,cAAc,GAAG,SAAS,GACzC,IAAI,CAMN;IAED,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,KAAK,CAK9F;IAED,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAK5G;IAED,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,KAAK,GAAG,SAAS,CAElH;IAED,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAE5B;IAED,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAExG;IAED,eAAe,CAAC,KAAK,CAAC,KAAK,EACzB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAEvB;CACF;AA6BD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,iBAAiB,EAC5B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,GAClF,eAAe,CAEjB"}
@@ -0,0 +1,100 @@
1
+ // ── Active container ──────────────────────────────────────────────────────────
2
+ let activeContainer;
3
+ /**
4
+ * @since 0.3.16-canary.0
5
+ */
6
+ export function runWithContainer(container, fn) {
7
+ const prev = activeContainer;
8
+ activeContainer = container;
9
+ try {
10
+ return fn();
11
+ }
12
+ finally {
13
+ activeContainer = prev;
14
+ }
15
+ }
16
+ /**
17
+ * @since 0.3.16-canary.0
18
+ */
19
+ export function getActiveContainer() {
20
+ return activeContainer;
21
+ }
22
+ /**
23
+ * @since 0.3.16-canary.0
24
+ */
25
+ export class DefaultResolutionContext {
26
+ #resolver;
27
+ #resolutionPath;
28
+ #resolutionStack;
29
+ #currentOptions;
30
+ constructor(resolver, resolutionPath, resolutionStack, currentOptions) {
31
+ this.#resolver = resolver;
32
+ this.#resolutionPath = resolutionPath;
33
+ this.#resolutionStack = resolutionStack;
34
+ this.#currentOptions = currentOptions;
35
+ }
36
+ #graph;
37
+ get graph() {
38
+ if (this.#graph === undefined) {
39
+ this.#graph = new DefaultConstraintContext(this.#resolutionPath, this.#resolutionStack, this.#currentOptions);
40
+ }
41
+ return this.#graph;
42
+ }
43
+ reset(resolver, resolutionPath, resolutionStack, currentOptions) {
44
+ this.#resolver = resolver;
45
+ this.#resolutionPath = resolutionPath;
46
+ this.#resolutionStack = resolutionStack;
47
+ this.#currentOptions = currentOptions;
48
+ this.#graph = undefined;
49
+ }
50
+ resolve(token, options) {
51
+ if (options === undefined) {
52
+ return this.#resolver.resolveFromContext(token, this.#resolutionPath, this.#resolutionStack);
53
+ }
54
+ return this.#resolver.resolve(token, options, this.#resolutionPath, this.#resolutionStack);
55
+ }
56
+ resolveAsync(token, options) {
57
+ if (options === undefined) {
58
+ return this.#resolver.resolveAsyncFromContext(token, this.#resolutionPath, this.#resolutionStack);
59
+ }
60
+ return this.#resolver.resolveAsync(token, options, this.#resolutionPath, this.#resolutionStack);
61
+ }
62
+ resolveOptional(token, options) {
63
+ return this.#resolver.resolveOptional(token, options, this.#resolutionPath, this.#resolutionStack);
64
+ }
65
+ resolveOptionalAsync(token, options) {
66
+ return this.#resolver.resolveOptionalAsync(token, options, this.#resolutionPath, this.#resolutionStack);
67
+ }
68
+ resolveAll(token, options) {
69
+ return this.#resolver.resolveAll(token, options, this.#resolutionPath, this.#resolutionStack);
70
+ }
71
+ resolveAllAsync(token, options) {
72
+ return this.#resolver.resolveAllAsync(token, options, this.#resolutionPath, this.#resolutionStack);
73
+ }
74
+ }
75
+ class DefaultConstraintContext {
76
+ resolutionPath;
77
+ resolutionStack;
78
+ parent;
79
+ currentResolveOptions;
80
+ constructor(resolutionPath, resolutionStack, currentResolveOptions) {
81
+ this.resolutionPath = resolutionPath;
82
+ this.resolutionStack = resolutionStack;
83
+ this.parent = resolutionStack.at(-1);
84
+ this.currentResolveOptions = currentResolveOptions;
85
+ }
86
+ #ancestors;
87
+ get ancestors() {
88
+ if (this.#ancestors === undefined) {
89
+ this.#ancestors = this.resolutionStack.length > 1 ? this.resolutionStack.slice(0, -1) : [];
90
+ }
91
+ return this.#ancestors;
92
+ }
93
+ }
94
+ /**
95
+ * @since 0.3.16-canary.0
96
+ */
97
+ export function buildResolutionFrame(tokenName, scope, bindingId, kind, slot) {
98
+ return { tokenName, scope, bindingId, kind, slot };
99
+ }
100
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/resolution/environment.ts"],"names":[],"mappings":"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"}