@blac/core 2.0.20 → 2.0.21

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 (283) hide show
  1. package/README.md +19 -29
  2. package/dist/{StateContainerRegistry-CSNm2Ws5.cjs → StateContainerRegistry-141uHhtF.cjs} +300 -397
  3. package/dist/StateContainerRegistry-141uHhtF.cjs.map +1 -0
  4. package/dist/{StateContainerRegistry-CvBOhAT2.js → StateContainerRegistry-vWgsD-RP.js} +277 -392
  5. package/dist/StateContainerRegistry-vWgsD-RP.js.map +1 -0
  6. package/dist/config.d.cts +2 -2
  7. package/dist/config.d.ts +2 -2
  8. package/dist/constants.d.cts +11 -20
  9. package/dist/constants.d.ts +11 -20
  10. package/dist/core/Cubit.d.ts +14 -10
  11. package/dist/core/StateContainer.d.ts +55 -4
  12. package/dist/core/StateContainerRegistry.d.ts +94 -18
  13. package/dist/core/meta.d.ts +5 -11
  14. package/dist/core/symbols.d.ts +18 -1
  15. package/dist/decorators/blac.d.ts +28 -26
  16. package/dist/{ensure-B2DYCbbI.cjs → ensure-ORVw-WRE.cjs} +214 -39
  17. package/dist/ensure-ORVw-WRE.cjs.map +1 -0
  18. package/dist/{ensure-BSJHkUNX.js → ensure-k-6q7O25.js} +183 -38
  19. package/dist/ensure-k-6q7O25.js.map +1 -0
  20. package/dist/index.cjs +212 -32
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +4 -6
  23. package/dist/index.d.ts +4 -6
  24. package/dist/index.js +192 -12
  25. package/dist/index.js.map +1 -1
  26. package/dist/plugin/BlacPlugin.d.ts +14 -0
  27. package/dist/plugin/PluginManager.d.ts +12 -7
  28. package/dist/plugins.cjs +400 -3
  29. package/dist/plugins.cjs.map +1 -0
  30. package/dist/plugins.d.cts +6 -2
  31. package/dist/plugins.d.ts +6 -2
  32. package/dist/plugins.js +398 -1
  33. package/dist/plugins.js.map +1 -0
  34. package/dist/registry/acquire.d.ts +2 -2
  35. package/dist/registry/config.d.ts +9 -0
  36. package/dist/registry/management.d.ts +3 -0
  37. package/dist/registry/queries.d.ts +15 -0
  38. package/dist/registry/release.d.ts +3 -3
  39. package/dist/testing.cjs +13 -15
  40. package/dist/testing.cjs.map +1 -1
  41. package/dist/testing.d.cts +1 -1
  42. package/dist/testing.d.ts +1 -1
  43. package/dist/testing.js +2 -4
  44. package/dist/testing.js.map +1 -1
  45. package/dist/types/branded.d.ts +3 -3
  46. package/dist/types/utilities.d.ts +45 -18
  47. package/dist/utils/static-props.d.ts +25 -1
  48. package/dist/utils/structural-key.d.ts +0 -7
  49. package/dist/watch/index.d.ts +1 -1
  50. package/dist/watch/watch.d.ts +22 -3
  51. package/package.json +17 -55
  52. package/dist/StateContainerRegistry-4Ljd9EJx.js +0 -1018
  53. package/dist/StateContainerRegistry-4Ljd9EJx.js.map +0 -1
  54. package/dist/StateContainerRegistry-8zNFMAf7.js +0 -1067
  55. package/dist/StateContainerRegistry-8zNFMAf7.js.map +0 -1
  56. package/dist/StateContainerRegistry-B1GYx9Xo.js +0 -975
  57. package/dist/StateContainerRegistry-B1GYx9Xo.js.map +0 -1
  58. package/dist/StateContainerRegistry-B_ViBLvJ.js +0 -975
  59. package/dist/StateContainerRegistry-B_ViBLvJ.js.map +0 -1
  60. package/dist/StateContainerRegistry-Bx2ly-ba.cjs +0 -1162
  61. package/dist/StateContainerRegistry-Bx2ly-ba.cjs.map +0 -1
  62. package/dist/StateContainerRegistry-C0dCNlTF.js +0 -1005
  63. package/dist/StateContainerRegistry-C0dCNlTF.js.map +0 -1
  64. package/dist/StateContainerRegistry-CEWpc1bj.cjs +0 -1113
  65. package/dist/StateContainerRegistry-CEWpc1bj.cjs.map +0 -1
  66. package/dist/StateContainerRegistry-CS18y4au.cjs +0 -1163
  67. package/dist/StateContainerRegistry-CS18y4au.cjs.map +0 -1
  68. package/dist/StateContainerRegistry-CSNm2Ws5.cjs.map +0 -1
  69. package/dist/StateContainerRegistry-CchRjnjX.cjs +0 -1094
  70. package/dist/StateContainerRegistry-CchRjnjX.cjs.map +0 -1
  71. package/dist/StateContainerRegistry-CvBOhAT2.js.map +0 -1
  72. package/dist/StateContainerRegistry-D8nu7Z0T.js +0 -1068
  73. package/dist/StateContainerRegistry-D8nu7Z0T.js.map +0 -1
  74. package/dist/StateContainerRegistry-D9BIRjwv.cjs +0 -1088
  75. package/dist/StateContainerRegistry-D9BIRjwv.cjs.map +0 -1
  76. package/dist/StateContainerRegistry-DJQqLrli.cjs +0 -1046
  77. package/dist/StateContainerRegistry-DJQqLrli.cjs.map +0 -1
  78. package/dist/StateContainerRegistry-DVIBTxGZ.js +0 -999
  79. package/dist/StateContainerRegistry-DVIBTxGZ.js.map +0 -1
  80. package/dist/StateContainerRegistry-Dj77cok9.js +0 -1005
  81. package/dist/StateContainerRegistry-Dj77cok9.js.map +0 -1
  82. package/dist/StateContainerRegistry-FWKzPfS-.cjs +0 -1046
  83. package/dist/StateContainerRegistry-FWKzPfS-.cjs.map +0 -1
  84. package/dist/StateContainerRegistry-lIwo-0m3.cjs +0 -1094
  85. package/dist/StateContainerRegistry-lIwo-0m3.cjs.map +0 -1
  86. package/dist/acquire-B1LYXSGj.js +0 -35
  87. package/dist/acquire-B1LYXSGj.js.map +0 -1
  88. package/dist/acquire-B1Wuqla6.cjs +0 -46
  89. package/dist/acquire-B1Wuqla6.cjs.map +0 -1
  90. package/dist/acquire-BJ3xUEmh.cjs +0 -46
  91. package/dist/acquire-BJ3xUEmh.cjs.map +0 -1
  92. package/dist/acquire-BP-ZfUH2.js +0 -35
  93. package/dist/acquire-BP-ZfUH2.js.map +0 -1
  94. package/dist/acquire-BRIJVJaA.js +0 -35
  95. package/dist/acquire-BRIJVJaA.js.map +0 -1
  96. package/dist/acquire-BZIs6tpN.cjs +0 -46
  97. package/dist/acquire-BZIs6tpN.cjs.map +0 -1
  98. package/dist/acquire-B_p1fNEh.cjs +0 -46
  99. package/dist/acquire-B_p1fNEh.cjs.map +0 -1
  100. package/dist/acquire-BdsVZBSe.js +0 -35
  101. package/dist/acquire-BdsVZBSe.js.map +0 -1
  102. package/dist/acquire-C3nOb3XR.cjs +0 -46
  103. package/dist/acquire-C3nOb3XR.cjs.map +0 -1
  104. package/dist/acquire-C4WAS13G.cjs +0 -46
  105. package/dist/acquire-C4WAS13G.cjs.map +0 -1
  106. package/dist/acquire-C7beGI55.cjs +0 -46
  107. package/dist/acquire-C7beGI55.cjs.map +0 -1
  108. package/dist/acquire-CbMz7gWs.cjs +0 -46
  109. package/dist/acquire-CbMz7gWs.cjs.map +0 -1
  110. package/dist/acquire-CwB083au.js +0 -35
  111. package/dist/acquire-CwB083au.js.map +0 -1
  112. package/dist/acquire-DHEOEVcj.cjs +0 -46
  113. package/dist/acquire-DHEOEVcj.cjs.map +0 -1
  114. package/dist/acquire-DXEQDZGr.js +0 -35
  115. package/dist/acquire-DXEQDZGr.js.map +0 -1
  116. package/dist/acquire-Dg-uXwjF.js +0 -35
  117. package/dist/acquire-Dg-uXwjF.js.map +0 -1
  118. package/dist/acquire-Don7499S.js +0 -35
  119. package/dist/acquire-Don7499S.js.map +0 -1
  120. package/dist/acquire-G8aB3GAx.js +0 -35
  121. package/dist/acquire-G8aB3GAx.js.map +0 -1
  122. package/dist/branded-BybA0_xw.cjs +0 -18
  123. package/dist/branded-BybA0_xw.cjs.map +0 -1
  124. package/dist/branded-DkbUzncc.js +0 -13
  125. package/dist/branded-DkbUzncc.js.map +0 -1
  126. package/dist/config-8pyOC5gv.js +0 -16
  127. package/dist/config-8pyOC5gv.js.map +0 -1
  128. package/dist/config-B1l8ZGlU.cjs +0 -32
  129. package/dist/config-B1l8ZGlU.cjs.map +0 -1
  130. package/dist/config-C7Ktkjh2.cjs +0 -32
  131. package/dist/config-C7Ktkjh2.cjs.map +0 -1
  132. package/dist/config-COT4Xkbc.js +0 -16
  133. package/dist/config-COT4Xkbc.js.map +0 -1
  134. package/dist/config-CzcoAvBo.js +0 -16
  135. package/dist/config-CzcoAvBo.js.map +0 -1
  136. package/dist/config-D6BoWWPv.js +0 -16
  137. package/dist/config-D6BoWWPv.js.map +0 -1
  138. package/dist/config-DOO82lbZ.js +0 -16
  139. package/dist/config-DOO82lbZ.js.map +0 -1
  140. package/dist/config-DVM_ESQt.js +0 -16
  141. package/dist/config-DVM_ESQt.js.map +0 -1
  142. package/dist/config-DVMnlHLv.cjs +0 -32
  143. package/dist/config-DVMnlHLv.cjs.map +0 -1
  144. package/dist/config-DWUq7zEQ.cjs +0 -32
  145. package/dist/config-DWUq7zEQ.cjs.map +0 -1
  146. package/dist/config-DXI3kzmA.js +0 -16
  147. package/dist/config-DXI3kzmA.js.map +0 -1
  148. package/dist/config-Dk1FxfXj.js +0 -16
  149. package/dist/config-Dk1FxfXj.js.map +0 -1
  150. package/dist/config-b2z51Y_C.cjs +0 -32
  151. package/dist/config-b2z51Y_C.cjs.map +0 -1
  152. package/dist/config-buwpT7l3.js +0 -16
  153. package/dist/config-buwpT7l3.js.map +0 -1
  154. package/dist/config-cwaTn5oy.cjs +0 -32
  155. package/dist/config-cwaTn5oy.cjs.map +0 -1
  156. package/dist/config-d9_U58ef.cjs +0 -32
  157. package/dist/config-d9_U58ef.cjs.map +0 -1
  158. package/dist/config-hWTayX76.cjs +0 -32
  159. package/dist/config-hWTayX76.cjs.map +0 -1
  160. package/dist/config-sCPKPYxZ.cjs +0 -32
  161. package/dist/config-sCPKPYxZ.cjs.map +0 -1
  162. package/dist/debug.cjs +0 -14
  163. package/dist/debug.d.cts +0 -34
  164. package/dist/debug.d.ts +0 -34
  165. package/dist/debug.js +0 -4
  166. package/dist/ensure-B1dEDsZV.cjs +0 -559
  167. package/dist/ensure-B1dEDsZV.cjs.map +0 -1
  168. package/dist/ensure-B2DYCbbI.cjs.map +0 -1
  169. package/dist/ensure-B59ri8oo.js +0 -555
  170. package/dist/ensure-B59ri8oo.js.map +0 -1
  171. package/dist/ensure-B9oOqpOB.cjs +0 -558
  172. package/dist/ensure-B9oOqpOB.cjs.map +0 -1
  173. package/dist/ensure-BKdq5xsY.cjs +0 -578
  174. package/dist/ensure-BKdq5xsY.cjs.map +0 -1
  175. package/dist/ensure-BSJHkUNX.js.map +0 -1
  176. package/dist/ensure-BfYnvAsI.js +0 -709
  177. package/dist/ensure-BfYnvAsI.js.map +0 -1
  178. package/dist/ensure-Bm91o37h.js +0 -536
  179. package/dist/ensure-Bm91o37h.js.map +0 -1
  180. package/dist/ensure-C1a8IFWy.js +0 -535
  181. package/dist/ensure-C1a8IFWy.js.map +0 -1
  182. package/dist/ensure-CLQEx0Nn.cjs +0 -528
  183. package/dist/ensure-CLQEx0Nn.cjs.map +0 -1
  184. package/dist/ensure-CPMiGvov.js +0 -493
  185. package/dist/ensure-CPMiGvov.js.map +0 -1
  186. package/dist/ensure-CQimeD0I.cjs +0 -559
  187. package/dist/ensure-CQimeD0I.cjs.map +0 -1
  188. package/dist/ensure-DEXSmA-N.js +0 -526
  189. package/dist/ensure-DEXSmA-N.js.map +0 -1
  190. package/dist/ensure-DTTTd2h8.js +0 -536
  191. package/dist/ensure-DTTTd2h8.js.map +0 -1
  192. package/dist/ensure-Dx86f80B.cjs +0 -567
  193. package/dist/ensure-Dx86f80B.cjs.map +0 -1
  194. package/dist/ensure-DzqGej43.js +0 -526
  195. package/dist/ensure-DzqGej43.js.map +0 -1
  196. package/dist/ensure-VuiNPccZ.cjs +0 -559
  197. package/dist/ensure-VuiNPccZ.cjs.map +0 -1
  198. package/dist/ensure-_Oh8XPm4.cjs +0 -732
  199. package/dist/ensure-_Oh8XPm4.cjs.map +0 -1
  200. package/dist/ensure-fsQMjaQL.cjs +0 -567
  201. package/dist/ensure-fsQMjaQL.cjs.map +0 -1
  202. package/dist/ensure-vxAGa2v3.js +0 -536
  203. package/dist/ensure-vxAGa2v3.js.map +0 -1
  204. package/dist/management-14vsHr4t.cjs +0 -85
  205. package/dist/management-14vsHr4t.cjs.map +0 -1
  206. package/dist/management-444tdCBG.js +0 -38
  207. package/dist/management-444tdCBG.js.map +0 -1
  208. package/dist/management-7jLjVHJd.js +0 -38
  209. package/dist/management-7jLjVHJd.js.map +0 -1
  210. package/dist/management-AFuqQEwz.js +0 -38
  211. package/dist/management-AFuqQEwz.js.map +0 -1
  212. package/dist/management-BodVLAfJ.cjs +0 -85
  213. package/dist/management-BodVLAfJ.cjs.map +0 -1
  214. package/dist/management-BqGBdL01.js +0 -38
  215. package/dist/management-BqGBdL01.js.map +0 -1
  216. package/dist/management-BvUAjril.js +0 -38
  217. package/dist/management-BvUAjril.js.map +0 -1
  218. package/dist/management-C-WGcwPD.js +0 -38
  219. package/dist/management-C-WGcwPD.js.map +0 -1
  220. package/dist/management-C2wv4vGS.cjs +0 -85
  221. package/dist/management-C2wv4vGS.cjs.map +0 -1
  222. package/dist/management-D2pjr38g.js +0 -38
  223. package/dist/management-D2pjr38g.js.map +0 -1
  224. package/dist/management-D5WsZoTV.js +0 -38
  225. package/dist/management-D5WsZoTV.js.map +0 -1
  226. package/dist/management-DAV9sN-k.cjs +0 -85
  227. package/dist/management-DAV9sN-k.cjs.map +0 -1
  228. package/dist/management-Df7Y2sF1.cjs +0 -85
  229. package/dist/management-Df7Y2sF1.cjs.map +0 -1
  230. package/dist/management-DwO0nBzL.cjs +0 -85
  231. package/dist/management-DwO0nBzL.cjs.map +0 -1
  232. package/dist/management-GcnNJjnm.cjs +0 -85
  233. package/dist/management-GcnNJjnm.cjs.map +0 -1
  234. package/dist/management-P_Vi_cvw.js +0 -38
  235. package/dist/management-P_Vi_cvw.js.map +0 -1
  236. package/dist/management-QWLpbXlW.cjs +0 -85
  237. package/dist/management-QWLpbXlW.cjs.map +0 -1
  238. package/dist/management-iE4x6IQY.cjs +0 -85
  239. package/dist/management-iE4x6IQY.cjs.map +0 -1
  240. package/dist/types.cjs +0 -3
  241. package/dist/types.d.cts +0 -8
  242. package/dist/types.d.ts +0 -8
  243. package/dist/types.js +0 -2
  244. package/dist/watch-B0pUfh-v.cjs +0 -119
  245. package/dist/watch-B0pUfh-v.cjs.map +0 -1
  246. package/dist/watch-B91opmva.cjs +0 -70
  247. package/dist/watch-B91opmva.cjs.map +0 -1
  248. package/dist/watch-BHfCtbn1.cjs +0 -119
  249. package/dist/watch-BHfCtbn1.cjs.map +0 -1
  250. package/dist/watch-BmC-Tyqg.js +0 -59
  251. package/dist/watch-BmC-Tyqg.js.map +0 -1
  252. package/dist/watch-Bx0y-Kcc.js +0 -108
  253. package/dist/watch-Bx0y-Kcc.js.map +0 -1
  254. package/dist/watch-CKWt788i.cjs +0 -70
  255. package/dist/watch-CKWt788i.cjs.map +0 -1
  256. package/dist/watch-CfrSSrRY.js +0 -59
  257. package/dist/watch-CfrSSrRY.js.map +0 -1
  258. package/dist/watch-Cnh3PtQA.cjs +0 -70
  259. package/dist/watch-Cnh3PtQA.cjs.map +0 -1
  260. package/dist/watch-D01MdwKy.js +0 -108
  261. package/dist/watch-D01MdwKy.js.map +0 -1
  262. package/dist/watch-D8hwbFU1.js +0 -59
  263. package/dist/watch-D8hwbFU1.js.map +0 -1
  264. package/dist/watch-DPVUwPUY.js +0 -59
  265. package/dist/watch-DPVUwPUY.js.map +0 -1
  266. package/dist/watch-DVmvZBMD.cjs +0 -70
  267. package/dist/watch-DVmvZBMD.cjs.map +0 -1
  268. package/dist/watch-DkDGmGAx.cjs +0 -119
  269. package/dist/watch-DkDGmGAx.cjs.map +0 -1
  270. package/dist/watch-DttHqefn.js +0 -108
  271. package/dist/watch-DttHqefn.js.map +0 -1
  272. package/dist/watch-DxdIZjpt.cjs +0 -119
  273. package/dist/watch-DxdIZjpt.cjs.map +0 -1
  274. package/dist/watch-DztcJuUy.cjs +0 -119
  275. package/dist/watch-DztcJuUy.cjs.map +0 -1
  276. package/dist/watch-IrR8G28N.js +0 -108
  277. package/dist/watch-IrR8G28N.js.map +0 -1
  278. package/dist/watch-entry.cjs +0 -4
  279. package/dist/watch-entry.d.cts +0 -24
  280. package/dist/watch-entry.d.ts +0 -24
  281. package/dist/watch-entry.js +0 -2
  282. package/dist/watch-hx0r92Zc.js +0 -108
  283. package/dist/watch-hx0r92Zc.js.map +0 -1
package/README.md CHANGED
@@ -52,7 +52,6 @@ class UserCardCubit extends Cubit<UserCardState, { userId: string }> {
52
52
  init(args: { userId: string }) {
53
53
  // Called by framework once, synchronously at creation, before first snapshot
54
54
  this.userId = args.userId;
55
- void this.loadUser(args.userId);
56
55
  }
57
56
 
58
57
  // Optional: control how args map to identity (default = structural hash)
@@ -60,6 +59,8 @@ class UserCardCubit extends Cubit<UserCardState, { userId: string }> {
60
59
  }
61
60
  ```
62
61
 
62
+ `init` is for synchronous state seeding, not side effects. Kick off a fetch, subscription, or timer from `onActivate(signal)` instead — it only fires once something actually owns the instance and hands you an `AbortSignal` for cleanup. See the [`@blac/react` README](../blac-react/README.md#activation-onactivate--ondeactivate) for the full lifecycle.
63
+
63
64
  **Key mechanics:**
64
65
 
65
66
  - **Different args ⇒ different instance** (structural hash by default, or `static key` if declared).
@@ -124,7 +125,7 @@ class CanvasRendererCubit extends Cubit<
124
125
 
125
126
  ### StateContainer
126
127
 
127
- Abstract base class. Use this when you want `emit`/`update` to be protected (not callable from outside).
128
+ Abstract base class for managing state outside the bloc/cubit pattern. Mutation is protected: the class owns its transitions and callers go through the methods it exposes.
128
129
 
129
130
  ```ts
130
131
  import { StateContainer } from '@blac/core';
@@ -144,9 +145,11 @@ class AuthContainer extends StateContainer<{ token: string | null }> {
144
145
  }
145
146
  ```
146
147
 
147
- **Public API:** `state`, `subscribe(listener)`, `dispose()`, `$blac` (`$blac.name`, `$blac.id`, `$blac.debug`, `$blac.createdAt`, `$blac.disposed`, `$blac.dependencies`, `$blac.hydration`)
148
+ **Public API:** `state`, `subscribe(interest, cb)`, `dispose()`, `$blac` (`$blac.name`, `$blac.id`, `$blac.debug`, `$blac.createdAt`, `$blac.disposed`, `$blac.dependencies`, `$blac.hydration`)
149
+
150
+ **Protected:** `emit(state)`, `patch(partial)`, `update(fn)` — state mutation is restricted to the class itself, as in the example above. Use `Cubit` when a caller needs to drive state from outside.
148
151
 
149
- **Protected API:** `emit(state)`, `update(fn)`, `init(args)` (optional), `onDepsChanged(next, prev)` (optional), `onSystemEvent(event, handler)`, `depend(BlocClass, instanceKey?)`
152
+ **Protected API:** `init(args)` (optional), `onDepsChanged(next, prev)` (optional), `onSystemEvent(event, handler)`, `depend(Type, defaultArgs?)` (returns a `DepHandle`, not an instance)
150
153
 
151
154
  ## Registry
152
155
 
@@ -196,34 +199,25 @@ const stop = watch(CounterCubit, (counter) => {
196
199
  });
197
200
 
198
201
  // Watch a specific named instance
199
- const stop2 = watch(instance(CounterCubit, 'counter-1'), (c) => {
202
+ const stop2 = watch(instance(CounterCubit, { id: 'counter-1' }), (c) => {
200
203
  console.log(c.state.count);
201
204
  });
202
205
  ```
203
206
 
204
- ## Tracked
205
-
206
- Run a function and capture which blocs/state it accessed.
207
-
208
- ```ts
209
- import { tracked } from '@blac/core';
210
-
211
- const { result, dependencies } = tracked(() => {
212
- const user = ensure(UserCubit);
213
- return user.state.name;
214
- });
215
- ```
207
+ State tracking (which blocs/state a function accesses) is automatic — see
208
+ [Tracked](https://blac-docs.pages.dev/core/tracked) for details.
216
209
 
217
210
  ## Plugins
218
211
 
219
212
  ```ts
220
- import { getPluginManager, type BlacPlugin } from '@blac/core';
213
+ import { getPluginManager } from '@blac/core/plugins';
214
+ import { type BlacPlugin } from '@blac/core';
221
215
 
222
216
  const myPlugin: BlacPlugin = {
223
217
  name: 'my-plugin',
224
218
  version: '1.0.0',
225
- onStateChanged(instance, previousState, currentState) {
226
- console.log(instance.constructor.name, previousState, '→', currentState);
219
+ onStateChange(ctx, prev, next, paths) {
220
+ console.log(ctx.container?.$blac.name, prev, '→', next);
227
221
  },
228
222
  };
229
223
 
@@ -232,15 +226,11 @@ getPluginManager().install(myPlugin, { environment: 'development' });
232
226
 
233
227
  ## Subpath Exports
234
228
 
235
- | Export | Contents |
236
- | --------------------- | ------------------------------------------------------ |
237
- | `@blac/core` | All core classes, registry, decorators, watch, tracked |
238
- | `@blac/core/watch` | `watch`, `instance`, `tracked` |
239
- | `@blac/core/tracking` | Dependency tracking internals for framework adapters |
240
- | `@blac/core/plugins` | Plugin system types and utilities |
241
- | `@blac/core/debug` | Registry introspection helpers |
242
- | `@blac/core/testing` | Test utilities |
243
- | `@blac/core/types` | Type-only exports |
229
+ | Export | Contents |
230
+ | -------------------- | --------------------------------------------- |
231
+ | `@blac/core` | All core classes, registry, decorators, watch |
232
+ | `@blac/core/plugins` | Plugin system types and utilities |
233
+ | `@blac/core/testing` | Test utilities |
244
234
 
245
235
  ## License
246
236