@blac/core 2.0.12 → 2.0.14

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 (457) hide show
  1. package/README.md +85 -3
  2. package/dist/Cubit-9jal5zdZ.cjs +1 -1
  3. package/dist/Cubit-BAUPiUF7.cjs +359 -286
  4. package/dist/Cubit-BBKF3PIg.js +287 -0
  5. package/dist/Cubit-BBKF3PIg.js.map +1 -0
  6. package/dist/Cubit-BC70gaiA.js +453 -0
  7. package/dist/Cubit-BC70gaiA.js.map +1 -0
  8. package/dist/Cubit-BOgUZva7.js +342 -266
  9. package/dist/Cubit-BOxMvpfc.js +291 -0
  10. package/dist/Cubit-BOxMvpfc.js.map +1 -0
  11. package/dist/Cubit-BTznt8zg.js +1 -1
  12. package/dist/Cubit-BogJXkLm.js +278 -0
  13. package/dist/Cubit-BogJXkLm.js.map +1 -0
  14. package/dist/Cubit-C-8R_8db.cjs +475 -0
  15. package/dist/Cubit-C-8R_8db.cjs.map +1 -0
  16. package/dist/Cubit-C3Mw3EoO.cjs +401 -0
  17. package/dist/Cubit-C3Mw3EoO.cjs.map +1 -0
  18. package/dist/Cubit-CO8Fr72L.cjs +447 -0
  19. package/dist/Cubit-CO8Fr72L.cjs.map +1 -0
  20. package/dist/Cubit-COfHT1Bm.cjs +321 -0
  21. package/dist/Cubit-COfHT1Bm.cjs.map +1 -0
  22. package/dist/Cubit-CROWjjs9.js +481 -0
  23. package/dist/Cubit-CROWjjs9.js.map +1 -0
  24. package/dist/Cubit-CWP8Ddzx.cjs +510 -0
  25. package/dist/Cubit-CWP8Ddzx.cjs.map +1 -0
  26. package/dist/Cubit-CXxh9iol.js +302 -0
  27. package/dist/Cubit-CXxh9iol.js.map +1 -0
  28. package/dist/Cubit-CYOWfzQt.cjs +317 -0
  29. package/dist/Cubit-CYOWfzQt.cjs.map +1 -0
  30. package/dist/Cubit-CZaf_fp4.cjs +1 -1
  31. package/dist/Cubit-C_dUEUdd.cjs +359 -286
  32. package/dist/Cubit-C_rxRCTN.cjs +523 -0
  33. package/dist/Cubit-C_rxRCTN.cjs.map +1 -0
  34. package/dist/Cubit-CcKgMEBO.js +299 -0
  35. package/dist/Cubit-CcKgMEBO.js.map +1 -0
  36. package/dist/Cubit-CfT6Y1jl.js +346 -0
  37. package/dist/Cubit-CfT6Y1jl.js.map +1 -0
  38. package/dist/Cubit-CynJruuO.js +369 -0
  39. package/dist/Cubit-CynJruuO.js.map +1 -0
  40. package/dist/Cubit-D2vQ6nMb.js +342 -266
  41. package/dist/Cubit-D7jOZCoZ.js +342 -266
  42. package/dist/Cubit-D9j3IGPc.cjs +523 -0
  43. package/dist/Cubit-D9j3IGPc.cjs.map +1 -0
  44. package/dist/Cubit-DKEY9WYq.cjs +296 -0
  45. package/dist/Cubit-DKEY9WYq.cjs.map +1 -0
  46. package/dist/Cubit-DMV_0TCp.js +481 -0
  47. package/dist/Cubit-DMV_0TCp.js.map +1 -0
  48. package/dist/Cubit-DP5DXPUK.js +342 -266
  49. package/dist/Cubit-DRFkzD2h.js +426 -0
  50. package/dist/Cubit-DRFkzD2h.js.map +1 -0
  51. package/dist/Cubit-DbnhTUaZ.cjs +359 -286
  52. package/dist/Cubit-DrqG3SP3.cjs +370 -0
  53. package/dist/Cubit-DrqG3SP3.cjs.map +1 -0
  54. package/dist/Cubit-DsDkCo42.cjs +313 -0
  55. package/dist/Cubit-DsDkCo42.cjs.map +1 -0
  56. package/dist/Cubit-DwRw1E9D.cjs +309 -0
  57. package/dist/Cubit-DwRw1E9D.cjs.map +1 -0
  58. package/dist/Cubit-Dw_kFBgc.js +1 -1
  59. package/dist/Cubit-KiXZCubP.cjs +1 -1
  60. package/dist/Cubit-Ksj7G4uR.js +342 -266
  61. package/dist/Cubit-MkjbpcPf.cjs +359 -286
  62. package/dist/Cubit-NRhvdDQ6.js +297 -0
  63. package/dist/Cubit-NRhvdDQ6.js.map +1 -0
  64. package/dist/Cubit-PMTXxI_u.js +1 -1
  65. package/dist/Cubit-VJuu2tt9.js +481 -0
  66. package/dist/Cubit-VJuu2tt9.js.map +1 -0
  67. package/dist/Cubit-jz922NKf.cjs +320 -0
  68. package/dist/Cubit-jz922NKf.cjs.map +1 -0
  69. package/dist/Cubit-kU5_4jgC.cjs +359 -286
  70. package/dist/StateContainerRegistry-B4yVMYbx.cjs +1057 -0
  71. package/dist/StateContainerRegistry-B4yVMYbx.cjs.map +1 -0
  72. package/dist/StateContainerRegistry-BAcxouCu.js +723 -0
  73. package/dist/StateContainerRegistry-BAcxouCu.js.map +1 -0
  74. package/dist/StateContainerRegistry-BK57H92E.js +747 -0
  75. package/dist/StateContainerRegistry-BK57H92E.js.map +1 -0
  76. package/dist/StateContainerRegistry-BRBATSrx.cjs +1030 -0
  77. package/dist/StateContainerRegistry-BRBATSrx.cjs.map +1 -0
  78. package/dist/StateContainerRegistry-BgBIKcQF.js +956 -0
  79. package/dist/StateContainerRegistry-BgBIKcQF.js.map +1 -0
  80. package/dist/StateContainerRegistry-BglEhqdA.js +709 -0
  81. package/dist/StateContainerRegistry-BglEhqdA.js.map +1 -0
  82. package/dist/StateContainerRegistry-BhcnG0DF.js +625 -562
  83. package/dist/StateContainerRegistry-BpO5t-0i.js +682 -0
  84. package/dist/StateContainerRegistry-BpO5t-0i.js.map +1 -0
  85. package/dist/StateContainerRegistry-BqS-wpb_.js +957 -0
  86. package/dist/StateContainerRegistry-BqS-wpb_.js.map +1 -0
  87. package/dist/StateContainerRegistry-BrEGYPZT.cjs +1029 -0
  88. package/dist/StateContainerRegistry-BrEGYPZT.cjs.map +1 -0
  89. package/dist/StateContainerRegistry-Bxfne4A7.cjs +908 -0
  90. package/dist/StateContainerRegistry-Bxfne4A7.cjs.map +1 -0
  91. package/dist/StateContainerRegistry-C0E7vsgy.js +758 -0
  92. package/dist/StateContainerRegistry-C0E7vsgy.js.map +1 -0
  93. package/dist/StateContainerRegistry-C0I77Ndz.cjs +920 -0
  94. package/dist/StateContainerRegistry-C0I77Ndz.cjs.map +1 -0
  95. package/dist/StateContainerRegistry-CDH9mnQS.cjs +715 -0
  96. package/dist/StateContainerRegistry-CDH9mnQS.cjs.map +1 -0
  97. package/dist/StateContainerRegistry-CTOXUf75.cjs +742 -0
  98. package/dist/StateContainerRegistry-CTOXUf75.cjs.map +1 -0
  99. package/dist/StateContainerRegistry-CX2CBOmv.cjs +795 -0
  100. package/dist/StateContainerRegistry-CX2CBOmv.cjs.map +1 -0
  101. package/dist/StateContainerRegistry-CXnnf2-l.js +867 -0
  102. package/dist/StateContainerRegistry-CXnnf2-l.js.map +1 -0
  103. package/dist/StateContainerRegistry-CehuIpK_.cjs +811 -0
  104. package/dist/StateContainerRegistry-CehuIpK_.cjs.map +1 -0
  105. package/dist/StateContainerRegistry-Ci0ajc5g.js +720 -0
  106. package/dist/StateContainerRegistry-Ci0ajc5g.js.map +1 -0
  107. package/dist/StateContainerRegistry-Ck2-XmT_.js +587 -527
  108. package/dist/StateContainerRegistry-D1lVJFGL.cjs +753 -0
  109. package/dist/StateContainerRegistry-D1lVJFGL.cjs.map +1 -0
  110. package/dist/StateContainerRegistry-DC4N73O6.js +632 -569
  111. package/dist/StateContainerRegistry-DOuGI-l5.js +645 -582
  112. package/dist/StateContainerRegistry-DT66lr3I.cjs +651 -596
  113. package/dist/StateContainerRegistry-DmmzYa7S.js +974 -0
  114. package/dist/StateContainerRegistry-DmmzYa7S.js.map +1 -0
  115. package/dist/StateContainerRegistry-Upsrlg9G.cjs +756 -0
  116. package/dist/StateContainerRegistry-Upsrlg9G.cjs.map +1 -0
  117. package/dist/StateContainerRegistry-WznfcA-Q.js +855 -0
  118. package/dist/StateContainerRegistry-WznfcA-Q.js.map +1 -0
  119. package/dist/StateContainerRegistry-Yph6UCA_.js +637 -569
  120. package/dist/StateContainerRegistry-mseeTqSA.cjs +671 -616
  121. package/dist/StateContainerRegistry-pRNxHNFD.cjs +658 -603
  122. package/dist/StateContainerRegistry-vXMWtG7J.cjs +613 -561
  123. package/dist/StateContainerRegistry-v_prqMcI.cjs +663 -603
  124. package/dist/branded-BSeA_mZO.cjs.map +1 -1
  125. package/dist/branded-DCqi3De1.cjs +11 -11
  126. package/dist/branded-DwtzSsg0.js.map +1 -1
  127. package/dist/branded-Max3xOTA.js +6 -6
  128. package/dist/config-0ZD9i3wy.js +16 -0
  129. package/dist/config-0ZD9i3wy.js.map +1 -0
  130. package/dist/config-B3NIwDQv.cjs +32 -0
  131. package/dist/config-B3NIwDQv.cjs.map +1 -0
  132. package/dist/config-BKGHop0V.js +16 -0
  133. package/dist/config-BKGHop0V.js.map +1 -0
  134. package/dist/config-BKoaAlmb.js +5 -5
  135. package/dist/config-BPj08-8h.cjs +32 -0
  136. package/dist/config-BPj08-8h.cjs.map +1 -0
  137. package/dist/config-BR0Xy-Tn.cjs +32 -0
  138. package/dist/config-BR0Xy-Tn.cjs.map +1 -0
  139. package/dist/config-B_4xXpvK.cjs +32 -0
  140. package/dist/config-B_4xXpvK.cjs.map +1 -0
  141. package/dist/config-BflrQM4_.cjs +32 -0
  142. package/dist/config-BflrQM4_.cjs.map +1 -0
  143. package/dist/config-BzObBsk2.cjs +32 -0
  144. package/dist/config-BzObBsk2.cjs.map +1 -0
  145. package/dist/config-C0yumL1H.cjs +32 -0
  146. package/dist/config-C0yumL1H.cjs.map +1 -0
  147. package/dist/config-C8xqVHTf.js +16 -0
  148. package/dist/config-C8xqVHTf.js.map +1 -0
  149. package/dist/config-CCUhIYIF.js +5 -5
  150. package/dist/config-CGo__MAt.js +16 -0
  151. package/dist/config-CGo__MAt.js.map +1 -0
  152. package/dist/config-CQH9fTY-.cjs +32 -0
  153. package/dist/config-CQH9fTY-.cjs.map +1 -0
  154. package/dist/config-CR_Bz7RD.js +5 -5
  155. package/dist/config-CTOa-yPN.cjs +20 -20
  156. package/dist/config-Cd7Q-B4g.js +16 -0
  157. package/dist/config-Cd7Q-B4g.js.map +1 -0
  158. package/dist/config-CmDEX-1o.js +16 -0
  159. package/dist/config-CmDEX-1o.js.map +1 -0
  160. package/dist/config-CoNMTnMA.cjs +32 -0
  161. package/dist/config-CoNMTnMA.cjs.map +1 -0
  162. package/dist/config-Cwj8-C1J.js +16 -0
  163. package/dist/config-Cwj8-C1J.js.map +1 -0
  164. package/dist/config-D3jisfdj.cjs +20 -20
  165. package/dist/config-D4GifZQ4.js +5 -5
  166. package/dist/config-DDrSQGpQ.cjs +20 -20
  167. package/dist/config-DEcslxan.cjs +32 -0
  168. package/dist/config-DEcslxan.cjs.map +1 -0
  169. package/dist/config-DMNZ2YLV.cjs +20 -20
  170. package/dist/config-De9oQ6Ki.js +16 -0
  171. package/dist/config-De9oQ6Ki.js.map +1 -0
  172. package/dist/config-DoHx0Xsl.js +16 -0
  173. package/dist/config-DoHx0Xsl.js.map +1 -0
  174. package/dist/config-DokTzpr8.cjs +20 -20
  175. package/dist/config-DslYBm4Z.js +5 -5
  176. package/dist/config-H6FAqbW4.cjs +32 -0
  177. package/dist/config-H6FAqbW4.cjs.map +1 -0
  178. package/dist/config-Yp645dGK.js +16 -0
  179. package/dist/config-Yp645dGK.js.map +1 -0
  180. package/dist/config-ispAzOZV.js +16 -0
  181. package/dist/config-ispAzOZV.js.map +1 -0
  182. package/dist/config.d.cts +72 -0
  183. package/dist/config.d.ts +72 -0
  184. package/dist/constants.d.cts +18 -28
  185. package/dist/constants.d.ts +18 -28
  186. package/dist/core/Cubit.d.ts +14 -5
  187. package/dist/core/StateContainer.d.ts +112 -15
  188. package/dist/core/StateContainerRegistry.d.ts +66 -7
  189. package/dist/core/symbols.d.ts +26 -1
  190. package/dist/debug.cjs +3 -3
  191. package/dist/debug.js +3 -3
  192. package/dist/decorators/blac.d.ts +17 -0
  193. package/dist/ensure-9VEq5H0L.js +3 -3
  194. package/dist/ensure-BB6xHQAF.cjs +14 -0
  195. package/dist/ensure-BB6xHQAF.cjs.map +1 -0
  196. package/dist/ensure-BNDfTzqg.cjs +8 -8
  197. package/dist/ensure-BVCnjU7r.js +343 -267
  198. package/dist/ensure-BbzGXjep.cjs +8 -8
  199. package/dist/ensure-BlIaQai6.js +9 -0
  200. package/dist/ensure-BlIaQai6.js.map +1 -0
  201. package/dist/ensure-Bm3oHxga.js +9 -0
  202. package/dist/ensure-Bm3oHxga.js.map +1 -0
  203. package/dist/ensure-C3eIRs6e.cjs +14 -0
  204. package/dist/ensure-C3eIRs6e.cjs.map +1 -0
  205. package/dist/ensure-CJZL7bcA.cjs +365 -292
  206. package/dist/ensure-CN6unBOe.cjs +14 -0
  207. package/dist/ensure-CN6unBOe.cjs.map +1 -0
  208. package/dist/ensure-CU-B1ywv.js +3 -3
  209. package/dist/ensure-CWKzeno7.js +9 -0
  210. package/dist/ensure-CWKzeno7.js.map +1 -0
  211. package/dist/ensure-CkENsuQ9.js +9 -0
  212. package/dist/ensure-CkENsuQ9.js.map +1 -0
  213. package/dist/ensure-Cm-4_LSh.cjs +14 -0
  214. package/dist/ensure-Cm-4_LSh.cjs.map +1 -0
  215. package/dist/ensure-Cqex5r1P.cjs +14 -0
  216. package/dist/ensure-Cqex5r1P.cjs.map +1 -0
  217. package/dist/ensure-Cv5AbNGZ.js +9 -0
  218. package/dist/ensure-Cv5AbNGZ.js.map +1 -0
  219. package/dist/ensure-D63lEMUK.cjs +8 -8
  220. package/dist/ensure-DGEtPU9A.cjs +14 -0
  221. package/dist/ensure-DGEtPU9A.cjs.map +1 -0
  222. package/dist/ensure-DM3qb336.cjs +14 -0
  223. package/dist/ensure-DM3qb336.cjs.map +1 -0
  224. package/dist/ensure-DME-_T0j.cjs +14 -0
  225. package/dist/ensure-DME-_T0j.cjs.map +1 -0
  226. package/dist/ensure-DWd0GCYB.js +9 -0
  227. package/dist/ensure-DWd0GCYB.js.map +1 -0
  228. package/dist/ensure-DamKOP6q.cjs +8 -8
  229. package/dist/ensure-Dcfptl-A.js +9 -0
  230. package/dist/ensure-Dcfptl-A.js.map +1 -0
  231. package/dist/ensure-Def-EBWG.js +3 -3
  232. package/dist/ensure-DnHL5QiQ.cjs +14 -0
  233. package/dist/ensure-DnHL5QiQ.cjs.map +1 -0
  234. package/dist/ensure-Dr7I78Ku.cjs +14 -0
  235. package/dist/ensure-Dr7I78Ku.cjs.map +1 -0
  236. package/dist/ensure-SLVdGd5b.js +9 -0
  237. package/dist/ensure-SLVdGd5b.js.map +1 -0
  238. package/dist/ensure-Sb92MCXu.js +3 -3
  239. package/dist/ensure-gFlvevGm.cjs +14 -0
  240. package/dist/ensure-gFlvevGm.cjs.map +1 -0
  241. package/dist/ensure-l2-H7S5W.js +9 -0
  242. package/dist/ensure-l2-H7S5W.js.map +1 -0
  243. package/dist/ensure-mkL-3qh8.js +9 -0
  244. package/dist/ensure-mkL-3qh8.js.map +1 -0
  245. package/dist/ensure-n80crSlX.js +3 -3
  246. package/dist/ensure-nCxg7MCN.js +9 -0
  247. package/dist/ensure-nCxg7MCN.js.map +1 -0
  248. package/dist/ensure-vS71MV4q.cjs +8 -8
  249. package/dist/index.cjs +40 -15
  250. package/dist/index.cjs.map +1 -1
  251. package/dist/index.d.cts +15 -4
  252. package/dist/index.d.ts +15 -4
  253. package/dist/index.js +23 -10
  254. package/dist/index.js.map +1 -1
  255. package/dist/management-6oQbmf0z.js +41 -0
  256. package/dist/management-6oQbmf0z.js.map +1 -0
  257. package/dist/management-B46QwA9Y.js +41 -0
  258. package/dist/management-B46QwA9Y.js.map +1 -0
  259. package/dist/management-B9yrRpeg.js +41 -0
  260. package/dist/management-B9yrRpeg.js.map +1 -0
  261. package/dist/management-BCKTEZ8Q.js +41 -0
  262. package/dist/management-BCKTEZ8Q.js.map +1 -0
  263. package/dist/management-BbMzdXbT.js +41 -0
  264. package/dist/management-BbMzdXbT.js.map +1 -0
  265. package/dist/management-Bg652agq.js +20 -11
  266. package/dist/management-BnedF5ZD.cjs +79 -0
  267. package/dist/management-BnedF5ZD.cjs.map +1 -0
  268. package/dist/management-BoUa99eB.cjs +79 -0
  269. package/dist/management-BoUa99eB.cjs.map +1 -0
  270. package/dist/management-C4SHcrJm.cjs +79 -0
  271. package/dist/management-C4SHcrJm.cjs.map +1 -0
  272. package/dist/management-CK-GL3wY.js +41 -0
  273. package/dist/management-CK-GL3wY.js.map +1 -0
  274. package/dist/management-CPhgY8OE.js +41 -0
  275. package/dist/management-CPhgY8OE.js.map +1 -0
  276. package/dist/management-CU_V3LIP.js +20 -11
  277. package/dist/management-CUwXDSi9.cjs +79 -0
  278. package/dist/management-CUwXDSi9.cjs.map +1 -0
  279. package/dist/management-CaqiyNzB.js +20 -11
  280. package/dist/management-Cin-JvYe.js +20 -11
  281. package/dist/management-ClaXym0F.cjs +50 -50
  282. package/dist/management-DL0Uzsoz.js +41 -0
  283. package/dist/management-DL0Uzsoz.js.map +1 -0
  284. package/dist/management-DLdAQfqk.cjs +79 -0
  285. package/dist/management-DLdAQfqk.cjs.map +1 -0
  286. package/dist/management-DMZ8qpwr.cjs +79 -0
  287. package/dist/management-DMZ8qpwr.cjs.map +1 -0
  288. package/dist/management-DTzcC6aD.cjs +79 -0
  289. package/dist/management-DTzcC6aD.cjs.map +1 -0
  290. package/dist/management-DYLNyj9p.cjs +79 -0
  291. package/dist/management-DYLNyj9p.cjs.map +1 -0
  292. package/dist/management-Dag9u4t6.cjs +50 -50
  293. package/dist/management-DbMRdDBo.cjs +50 -50
  294. package/dist/management-DfnDAKmP.js +41 -0
  295. package/dist/management-DfnDAKmP.js.map +1 -0
  296. package/dist/management-DjBU1gtb.cjs +79 -0
  297. package/dist/management-DjBU1gtb.cjs.map +1 -0
  298. package/dist/management-DwCozsY8.js +41 -0
  299. package/dist/management-DwCozsY8.js.map +1 -0
  300. package/dist/management-H4m3ciJO.js +32 -0
  301. package/dist/management-H4m3ciJO.js.map +1 -0
  302. package/dist/management-Xo3A6Za3.cjs +79 -0
  303. package/dist/management-Xo3A6Za3.cjs.map +1 -0
  304. package/dist/management-ZU2YzOkr.js +18 -10
  305. package/dist/management-baPDwA9n.cjs +50 -50
  306. package/dist/management-jQGCvZNN.cjs +44 -44
  307. package/dist/management-ry_KteFK.cjs +79 -0
  308. package/dist/management-ry_KteFK.cjs.map +1 -0
  309. package/dist/plugin/BlacPlugin.d.ts +70 -100
  310. package/dist/plugin/PluginManager.d.ts +67 -5
  311. package/dist/plugins.cjs +1 -1
  312. package/dist/plugins.d.cts +2 -2
  313. package/dist/plugins.d.ts +2 -2
  314. package/dist/plugins.js +1 -1
  315. package/dist/registry/acquire.d.ts +9 -2
  316. package/dist/registry/ensure.d.ts +2 -2
  317. package/dist/registry/index.d.ts +1 -1
  318. package/dist/resolve-dependencies-B2QggQAi.js +729 -0
  319. package/dist/resolve-dependencies-B2QggQAi.js.map +1 -0
  320. package/dist/resolve-dependencies-B6JDXvpr.js +739 -0
  321. package/dist/resolve-dependencies-B6JDXvpr.js.map +1 -0
  322. package/dist/resolve-dependencies-BAKAoD0U.js +878 -0
  323. package/dist/resolve-dependencies-BAKAoD0U.js.map +1 -0
  324. package/dist/resolve-dependencies-BFZQq60Y.cjs +724 -666
  325. package/dist/resolve-dependencies-BGafS3Ww.js +643 -561
  326. package/dist/resolve-dependencies-BHd34gS3.cjs +724 -666
  327. package/dist/resolve-dependencies-BNeayhbQ.cjs +840 -0
  328. package/dist/resolve-dependencies-BNeayhbQ.cjs.map +1 -0
  329. package/dist/resolve-dependencies-BWEMpuDy.js +729 -0
  330. package/dist/resolve-dependencies-BWEMpuDy.js.map +1 -0
  331. package/dist/resolve-dependencies-BiWkW2eS.js +643 -561
  332. package/dist/resolve-dependencies-BjxCztYD.js +739 -0
  333. package/dist/resolve-dependencies-BjxCztYD.js.map +1 -0
  334. package/dist/resolve-dependencies-BlyBV0hB.cjs +969 -0
  335. package/dist/resolve-dependencies-BlyBV0hB.cjs.map +1 -0
  336. package/dist/resolve-dependencies-By26rT_i.js +739 -0
  337. package/dist/resolve-dependencies-By26rT_i.js.map +1 -0
  338. package/dist/resolve-dependencies-C9Kf7AzY.cjs +832 -0
  339. package/dist/resolve-dependencies-C9Kf7AzY.cjs.map +1 -0
  340. package/dist/resolve-dependencies-CTzV1txG.js +643 -561
  341. package/dist/resolve-dependencies-CWjuGHiF.cjs +969 -0
  342. package/dist/resolve-dependencies-CWjuGHiF.cjs.map +1 -0
  343. package/dist/resolve-dependencies-ClSsP0DJ.cjs +830 -0
  344. package/dist/resolve-dependencies-ClSsP0DJ.cjs.map +1 -0
  345. package/dist/resolve-dependencies-D0vTzZgs.js +643 -561
  346. package/dist/resolve-dependencies-D2WnZMF-.cjs +724 -666
  347. package/dist/resolve-dependencies-DCBLTeza.cjs +969 -0
  348. package/dist/resolve-dependencies-DCBLTeza.cjs.map +1 -0
  349. package/dist/resolve-dependencies-DMlqYJR2.js +731 -0
  350. package/dist/resolve-dependencies-DMlqYJR2.js.map +1 -0
  351. package/dist/resolve-dependencies-DP6U1EYB.cjs +840 -0
  352. package/dist/resolve-dependencies-DP6U1EYB.cjs.map +1 -0
  353. package/dist/resolve-dependencies-DSQNXvnV.cjs +724 -666
  354. package/dist/resolve-dependencies-DV3HO_uH.js +878 -0
  355. package/dist/resolve-dependencies-DV3HO_uH.js.map +1 -0
  356. package/dist/resolve-dependencies-DXwMhP0Y.js +878 -0
  357. package/dist/resolve-dependencies-DXwMhP0Y.js.map +1 -0
  358. package/dist/resolve-dependencies-DbRWlt9u.js +878 -0
  359. package/dist/resolve-dependencies-DbRWlt9u.js.map +1 -0
  360. package/dist/resolve-dependencies-DcUUva2P.cjs +724 -666
  361. package/dist/resolve-dependencies-Dd8T6TLt.cjs +832 -0
  362. package/dist/resolve-dependencies-Dd8T6TLt.cjs.map +1 -0
  363. package/dist/resolve-dependencies-Dfdp_DZd.cjs +840 -0
  364. package/dist/resolve-dependencies-Dfdp_DZd.cjs.map +1 -0
  365. package/dist/resolve-dependencies-GJ8PNyNB.cjs +969 -0
  366. package/dist/resolve-dependencies-GJ8PNyNB.cjs.map +1 -0
  367. package/dist/resolve-dependencies-KSpTt4jy.cjs +830 -0
  368. package/dist/resolve-dependencies-KSpTt4jy.cjs.map +1 -0
  369. package/dist/resolve-dependencies-Nvjp4CwS.js +731 -0
  370. package/dist/resolve-dependencies-Nvjp4CwS.js.map +1 -0
  371. package/dist/resolve-dependencies-f-QUqYiL.js +643 -561
  372. package/dist/testing.cjs +27 -20
  373. package/dist/testing.cjs.map +1 -1
  374. package/dist/testing.d.cts +22 -1
  375. package/dist/testing.d.ts +22 -1
  376. package/dist/testing.js +27 -21
  377. package/dist/testing.js.map +1 -1
  378. package/dist/tracked-B77j2g9M.js +171 -151
  379. package/dist/tracked-BDVi2LKM.cjs +196 -175
  380. package/dist/tracked-BFdJCzL0.cjs +242 -0
  381. package/dist/tracked-BFdJCzL0.cjs.map +1 -0
  382. package/dist/tracked-BH-gX4T1.cjs +196 -175
  383. package/dist/tracked-BTHok3Dl.cjs +196 -175
  384. package/dist/tracked-BTbFkFeM.js +212 -0
  385. package/dist/tracked-BTbFkFeM.js.map +1 -0
  386. package/dist/tracked-BU_OBWqM.cjs +242 -0
  387. package/dist/tracked-BU_OBWqM.cjs.map +1 -0
  388. package/dist/tracked-BfctH2es.cjs +242 -0
  389. package/dist/tracked-BfctH2es.cjs.map +1 -0
  390. package/dist/tracked-BhQtzUhZ.js +212 -0
  391. package/dist/tracked-BhQtzUhZ.js.map +1 -0
  392. package/dist/tracked-BnqrYXiO.js +212 -0
  393. package/dist/tracked-BnqrYXiO.js.map +1 -0
  394. package/dist/tracked-BtgFOGup.js +212 -0
  395. package/dist/tracked-BtgFOGup.js.map +1 -0
  396. package/dist/tracked-C3nIS4J7.cjs +242 -0
  397. package/dist/tracked-C3nIS4J7.cjs.map +1 -0
  398. package/dist/tracked-C52awNV9.js +197 -0
  399. package/dist/tracked-C52awNV9.js.map +1 -0
  400. package/dist/tracked-CGzduF2m.js +212 -0
  401. package/dist/tracked-CGzduF2m.js.map +1 -0
  402. package/dist/tracked-CK_-ixtX.cjs +227 -0
  403. package/dist/tracked-CK_-ixtX.cjs.map +1 -0
  404. package/dist/tracked-CLlvURln.js +212 -0
  405. package/dist/tracked-CLlvURln.js.map +1 -0
  406. package/dist/tracked-CgHWmuGC.cjs +242 -0
  407. package/dist/tracked-CgHWmuGC.cjs.map +1 -0
  408. package/dist/tracked-CoAlC8fs.js +171 -151
  409. package/dist/tracked-D3Xjm1H1.cjs +242 -0
  410. package/dist/tracked-D3Xjm1H1.cjs.map +1 -0
  411. package/dist/tracked-DB6yMV5F.js +212 -0
  412. package/dist/tracked-DB6yMV5F.js.map +1 -0
  413. package/dist/tracked-DBn-bs_G.js +171 -151
  414. package/dist/tracked-DMBTDF0P.js +171 -151
  415. package/dist/tracked-DN3h3Rp1.js +197 -0
  416. package/dist/tracked-DN3h3Rp1.js.map +1 -0
  417. package/dist/tracked-DOGh1Q5Z.cjs +242 -0
  418. package/dist/tracked-DOGh1Q5Z.cjs.map +1 -0
  419. package/dist/tracked-DUkp4zve.cjs +227 -0
  420. package/dist/tracked-DUkp4zve.cjs.map +1 -0
  421. package/dist/tracked-D_ou7mYG.js +212 -0
  422. package/dist/tracked-D_ou7mYG.js.map +1 -0
  423. package/dist/tracked-Dcu6EATB.js +171 -151
  424. package/dist/tracked-GvAJQVAI.cjs +227 -196
  425. package/dist/tracked-O2lv-kJV.cjs +242 -0
  426. package/dist/tracked-O2lv-kJV.cjs.map +1 -0
  427. package/dist/tracked-WF6aXuAo.js +186 -162
  428. package/dist/tracked-d_sQWU3c.cjs +196 -175
  429. package/dist/tracked-n9TMK-30.cjs +196 -175
  430. package/dist/tracked-njU-_pVa.cjs +242 -0
  431. package/dist/tracked-njU-_pVa.cjs.map +1 -0
  432. package/dist/tracked-zAgmKIlC.js +212 -0
  433. package/dist/tracked-zAgmKIlC.js.map +1 -0
  434. package/dist/tracking/dependency-manager.d.ts +33 -29
  435. package/dist/tracking/index.d.ts +16 -1
  436. package/dist/tracking/iteration-perf.bench.d.ts +1 -0
  437. package/dist/tracking/path-utils.d.ts +18 -1
  438. package/dist/tracking/resolve-dependencies.d.ts +3 -1
  439. package/dist/tracking/tracked.d.ts +37 -34
  440. package/dist/tracking/tracking-proxy.d.ts +94 -47
  441. package/dist/tracking.cjs +12 -9
  442. package/dist/tracking.js +32 -2
  443. package/dist/types/utilities.d.ts +15 -3
  444. package/dist/types.cjs +1 -1
  445. package/dist/types.js +1 -1
  446. package/dist/utils/static-props.d.ts +23 -0
  447. package/dist/utils/structural-key.d.ts +14 -0
  448. package/dist/watch/watch.d.ts +1 -1
  449. package/dist/watch-BpwaUL8r.cjs +68 -0
  450. package/dist/watch-BpwaUL8r.cjs.map +1 -0
  451. package/dist/watch-DWCqXllW.js +57 -0
  452. package/dist/watch-DWCqXllW.js.map +1 -0
  453. package/dist/watch-entry.cjs +3 -6
  454. package/dist/watch-entry.d.cts +1 -3
  455. package/dist/watch-entry.d.ts +1 -3
  456. package/dist/watch-entry.js +2 -2
  457. package/package.json +4 -14
@@ -1,156 +1,126 @@
1
+ import type { PathSet } from '@dirtytalk/structural';
1
2
  import type { HydrationStatus, StateContainer } from '../core/StateContainer';
2
- /**
3
- * Metadata information about a state container instance for debugging and inspection
4
- */
5
3
  export interface InstanceMetadata {
6
- /** Unique instance identifier */
7
4
  id: string;
8
- /** Name of the state container class */
9
5
  className: string;
10
- /** Whether the instance has been disposed */
11
6
  isDisposed: boolean;
12
- /** Display name for the instance */
13
7
  name: string;
14
- /** When state last changed (milliseconds) */
15
- lastStateChangeTimestamp: number;
16
- /** Current state value */
17
8
  state: any;
18
- /** Timestamp when instance was created (milliseconds) */
19
9
  createdAt: number;
20
- /** Stack trace from when instance was created (for debugging) */
21
- callstack?: string;
22
- /** Stack trace showing where the instance was first created (e.g. which useBloc/ensure call) */
23
- createdFrom?: string;
24
- /** Previous state value */
25
10
  previousState?: any;
26
- /** Current state value */
27
11
  currentState?: any;
28
- /** Current hydration status */
29
12
  hydrationStatus: HydrationStatus;
30
- /** Whether hydration completed successfully */
31
13
  isHydrated: boolean;
32
- /** Hydration error, if present */
33
14
  hydrationError?: Error;
34
- /** Whether state changed while hydration was pending */
35
15
  changedWhileHydrating: boolean;
16
+ /** Args passed at acquire time; keys instance identity. */
17
+ args?: unknown;
36
18
  }
37
19
  /**
38
- * Safe context API provided to plugins for accessing registry data
20
+ * Per-event context delivered to plugin hooks.
21
+ *
22
+ * Per Decision 6 (C2 migration): `PluginContext` is per-container — it
23
+ * identifies the bloc, not the event. Per-event data (e.g. the changed
24
+ * `PathSet`) is passed via dedicated method arguments, never via the
25
+ * context object.
26
+ *
27
+ * The `container` field is the focal bloc for the event. For `onInstall`
28
+ * (which fires once at install time, not bound to any container) the
29
+ * `container` field is `undefined`.
39
30
  */
40
31
  export interface PluginContext {
41
32
  /**
42
- * Get metadata for a specific instance
43
- */
44
- getInstanceMetadata(instance: StateContainer<any>): InstanceMetadata;
45
- /**
46
- * Get current state from a container
33
+ * The container this event is about. `undefined` only for `onInstall`,
34
+ * which fires once at plugin install time before any container is known.
47
35
  */
36
+ container: StateContainer<any, any, any> | undefined;
37
+ getInstanceMetadata(instance: StateContainer<any, any, any>): InstanceMetadata;
48
38
  getState<S extends object = any>(instance: StateContainer<S>): S;
49
- /**
50
- * Get hydration status from a container
51
- */
52
- getHydrationStatus(instance: StateContainer<any>): HydrationStatus;
53
- /**
54
- * Mark a container as hydrating
55
- */
56
- startHydration(instance: StateContainer<any>): void;
57
- /**
58
- * Apply hydrated state if the container has not been mutated while hydrating
59
- * @returns true when the state was applied
60
- */
39
+ getHydrationStatus(instance: StateContainer<any, any, any>): HydrationStatus;
40
+ startHydration(instance: StateContainer<any, any, any>): void;
61
41
  applyHydratedState<S extends object = any>(instance: StateContainer<S>, state: S): boolean;
62
- /**
63
- * Mark hydration as finished
64
- */
65
- finishHydration(instance: StateContainer<any>): void;
66
- /**
67
- * Mark hydration as failed
68
- */
69
- failHydration(instance: StateContainer<any>, error: Error): void;
70
- /**
71
- * Wait for hydration to settle
72
- */
73
- waitForHydration(instance: StateContainer<any>): Promise<void>;
74
- /**
75
- * Get all instances of a specific type
76
- */
77
- queryInstances<T extends StateContainer<any>>(typeClass: new (...args: any[]) => T): T[];
78
- /**
79
- * Get all registered state container types
80
- */
81
- getAllTypes(): Array<new (...args: any[]) => StateContainer<any>>;
82
- /**
83
- * Get registry statistics
84
- */
42
+ finishHydration(instance: StateContainer<any, any, any>): void;
43
+ failHydration(instance: StateContainer<any, any, any>, error: Error): void;
44
+ waitForHydration(instance: StateContainer<any, any, any>): Promise<void>;
45
+ queryInstances<T extends StateContainer<any, any, any>>(typeClass: new (...args: any[]) => T): T[];
46
+ getAllTypes(): Array<new (...args: any[]) => StateContainer<any, any, any>>;
85
47
  getStats(): {
86
48
  registeredTypes: number;
87
49
  totalInstances: number;
88
50
  typeBreakdown: Record<string, number>;
89
51
  };
90
- /**
91
- * Get all active reference IDs for an instance by its instanceId string.
92
- * Useful for debugging which callers are holding an instance alive.
93
- */
94
52
  getRefIds(instanceId: string): string[];
95
53
  }
96
54
  /**
97
- * Interface for plugins that extend BlaC functionality
55
+ * BlaC plugin hook surface.
56
+ *
57
+ * Per C2 (Decision 6), state-change events carry the `PathSet` of paths
58
+ * that changed in the flush. Lifecycle events (`onCreated`, `onDestroyed`)
59
+ * are not tied to a state change and so do not carry `paths`.
60
+ *
61
+ * Hook firing model:
62
+ * - `onCreated` fires synchronously when a container is first acquired.
63
+ * - `onStateChange` fires once per channel flush (microtask-coalesced).
64
+ * `prev` is the state before the first emit of the flush; `next` is the
65
+ * state at flush time; `paths` is the set of paths marked during the flush.
66
+ * - `onDestroyed` fires synchronously when a container is disposed (after
67
+ * its system 'dispose' event).
68
+ *
69
+ * Legacy ref/deps hooks (`onRefAcquired`, `onRefReleased`, `onDepsChanged`)
70
+ * are retained for devtools-connect compatibility — they are orthogonal to
71
+ * the C2 event payload contract.
98
72
  */
99
73
  export interface BlacPlugin {
100
- /** Unique plugin identifier */
101
74
  readonly name: string;
102
- /** Plugin version identifier */
103
75
  readonly version: string;
104
76
  /**
105
- * Called when the plugin is installed (optional)
77
+ * Fires once when the plugin is installed. `ctx.container` is `undefined`
78
+ * here — `onInstall` is global to the plugin, not per-container.
106
79
  */
107
- onInstall?(context: PluginContext): void;
80
+ onInstall?(ctx: PluginContext): void;
81
+ onUninstall?(): void;
108
82
  /**
109
- * Called when the plugin is uninstalled
83
+ * Fires when a container is first created and acquired.
84
+ * `ctx.container` is the new container.
110
85
  */
111
- onUninstall?(): void;
86
+ onCreated?(ctx: PluginContext): void;
112
87
  /**
113
- * Called when a state container instance is created
88
+ * Fires once per channel flush with the changed `PathSet`.
89
+ * `paths` may be `ALL_PATHS` when the change spans every path.
90
+ * `prev`/`next` are the coalesced before/after states for the flush.
114
91
  */
115
- onInstanceCreated?(instance: StateContainer<any>, context: PluginContext): void;
92
+ onStateChange?<S extends object = any>(ctx: PluginContext, prev: S, next: S, paths: PathSet): void;
116
93
  /**
117
- * Called when state changes in a container instance
94
+ * Fires when a container is disposed.
95
+ * `ctx.container` is the disposed container (still queryable, but its
96
+ * `isDisposed` is `true` by the time this fires).
118
97
  */
119
- onStateChanged?<S extends object = any>(instance: StateContainer<S>, previousState: S, currentState: S, callstack: string | undefined, context: PluginContext): void;
98
+ onDestroyed?(ctx: PluginContext): void;
120
99
  /**
121
- * Called when a state container instance is disposed
100
+ * Fires when a container's hydration status transitions.
122
101
  */
123
- onInstanceDisposed?(instance: StateContainer<any>, context: PluginContext): void;
102
+ onHydrationChange?(ctx: PluginContext, status: HydrationStatus, previousStatus: HydrationStatus): void;
124
103
  /**
125
- * Called when a reference is acquired on an instance
104
+ * @internal Devtools-only — fires when a named ref is acquired.
105
+ * Not part of the C2 event payload contract.
126
106
  */
127
- onRefAcquired?(instance: StateContainer<any>, refId: string, context: PluginContext): void;
107
+ onRefAcquired?(ctx: PluginContext, refId: string): void;
128
108
  /**
129
- * Called when a reference is released from an instance
109
+ * @internal Devtools-only — fires when a named ref is released.
110
+ * Not part of the C2 event payload contract.
130
111
  */
131
- onRefReleased?(instance: StateContainer<any>, refId: string, context: PluginContext): void;
132
- }
133
- /**
134
- * Plugin interface variant that requires mandatory onInstall hook
135
- */
136
- export interface BlacPluginWithInit extends BlacPlugin {
112
+ onRefReleased?(ctx: PluginContext, refId: string): void;
137
113
  /**
138
- * Required initialization hook called when plugin is installed
114
+ * @internal Devtools-only — fires when the merged per-consumer deps view
115
+ * for a container changes.
139
116
  */
140
- onInstall(context: PluginContext): void;
117
+ onDepsChanged?(ctx: PluginContext, previousDeps: Readonly<Record<string, unknown>>, currentDeps: Readonly<Record<string, unknown>>): void;
118
+ }
119
+ export interface BlacPluginWithInit extends BlacPlugin {
120
+ onInstall(ctx: PluginContext): void;
141
121
  }
142
- /**
143
- * Configuration options for plugin installation
144
- */
145
122
  export interface PluginConfig {
146
- /** Enable or disable the plugin */
147
123
  enabled?: boolean;
148
- /** Environments where plugin runs */
149
124
  environment?: 'development' | 'production' | 'test' | 'all';
150
125
  }
151
- /**
152
- * Type guard to check if a plugin has a required onInstall hook
153
- * @param plugin - The plugin to check
154
- * @returns true if the plugin implements BlacPluginWithInit
155
- */
156
126
  export declare function hasInitHook(plugin: BlacPlugin): plugin is BlacPluginWithInit;
@@ -2,7 +2,25 @@ import type { StateContainerRegistry } from '../core/StateContainerRegistry';
2
2
  import type { BlacPlugin, PluginConfig } from './BlacPlugin';
3
3
  /**
4
4
  * Manages plugin lifecycle for the BlaC state management system.
5
- * Plugins receive notifications about state container lifecycle events.
5
+ *
6
+ * The manager hooks into two surfaces:
7
+ *
8
+ * 1. **Registry lifecycle events** (`created`, `disposed`, `refAcquired`,
9
+ * `refReleased`, `depsChanged`) — synchronous, fired by the registry.
10
+ *
11
+ * 2. **Per-container channel flushes** — microtask-coalesced. For each
12
+ * container, the manager subscribes once at create-time with
13
+ * `ALL_PATHS` interest and stashes `prevState`. On every flush it
14
+ * captures the new state + the changed `PathSet` and dispatches
15
+ * `onStateChange(ctx, prev, next, paths)` to every enabled plugin.
16
+ *
17
+ * The `ALL_PATHS` subscription cost: plugins counted as a consumer with
18
+ * `ALL_PATHS` interest will defeat the single-consumer-skip optimization
19
+ * in `StructuralContainer`. This is the intended trade-off — devtools /
20
+ * persist plugins genuinely want every change, and stateful plugins
21
+ * (logging) can decode `paths` via `container.interner.lookup(id)` to log
22
+ * only relevant fields. Plugins that want low overhead should remain
23
+ * uninstalled or environment-gated.
6
24
  *
7
25
  * @example
8
26
  * ```ts
@@ -13,6 +31,13 @@ import type { BlacPlugin, PluginConfig } from './BlacPlugin';
13
31
  export declare class PluginManager {
14
32
  private plugins;
15
33
  private registry;
34
+ private lifecycleUnsubscribers;
35
+ /**
36
+ * Per-container channel-bridge bookkeeping. Subscribed at `created`,
37
+ * torn down at `disposed`. Holds the rolling `prevState` snapshot the
38
+ * manager hands plugins on each flush.
39
+ */
40
+ private containerBridges;
16
41
  /**
17
42
  * Create a new PluginManager
18
43
  * @param registry - The StateContainerRegistry to monitor for lifecycle events
@@ -52,18 +77,55 @@ export declare class PluginManager {
52
77
  * Uninstall all plugins
53
78
  */
54
79
  clear(): void;
80
+ destroy(): void;
55
81
  /**
56
- * Setup lifecycle hooks to notify plugins
82
+ * Wire registry lifecycle events into plugin dispatch.
83
+ *
84
+ * `onStateChange` is NOT wired through `registry.on('stateChanged', …)` —
85
+ * that event lacks the `PathSet` payload. Instead, on each `created` we
86
+ * subscribe to the container's channel directly so we get
87
+ * `(paths)` and capture `(prev, next)` via the per-container snapshot.
57
88
  */
58
89
  private setupLifecycleHooks;
59
90
  /**
60
- * Notify all plugins of a lifecycle event
91
+ * Subscribe to the container's channel with `ALL_PATHS` interest, so we
92
+ * fire on every flush. Capture `prev` from the snapshot taken on the
93
+ * previous flush (or at create-time for the first flush) and pass the
94
+ * channel's `paths` argument straight through to plugins.
95
+ *
96
+ * Per-container bookkeeping is stored in a `WeakMap` keyed by the
97
+ * container itself, so a disposed/GC'd container drops cleanly.
98
+ */
99
+ private attachStateBridge;
100
+ private detachStateBridge;
101
+ /**
102
+ * Channel-flush callback. Snapshots `next`, hands `(prev, next, paths)`
103
+ * to every enabled plugin's `onStateChange`, then updates `prevState`
104
+ * for the next flush.
105
+ *
106
+ * Note: `prev` is captured once and reused across plugins — every
107
+ * plugin sees the same `prev`/`next`/`paths` regardless of dispatch
108
+ * order, matching the "snapshot prev once per flush" invariant called
109
+ * out in the C2 spec pitfalls.
110
+ */
111
+ private dispatchStateChange;
112
+ /**
113
+ * Notify all plugins of a lifecycle event.
114
+ *
115
+ * Builds a fresh `PluginContext` per dispatch (instance becomes
116
+ * `ctx.container`), so plugins can reach the focal bloc through
117
+ * `ctx.container` per Decision 6.
61
118
  */
