@codefast/di 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/LICENSE +1 -1
  3. package/README.md +256 -164
  4. package/dist/ambient/active-container.d.ts +1 -2
  5. package/dist/ambient/active-container.js +1 -2
  6. package/dist/container/binding-builders.d.ts +12 -13
  7. package/dist/container/binding-builders.js +1 -2
  8. package/dist/container/container.d.ts +11 -12
  9. package/dist/container/container.js +23 -9
  10. package/dist/core/binding-scope.d.ts +1 -2
  11. package/dist/core/binding-scope.js +1 -2
  12. package/dist/core/binding.d.ts +20 -16
  13. package/dist/core/binding.js +1 -2
  14. package/dist/core/constraint-requirement.d.ts +20 -6
  15. package/dist/core/constraint-requirement.js +20 -11
  16. package/dist/core/constructor-type.d.ts +1 -2
  17. package/dist/core/constructor-type.js +1 -2
  18. package/dist/core/map-upsert.d.ts +1 -2
  19. package/dist/core/map-upsert.js +1 -2
  20. package/dist/core/module.d.ts +1 -2
  21. package/dist/core/module.js +1 -2
  22. package/dist/core/registry.d.ts +1 -2
  23. package/dist/core/registry.js +1 -2
  24. package/dist/core/tag.d.ts +3 -4
  25. package/dist/core/tag.js +3 -4
  26. package/dist/core/token.d.ts +25 -6
  27. package/dist/core/token.js +2 -3
  28. package/dist/core/types.d.ts +9 -4
  29. package/dist/core/types.js +1 -2
  30. package/dist/decorators/inject.d.ts +2 -3
  31. package/dist/decorators/inject.js +7 -6
  32. package/dist/decorators/injectable.d.ts +1 -2
  33. package/dist/decorators/injectable.js +1 -2
  34. package/dist/decorators/lifecycle-decorators.d.ts +1 -2
  35. package/dist/decorators/lifecycle-decorators.js +1 -2
  36. package/dist/errors/diagnostics.d.ts +1 -2
  37. package/dist/errors/diagnostics.js +1 -2
  38. package/dist/errors/errors.d.ts +5 -3
  39. package/dist/errors/errors.js +10 -5
  40. package/dist/index.d.ts +2 -3
  41. package/dist/index.js +1 -2
  42. package/dist/injection/descriptor.d.ts +12 -7
  43. package/dist/injection/descriptor.js +1 -2
  44. package/dist/injection/resolve-options.d.ts +1 -2
  45. package/dist/injection/resolve-options.js +1 -2
  46. package/dist/introspection/dependency-graph.d.ts +1 -2
  47. package/dist/introspection/dependency-graph.js +1 -2
  48. package/dist/introspection/graph-adapters/cytoscape.d.ts +1 -2
  49. package/dist/introspection/graph-adapters/cytoscape.js +1 -2
  50. package/dist/introspection/graph-adapters/dot.d.ts +1 -2
  51. package/dist/introspection/graph-adapters/dot.js +1 -2
  52. package/dist/introspection/graph-adapters/mermaid.d.ts +1 -2
  53. package/dist/introspection/graph-adapters/mermaid.js +1 -2
  54. package/dist/introspection/graph-adapters/reactflow.d.ts +1 -2
  55. package/dist/introspection/graph-adapters/reactflow.js +1 -2
  56. package/dist/introspection/inspector.d.ts +1 -2
  57. package/dist/introspection/inspector.js +1 -2
  58. package/dist/lifecycle/lifecycle-manager.d.ts +1 -2
  59. package/dist/lifecycle/lifecycle-manager.js +1 -2
  60. package/dist/lifecycle/scope-manager.d.ts +1 -2
  61. package/dist/lifecycle/scope-manager.js +1 -2
  62. package/dist/metadata/metadata-keys.d.ts +1 -2
  63. package/dist/metadata/metadata-keys.js +1 -2
  64. package/dist/metadata/metadata-reader-token.d.ts +1 -2
  65. package/dist/metadata/metadata-reader-token.js +1 -2
  66. package/dist/metadata/metadata-types.d.ts +1 -2
  67. package/dist/metadata/metadata-types.js +1 -2
  68. package/dist/metadata/symbol-metadata-reader.d.ts +1 -2
  69. package/dist/metadata/symbol-metadata-reader.js +1 -2
  70. package/dist/metadata/verifying-metadata-reader.d.ts +1 -2
  71. package/dist/metadata/verifying-metadata-reader.js +1 -2
  72. package/dist/resolution/cache/activation-need.d.ts +1 -2
  73. package/dist/resolution/cache/activation-need.js +1 -2
  74. package/dist/resolution/cache/binding-lookup-cache.d.ts +1 -2
  75. package/dist/resolution/cache/binding-lookup-cache.js +1 -2
  76. package/dist/resolution/cache/class-introspector.d.ts +1 -2
  77. package/dist/resolution/cache/class-introspector.js +1 -2
  78. package/dist/resolution/context.d.ts +1 -2
  79. package/dist/resolution/context.js +1 -2
  80. package/dist/resolution/path/resolution-path.d.ts +1 -2
  81. package/dist/resolution/path/resolution-path.js +1 -2
  82. package/dist/resolution/plan/instantiation-plan.d.ts +1 -2
  83. package/dist/resolution/plan/instantiation-plan.js +1 -2
  84. package/dist/resolution/resolver.d.ts +1 -2
  85. package/dist/resolution/resolver.js +1 -2
  86. package/dist/resolution/select/binding-select.d.ts +1 -2
  87. package/dist/resolution/select/binding-select.js +1 -2
  88. package/dist/resolution/select/constraints.d.ts +8 -6
  89. package/dist/resolution/select/constraints.js +35 -15
  90. package/package.json +6 -92
  91. package/dist/ambient/active-container.d.ts.map +0 -1
  92. package/dist/ambient/active-container.js.map +0 -1
  93. package/dist/container/binding-builders.d.ts.map +0 -1
  94. package/dist/container/binding-builders.js.map +0 -1
  95. package/dist/container/container.d.ts.map +0 -1
  96. package/dist/container/container.js.map +0 -1
  97. package/dist/core/binding-scope.d.ts.map +0 -1
  98. package/dist/core/binding-scope.js.map +0 -1
  99. package/dist/core/binding.d.ts.map +0 -1
  100. package/dist/core/binding.js.map +0 -1
  101. package/dist/core/constraint-requirement.d.ts.map +0 -1
  102. package/dist/core/constraint-requirement.js.map +0 -1
  103. package/dist/core/constructor-type.d.ts.map +0 -1
  104. package/dist/core/constructor-type.js.map +0 -1
  105. package/dist/core/map-upsert.d.ts.map +0 -1
  106. package/dist/core/map-upsert.js.map +0 -1
  107. package/dist/core/module.d.ts.map +0 -1
  108. package/dist/core/module.js.map +0 -1
  109. package/dist/core/registry.d.ts.map +0 -1
  110. package/dist/core/registry.js.map +0 -1
  111. package/dist/core/tag.d.ts.map +0 -1
  112. package/dist/core/tag.js.map +0 -1
  113. package/dist/core/token.d.ts.map +0 -1
  114. package/dist/core/token.js.map +0 -1
  115. package/dist/core/types.d.ts.map +0 -1
  116. package/dist/core/types.js.map +0 -1
  117. package/dist/decorators/inject.d.ts.map +0 -1
  118. package/dist/decorators/inject.js.map +0 -1
  119. package/dist/decorators/injectable.d.ts.map +0 -1
  120. package/dist/decorators/injectable.js.map +0 -1
  121. package/dist/decorators/lifecycle-decorators.d.ts.map +0 -1
  122. package/dist/decorators/lifecycle-decorators.js.map +0 -1
  123. package/dist/errors/diagnostics.d.ts.map +0 -1
  124. package/dist/errors/diagnostics.js.map +0 -1
  125. package/dist/errors/errors.d.ts.map +0 -1
  126. package/dist/errors/errors.js.map +0 -1
  127. package/dist/index.d.ts.map +0 -1
  128. package/dist/index.js.map +0 -1
  129. package/dist/injection/descriptor.d.ts.map +0 -1
  130. package/dist/injection/descriptor.js.map +0 -1
  131. package/dist/injection/resolve-options.d.ts.map +0 -1
  132. package/dist/injection/resolve-options.js.map +0 -1
  133. package/dist/introspection/dependency-graph.d.ts.map +0 -1
  134. package/dist/introspection/dependency-graph.js.map +0 -1
  135. package/dist/introspection/graph-adapters/cytoscape.d.ts.map +0 -1
  136. package/dist/introspection/graph-adapters/cytoscape.js.map +0 -1
  137. package/dist/introspection/graph-adapters/dot.d.ts.map +0 -1
  138. package/dist/introspection/graph-adapters/dot.js.map +0 -1
  139. package/dist/introspection/graph-adapters/mermaid.d.ts.map +0 -1
  140. package/dist/introspection/graph-adapters/mermaid.js.map +0 -1
  141. package/dist/introspection/graph-adapters/reactflow.d.ts.map +0 -1
  142. package/dist/introspection/graph-adapters/reactflow.js.map +0 -1
  143. package/dist/introspection/inspector.d.ts.map +0 -1
  144. package/dist/introspection/inspector.js.map +0 -1
  145. package/dist/lifecycle/lifecycle-manager.d.ts.map +0 -1
  146. package/dist/lifecycle/lifecycle-manager.js.map +0 -1
  147. package/dist/lifecycle/scope-manager.d.ts.map +0 -1
  148. package/dist/lifecycle/scope-manager.js.map +0 -1
  149. package/dist/metadata/metadata-keys.d.ts.map +0 -1
  150. package/dist/metadata/metadata-keys.js.map +0 -1
  151. package/dist/metadata/metadata-reader-token.d.ts.map +0 -1
  152. package/dist/metadata/metadata-reader-token.js.map +0 -1
  153. package/dist/metadata/metadata-types.d.ts.map +0 -1
  154. package/dist/metadata/metadata-types.js.map +0 -1
  155. package/dist/metadata/symbol-metadata-reader.d.ts.map +0 -1
  156. package/dist/metadata/symbol-metadata-reader.js.map +0 -1
  157. package/dist/metadata/verifying-metadata-reader.d.ts.map +0 -1
  158. package/dist/metadata/verifying-metadata-reader.js.map +0 -1
  159. package/dist/resolution/cache/activation-need.d.ts.map +0 -1
  160. package/dist/resolution/cache/activation-need.js.map +0 -1
  161. package/dist/resolution/cache/binding-lookup-cache.d.ts.map +0 -1
  162. package/dist/resolution/cache/binding-lookup-cache.js.map +0 -1
  163. package/dist/resolution/cache/class-introspector.d.ts.map +0 -1
  164. package/dist/resolution/cache/class-introspector.js.map +0 -1
  165. package/dist/resolution/context.d.ts.map +0 -1
  166. package/dist/resolution/context.js.map +0 -1
  167. package/dist/resolution/path/resolution-path.d.ts.map +0 -1
  168. package/dist/resolution/path/resolution-path.js.map +0 -1
  169. package/dist/resolution/plan/instantiation-plan.d.ts.map +0 -1
  170. package/dist/resolution/plan/instantiation-plan.js.map +0 -1
  171. package/dist/resolution/resolver.d.ts.map +0 -1
  172. package/dist/resolution/resolver.js.map +0 -1
  173. package/dist/resolution/select/binding-select.d.ts.map +0 -1
  174. package/dist/resolution/select/binding-select.js.map +0 -1
  175. package/dist/resolution/select/constraints.d.ts.map +0 -1
  176. package/dist/resolution/select/constraints.js.map +0 -1
  177. package/src/ambient/active-container.ts +0 -69
  178. package/src/container/binding-builders.ts +0 -337
  179. package/src/container/container.ts +0 -972
  180. package/src/core/binding-scope.ts +0 -15
  181. package/src/core/binding.ts +0 -505
  182. package/src/core/constraint-requirement.ts +0 -94
  183. package/src/core/constructor-type.ts +0 -18
  184. package/src/core/map-upsert.ts +0 -53
  185. package/src/core/module.ts +0 -117
  186. package/src/core/registry.ts +0 -319
  187. package/src/core/tag.ts +0 -212
  188. package/src/core/token.ts +0 -31
  189. package/src/core/types.ts +0 -149
  190. package/src/decorators/inject.ts +0 -101
  191. package/src/decorators/injectable.ts +0 -134
  192. package/src/decorators/lifecycle-decorators.ts +0 -43
  193. package/src/errors/diagnostics.ts +0 -45
  194. package/src/errors/errors.ts +0 -499
  195. package/src/index.ts +0 -139
  196. package/src/injection/descriptor.ts +0 -218
  197. package/src/injection/resolve-options.ts +0 -201
  198. package/src/introspection/dependency-graph.ts +0 -296
  199. package/src/introspection/graph-adapters/cytoscape.ts +0 -78
  200. package/src/introspection/graph-adapters/dot.ts +0 -32
  201. package/src/introspection/graph-adapters/mermaid.ts +0 -61
  202. package/src/introspection/graph-adapters/reactflow.ts +0 -84
  203. package/src/introspection/inspector.ts +0 -134
  204. package/src/lifecycle/lifecycle-manager.ts +0 -272
  205. package/src/lifecycle/scope-manager.ts +0 -158
  206. package/src/metadata/metadata-keys.ts +0 -28
  207. package/src/metadata/metadata-reader-token.ts +0 -10
  208. package/src/metadata/metadata-types.ts +0 -57
  209. package/src/metadata/symbol-metadata-reader.ts +0 -126
  210. package/src/metadata/verifying-metadata-reader.ts +0 -41
  211. package/src/resolution/cache/activation-need.ts +0 -87
  212. package/src/resolution/cache/binding-lookup-cache.ts +0 -169
  213. package/src/resolution/cache/class-introspector.ts +0 -256
  214. package/src/resolution/context.ts +0 -331
  215. package/src/resolution/path/resolution-path.ts +0 -167
  216. package/src/resolution/plan/instantiation-plan.ts +0 -592
  217. package/src/resolution/resolver.ts +0 -1654
  218. package/src/resolution/select/binding-select.ts +0 -207
  219. package/src/resolution/select/constraints.ts +0 -146
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # @codefast/di
2
2
 
