@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
@@ -5,33 +5,37 @@ import type { StateContainerInstance } from '../types/utilities';
5
5
  * as dependencies change between callback invocations.
6
6
  */
7
7
  export declare class DependencyManager {
8
- private subscriptions;
9
- private currentDeps;
10
- /**
11
- * Sync subscriptions with a new set of dependencies.
12
- * Adds subscriptions for new deps, removes subscriptions for stale deps.
13
- *
14
- * @param newDeps - The new set of dependencies to subscribe to
15
- * @param onChange - Callback to invoke when any dependency changes
16
- * @param exclude - Optional instance to exclude from subscriptions (e.g., primary bloc)
17
- * @returns true if the dependency set changed, false if unchanged
18
- */
19
- sync(newDeps: Set<StateContainerInstance>, onChange: () => void, exclude?: StateContainerInstance): boolean;
20
- /**
21
- * Add a single dependency subscription.
22
- */
23
- add(dep: StateContainerInstance, onChange: () => void): void;
24
- /**
25
- * Check if a dependency is currently subscribed.
26
- */
27
- has(dep: StateContainerInstance): boolean;
28
- /**
29
- * Get the current set of dependencies.
30
- */
31
- getDependencies(): Set<StateContainerInstance>;
32
- /**
33
- * Clean up all active subscriptions.
34
- */
35
- cleanup(): void;
36
- private areSetsEqual;
8
+ private subscriptions;
9
+ private currentDeps;
10
+ /**
11
+ * Sync subscriptions with a new set of dependencies.
12
+ * Adds subscriptions for new deps, removes subscriptions for stale deps.
13
+ *
14
+ * @param newDeps - The new set of dependencies to subscribe to
15
+ * @param onChange - Callback to invoke when any dependency changes
16
+ * @param exclude - Optional instance to exclude from subscriptions (e.g., primary bloc)
17
+ * @returns true if the dependency set changed, false if unchanged
18
+ */
19
+ sync(
20
+ newDeps: Set<StateContainerInstance>,
21
+ onChange: () => void,
22
+ exclude?: StateContainerInstance,
23
+ ): boolean;
24
+ /**
25
+ * Add a single dependency subscription.
26
+ */
27
+ add(dep: StateContainerInstance, onChange: () => void): void;
28
+ /**
29
+ * Check if a dependency is currently subscribed.
30
+ */
31
+ has(dep: StateContainerInstance): boolean;
32
+ /**
33
+ * Get the current set of dependencies.
34
+ */
35
+ getDependencies(): Set<StateContainerInstance>;
36
+ /**
37
+ * Clean up all active subscriptions.
38
+ */
39
+ cleanup(): void;
40
+ private areSetsEqual;
37
41
  }
@@ -7,7 +7,22 @@
7
7
  *
8
8
  * @packageDocumentation
9
9
  */
10
- export { type DependencyState, type PathInfo, createDependencyState, startDependency, createDependencyProxy, capturePaths, hasDependencyChanges, hasTrackedData, type GetterState, createGetterState, createBlocProxy, hasGetterChanges, setActiveTracker, clearActiveTracker, commitTrackedGetters, invalidateRenderCache, } from './tracking-proxy';
10
+ export {
11
+ type DependencyState,
12
+ type PathInfo,
13
+ createDependencyState,
14
+ startDependency,
15
+ createDependencyProxy,
16
+ capturePaths,
17
+ hasDependencyChanges,
18
+ hasTrackedData,
19
+ type GetterState,
20
+ createGetterState,
21
+ createBlocProxy,
22
+ hasGetterChanges,
23
+ commitTrackedGetters,
24
+ invalidateRenderCache,
25
+ } from './tracking-proxy';
11
26
  export { shallowEqual } from './path-utils';
12
27
  export { DependencyManager } from './dependency-manager';
13
28
  export { resolveDependencies } from './resolve-dependencies';