62
119
  private notifyPlugins;
63
120
  /**
64
- * Create plugin context with safe API access
121
+ * Build a `PluginContext` for a given focal container. The context is
122
+ * cheap to build — its methods close over `this.registry` directly —
123
+ * so we create one per dispatch rather than caching per container.
124
+ * This sidesteps the lifetime question of "when do we evict a cached
125
+ * context?" and keeps `paths`-vs-`container` lifetimes cleanly
126
+ * separated per the C2 spec.
65
127
  */
66
- private createPluginContext;
128
+ private buildContext;
67
129
  /**
68
130
  * Check if plugin should be enabled based on environment
69
131
  */
package/dist/plugins.cjs CHANGED
@@ -1,4 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_StateContainerRegistry = require("./StateContainerRegistry-mseeTqSA.cjs");
2
+ const require_StateContainerRegistry = require("./StateContainerRegistry-B4yVMYbx.cjs");
3
3
  exports.PluginManager = require_StateContainerRegistry.PluginManager;
4
4
  exports.getPluginManager = require_StateContainerRegistry.getPluginManager;
@@ -10,8 +10,8 @@
10
10
  *
11
11
  * const myPlugin: BlacPlugin = {
12
12
  * name: 'my-plugin',
13
- * onInstanceCreated(context) {
14
- * console.log('Instance created:', context.instance);
13
+ * onCreated(context) {
14
+ * console.log('Instance created:', context.container);
15
15
  * },
16
16
  * };
17
17
  *
package/dist/plugins.d.ts CHANGED
@@ -10,8 +10,8 @@
10
10
  *
11
11
  * const myPlugin: BlacPlugin = {
12
12
  * name: 'my-plugin',
13
- * onInstanceCreated(context) {
14
- * console.log('Instance created:', context.instance);
13
+ * onCreated(context) {
14
+ * console.log('Instance created:', context.container);
15
15
  * },
16
16
  * };
17
17
  *
package/dist/plugins.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as PluginManager, n as getPluginManager } from "./StateContainerRegistry-DOuGI-l5.js";
1
+ import { c as PluginManager, n as getPluginManager } from "./StateContainerRegistry-DmmzYa7S.js";
2
2
  export { PluginManager, getPluginManager };
@@ -1,2 +1,9 @@
1
- import type { StateContainerConstructor } from '../types/utilities';
2
- export declare function acquire<T extends StateContainerConstructor>(BlocClass: T, instanceKey?: string, refId?: string): InstanceType<T>;
1
+ import type { ExtractArgs, StateContainerConstructor } from '../types/utilities';
2
+ export declare function acquire<T extends StateContainerConstructor>(BlocClass: T, instanceKey?: string, refId?: string, args?: ExtractArgs<T>): InstanceType<T>;
3
+ /**
4
+ * Resolve the storage key an instance would be acquired under, given an
5
+ * (optional) explicit key and construction args. Callers that both acquire and
6
+ * release (e.g. `@blac/react` `useBloc`) must use this once and pass the same
7
+ * resolved key to both, so the ref is dropped under the key it was taken.
8
+ */
9
+ export declare function resolveInstanceKey<T extends StateContainerConstructor>(BlocClass: T, instanceKey: string | undefined, args?: ExtractArgs<T>): string;
@@ -1,2 +1,2 @@
1
- import type { StateContainerConstructor } from '../types/utilities';
2
- export declare function ensure<T extends StateContainerConstructor>(BlocClass: T, instanceKey?: string): InstanceType<T>;
1
+ import type { ExtractArgs, StateContainerConstructor } from '../types/utilities';
2
+ export declare function ensure<T extends StateContainerConstructor>(BlocClass: T, instanceKey?: string, args?: ExtractArgs<T>): InstanceType<T>;
@@ -1,4 +1,4 @@
1
- export { acquire } from './acquire';
1
+ export { acquire, resolveInstanceKey } from './acquire';
2
2
  export { borrow, borrowSafe } from './borrow';
3
3
  export { ensure } from './ensure';
4
4
  export { release } from './release';