3
+ ## 0.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#847](https://github.com/codefastlabs/codefast/pull/847) [`d0b794c`](https://github.com/codefastlabs/codefast/commit/d0b794c047344c4040b5641202c259d72a0ea48c) Thanks [@thevuong](https://github.com/thevuong)! - `Token` gains a second type parameter, `Names extends string = string`, declaring the slot names its bindings may use:
8
+ `token<Logger, "console" | "file">("Logger")`. `whenNamed`, and `name` in `ResolveOptions` and `InjectOptions`, narrow
9
+ to it, so a misspelt name is a compile error and the IDE completes the declared names at every bind and request site.
10
+ `Names` is a covariant phantom that defaults to `string`, so existing tokens, class keys and internal `Token<unknown>`
11
+ lanes are unchanged; a new `SlotNamesOf<Key>` type reads the set back.
12
+
13
+ **Breaking:** `whenParentNamed` and `whenAnyAncestorNamed` now take the parent token first —
14
+ `whenParentNamed(Database, "primary")` — and match only when that frame resolves that token at that slot. A slot name is
15
+ a label on one token's bindings, so the token is part of the question and is what types the name; a label shared across
16
+ tokens is what a tag key is for. `validate()` checks the name on that token's bindings and `UnreachableConstraintError`
17
+ carries the new `requiredTokenName`. The reserved criterion handed to a `…Tagged` helper
18
+ (`whenParentTagged(slotName.of("x"))`) is now validated too, as it is the same bare string.
19
+
20
+ Display names follow one rule everywhere the package speaks — spelled like the TS symbol they stand for, under the
21
+ owner's namespace: `token<Logger>("app:Logger")`, `Module.create("app:Infra", …)`, `tag("app:cacheTier")`. The package's
22
+ own `MetadataReaderToken` now prints as `di:MetadataReader`, beside the reserved `di:name` key. SPEC gains a normative
23
+ "Display names" section stating the rule and its enforcement.
24
+
25
+ ### Patch Changes
26
+
27
+ - [#827](https://github.com/codefastlabs/codefast/pull/827) [`0984174`](https://github.com/codefastlabs/codefast/commit/0984174df148a7cffcd09b837bdde1922f38f24e) Thanks [@thevuong](https://github.com/thevuong)! - `package.json` now carries `homepage` and `bugs`, so npm links the package README and the issue tracker the way the
28
+ other `@codefast/*` packages already do.
29
+
30
+ ## 0.8.1
31
+
32
+ ### Patch Changes
33
+
34
+ - [#791](https://github.com/codefastlabs/codefast/pull/791) [`37a212b`](https://github.com/codefastlabs/codefast/commit/37a212b4d805588413159e11e872b98db82326bf) Thanks [@thevuong](https://github.com/thevuong)! - Point the README's license badge and "License" section at the package's own `LICENSE` file instead of the monorepo root.
35
+
36
+ - [#796](https://github.com/codefastlabs/codefast/pull/796) [`ba04d27`](https://github.com/codefastlabs/codefast/commit/ba04d2703c59a1677f52e6a9fffd0ec202328218) Thanks [@thevuong](https://github.com/thevuong)! - Rewrite the README around one structure — what the package is, installation and requirements, a complete quick start,
37
+ the concepts in learning order, then the documents and the license — with every API claim checked against the current
38
+ code and no figures that go stale.
39
+
40
+ - [#784](https://github.com/codefastlabs/codefast/pull/784) [`ad2f93a`](https://github.com/codefastlabs/codefast/commit/ad2f93a688e99c3ed8be6ceeae9d6cdd6be861bc) Thanks [@thevuong](https://github.com/thevuong)! - Ship the MIT `LICENSE` file in the published package. `files` already listed it, but the file was missing from the
41
+ package directory, so the tarball had none.
42
+
3
43
  ## 0.8.0
4
44
 
5
45
  ### Minor Changes
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 CodeFast Labs
3
+ Copyright (c) 2024 Codefast Labs
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal