@blac/core 2.0.13 → 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 (379) 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 +269 -230
  5. package/dist/Cubit-BC70gaiA.js +453 -0
  6. package/dist/Cubit-BC70gaiA.js.map +1 -0
  7. package/dist/Cubit-BOgUZva7.js +342 -266
  8. package/dist/Cubit-BOxMvpfc.js +273 -232
  9. package/dist/Cubit-BTznt8zg.js +1 -1
  10. package/dist/Cubit-BogJXkLm.js +260 -225
  11. package/dist/Cubit-C-8R_8db.cjs +475 -0
  12. package/dist/Cubit-C-8R_8db.cjs.map +1 -0
  13. package/dist/Cubit-C3Mw3EoO.cjs +401 -0
  14. package/dist/Cubit-C3Mw3EoO.cjs.map +1 -0
  15. package/dist/Cubit-CO8Fr72L.cjs +447 -0
  16. package/dist/Cubit-CO8Fr72L.cjs.map +1 -0
  17. package/dist/Cubit-COfHT1Bm.cjs +300 -259
  18. package/dist/Cubit-CROWjjs9.js +481 -0
  19. package/dist/Cubit-CROWjjs9.js.map +1 -0
  20. package/dist/Cubit-CWP8Ddzx.cjs +510 -0
  21. package/dist/Cubit-CWP8Ddzx.cjs.map +1 -0
  22. package/dist/Cubit-CXxh9iol.js +284 -242
  23. package/dist/Cubit-CYOWfzQt.cjs +297 -254
  24. package/dist/Cubit-CZaf_fp4.cjs +1 -1
  25. package/dist/Cubit-C_dUEUdd.cjs +359 -286
  26. package/dist/Cubit-C_rxRCTN.cjs +523 -0
  27. package/dist/Cubit-C_rxRCTN.cjs.map +1 -0
  28. package/dist/Cubit-CcKgMEBO.js +281 -239
  29. package/dist/Cubit-CfT6Y1jl.js +328 -280
  30. package/dist/Cubit-CynJruuO.js +369 -0
  31. package/dist/Cubit-CynJruuO.js.map +1 -0
  32. package/dist/Cubit-D2vQ6nMb.js +342 -266
  33. package/dist/Cubit-D7jOZCoZ.js +342 -266
  34. package/dist/Cubit-D9j3IGPc.cjs +523 -0
  35. package/dist/Cubit-D9j3IGPc.cjs.map +1 -0
  36. package/dist/Cubit-DKEY9WYq.cjs +276 -240
  37. package/dist/Cubit-DMV_0TCp.js +481 -0
  38. package/dist/Cubit-DMV_0TCp.js.map +1 -0
  39. package/dist/Cubit-DP5DXPUK.js +342 -266
  40. package/dist/Cubit-DRFkzD2h.js +426 -0
  41. package/dist/Cubit-DRFkzD2h.js.map +1 -0
  42. package/dist/Cubit-DbnhTUaZ.cjs +359 -286
  43. package/dist/Cubit-DrqG3SP3.cjs +349 -300
  44. package/dist/Cubit-DsDkCo42.cjs +292 -250
  45. package/dist/Cubit-DwRw1E9D.cjs +289 -247
  46. package/dist/Cubit-Dw_kFBgc.js +1 -1
  47. package/dist/Cubit-KiXZCubP.cjs +1 -1
  48. package/dist/Cubit-Ksj7G4uR.js +342 -266
  49. package/dist/Cubit-MkjbpcPf.cjs +359 -286
  50. package/dist/Cubit-NRhvdDQ6.js +279 -239
  51. package/dist/Cubit-PMTXxI_u.js +1 -1
  52. package/dist/Cubit-VJuu2tt9.js +481 -0
  53. package/dist/Cubit-VJuu2tt9.js.map +1 -0
  54. package/dist/Cubit-jz922NKf.cjs +300 -257
  55. package/dist/Cubit-kU5_4jgC.cjs +359 -286
  56. package/dist/StateContainerRegistry-B4yVMYbx.cjs +1057 -0
  57. package/dist/StateContainerRegistry-B4yVMYbx.cjs.map +1 -0
  58. package/dist/StateContainerRegistry-BAcxouCu.js +683 -615
  59. package/dist/StateContainerRegistry-BK57H92E.js +701 -630
  60. package/dist/StateContainerRegistry-BRBATSrx.cjs +1030 -0
  61. package/dist/StateContainerRegistry-BRBATSrx.cjs.map +1 -0
  62. package/dist/StateContainerRegistry-BgBIKcQF.js +956 -0
  63. package/dist/StateContainerRegistry-BgBIKcQF.js.map +1 -0
  64. package/dist/StateContainerRegistry-BglEhqdA.js +669 -606
  65. package/dist/StateContainerRegistry-BhcnG0DF.js +625 -562
  66. package/dist/StateContainerRegistry-BpO5t-0i.js +642 -580
  67. package/dist/StateContainerRegistry-BqS-wpb_.js +957 -0
  68. package/dist/StateContainerRegistry-BqS-wpb_.js.map +1 -0
  69. package/dist/StateContainerRegistry-BrEGYPZT.cjs +1029 -0
  70. package/dist/StateContainerRegistry-BrEGYPZT.cjs.map +1 -0
  71. package/dist/StateContainerRegistry-Bxfne4A7.cjs +908 -0
  72. package/dist/StateContainerRegistry-Bxfne4A7.cjs.map +1 -0
  73. package/dist/StateContainerRegistry-C0E7vsgy.js +758 -0
  74. package/dist/StateContainerRegistry-C0E7vsgy.js.map +1 -0
  75. package/dist/StateContainerRegistry-C0I77Ndz.cjs +920 -0
  76. package/dist/StateContainerRegistry-C0I77Ndz.cjs.map +1 -0
  77. package/dist/StateContainerRegistry-CDH9mnQS.cjs +668 -614
  78. package/dist/StateContainerRegistry-CTOXUf75.cjs +695 -640
  79. package/dist/StateContainerRegistry-CX2CBOmv.cjs +739 -679
  80. package/dist/StateContainerRegistry-CXnnf2-l.js +867 -0
  81. package/dist/StateContainerRegistry-CXnnf2-l.js.map +1 -0
  82. package/dist/StateContainerRegistry-CehuIpK_.cjs +811 -0
  83. package/dist/StateContainerRegistry-CehuIpK_.cjs.map +1 -0
  84. package/dist/StateContainerRegistry-Ci0ajc5g.js +680 -612
  85. package/dist/StateContainerRegistry-Ck2-XmT_.js +587 -527
  86. package/dist/StateContainerRegistry-D1lVJFGL.cjs +706 -646
  87. package/dist/StateContainerRegistry-DC4N73O6.js +632 -569
  88. package/dist/StateContainerRegistry-DOuGI-l5.js +645 -582
  89. package/dist/StateContainerRegistry-DT66lr3I.cjs +651 -596
  90. package/dist/StateContainerRegistry-DmmzYa7S.js +974 -0
  91. package/dist/StateContainerRegistry-DmmzYa7S.js.map +1 -0
  92. package/dist/StateContainerRegistry-Upsrlg9G.cjs +709 -649
  93. package/dist/StateContainerRegistry-WznfcA-Q.js +855 -0
  94. package/dist/StateContainerRegistry-WznfcA-Q.js.map +1 -0
  95. package/dist/StateContainerRegistry-Yph6UCA_.js +637 -569
  96. package/dist/StateContainerRegistry-mseeTqSA.cjs +671 -616
  97. package/dist/StateContainerRegistry-pRNxHNFD.cjs +658 -603
  98. package/dist/StateContainerRegistry-vXMWtG7J.cjs +613 -561
  99. package/dist/StateContainerRegistry-v_prqMcI.cjs +663 -603
  100. package/dist/branded-BSeA_mZO.cjs.map +1 -1
  101. package/dist/branded-DCqi3De1.cjs +11 -11
  102. package/dist/branded-DwtzSsg0.js.map +1 -1
  103. package/dist/branded-Max3xOTA.js +6 -6
  104. package/dist/config-0ZD9i3wy.js +16 -0
  105. package/dist/config-0ZD9i3wy.js.map +1 -0
  106. package/dist/config-B3NIwDQv.cjs +20 -20
  107. package/dist/config-BKGHop0V.js +5 -5
  108. package/dist/config-BKoaAlmb.js +5 -5
  109. package/dist/config-BPj08-8h.cjs +32 -0
  110. package/dist/config-BPj08-8h.cjs.map +1 -0
  111. package/dist/config-BR0Xy-Tn.cjs +20 -20
  112. package/dist/config-B_4xXpvK.cjs +32 -0
  113. package/dist/config-B_4xXpvK.cjs.map +1 -0
  114. package/dist/config-BflrQM4_.cjs +32 -0
  115. package/dist/config-BflrQM4_.cjs.map +1 -0
  116. package/dist/config-BzObBsk2.cjs +32 -0
  117. package/dist/config-BzObBsk2.cjs.map +1 -0
  118. package/dist/config-C0yumL1H.cjs +32 -0
  119. package/dist/config-C0yumL1H.cjs.map +1 -0
  120. package/dist/config-C8xqVHTf.js +16 -0
  121. package/dist/config-C8xqVHTf.js.map +1 -0
  122. package/dist/config-CCUhIYIF.js +5 -5
  123. package/dist/config-CGo__MAt.js +16 -0
  124. package/dist/config-CGo__MAt.js.map +1 -0
  125. package/dist/config-CQH9fTY-.cjs +20 -20
  126. package/dist/config-CR_Bz7RD.js +5 -5
  127. package/dist/config-CTOa-yPN.cjs +20 -20
  128. package/dist/config-Cd7Q-B4g.js +16 -0
  129. package/dist/config-Cd7Q-B4g.js.map +1 -0
  130. package/dist/config-CmDEX-1o.js +16 -0
  131. package/dist/config-CmDEX-1o.js.map +1 -0
  132. package/dist/config-CoNMTnMA.cjs +32 -0
  133. package/dist/config-CoNMTnMA.cjs.map +1 -0
  134. package/dist/config-Cwj8-C1J.js +5 -5
  135. package/dist/config-D3jisfdj.cjs +20 -20
  136. package/dist/config-D4GifZQ4.js +5 -5
  137. package/dist/config-DDrSQGpQ.cjs +20 -20
  138. package/dist/config-DEcslxan.cjs +20 -20
  139. package/dist/config-DMNZ2YLV.cjs +20 -20
  140. package/dist/config-De9oQ6Ki.js +5 -5
  141. package/dist/config-DoHx0Xsl.js +16 -0
  142. package/dist/config-DoHx0Xsl.js.map +1 -0
  143. package/dist/config-DokTzpr8.cjs +20 -20
  144. package/dist/config-DslYBm4Z.js +5 -5
  145. package/dist/config-H6FAqbW4.cjs +20 -20
  146. package/dist/config-Yp645dGK.js +5 -5
  147. package/dist/config-ispAzOZV.js +5 -5
  148. package/dist/config.d.cts +72 -0
  149. package/dist/config.d.ts +72 -0
  150. package/dist/constants.d.cts +13 -0
  151. package/dist/constants.d.ts +13 -0
  152. package/dist/core/Cubit.d.ts +14 -4
  153. package/dist/core/StateContainer.d.ts +111 -11
  154. package/dist/core/StateContainerRegistry.d.ts +55 -11
  155. package/dist/core/symbols.d.ts +26 -0
  156. package/dist/debug.cjs +3 -3
  157. package/dist/debug.js +3 -3
  158. package/dist/decorators/blac.d.ts +17 -0
  159. package/dist/ensure-9VEq5H0L.js +3 -3
  160. package/dist/ensure-BB6xHQAF.cjs +14 -0
  161. package/dist/ensure-BB6xHQAF.cjs.map +1 -0
  162. package/dist/ensure-BNDfTzqg.cjs +8 -8
  163. package/dist/ensure-BVCnjU7r.js +343 -267
  164. package/dist/ensure-BbzGXjep.cjs +8 -8
  165. package/dist/ensure-BlIaQai6.js +9 -0
  166. package/dist/ensure-BlIaQai6.js.map +1 -0
  167. package/dist/ensure-Bm3oHxga.js +9 -0
  168. package/dist/ensure-Bm3oHxga.js.map +1 -0
  169. package/dist/ensure-C3eIRs6e.cjs +8 -8
  170. package/dist/ensure-CJZL7bcA.cjs +365 -292
  171. package/dist/ensure-CN6unBOe.cjs +8 -8
  172. package/dist/ensure-CU-B1ywv.js +3 -3
  173. package/dist/ensure-CWKzeno7.js +3 -3
  174. package/dist/ensure-CkENsuQ9.js +9 -0
  175. package/dist/ensure-CkENsuQ9.js.map +1 -0
  176. package/dist/ensure-Cm-4_LSh.cjs +14 -0
  177. package/dist/ensure-Cm-4_LSh.cjs.map +1 -0
  178. package/dist/ensure-Cqex5r1P.cjs +14 -0
  179. package/dist/ensure-Cqex5r1P.cjs.map +1 -0
  180. package/dist/ensure-Cv5AbNGZ.js +9 -0
  181. package/dist/ensure-Cv5AbNGZ.js.map +1 -0
  182. package/dist/ensure-D63lEMUK.cjs +8 -8
  183. package/dist/ensure-DGEtPU9A.cjs +8 -8
  184. package/dist/ensure-DM3qb336.cjs +14 -0
  185. package/dist/ensure-DM3qb336.cjs.map +1 -0
  186. package/dist/ensure-DME-_T0j.cjs +8 -8
  187. package/dist/ensure-DWd0GCYB.js +3 -3
  188. package/dist/ensure-DamKOP6q.cjs +8 -8
  189. package/dist/ensure-Dcfptl-A.js +9 -0
  190. package/dist/ensure-Dcfptl-A.js.map +1 -0
  191. package/dist/ensure-Def-EBWG.js +3 -3
  192. package/dist/ensure-DnHL5QiQ.cjs +14 -0
  193. package/dist/ensure-DnHL5QiQ.cjs.map +1 -0
  194. package/dist/ensure-Dr7I78Ku.cjs +8 -8
  195. package/dist/ensure-SLVdGd5b.js +3 -3
  196. package/dist/ensure-Sb92MCXu.js +3 -3
  197. package/dist/ensure-gFlvevGm.cjs +14 -0
  198. package/dist/ensure-gFlvevGm.cjs.map +1 -0
  199. package/dist/ensure-l2-H7S5W.js +3 -3
  200. package/dist/ensure-mkL-3qh8.js +9 -0
  201. package/dist/ensure-mkL-3qh8.js.map +1 -0
  202. package/dist/ensure-n80crSlX.js +3 -3
  203. package/dist/ensure-nCxg7MCN.js +3 -3
  204. package/dist/ensure-vS71MV4q.cjs +8 -8
  205. package/dist/index.cjs +37 -14
  206. package/dist/index.cjs.map +1 -1
  207. package/dist/index.d.cts +14 -4
  208. package/dist/index.d.ts +14 -4
  209. package/dist/index.js +23 -10
  210. package/dist/index.js.map +1 -1
  211. package/dist/management-6oQbmf0z.js +41 -0
  212. package/dist/management-6oQbmf0z.js.map +1 -0
  213. package/dist/management-B46QwA9Y.js +20 -11
  214. package/dist/management-B9yrRpeg.js +41 -0
  215. package/dist/management-B9yrRpeg.js.map +1 -0
  216. package/dist/management-BCKTEZ8Q.js +20 -11
  217. package/dist/management-BbMzdXbT.js +41 -0
  218. package/dist/management-BbMzdXbT.js.map +1 -0
  219. package/dist/management-Bg652agq.js +20 -11
  220. package/dist/management-BnedF5ZD.cjs +50 -50
  221. package/dist/management-BoUa99eB.cjs +79 -0
  222. package/dist/management-BoUa99eB.cjs.map +1 -0
  223. package/dist/management-C4SHcrJm.cjs +79 -0
  224. package/dist/management-C4SHcrJm.cjs.map +1 -0
  225. package/dist/management-CK-GL3wY.js +20 -11
  226. package/dist/management-CPhgY8OE.js +41 -0
  227. package/dist/management-CPhgY8OE.js.map +1 -0
  228. package/dist/management-CU_V3LIP.js +20 -11
  229. package/dist/management-CUwXDSi9.cjs +79 -0
  230. package/dist/management-CUwXDSi9.cjs.map +1 -0
  231. package/dist/management-CaqiyNzB.js +20 -11
  232. package/dist/management-Cin-JvYe.js +20 -11
  233. package/dist/management-ClaXym0F.cjs +50 -50
  234. package/dist/management-DL0Uzsoz.js +20 -11
  235. package/dist/management-DLdAQfqk.cjs +79 -0
  236. package/dist/management-DLdAQfqk.cjs.map +1 -0
  237. package/dist/management-DMZ8qpwr.cjs +50 -50
  238. package/dist/management-DTzcC6aD.cjs +79 -0
  239. package/dist/management-DTzcC6aD.cjs.map +1 -0
  240. package/dist/management-DYLNyj9p.cjs +50 -50
  241. package/dist/management-Dag9u4t6.cjs +50 -50
  242. package/dist/management-DbMRdDBo.cjs +50 -50
  243. package/dist/management-DfnDAKmP.js +41 -0
  244. package/dist/management-DfnDAKmP.js.map +1 -0
  245. package/dist/management-DjBU1gtb.cjs +50 -50
  246. package/dist/management-DwCozsY8.js +20 -11
  247. package/dist/management-H4m3ciJO.js +32 -0
  248. package/dist/management-H4m3ciJO.js.map +1 -0
  249. package/dist/management-Xo3A6Za3.cjs +79 -0
  250. package/dist/management-Xo3A6Za3.cjs.map +1 -0
  251. package/dist/management-ZU2YzOkr.js +18 -10
  252. package/dist/management-baPDwA9n.cjs +50 -50
  253. package/dist/management-jQGCvZNN.cjs +44 -44
  254. package/dist/management-ry_KteFK.cjs +50 -50
  255. package/dist/plugin/BlacPlugin.d.ts +89 -15
  256. package/dist/plugin/PluginManager.d.ts +65 -5
  257. package/dist/plugins.cjs +1 -1
  258. package/dist/plugins.d.cts +2 -2
  259. package/dist/plugins.d.ts +2 -2
  260. package/dist/plugins.js +1 -1
  261. package/dist/registry/acquire.d.ts +9 -2
  262. package/dist/registry/ensure.d.ts +2 -2
  263. package/dist/registry/index.d.ts +1 -1
  264. package/dist/resolve-dependencies-B2QggQAi.js +641 -558
  265. package/dist/resolve-dependencies-B6JDXvpr.js +651 -566
  266. package/dist/resolve-dependencies-BAKAoD0U.js +878 -0
  267. package/dist/resolve-dependencies-BAKAoD0U.js.map +1 -0
  268. package/dist/resolve-dependencies-BFZQq60Y.cjs +724 -666
  269. package/dist/resolve-dependencies-BGafS3Ww.js +643 -561
  270. package/dist/resolve-dependencies-BHd34gS3.cjs +724 -666
  271. package/dist/resolve-dependencies-BNeayhbQ.cjs +732 -671
  272. package/dist/resolve-dependencies-BWEMpuDy.js +641 -558
  273. package/dist/resolve-dependencies-BiWkW2eS.js +643 -561
  274. package/dist/resolve-dependencies-BjxCztYD.js +739 -0
  275. package/dist/resolve-dependencies-BjxCztYD.js.map +1 -0
  276. package/dist/resolve-dependencies-BlyBV0hB.cjs +969 -0
  277. package/dist/resolve-dependencies-BlyBV0hB.cjs.map +1 -0
  278. package/dist/resolve-dependencies-By26rT_i.js +651 -566
  279. package/dist/resolve-dependencies-C9Kf7AzY.cjs +724 -666
  280. package/dist/resolve-dependencies-CTzV1txG.js +643 -561
  281. package/dist/resolve-dependencies-CWjuGHiF.cjs +969 -0
  282. package/dist/resolve-dependencies-CWjuGHiF.cjs.map +1 -0
  283. package/dist/resolve-dependencies-ClSsP0DJ.cjs +722 -663
  284. package/dist/resolve-dependencies-D0vTzZgs.js +643 -561
  285. package/dist/resolve-dependencies-D2WnZMF-.cjs +724 -666
  286. package/dist/resolve-dependencies-DCBLTeza.cjs +969 -0
  287. package/dist/resolve-dependencies-DCBLTeza.cjs.map +1 -0
  288. package/dist/resolve-dependencies-DMlqYJR2.js +643 -561
  289. package/dist/resolve-dependencies-DP6U1EYB.cjs +840 -0
  290. package/dist/resolve-dependencies-DP6U1EYB.cjs.map +1 -0
  291. package/dist/resolve-dependencies-DSQNXvnV.cjs +724 -666
  292. package/dist/resolve-dependencies-DV3HO_uH.js +878 -0
  293. package/dist/resolve-dependencies-DV3HO_uH.js.map +1 -0
  294. package/dist/resolve-dependencies-DXwMhP0Y.js +878 -0
  295. package/dist/resolve-dependencies-DXwMhP0Y.js.map +1 -0
  296. package/dist/resolve-dependencies-DbRWlt9u.js +878 -0
  297. package/dist/resolve-dependencies-DbRWlt9u.js.map +1 -0
  298. package/dist/resolve-dependencies-DcUUva2P.cjs +724 -666
  299. package/dist/resolve-dependencies-Dd8T6TLt.cjs +724 -666
  300. package/dist/resolve-dependencies-Dfdp_DZd.cjs +732 -671
  301. package/dist/resolve-dependencies-GJ8PNyNB.cjs +969 -0
  302. package/dist/resolve-dependencies-GJ8PNyNB.cjs.map +1 -0
  303. package/dist/resolve-dependencies-KSpTt4jy.cjs +722 -663
  304. package/dist/resolve-dependencies-Nvjp4CwS.js +643 -561
  305. package/dist/resolve-dependencies-f-QUqYiL.js +643 -561
  306. package/dist/testing.cjs +27 -20
  307. package/dist/testing.cjs.map +1 -1
  308. package/dist/testing.d.cts +22 -1
  309. package/dist/testing.d.ts +22 -1
  310. package/dist/testing.js +27 -21
  311. package/dist/testing.js.map +1 -1
  312. package/dist/tracked-B77j2g9M.js +171 -151
  313. package/dist/tracked-BDVi2LKM.cjs +196 -175
  314. package/dist/tracked-BFdJCzL0.cjs +242 -0
  315. package/dist/tracked-BFdJCzL0.cjs.map +1 -0
  316. package/dist/tracked-BH-gX4T1.cjs +196 -175
  317. package/dist/tracked-BTHok3Dl.cjs +196 -175
  318. package/dist/tracked-BTbFkFeM.js +186 -166
  319. package/dist/tracked-BU_OBWqM.cjs +242 -0
  320. package/dist/tracked-BU_OBWqM.cjs.map +1 -0
  321. package/dist/tracked-BfctH2es.cjs +242 -0
  322. package/dist/tracked-BfctH2es.cjs.map +1 -0
  323. package/dist/tracked-BhQtzUhZ.js +186 -166
  324. package/dist/tracked-BnqrYXiO.js +212 -0
  325. package/dist/tracked-BnqrYXiO.js.map +1 -0
  326. package/dist/tracked-BtgFOGup.js +212 -0
  327. package/dist/tracked-BtgFOGup.js.map +1 -0
  328. package/dist/tracked-C3nIS4J7.cjs +242 -0
  329. package/dist/tracked-C3nIS4J7.cjs.map +1 -0
  330. package/dist/tracked-C52awNV9.js +171 -151
  331. package/dist/tracked-CGzduF2m.js +186 -166
  332. package/dist/tracked-CK_-ixtX.cjs +196 -175
  333. package/dist/tracked-CLlvURln.js +186 -166
  334. package/dist/tracked-CgHWmuGC.cjs +211 -190
  335. package/dist/tracked-CoAlC8fs.js +171 -151
  336. package/dist/tracked-D3Xjm1H1.cjs +211 -190
  337. package/dist/tracked-DB6yMV5F.js +212 -0
  338. package/dist/tracked-DB6yMV5F.js.map +1 -0
  339. package/dist/tracked-DBn-bs_G.js +171 -151
  340. package/dist/tracked-DMBTDF0P.js +171 -151
  341. package/dist/tracked-DN3h3Rp1.js +171 -151
  342. package/dist/tracked-DOGh1Q5Z.cjs +242 -0
  343. package/dist/tracked-DOGh1Q5Z.cjs.map +1 -0
  344. package/dist/tracked-DUkp4zve.cjs +196 -175
  345. package/dist/tracked-D_ou7mYG.js +212 -0
  346. package/dist/tracked-D_ou7mYG.js.map +1 -0
  347. package/dist/tracked-Dcu6EATB.js +171 -151
  348. package/dist/tracked-GvAJQVAI.cjs +227 -196
  349. package/dist/tracked-O2lv-kJV.cjs +211 -190
  350. package/dist/tracked-WF6aXuAo.js +186 -162
  351. package/dist/tracked-d_sQWU3c.cjs +196 -175
  352. package/dist/tracked-n9TMK-30.cjs +196 -175
  353. package/dist/tracked-njU-_pVa.cjs +211 -190
  354. package/dist/tracked-zAgmKIlC.js +212 -0
  355. package/dist/tracked-zAgmKIlC.js.map +1 -0
  356. package/dist/tracking/dependency-manager.d.ts +33 -29
  357. package/dist/tracking/index.d.ts +16 -1
  358. package/dist/tracking/iteration-perf.bench.d.ts +1 -0
  359. package/dist/tracking/path-utils.d.ts +18 -1
  360. package/dist/tracking/resolve-dependencies.d.ts +3 -1
  361. package/dist/tracking/tracked.d.ts +37 -34
  362. package/dist/tracking/tracking-proxy.d.ts +94 -47
  363. package/dist/tracking.cjs +12 -9
  364. package/dist/tracking.js +32 -2
  365. package/dist/types/utilities.d.ts +15 -3
  366. package/dist/types.cjs +1 -1
  367. package/dist/types.js +1 -1
  368. package/dist/utils/static-props.d.ts +14 -0
  369. package/dist/utils/structural-key.d.ts +14 -0
  370. package/dist/watch/watch.d.ts +1 -1
  371. package/dist/watch-BpwaUL8r.cjs +68 -0
  372. package/dist/watch-BpwaUL8r.cjs.map +1 -0
  373. package/dist/watch-DWCqXllW.js +57 -0
  374. package/dist/watch-DWCqXllW.js.map +1 -0
  375. package/dist/watch-entry.cjs +3 -6
  376. package/dist/watch-entry.d.cts +1 -3
  377. package/dist/watch-entry.d.ts +1 -3
  378. package/dist/watch-entry.js +2 -2
  379. package/package.json +4 -14