@@ -0,0 +1 @@
1
+ export {};
@@ -21,20 +21,37 @@
21
21
  * ```
22
22
  */
23
23
  export declare function parsePath(path: string): string[];
24
+ /**
25
+ * Sentinel value returned by `getValueAtPath` when the path cannot be fully
26
+ * walked because an intermediate segment is null or undefined. This is
27
+ * distinct from `undefined`, which is a legitimate leaf value.
28
+ *
29
+ * @internal
30
+ */
31
+ declare const MISSING: unique symbol;
32
+ export { MISSING as PATH_MISSING };
24
33
  /**
25
34
  * Get a value from an object using a path of segments
26
35
  *
36
+ * Returns `PATH_MISSING` (not `undefined`) when the path cannot be walked
37
+ * because an intermediate parent is null or undefined. This lets callers
38
+ * distinguish "the leaf is explicitly `undefined`" from "the path is broken".
39
+ *
27
40
  * @example
28
41
  * ```ts
29
42
  * const obj = { user: { name: 'Alice', age: 30 } }
30
43
  * getValueAtPath(obj, ['user', 'name']) // 'Alice'
31
44
  * getValueAtPath(obj, ['user', 'age']) // 30
32
45
  * getValueAtPath(obj, ['user', 'missing']) // undefined
46
+ * getValueAtPath({ a: null }, ['a', 'b']) // PATH_MISSING
33
47
  * ```
34
48
  *
35
49
  * @internal
36
50
  */
37
- export declare function getValueAtPath(obj: unknown, segments: string[]): unknown;
51
+ export declare function getValueAtPath(
52
+ obj: unknown,
53
+ segments: string[],
54
+ ): unknown;
38
55
  /**
39
56
  * Shallow equality comparison for arrays
40
57
  *
@@ -4,4 +4,6 @@ import type { StateContainerInstance } from '../types/utilities';
4
4
  * Uses cycle detection to avoid infinite loops.
5
5
  * @internal
6
6
  */
7
- export declare function resolveDependencies(bloc: StateContainerInstance): Set<StateContainerInstance>;
7
+ export declare function resolveDependencies(
8
+ bloc: StateContainerInstance,
9
+ ): Set<StateContainerInstance>;
@@ -4,14 +4,14 @@ import { DependencyManager } from './dependency-manager';
4
4
  * Result of running a tracked callback.
5
5
  */
6
6
  export interface TrackedResult<T> {
7
- result: T;
8
- dependencies: Set<StateContainerInstance>;
7
+ result: T;
8
+ dependencies: Set<StateContainerInstance>;
9
9
  }
10
10
  /**
11
11
  * Options for the tracked() function.
12
12
  */
13
13
  export interface TrackedOptions {
14
- exclude?: StateContainerInstance;
14
+ exclude?: StateContainerInstance;
15
15
  }
16
16
  /**
17
17
  * Run a callback while tracking all bloc dependencies accessed.
@@ -26,42 +26,45 @@ export interface TrackedOptions {
26
26
  * // dependencies contains UserBloc + any blocs accessed in fullName getter
27
27
  * ```
28
28
  */
29
- export declare function tracked<T>(callback: () => T, options?: TrackedOptions): TrackedResult<T>;
29
+ export declare function tracked<T>(
30
+ callback: () => T,
31
+ options?: TrackedOptions,
32
+ ): TrackedResult<T>;
30
33
  /**
31
34
  * Context for running tracked callbacks with bloc proxies.
32
35
  * Provides methods to create proxies and check for changes.
33
36
  */
34
37
  export declare class TrackedContext {
35
- private tracker;
36
- private proxiedBlocs;
37
- private primaryBlocs;
38
- constructor();
39
- /**
40
- * Get a tracking proxy for a bloc instance.
41
- * The proxy will track state and getter accesses.
42
- */
43
- proxy<T extends StateContainerInstance>(bloc: T): T;
44
- /**
45
- * Start tracking for a new callback execution.
46
- */
47
- start(): void;
48
- /**
49
- * Stop tracking and get discovered dependencies.
50
- * Excludes primary blocs (those explicitly proxied via proxy()).
51
- */
52
- stop(): Set<StateContainerInstance>;
53
- /**
54
- * Check if any tracked state or getters have changed.
55
- */
56
- changed(): boolean;
57
- /**
58
- * Get all primary blocs (those explicitly proxied).
59
- */
60
- getPrimaryBlocs(): Set<StateContainerInstance>;
61
- /**
62
- * Reset the context for reuse.
63
- */
64
- reset(): void;
38
+ private tracker;
39
+ private proxiedBlocs;
40
+ private primaryBlocs;
41
+ constructor();
42
+ /**
43
+ * Get a tracking proxy for a bloc instance.
44
+ * The proxy will track state and getter accesses.
45
+ */
46
+ proxy<T extends StateContainerInstance>(bloc: T): T;
47
+ /**
48
+ * Start tracking for a new callback execution.
49
+ */
50
+ start(): void;
51
+ /**
52
+ * Stop tracking and get discovered dependencies.
53
+ * Excludes primary blocs (those explicitly proxied via proxy()).
54
+ */
55
+ stop(): Set<StateContainerInstance>;
56
+ /**
57
+ * Check if any tracked state or getters have changed.
58
+ */
59
+ changed(): boolean;
60
+ /**
61
+ * Get all primary blocs (those explicitly proxied).
62
+ */
63
+ getPrimaryBlocs(): Set<StateContainerInstance>;
64
+ /**
65
+ * Reset the context for reuse.
66
+ */
67
+ reset(): void;
65
68
  }
66
69
  /**
67
70
  * Create a new tracked context for manual control over tracking.
@@ -10,13 +10,13 @@ export declare function isProxyable(value: unknown): value is object;
10
10
  * @internal
11
11
  */
12
12
  export interface ProxyState<T> {
13
- trackedPaths: Set<string>;
14
- isTracking: boolean;
15
- proxyCache: WeakMap<object, unknown>;
16
- boundFunctionsCache: WeakMap<Function, Function> | null;
17
- lastProxiedState: T | null;
18
- lastProxy: T | null;
19
- maxDepth: number;
13
+ trackedPaths: Set<string>;
14
+ isTracking: boolean;
15
+ proxyCache: WeakMap<object, unknown>;
16
+ boundFunctionsCache: WeakMap<object, WeakMap<Function, Function>> | null;
17
+ lastProxiedState: T | null;
18
+ lastProxy: T | null;
19
+ maxDepth: number;
20
20
  }
21
21
  /**
22
22
  * Create a new proxy tracker state
@@ -37,12 +37,22 @@ export declare function stopProxy<T>(state: ProxyState<T>): Set<string>;
37
37
  * Create a proxy for an array with property access tracking
38
38
  * @internal
39
39
  */
40
- export declare function createArrayProxy<T, U>(state: ProxyState<T>, target: U[], path: string, depth?: number): U[];
40
+ export declare function createArrayProxy<T, U>(
41
+ state: ProxyState<T>,
42
+ target: U[],
43
+ path: string,
44
+ depth?: number,
45
+ ): U[];
41
46
  /**
42
47
  * Create a proxy for an object with property access tracking
43
48
  * @internal
44
49
  */
45
- export declare function createInternal<T>(state: ProxyState<T>, target: T, path?: string, depth?: number): T;
50
+ export declare function createInternal<T>(
51
+ state: ProxyState<T>,
52
+ target: T,
53
+ path?: string,
54
+ depth?: number,
55
+ ): T;
46
56
  /**
47
57
  * Create a proxy for a target with caching
48
58
  * @internal
@@ -52,19 +62,19 @@ export declare function createForTarget<T>(state: ProxyState<T>, target: T): T;
52
62
  * @internal
53
63
  */
54
64
  export interface PathInfo {
55
- segments: string[];
56
- value: unknown;
65
+ segments: string[];
66
+ value: unknown;
57
67
  }
58
68
  /**
59
69
  * @internal
60
70
  */
61
71
  export interface DependencyState<T> {
62
- proxyState: ProxyState<T>;
63
- previousRenderPaths: Set<string>;
64
- currentRenderPaths: Set<string>;
65
- pathCache: Map<string, PathInfo>;
66
- lastCheckedState: T | null;
67
- lastCheckedValues: Map<string, unknown>;
72
+ proxyState: ProxyState<T>;
73
+ previousRenderPaths: Set<string>;
74
+ currentRenderPaths: Set<string>;
75
+ pathCache: Map<string, PathInfo>;
76
+ lastCheckedState: T | null;
77
+ lastCheckedValues: Map<string, unknown>;
68
78
  }
69
79
  /**
70
80
  * @internal
@@ -81,15 +91,24 @@ export declare function startDependency<T>(tracker: DependencyState<T>): void;
81
91
  /**
82
92
  * @internal
83
93
  */
84
- export declare function createDependencyProxy<T>(tracker: DependencyState<T>, state: T): T;
94
+ export declare function createDependencyProxy<T>(
95
+ tracker: DependencyState<T>,
96
+ state: T,
97
+ ): T;
85
98
  /**
86
99
  * @internal
87
100
  */
88
- export declare function capturePaths<T>(tracker: DependencyState<T>, state: T): void;
101
+ export declare function capturePaths<T>(
102
+ tracker: DependencyState<T>,
103
+ state: T,
104
+ ): void;
89
105
  /**
90
106
  * @internal
91
107
  */
92
- export declare function hasDependencyChanges<T>(tracker: DependencyState<T>, state: T): boolean;
108
+ export declare function hasDependencyChanges<T>(
109
+ tracker: DependencyState<T>,
110
+ state: T,
111
+ ): boolean;
93
112
  /**
94
113
  * @internal
95
114
  */
@@ -98,19 +117,22 @@ export declare function hasTrackedData<T>(tracker: DependencyState<T>): boolean;
98
117
  * @internal
99
118
  */
100
119
  export interface GetterState {
101
- trackedValues: Map<string | symbol, unknown>;
102
- currentlyAccessing: Set<string | symbol>;
103
- trackedGetters: Set<string | symbol>;
104
- isTracking: boolean;
105
- renderCache: Map<string | symbol, unknown>;
106
- cacheValid: boolean;
107
- depth: number;
108
- visitedBlocs: Set<StateContainerInstance>;
120
+ trackedValues: Map<string | symbol, unknown>;
121
+ currentlyAccessing: Set<string | symbol>;
122
+ trackedGetters: Set<string | symbol>;
123
+ isTracking: boolean;
124
+ renderCache: Map<string | symbol, unknown>;
125
+ cacheValid: boolean;
126
+ depth: number;
127
+ visitedBlocs: Set<StateContainerInstance>;
109
128
  }
110
129
  /**
111
130
  * @internal
112
131
  */
113
- export declare function getDescriptor(obj: any, prop: string | symbol): PropertyDescriptor | undefined;
132
+ export declare function getDescriptor(
133
+ obj: any,
134
+ prop: string | symbol,
135
+ ): PropertyDescriptor | undefined;
114
136
  /**
115
137
  * @internal
116
138
  */
@@ -122,27 +144,43 @@ export declare function createGetterState(): GetterState;
122
144
  /**
123
145
  * @internal
124
146
  */
125
- export declare function setActiveTracker<TBloc extends StateContainerInstance>(bloc: TBloc, tracker: GetterState): void;
126
- /**
127
- * @internal
128
- */
129
- export declare function clearActiveTracker<TBloc extends StateContainerInstance>(bloc: TBloc): void;
130
- /**
131
- * @internal
132
- */
133
- export declare function getActiveTracker<TBloc extends StateContainerInstance>(bloc: TBloc): GetterState | undefined;
134
147
  /**
148
+ * Commit getters accessed during the active tracking window into the
149
+ * authoritative `trackedGetters` set used by change-detection.
150
+ *
151
+ * When `currentlyAccessing` is empty (e.g. React StrictMode firing
152
+ * `useEffect` setup → cleanup → setup for one logical render, where the
153
+ * second setup runs with no intervening render and therefore no accesses)
154
+ * we deliberately preserve the previous commit's `trackedGetters`. This
155
+ * keeps consumer subscriptions stable across StrictMode double-invocation.
156
+ *
157
+ * The next legitimate render that records accesses replaces the set in full;
158
+ * components that conditionally drop a getter incur at most one extra
159
+ * re-render before `trackedGetters` self-corrects on the subsequent commit.
160
+ *
135
161
  * @internal
136
162
  */
137
163
  export declare function commitTrackedGetters(tracker: GetterState): void;
138
164
  /**
165
+ * Create a per-consumer bloc proxy that closes over its own getter tracker.
166
+ *
167
+ * Each useBloc consumer owns its own proxy and tracker, eliminating the
168
+ * cross-component contamination that a shared module-level tracker map
169
+ * caused under interleaved/concurrent rendering.
170
+ *
139
171
  * @internal
140
172
  */
141
- export declare function createBlocProxy<TBloc extends StateContainerInstance>(bloc: TBloc): TBloc;
173
+ export declare function createBlocProxy<TBloc extends StateContainerInstance>(
174
+ bloc: TBloc,
175
+ tracker: GetterState,
176
+ ): TBloc;
142
177
  /**
143
178
  * @internal
144
179
  */
145
- export declare function hasGetterChanges<TBloc extends StateContainerInstance>(bloc: TBloc, tracker: GetterState | null): boolean;
180
+ export declare function hasGetterChanges<TBloc extends StateContainerInstance>(
181
+ bloc: TBloc,
182
+ tracker: GetterState | null,
183
+ ): boolean;
146
184
  /**
147
185
  * @internal
148
186
  */
@@ -155,10 +193,10 @@ export declare function resetGetterState(tracker: GetterState): void;
155
193
  * State for tracking both state property access and getter access.
156
194
  */
157
195
  export interface TrackingProxyState {
158
- dependencyState: DependencyState<any>;
159
- getterState: GetterState;
160
- dependencies: Set<StateContainerInstance>;
161
- isTracking: boolean;
196
+ dependencyState: DependencyState<any>;
197
+ getterState: GetterState;
198
+ dependencies: Set<StateContainerInstance>;
199
+ isTracking: boolean;
162
200
  }
163
201
  /**
164
202
  * Create a new tracking proxy state.
@@ -171,13 +209,22 @@ export declare function startTracking(tracker: TrackingProxyState): void;
171
209
  /**
172
210
  * Stop tracking and collect all dependencies.
173
211
  */
174
- export declare function stopTracking(tracker: TrackingProxyState, bloc: StateContainerInstance): Set<StateContainerInstance>;
212
+ export declare function stopTracking(
213
+ tracker: TrackingProxyState,
214
+ bloc: StateContainerInstance,
215
+ ): Set<StateContainerInstance>;
175
216
  /**
176
217
  * Check if tracked state or getters have changed.
177
218
  */
178
- export declare function hasChanges(tracker: TrackingProxyState, bloc: StateContainerInstance): boolean;
219
+ export declare function hasChanges(
220
+ tracker: TrackingProxyState,
221
+ bloc: StateContainerInstance,
222
+ ): boolean;
179
223
  /**
180
224
  * Create a tracking proxy for a bloc instance.
181
225
  * Tracks both state property access and getter access.
182
226
  */
183
- export declare function createTrackingProxy<T extends StateContainerInstance>(bloc: T, tracker: TrackingProxyState): T;
227
+ export declare function createTrackingProxy<T extends StateContainerInstance>(
228
+ bloc: T,
229
+ tracker: TrackingProxyState,
230
+ ): T;
package/dist/tracking.cjs CHANGED
@@ -1,18 +1,21 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_resolve_dependencies = require("./resolve-dependencies-Dfdp_DZd.cjs");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_resolve_dependencies = require('./resolve-dependencies-GJ8PNyNB.cjs');
3
3
  exports.DependencyManager = require_resolve_dependencies.DependencyManager;
4
4
  exports.capturePaths = require_resolve_dependencies.capturePaths;
5
- exports.clearActiveTracker = require_resolve_dependencies.clearActiveTracker;
6
- exports.commitTrackedGetters = require_resolve_dependencies.commitTrackedGetters;
5
+ exports.commitTrackedGetters =
6
+ require_resolve_dependencies.commitTrackedGetters;
7
7
  exports.createBlocProxy = require_resolve_dependencies.createBlocProxy;
8
- exports.createDependencyProxy = require_resolve_dependencies.createDependencyProxy;
9
- exports.createDependencyState = require_resolve_dependencies.createDependencyState;
8
+ exports.createDependencyProxy =
9
+ require_resolve_dependencies.createDependencyProxy;
10
+ exports.createDependencyState =
11
+ require_resolve_dependencies.createDependencyState;
10
12
  exports.createGetterState = require_resolve_dependencies.createGetterState;
11
- exports.hasDependencyChanges = require_resolve_dependencies.hasDependencyChanges;
13
+ exports.hasDependencyChanges =
14
+ require_resolve_dependencies.hasDependencyChanges;
12
15
  exports.hasGetterChanges = require_resolve_dependencies.hasGetterChanges;
13
16
  exports.hasTrackedData = require_resolve_dependencies.hasTrackedData;
14
- exports.invalidateRenderCache = require_resolve_dependencies.invalidateRenderCache;
17
+ exports.invalidateRenderCache =
18
+ require_resolve_dependencies.invalidateRenderCache;
15
19
  exports.resolveDependencies = require_resolve_dependencies.resolveDependencies;
16
- exports.setActiveTracker = require_resolve_dependencies.setActiveTracker;
17
20
  exports.shallowEqual = require_resolve_dependencies.shallowEqual;
18
21
  exports.startDependency = require_resolve_dependencies.startDependency;
package/dist/tracking.js CHANGED
@@ -1,2 +1,32 @@
1
- import { _ as setActiveTracker, a as commitTrackedGetters, c as createDependencyState, g as invalidateRenderCache, h as hasTrackedData, i as clearActiveTracker, l as createGetterState, m as hasGetterChanges, n as DependencyManager, o as createBlocProxy, p as hasDependencyChanges, r as capturePaths, s as createDependencyProxy, t as resolveDependencies, v as startDependency, x as shallowEqual } from "./resolve-dependencies-B6JDXvpr.js";
2
- export { DependencyManager, capturePaths, clearActiveTracker, commitTrackedGetters, createBlocProxy, createDependencyProxy, createDependencyState, createGetterState, hasDependencyChanges, hasGetterChanges, hasTrackedData, invalidateRenderCache, resolveDependencies, setActiveTracker, shallowEqual, startDependency };
1
+ import {
2
+ a as createBlocProxy,
3
+ c as createGetterState,
4
+ f as hasDependencyChanges,
5
+ g as startDependency,
6
+ h as invalidateRenderCache,
7
+ i as commitTrackedGetters,
8
+ m as hasTrackedData,
9
+ n as DependencyManager,
10
+ o as createDependencyProxy,
11
+ p as hasGetterChanges,
12
+ r as capturePaths,
13
+ s as createDependencyState,
14
+ t as resolveDependencies,
15
+ y as shallowEqual,
16
+ } from './resolve-dependencies-DV3HO_uH.js';
17
+ export {
18
+ DependencyManager,
19
+ capturePaths,
20
+ commitTrackedGetters,
21
+ createBlocProxy,
22
+ createDependencyProxy,
23
+ createDependencyState,
24
+ createGetterState,
25
+ hasDependencyChanges,
26
+ hasGetterChanges,
27
+ hasTrackedData,
28
+ invalidateRenderCache,
29
+ resolveDependencies,
30
+ shallowEqual,
31
+ startDependency,
32
+ };
@@ -9,14 +9,26 @@ export type ExtractStateMutable<T> = T extends StateContainerConstructor<infer S
9
9
  * Constructor type for StateContainer classes
10
10
  * @template S - State type managed by the container
11
11
  */
12
- export type StateContainerConstructor<S extends object = any> = new (...args: any[]) => StateContainer<S>;
12
+ export type StateContainerConstructor<S extends object = any> = new (...args: any[]) => StateContainer<S, any, any>;
13
+ /**
14
+ * Extract the args type (serializable construction/identity data) from a
15
+ * StateContainer subclass.
16
+ * @template T - The StateContainer constructor type
17
+ */
18
+ export type ExtractArgs<T> = T extends new () => StateContainer<any, infer A, any> ? A : void;
19
+ /**
20
+ * Extract the deps type (injected non-serializable handles) from a
21
+ * StateContainer subclass.
22
+ * @template T - The StateContainer constructor type
23
+ */
24
+ export type ExtractDeps<T> = T extends new () => StateContainer<any, any, infer D> ? D : Record<string, never>;
13
25
  export type InstanceReadonlyState<T extends StateContainerConstructor = any> = Omit<InstanceType<T>, 'state'> & {
14
26
  state: ExtractState<T>;
15
27
  };
16
28
  export type InstanceState<T extends StateContainerConstructor = any> = Omit<InstanceType<T>, 'state'> & {
17
29
  state: ExtractStateMutable<T>;
18
30
  };
19
- export type StateContainerInstance<S extends object = any> = Omit<StateContainer<S>, 'state'> & {
31
+ export type StateContainerInstance<S extends object = any> = Omit<StateContainer<S, any, any>, 'state'> & {
20
32
  state: Readonly<S>;
21
33
  };
22
34
  /**
@@ -34,7 +46,7 @@ export type BlocInstanceType<T extends abstract new (...args: any) => any> = T e
34
46
  * Used for type-safe hook parameters.
35
47
  * @template TBloc - The StateContainer instance type
36
48
  */
37
- export type BlocConstructor<S extends object = any, T extends new (...args: any[]) => StateContainer<S> = new (...args: any[]) => StateContainer<S>> = (new (...args: any[]) => InstanceType<T>) & {
49
+ export type BlocConstructor<S extends object = any, T extends new (...args: any[]) => StateContainer<S, any, any> = new (...args: any[]) => StateContainer<S, any, any>> = (new (...args: any[]) => InstanceType<T>) & {
38
50
  acquire(instanceKey?: string, ...args: any[]): InstanceType<T>;
39
51
  borrow(instanceKey?: string, ...args: any[]): InstanceType<T> | null;
40
52
  borrowSafe(instanceKey?: string, ...args: any[]): {
package/dist/types.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_branded = require("./branded-DCqi3De1.cjs");
2
+ const require_branded = require("./branded-BSeA_mZO.cjs");
3
3
  exports.instanceId = require_branded.instanceId;
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as instanceId } from "./branded-Max3xOTA.js";
1
+ import { t as instanceId } from "./branded-DwtzSsg0.js";
2
2
  export { instanceId };
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Utility functions for accessing static properties on StateContainer classes
3
3
  */
4
+ import type { EqualityFn } from '../config';
4
5
  import { StateContainerConstructor } from '../types/utilities';
5
6
  /**
6
7
  * Get a static property from a class constructor
@@ -35,3 +36,16 @@ export declare function isExcludedFromDevTools<T extends StateContainerConstruct
35
36
  * @returns true if the class has `static isolated = true`
36
37
  */
37
38
  export declare function isIsolatedClass<T extends StateContainerConstructor>(Type: T): boolean;
39
+ /**
40
+ * Get the per-class equality function set via `@blac({ equality })`, if any.
41
+ * @param Type - The class constructor to check
42
+ * @returns the equality function or `undefined`
43
+ */
44
+ export declare function getClassEquality<T extends StateContainerConstructor>(Type: T): EqualityFn | undefined;
45
+ /**
46
+ * Get the per-class key function set via `@blac({ key })` or `static key = …`, if any.
47
+ * Used by the registry to derive a stable instance key from `args`.
48
+ * @param Type - The class constructor to check
49
+ * @returns the key function or `undefined`
50
+ */
51
+ export declare function getClassKey(Type: unknown): ((args: any) => string) | undefined;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Deterministic, order-independent hash of serializable args.
3
+ * Sorts object keys so {a,b} === {b,a}.
4
+ * Throws (dev) if it encounters a function or non-plain object — those belong in `deps`.
5
+ */
6
+ export declare const DEFAULT_STRUCTURAL_KEY = "default";
7
+ /**
8
+ * Produce a stable string key for serializable args.
9
+ * - `undefined` / `void` args → `'default'` sentinel (no-args blocs stay on the default key).
10
+ * - Object keys are sorted for order-independence.
11
+ * - Arrays keep their insertion order.
12
+ * - Functions throw — they must be passed via `deps`, not `args`.
13
+ */
14
+ export declare function structuralKey(args: unknown): string;
@@ -1,5 +1,6 @@
1
1
  import type { StateContainerConstructor } from '../types/utilities';
2
2
  declare const STOP: unique symbol;
3
+ type StopSymbol = typeof STOP;
3
4
  declare const BLOC_REF_MARKER: unique symbol;
4
5
  /**
5
6
  * Reference to a specific bloc instance by class and instance ID.
@@ -25,7 +26,6 @@ type ExtractInstance<T> = T extends BlocRef<infer C> ? InstanceType<C> : T exten
25
26
  type ExtractInstances<T extends readonly BlocInput[]> = {
26
27
  [K in keyof T]: ExtractInstance<T[K]>;
27
28
  };
28
- type StopSymbol = typeof STOP;
29
29
  /**
30
30
  * Watch function signature for single bloc.
31
31
  */