@@ -1,70 +1,70 @@
1
- const require_config = require("./config-D3jisfdj.cjs");
1
+ const require_config = require('./config-D3jisfdj.cjs');
2
2
  //#region src/registry/queries.ts
3
3
  function hasInstance(BlocClass, instanceKey) {
4
- return require_config.getRegistry().hasInstance(BlocClass, instanceKey);
4
+ return require_config.getRegistry().hasInstance(BlocClass, instanceKey);
5
5
  }
6
6
  function getRefCount(BlocClass, instanceKey) {
7
- return require_config.getRegistry().getRefCount(BlocClass, instanceKey);
7
+ return require_config.getRegistry().getRefCount(BlocClass, instanceKey);
8
8
  }
9
9
  function getAll(BlocClass) {
10
- return require_config.getRegistry().getAll(BlocClass);
10
+ return require_config.getRegistry().getAll(BlocClass);
11
11
  }
12
12
  function forEach(BlocClass, callback) {
13
- require_config.getRegistry().forEach(BlocClass, callback);
13
+ require_config.getRegistry().forEach(BlocClass, callback);
14
14
  }
15
15
  //#endregion
16
16
  //#region src/registry/management.ts
17
17
  function clear(BlocClass) {
18
- require_config.getRegistry().clear(BlocClass);
18
+ require_config.getRegistry().clear(BlocClass);
19
19
  }
20
20
  function clearAll() {
21
- require_config.getRegistry().clearAll();
21
+ require_config.getRegistry().clearAll();
22
22
  }
23
23
  function register(BlocClass) {
24
- require_config.getRegistry().register(BlocClass);
24
+ require_config.getRegistry().register(BlocClass);
25
25
  }
26
26
  //#endregion
27
- Object.defineProperty(exports, "clear", {
28
- enumerable: true,
29
- get: function() {
30
- return clear;
31
- }
27
+ Object.defineProperty(exports, 'clear', {
28
+ enumerable: true,
29
+ get: function () {
30
+ return clear;
31
+ },
32
32
  });
33
- Object.defineProperty(exports, "clearAll", {
34
- enumerable: true,
35
- get: function() {
36
- return clearAll;
37
- }
33
+ Object.defineProperty(exports, 'clearAll', {
34
+ enumerable: true,
35
+ get: function () {
36
+ return clearAll;
37
+ },
38
38
  });
39
- Object.defineProperty(exports, "forEach", {
40
- enumerable: true,
41
- get: function() {
42
- return forEach;
43
- }
39
+ Object.defineProperty(exports, 'forEach', {
40
+ enumerable: true,
41
+ get: function () {
42
+ return forEach;
43
+ },
44
44
  });
45
- Object.defineProperty(exports, "getAll", {
46
- enumerable: true,
47
- get: function() {
48
- return getAll;
49
- }
45
+ Object.defineProperty(exports, 'getAll', {
46
+ enumerable: true,
47
+ get: function () {
48
+ return getAll;
49
+ },
50
50
  });
51
- Object.defineProperty(exports, "getRefCount", {
52
- enumerable: true,
53
- get: function() {
54
- return getRefCount;
55
- }
51
+ Object.defineProperty(exports, 'getRefCount', {
52
+ enumerable: true,
53
+ get: function () {
54
+ return getRefCount;
55
+ },
56
56
  });
57
- Object.defineProperty(exports, "hasInstance", {
58
- enumerable: true,
59
- get: function() {
60
- return hasInstance;
61
- }
57
+ Object.defineProperty(exports, 'hasInstance', {
58
+ enumerable: true,
59
+ get: function () {
60
+ return hasInstance;
61
+ },
62
62
  });
63
- Object.defineProperty(exports, "register", {
64
- enumerable: true,
65
- get: function() {
66
- return register;
67
- }
63
+ Object.defineProperty(exports, 'register', {
64
+ enumerable: true,
65
+ get: function () {
66
+ return register;
67
+ },
68
68
  });
69
69
 
70
- //# sourceMappingURL=management-jQGCvZNN.cjs.map
70
+ //# sourceMappingURL=management-jQGCvZNN.cjs.map
@@ -1,79 +1,79 @@
1
- const require_config = require("./config-CQH9fTY-.cjs");
1
+ const require_config = require('./config-CQH9fTY-.cjs');
2
2
  //#region src/registry/queries.ts
3
3
  function hasInstance(BlocClass, instanceKey) {
4
- return require_config.getRegistry().hasInstance(BlocClass, instanceKey);
4
+ return require_config.getRegistry().hasInstance(BlocClass, instanceKey);
5
5
  }
6
6
  function getRefCount(BlocClass, instanceKey) {
7
- return require_config.getRegistry().getRefCount(BlocClass, instanceKey);
7
+ return require_config.getRegistry().getRefCount(BlocClass, instanceKey);
8
8
  }
9
9
  function getRefIds(BlocClass, instanceKey) {
10
- return require_config.getRegistry().getRefIds(BlocClass, instanceKey);
10
+ return require_config.getRegistry().getRefIds(BlocClass, instanceKey);
11
11
  }
12
12
  function getAll(BlocClass) {
13
- return require_config.getRegistry().getAll(BlocClass);
13
+ return require_config.getRegistry().getAll(BlocClass);
14
14
  }
15
15
  function forEach(BlocClass, callback) {
16
- require_config.getRegistry().forEach(BlocClass, callback);
16
+ require_config.getRegistry().forEach(BlocClass, callback);
17
17
  }
18
18
  //#endregion
19
19
  //#region src/registry/management.ts
20
20
  function clear(BlocClass) {
21
- require_config.getRegistry().clear(BlocClass);
21
+ require_config.getRegistry().clear(BlocClass);
22
22
  }
23
23
  function clearAll() {
24
- require_config.getRegistry().clearAll();
24
+ require_config.getRegistry().clearAll();
25
25
  }
26
26
  function register(BlocClass) {
27
- require_config.getRegistry().register(BlocClass);
27
+ require_config.getRegistry().register(BlocClass);
28
28
  }
29
29
  //#endregion
30
- Object.defineProperty(exports, "clear", {
31
- enumerable: true,
32
- get: function() {
33
- return clear;
34
- }
30
+ Object.defineProperty(exports, 'clear', {
31
+ enumerable: true,
32
+ get: function () {
33
+ return clear;
34
+ },
35
35
  });
36
- Object.defineProperty(exports, "clearAll", {
37
- enumerable: true,
38
- get: function() {
39
- return clearAll;
40
- }
36
+ Object.defineProperty(exports, 'clearAll', {
37
+ enumerable: true,
38
+ get: function () {
39
+ return clearAll;
40
+ },
41
41
  });
42
- Object.defineProperty(exports, "forEach", {
43
- enumerable: true,
44
- get: function() {
45
- return forEach;
46
- }
42
+ Object.defineProperty(exports, 'forEach', {
43
+ enumerable: true,
44
+ get: function () {
45
+ return forEach;
46
+ },
47
47
  });
48
- Object.defineProperty(exports, "getAll", {
49
- enumerable: true,
50
- get: function() {
51
- return getAll;
52
- }
48
+ Object.defineProperty(exports, 'getAll', {
49
+ enumerable: true,
50
+ get: function () {
51
+ return getAll;
52
+ },
53
53
  });
54
- Object.defineProperty(exports, "getRefCount", {
55
- enumerable: true,
56
- get: function() {
57
- return getRefCount;
58
- }
54
+ Object.defineProperty(exports, 'getRefCount', {
55
+ enumerable: true,
56
+ get: function () {
57
+ return getRefCount;
58
+ },
59
59
  });
60
- Object.defineProperty(exports, "getRefIds", {
61
- enumerable: true,
62
- get: function() {
63
- return getRefIds;
64
- }
60
+ Object.defineProperty(exports, 'getRefIds', {
61
+ enumerable: true,
62
+ get: function () {
63
+ return getRefIds;
64
+ },
65
65
  });
66
- Object.defineProperty(exports, "hasInstance", {
67
- enumerable: true,
68
- get: function() {
69
- return hasInstance;
70
- }
66
+ Object.defineProperty(exports, 'hasInstance', {
67
+ enumerable: true,
68
+ get: function () {
69
+ return hasInstance;
70
+ },
71
71
  });
72
- Object.defineProperty(exports, "register", {
73
- enumerable: true,
74
- get: function() {
75
- return register;
76
- }
72
+ Object.defineProperty(exports, 'register', {
73
+ enumerable: true,
74
+ get: function () {
75
+ return register;
76
+ },
77
77
  });
78
78
 
79
- //# sourceMappingURL=management-ry_KteFK.cjs.map
79
+ //# sourceMappingURL=management-ry_KteFK.cjs.map
@@ -1,3 +1,4 @@
1
+ import type { PathSet } from '@dirtytalk/structural';
1
2
  import type { HydrationStatus, StateContainer } from '../core/StateContainer';
2
3
  export interface InstanceMetadata {
3
4
  id: string;
@@ -12,18 +13,37 @@ export interface InstanceMetadata {
12
13
  isHydrated: boolean;
13
14
  hydrationError?: Error;
14
15
  changedWhileHydrating: boolean;
16
+ /** Args passed at acquire time; keys instance identity. */
17
+ args?: unknown;
15
18
  }
19
+ /**
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`.
30
+ */
16
31
  export interface PluginContext {
17
- getInstanceMetadata(instance: StateContainer<any>): InstanceMetadata;
32
+ /**
33
+ * The container this event is about. `undefined` only for `onInstall`,
34
+ * which fires once at plugin install time before any container is known.
35
+ */
36
+ container: StateContainer<any, any, any> | undefined;
37
+ getInstanceMetadata(instance: StateContainer<any, any, any>): InstanceMetadata;
18
38
  getState<S extends object = any>(instance: StateContainer<S>): S;
19
- getHydrationStatus(instance: StateContainer<any>): HydrationStatus;
20
- startHydration(instance: StateContainer<any>): void;
39
+ getHydrationStatus(instance: StateContainer<any, any, any>): HydrationStatus;
40
+ startHydration(instance: StateContainer<any, any, any>): void;
21
41
  applyHydratedState<S extends object = any>(instance: StateContainer<S>, state: S): boolean;
22
- finishHydration(instance: StateContainer<any>): void;
23
- failHydration(instance: StateContainer<any>, error: Error): void;
24
- waitForHydration(instance: StateContainer<any>): Promise<void>;
25
- queryInstances<T extends StateContainer<any>>(typeClass: new (...args: any[]) => T): T[];
26
- getAllTypes(): Array<new (...args: any[]) => StateContainer<any>>;
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>>;
27
47
  getStats(): {
28
48
  registeredTypes: number;
29
49
  totalInstances: number;
@@ -31,19 +51,73 @@ export interface PluginContext {
31
51
  };
32
52
  getRefIds(instanceId: string): string[];
33
53
  }
54
+ /**
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.
72
+ */
34
73
  export interface BlacPlugin {
35
74
  readonly name: string;
36
75
  readonly version: string;
37
- onInstall?(context: PluginContext): void;
76
+ /**
77
+ * Fires once when the plugin is installed. `ctx.container` is `undefined`
78
+ * here — `onInstall` is global to the plugin, not per-container.
79
+ */
80
+ onInstall?(ctx: PluginContext): void;
38
81
  onUninstall?(): void;
39
- onInstanceCreated?(instance: StateContainer<any>, context: PluginContext): void;
40
- onStateChanged?<S extends object = any>(instance: StateContainer<S>, previousState: S, currentState: S, context: PluginContext): void;
41
- onInstanceDisposed?(instance: StateContainer<any>, context: PluginContext): void;
42
- onRefAcquired?(instance: StateContainer<any>, refId: string, context: PluginContext): void;
43
- onRefReleased?(instance: StateContainer<any>, refId: string, context: PluginContext): void;
82
+ /**
83
+ * Fires when a container is first created and acquired.
84
+ * `ctx.container` is the new container.
85
+ */
86
+ onCreated?(ctx: PluginContext): void;
87
+ /**
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.
91
+ */
92
+ onStateChange?<S extends object = any>(ctx: PluginContext, prev: S, next: S, paths: PathSet): void;
93
+ /**
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).
97
+ */
98
+ onDestroyed?(ctx: PluginContext): void;
99
+ /**
100
+ * Fires when a container's hydration status transitions.
101
+ */
102
+ onHydrationChange?(ctx: PluginContext, status: HydrationStatus, previousStatus: HydrationStatus): void;
103
+ /**
104
+ * @internal Devtools-only — fires when a named ref is acquired.
105
+ * Not part of the C2 event payload contract.
106
+ */
107
+ onRefAcquired?(ctx: PluginContext, refId: string): void;
108
+ /**
109
+ * @internal Devtools-only — fires when a named ref is released.
110
+ * Not part of the C2 event payload contract.
111
+ */
112
+ onRefReleased?(ctx: PluginContext, refId: string): void;
113
+ /**
114
+ * @internal Devtools-only — fires when the merged per-consumer deps view
115
+ * for a container changes.
116
+ */
117
+ onDepsChanged?(ctx: PluginContext, previousDeps: Readonly<Record<string, unknown>>, currentDeps: Readonly<Record<string, unknown>>): void;
44
118
  }
45
119
  export interface BlacPluginWithInit extends BlacPlugin {
46
- onInstall(context: PluginContext): void;
120
+ onInstall(ctx: PluginContext): void;
47
121
  }
48
122
  export interface PluginConfig {
49
123
  enabled?: boolean;
@@ -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
@@ -14,6 +32,12 @@ export declare class PluginManager {
14
32
  private plugins;
15
33
  private registry;
16
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;
17
41
  /**
18
42
  * Create a new PluginManager
19
43
  * @param registry - The StateContainerRegistry to monitor for lifecycle events
@@ -55,17 +79,53 @@ export declare class PluginManager {
55
79
  clear(): void;
56
80
  destroy(): void;
57
81
  /**
58
- * 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.
59
88
  */
60
89
  private setupLifecycleHooks;
61
90
  /**
62
- * 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.
63
118
  */
64
119
  private notifyPlugins;
65
120
  /**
66
- * 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.
67
127
  */
68
- private createPluginContext;
128
+ private buildContext;
69
129
  /**
70
130
  * Check if plugin should be enabled based on environment
71
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-CX2CBOmv.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 { n as getPluginManager, s as PluginManager } from "./StateContainerRegistry-BK57H92E.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';