@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.
- package/README.md +85 -3
- package/dist/Cubit-9jal5zdZ.cjs +1 -1
- package/dist/Cubit-BAUPiUF7.cjs +359 -286
- package/dist/Cubit-BBKF3PIg.js +287 -0
- package/dist/Cubit-BBKF3PIg.js.map +1 -0
- package/dist/Cubit-BC70gaiA.js +453 -0
- package/dist/Cubit-BC70gaiA.js.map +1 -0
- package/dist/Cubit-BOgUZva7.js +342 -266
- package/dist/Cubit-BOxMvpfc.js +291 -0
- package/dist/Cubit-BOxMvpfc.js.map +1 -0
- package/dist/Cubit-BTznt8zg.js +1 -1
- package/dist/Cubit-BogJXkLm.js +278 -0
- package/dist/Cubit-BogJXkLm.js.map +1 -0
- package/dist/Cubit-C-8R_8db.cjs +475 -0
- package/dist/Cubit-C-8R_8db.cjs.map +1 -0
- package/dist/Cubit-C3Mw3EoO.cjs +401 -0
- package/dist/Cubit-C3Mw3EoO.cjs.map +1 -0
- package/dist/Cubit-CO8Fr72L.cjs +447 -0
- package/dist/Cubit-CO8Fr72L.cjs.map +1 -0
- package/dist/Cubit-COfHT1Bm.cjs +321 -0
- package/dist/Cubit-COfHT1Bm.cjs.map +1 -0
- package/dist/Cubit-CROWjjs9.js +481 -0
- package/dist/Cubit-CROWjjs9.js.map +1 -0
- package/dist/Cubit-CWP8Ddzx.cjs +510 -0
- package/dist/Cubit-CWP8Ddzx.cjs.map +1 -0
- package/dist/Cubit-CXxh9iol.js +302 -0
- package/dist/Cubit-CXxh9iol.js.map +1 -0
- package/dist/Cubit-CYOWfzQt.cjs +317 -0
- package/dist/Cubit-CYOWfzQt.cjs.map +1 -0
- package/dist/Cubit-CZaf_fp4.cjs +1 -1
- package/dist/Cubit-C_dUEUdd.cjs +359 -286
- package/dist/Cubit-C_rxRCTN.cjs +523 -0
- package/dist/Cubit-C_rxRCTN.cjs.map +1 -0
- package/dist/Cubit-CcKgMEBO.js +299 -0
- package/dist/Cubit-CcKgMEBO.js.map +1 -0
- package/dist/Cubit-CfT6Y1jl.js +346 -0
- package/dist/Cubit-CfT6Y1jl.js.map +1 -0
- package/dist/Cubit-CynJruuO.js +369 -0
- package/dist/Cubit-CynJruuO.js.map +1 -0
- package/dist/Cubit-D2vQ6nMb.js +342 -266
- package/dist/Cubit-D7jOZCoZ.js +342 -266
- package/dist/Cubit-D9j3IGPc.cjs +523 -0
- package/dist/Cubit-D9j3IGPc.cjs.map +1 -0
- package/dist/Cubit-DKEY9WYq.cjs +296 -0
- package/dist/Cubit-DKEY9WYq.cjs.map +1 -0
- package/dist/Cubit-DMV_0TCp.js +481 -0
- package/dist/Cubit-DMV_0TCp.js.map +1 -0
- package/dist/Cubit-DP5DXPUK.js +342 -266
- package/dist/Cubit-DRFkzD2h.js +426 -0
- package/dist/Cubit-DRFkzD2h.js.map +1 -0
- package/dist/Cubit-DbnhTUaZ.cjs +359 -286
- package/dist/Cubit-DrqG3SP3.cjs +370 -0
- package/dist/Cubit-DrqG3SP3.cjs.map +1 -0
- package/dist/Cubit-DsDkCo42.cjs +313 -0
- package/dist/Cubit-DsDkCo42.cjs.map +1 -0
- package/dist/Cubit-DwRw1E9D.cjs +309 -0
- package/dist/Cubit-DwRw1E9D.cjs.map +1 -0
- package/dist/Cubit-Dw_kFBgc.js +1 -1
- package/dist/Cubit-KiXZCubP.cjs +1 -1
- package/dist/Cubit-Ksj7G4uR.js +342 -266
- package/dist/Cubit-MkjbpcPf.cjs +359 -286
- package/dist/Cubit-NRhvdDQ6.js +297 -0
- package/dist/Cubit-NRhvdDQ6.js.map +1 -0
- package/dist/Cubit-PMTXxI_u.js +1 -1
- package/dist/Cubit-VJuu2tt9.js +481 -0
- package/dist/Cubit-VJuu2tt9.js.map +1 -0
- package/dist/Cubit-jz922NKf.cjs +320 -0
- package/dist/Cubit-jz922NKf.cjs.map +1 -0
- package/dist/Cubit-kU5_4jgC.cjs +359 -286
- package/dist/StateContainerRegistry-B4yVMYbx.cjs +1057 -0
- package/dist/StateContainerRegistry-B4yVMYbx.cjs.map +1 -0
- package/dist/StateContainerRegistry-BAcxouCu.js +723 -0
- package/dist/StateContainerRegistry-BAcxouCu.js.map +1 -0
- package/dist/StateContainerRegistry-BK57H92E.js +747 -0
- package/dist/StateContainerRegistry-BK57H92E.js.map +1 -0
- package/dist/StateContainerRegistry-BRBATSrx.cjs +1030 -0
- package/dist/StateContainerRegistry-BRBATSrx.cjs.map +1 -0
- package/dist/StateContainerRegistry-BgBIKcQF.js +956 -0
- package/dist/StateContainerRegistry-BgBIKcQF.js.map +1 -0
- package/dist/StateContainerRegistry-BglEhqdA.js +709 -0
- package/dist/StateContainerRegistry-BglEhqdA.js.map +1 -0
- package/dist/StateContainerRegistry-BhcnG0DF.js +625 -562
- package/dist/StateContainerRegistry-BpO5t-0i.js +682 -0
- package/dist/StateContainerRegistry-BpO5t-0i.js.map +1 -0
- package/dist/StateContainerRegistry-BqS-wpb_.js +957 -0
- package/dist/StateContainerRegistry-BqS-wpb_.js.map +1 -0
- package/dist/StateContainerRegistry-BrEGYPZT.cjs +1029 -0
- package/dist/StateContainerRegistry-BrEGYPZT.cjs.map +1 -0
- package/dist/StateContainerRegistry-Bxfne4A7.cjs +908 -0
- package/dist/StateContainerRegistry-Bxfne4A7.cjs.map +1 -0
- package/dist/StateContainerRegistry-C0E7vsgy.js +758 -0
- package/dist/StateContainerRegistry-C0E7vsgy.js.map +1 -0
- package/dist/StateContainerRegistry-C0I77Ndz.cjs +920 -0
- package/dist/StateContainerRegistry-C0I77Ndz.cjs.map +1 -0
- package/dist/StateContainerRegistry-CDH9mnQS.cjs +715 -0
- package/dist/StateContainerRegistry-CDH9mnQS.cjs.map +1 -0
- package/dist/StateContainerRegistry-CTOXUf75.cjs +742 -0
- package/dist/StateContainerRegistry-CTOXUf75.cjs.map +1 -0
- package/dist/StateContainerRegistry-CX2CBOmv.cjs +795 -0
- package/dist/StateContainerRegistry-CX2CBOmv.cjs.map +1 -0
- package/dist/StateContainerRegistry-CXnnf2-l.js +867 -0
- package/dist/StateContainerRegistry-CXnnf2-l.js.map +1 -0
- package/dist/StateContainerRegistry-CehuIpK_.cjs +811 -0
- package/dist/StateContainerRegistry-CehuIpK_.cjs.map +1 -0
- package/dist/StateContainerRegistry-Ci0ajc5g.js +720 -0
- package/dist/StateContainerRegistry-Ci0ajc5g.js.map +1 -0
- package/dist/StateContainerRegistry-Ck2-XmT_.js +587 -527
- package/dist/StateContainerRegistry-D1lVJFGL.cjs +753 -0
- package/dist/StateContainerRegistry-D1lVJFGL.cjs.map +1 -0
- package/dist/StateContainerRegistry-DC4N73O6.js +632 -569
- package/dist/StateContainerRegistry-DOuGI-l5.js +645 -582
- package/dist/StateContainerRegistry-DT66lr3I.cjs +651 -596
- package/dist/StateContainerRegistry-DmmzYa7S.js +974 -0
- package/dist/StateContainerRegistry-DmmzYa7S.js.map +1 -0
- package/dist/StateContainerRegistry-Upsrlg9G.cjs +756 -0
- package/dist/StateContainerRegistry-Upsrlg9G.cjs.map +1 -0
- package/dist/StateContainerRegistry-WznfcA-Q.js +855 -0
- package/dist/StateContainerRegistry-WznfcA-Q.js.map +1 -0
- package/dist/StateContainerRegistry-Yph6UCA_.js +637 -569
- package/dist/StateContainerRegistry-mseeTqSA.cjs +671 -616
- package/dist/StateContainerRegistry-pRNxHNFD.cjs +658 -603
- package/dist/StateContainerRegistry-vXMWtG7J.cjs +613 -561
- package/dist/StateContainerRegistry-v_prqMcI.cjs +663 -603
- package/dist/branded-BSeA_mZO.cjs.map +1 -1
- package/dist/branded-DCqi3De1.cjs +11 -11
- package/dist/branded-DwtzSsg0.js.map +1 -1
- package/dist/branded-Max3xOTA.js +6 -6
- package/dist/config-0ZD9i3wy.js +16 -0
- package/dist/config-0ZD9i3wy.js.map +1 -0
- package/dist/config-B3NIwDQv.cjs +32 -0
- package/dist/config-B3NIwDQv.cjs.map +1 -0
- package/dist/config-BKGHop0V.js +16 -0
- package/dist/config-BKGHop0V.js.map +1 -0
- package/dist/config-BKoaAlmb.js +5 -5
- package/dist/config-BPj08-8h.cjs +32 -0
- package/dist/config-BPj08-8h.cjs.map +1 -0
- package/dist/config-BR0Xy-Tn.cjs +32 -0
- package/dist/config-BR0Xy-Tn.cjs.map +1 -0
- package/dist/config-B_4xXpvK.cjs +32 -0
- package/dist/config-B_4xXpvK.cjs.map +1 -0
- package/dist/config-BflrQM4_.cjs +32 -0
- package/dist/config-BflrQM4_.cjs.map +1 -0
- package/dist/config-BzObBsk2.cjs +32 -0
- package/dist/config-BzObBsk2.cjs.map +1 -0
- package/dist/config-C0yumL1H.cjs +32 -0
- package/dist/config-C0yumL1H.cjs.map +1 -0
- package/dist/config-C8xqVHTf.js +16 -0
- package/dist/config-C8xqVHTf.js.map +1 -0
- package/dist/config-CCUhIYIF.js +5 -5
- package/dist/config-CGo__MAt.js +16 -0
- package/dist/config-CGo__MAt.js.map +1 -0
- package/dist/config-CQH9fTY-.cjs +32 -0
- package/dist/config-CQH9fTY-.cjs.map +1 -0
- package/dist/config-CR_Bz7RD.js +5 -5
- package/dist/config-CTOa-yPN.cjs +20 -20
- package/dist/config-Cd7Q-B4g.js +16 -0
- package/dist/config-Cd7Q-B4g.js.map +1 -0
- package/dist/config-CmDEX-1o.js +16 -0
- package/dist/config-CmDEX-1o.js.map +1 -0
- package/dist/config-CoNMTnMA.cjs +32 -0
- package/dist/config-CoNMTnMA.cjs.map +1 -0
- package/dist/config-Cwj8-C1J.js +16 -0
- package/dist/config-Cwj8-C1J.js.map +1 -0
- package/dist/config-D3jisfdj.cjs +20 -20
- package/dist/config-D4GifZQ4.js +5 -5
- package/dist/config-DDrSQGpQ.cjs +20 -20
- package/dist/config-DEcslxan.cjs +32 -0
- package/dist/config-DEcslxan.cjs.map +1 -0
- package/dist/config-DMNZ2YLV.cjs +20 -20
- package/dist/config-De9oQ6Ki.js +16 -0
- package/dist/config-De9oQ6Ki.js.map +1 -0
- package/dist/config-DoHx0Xsl.js +16 -0
- package/dist/config-DoHx0Xsl.js.map +1 -0
- package/dist/config-DokTzpr8.cjs +20 -20
- package/dist/config-DslYBm4Z.js +5 -5
- package/dist/config-H6FAqbW4.cjs +32 -0
- package/dist/config-H6FAqbW4.cjs.map +1 -0
- package/dist/config-Yp645dGK.js +16 -0
- package/dist/config-Yp645dGK.js.map +1 -0
- package/dist/config-ispAzOZV.js +16 -0
- package/dist/config-ispAzOZV.js.map +1 -0
- package/dist/config.d.cts +72 -0
- package/dist/config.d.ts +72 -0
- package/dist/constants.d.cts +18 -28
- package/dist/constants.d.ts +18 -28
- package/dist/core/Cubit.d.ts +14 -5
- package/dist/core/StateContainer.d.ts +112 -15
- package/dist/core/StateContainerRegistry.d.ts +66 -7
- package/dist/core/symbols.d.ts +26 -1
- package/dist/debug.cjs +3 -3
- package/dist/debug.js +3 -3
- package/dist/decorators/blac.d.ts +17 -0
- package/dist/ensure-9VEq5H0L.js +3 -3
- package/dist/ensure-BB6xHQAF.cjs +14 -0
- package/dist/ensure-BB6xHQAF.cjs.map +1 -0
- package/dist/ensure-BNDfTzqg.cjs +8 -8
- package/dist/ensure-BVCnjU7r.js +343 -267
- package/dist/ensure-BbzGXjep.cjs +8 -8
- package/dist/ensure-BlIaQai6.js +9 -0
- package/dist/ensure-BlIaQai6.js.map +1 -0
- package/dist/ensure-Bm3oHxga.js +9 -0
- package/dist/ensure-Bm3oHxga.js.map +1 -0
- package/dist/ensure-C3eIRs6e.cjs +14 -0
- package/dist/ensure-C3eIRs6e.cjs.map +1 -0
- package/dist/ensure-CJZL7bcA.cjs +365 -292
- package/dist/ensure-CN6unBOe.cjs +14 -0
- package/dist/ensure-CN6unBOe.cjs.map +1 -0
- package/dist/ensure-CU-B1ywv.js +3 -3
- package/dist/ensure-CWKzeno7.js +9 -0
- package/dist/ensure-CWKzeno7.js.map +1 -0
- package/dist/ensure-CkENsuQ9.js +9 -0
- package/dist/ensure-CkENsuQ9.js.map +1 -0
- package/dist/ensure-Cm-4_LSh.cjs +14 -0
- package/dist/ensure-Cm-4_LSh.cjs.map +1 -0
- package/dist/ensure-Cqex5r1P.cjs +14 -0
- package/dist/ensure-Cqex5r1P.cjs.map +1 -0
- package/dist/ensure-Cv5AbNGZ.js +9 -0
- package/dist/ensure-Cv5AbNGZ.js.map +1 -0
- package/dist/ensure-D63lEMUK.cjs +8 -8
- package/dist/ensure-DGEtPU9A.cjs +14 -0
- package/dist/ensure-DGEtPU9A.cjs.map +1 -0
- package/dist/ensure-DM3qb336.cjs +14 -0
- package/dist/ensure-DM3qb336.cjs.map +1 -0
- package/dist/ensure-DME-_T0j.cjs +14 -0
- package/dist/ensure-DME-_T0j.cjs.map +1 -0
- package/dist/ensure-DWd0GCYB.js +9 -0
- package/dist/ensure-DWd0GCYB.js.map +1 -0
- package/dist/ensure-DamKOP6q.cjs +8 -8
- package/dist/ensure-Dcfptl-A.js +9 -0
- package/dist/ensure-Dcfptl-A.js.map +1 -0
- package/dist/ensure-Def-EBWG.js +3 -3
- package/dist/ensure-DnHL5QiQ.cjs +14 -0
- package/dist/ensure-DnHL5QiQ.cjs.map +1 -0
- package/dist/ensure-Dr7I78Ku.cjs +14 -0
- package/dist/ensure-Dr7I78Ku.cjs.map +1 -0
- package/dist/ensure-SLVdGd5b.js +9 -0
- package/dist/ensure-SLVdGd5b.js.map +1 -0
- package/dist/ensure-Sb92MCXu.js +3 -3
- package/dist/ensure-gFlvevGm.cjs +14 -0
- package/dist/ensure-gFlvevGm.cjs.map +1 -0
- package/dist/ensure-l2-H7S5W.js +9 -0
- package/dist/ensure-l2-H7S5W.js.map +1 -0
- package/dist/ensure-mkL-3qh8.js +9 -0
- package/dist/ensure-mkL-3qh8.js.map +1 -0
- package/dist/ensure-n80crSlX.js +3 -3
- package/dist/ensure-nCxg7MCN.js +9 -0
- package/dist/ensure-nCxg7MCN.js.map +1 -0
- package/dist/ensure-vS71MV4q.cjs +8 -8
- package/dist/index.cjs +40 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -4
- package/dist/index.d.ts +15 -4
- package/dist/index.js +23 -10
- package/dist/index.js.map +1 -1
- package/dist/management-6oQbmf0z.js +41 -0
- package/dist/management-6oQbmf0z.js.map +1 -0
- package/dist/management-B46QwA9Y.js +41 -0
- package/dist/management-B46QwA9Y.js.map +1 -0
- package/dist/management-B9yrRpeg.js +41 -0
- package/dist/management-B9yrRpeg.js.map +1 -0
- package/dist/management-BCKTEZ8Q.js +41 -0
- package/dist/management-BCKTEZ8Q.js.map +1 -0
- package/dist/management-BbMzdXbT.js +41 -0
- package/dist/management-BbMzdXbT.js.map +1 -0
- package/dist/management-Bg652agq.js +20 -11
- package/dist/management-BnedF5ZD.cjs +79 -0
- package/dist/management-BnedF5ZD.cjs.map +1 -0
- package/dist/management-BoUa99eB.cjs +79 -0
- package/dist/management-BoUa99eB.cjs.map +1 -0
- package/dist/management-C4SHcrJm.cjs +79 -0
- package/dist/management-C4SHcrJm.cjs.map +1 -0
- package/dist/management-CK-GL3wY.js +41 -0
- package/dist/management-CK-GL3wY.js.map +1 -0
- package/dist/management-CPhgY8OE.js +41 -0
- package/dist/management-CPhgY8OE.js.map +1 -0
- package/dist/management-CU_V3LIP.js +20 -11
- package/dist/management-CUwXDSi9.cjs +79 -0
- package/dist/management-CUwXDSi9.cjs.map +1 -0
- package/dist/management-CaqiyNzB.js +20 -11
- package/dist/management-Cin-JvYe.js +20 -11
- package/dist/management-ClaXym0F.cjs +50 -50
- package/dist/management-DL0Uzsoz.js +41 -0
- package/dist/management-DL0Uzsoz.js.map +1 -0
- package/dist/management-DLdAQfqk.cjs +79 -0
- package/dist/management-DLdAQfqk.cjs.map +1 -0
- package/dist/management-DMZ8qpwr.cjs +79 -0
- package/dist/management-DMZ8qpwr.cjs.map +1 -0
- package/dist/management-DTzcC6aD.cjs +79 -0
- package/dist/management-DTzcC6aD.cjs.map +1 -0
- package/dist/management-DYLNyj9p.cjs +79 -0
- package/dist/management-DYLNyj9p.cjs.map +1 -0
- package/dist/management-Dag9u4t6.cjs +50 -50
- package/dist/management-DbMRdDBo.cjs +50 -50
- package/dist/management-DfnDAKmP.js +41 -0
- package/dist/management-DfnDAKmP.js.map +1 -0
- package/dist/management-DjBU1gtb.cjs +79 -0
- package/dist/management-DjBU1gtb.cjs.map +1 -0
- package/dist/management-DwCozsY8.js +41 -0
- package/dist/management-DwCozsY8.js.map +1 -0
- package/dist/management-H4m3ciJO.js +32 -0
- package/dist/management-H4m3ciJO.js.map +1 -0
- package/dist/management-Xo3A6Za3.cjs +79 -0
- package/dist/management-Xo3A6Za3.cjs.map +1 -0
- package/dist/management-ZU2YzOkr.js +18 -10
- package/dist/management-baPDwA9n.cjs +50 -50
- package/dist/management-jQGCvZNN.cjs +44 -44
- package/dist/management-ry_KteFK.cjs +79 -0
- package/dist/management-ry_KteFK.cjs.map +1 -0
- package/dist/plugin/BlacPlugin.d.ts +70 -100
- package/dist/plugin/PluginManager.d.ts +67 -5
- package/dist/plugins.cjs +1 -1
- package/dist/plugins.d.cts +2 -2
- package/dist/plugins.d.ts +2 -2
- package/dist/plugins.js +1 -1
- package/dist/registry/acquire.d.ts +9 -2
- package/dist/registry/ensure.d.ts +2 -2
- package/dist/registry/index.d.ts +1 -1
- package/dist/resolve-dependencies-B2QggQAi.js +729 -0
- package/dist/resolve-dependencies-B2QggQAi.js.map +1 -0
- package/dist/resolve-dependencies-B6JDXvpr.js +739 -0
- package/dist/resolve-dependencies-B6JDXvpr.js.map +1 -0
- package/dist/resolve-dependencies-BAKAoD0U.js +878 -0
- package/dist/resolve-dependencies-BAKAoD0U.js.map +1 -0
- package/dist/resolve-dependencies-BFZQq60Y.cjs +724 -666
- package/dist/resolve-dependencies-BGafS3Ww.js +643 -561
- package/dist/resolve-dependencies-BHd34gS3.cjs +724 -666
- package/dist/resolve-dependencies-BNeayhbQ.cjs +840 -0
- package/dist/resolve-dependencies-BNeayhbQ.cjs.map +1 -0
- package/dist/resolve-dependencies-BWEMpuDy.js +729 -0
- package/dist/resolve-dependencies-BWEMpuDy.js.map +1 -0
- package/dist/resolve-dependencies-BiWkW2eS.js +643 -561
- package/dist/resolve-dependencies-BjxCztYD.js +739 -0
- package/dist/resolve-dependencies-BjxCztYD.js.map +1 -0
- package/dist/resolve-dependencies-BlyBV0hB.cjs +969 -0
- package/dist/resolve-dependencies-BlyBV0hB.cjs.map +1 -0
- package/dist/resolve-dependencies-By26rT_i.js +739 -0
- package/dist/resolve-dependencies-By26rT_i.js.map +1 -0
- package/dist/resolve-dependencies-C9Kf7AzY.cjs +832 -0
- package/dist/resolve-dependencies-C9Kf7AzY.cjs.map +1 -0
- package/dist/resolve-dependencies-CTzV1txG.js +643 -561
- package/dist/resolve-dependencies-CWjuGHiF.cjs +969 -0
- package/dist/resolve-dependencies-CWjuGHiF.cjs.map +1 -0
- package/dist/resolve-dependencies-ClSsP0DJ.cjs +830 -0
- package/dist/resolve-dependencies-ClSsP0DJ.cjs.map +1 -0
- package/dist/resolve-dependencies-D0vTzZgs.js +643 -561
- package/dist/resolve-dependencies-D2WnZMF-.cjs +724 -666
- package/dist/resolve-dependencies-DCBLTeza.cjs +969 -0
- package/dist/resolve-dependencies-DCBLTeza.cjs.map +1 -0
- package/dist/resolve-dependencies-DMlqYJR2.js +731 -0
- package/dist/resolve-dependencies-DMlqYJR2.js.map +1 -0
- package/dist/resolve-dependencies-DP6U1EYB.cjs +840 -0
- package/dist/resolve-dependencies-DP6U1EYB.cjs.map +1 -0
- package/dist/resolve-dependencies-DSQNXvnV.cjs +724 -666
- package/dist/resolve-dependencies-DV3HO_uH.js +878 -0
- package/dist/resolve-dependencies-DV3HO_uH.js.map +1 -0
- package/dist/resolve-dependencies-DXwMhP0Y.js +878 -0
- package/dist/resolve-dependencies-DXwMhP0Y.js.map +1 -0
- package/dist/resolve-dependencies-DbRWlt9u.js +878 -0
- package/dist/resolve-dependencies-DbRWlt9u.js.map +1 -0
- package/dist/resolve-dependencies-DcUUva2P.cjs +724 -666
- package/dist/resolve-dependencies-Dd8T6TLt.cjs +832 -0
- package/dist/resolve-dependencies-Dd8T6TLt.cjs.map +1 -0
- package/dist/resolve-dependencies-Dfdp_DZd.cjs +840 -0
- package/dist/resolve-dependencies-Dfdp_DZd.cjs.map +1 -0
- package/dist/resolve-dependencies-GJ8PNyNB.cjs +969 -0
- package/dist/resolve-dependencies-GJ8PNyNB.cjs.map +1 -0
- package/dist/resolve-dependencies-KSpTt4jy.cjs +830 -0
- package/dist/resolve-dependencies-KSpTt4jy.cjs.map +1 -0
- package/dist/resolve-dependencies-Nvjp4CwS.js +731 -0
- package/dist/resolve-dependencies-Nvjp4CwS.js.map +1 -0
- package/dist/resolve-dependencies-f-QUqYiL.js +643 -561
- package/dist/testing.cjs +27 -20
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +22 -1
- package/dist/testing.d.ts +22 -1
- package/dist/testing.js +27 -21
- package/dist/testing.js.map +1 -1
- package/dist/tracked-B77j2g9M.js +171 -151
- package/dist/tracked-BDVi2LKM.cjs +196 -175
- package/dist/tracked-BFdJCzL0.cjs +242 -0
- package/dist/tracked-BFdJCzL0.cjs.map +1 -0
- package/dist/tracked-BH-gX4T1.cjs +196 -175
- package/dist/tracked-BTHok3Dl.cjs +196 -175
- package/dist/tracked-BTbFkFeM.js +212 -0
- package/dist/tracked-BTbFkFeM.js.map +1 -0
- package/dist/tracked-BU_OBWqM.cjs +242 -0
- package/dist/tracked-BU_OBWqM.cjs.map +1 -0
- package/dist/tracked-BfctH2es.cjs +242 -0
- package/dist/tracked-BfctH2es.cjs.map +1 -0
- package/dist/tracked-BhQtzUhZ.js +212 -0
- package/dist/tracked-BhQtzUhZ.js.map +1 -0
- package/dist/tracked-BnqrYXiO.js +212 -0
- package/dist/tracked-BnqrYXiO.js.map +1 -0
- package/dist/tracked-BtgFOGup.js +212 -0
- package/dist/tracked-BtgFOGup.js.map +1 -0
- package/dist/tracked-C3nIS4J7.cjs +242 -0
- package/dist/tracked-C3nIS4J7.cjs.map +1 -0
- package/dist/tracked-C52awNV9.js +197 -0
- package/dist/tracked-C52awNV9.js.map +1 -0
- package/dist/tracked-CGzduF2m.js +212 -0
- package/dist/tracked-CGzduF2m.js.map +1 -0
- package/dist/tracked-CK_-ixtX.cjs +227 -0
- package/dist/tracked-CK_-ixtX.cjs.map +1 -0
- package/dist/tracked-CLlvURln.js +212 -0
- package/dist/tracked-CLlvURln.js.map +1 -0
- package/dist/tracked-CgHWmuGC.cjs +242 -0
- package/dist/tracked-CgHWmuGC.cjs.map +1 -0
- package/dist/tracked-CoAlC8fs.js +171 -151
- package/dist/tracked-D3Xjm1H1.cjs +242 -0
- package/dist/tracked-D3Xjm1H1.cjs.map +1 -0
- package/dist/tracked-DB6yMV5F.js +212 -0
- package/dist/tracked-DB6yMV5F.js.map +1 -0
- package/dist/tracked-DBn-bs_G.js +171 -151
- package/dist/tracked-DMBTDF0P.js +171 -151
- package/dist/tracked-DN3h3Rp1.js +197 -0
- package/dist/tracked-DN3h3Rp1.js.map +1 -0
- package/dist/tracked-DOGh1Q5Z.cjs +242 -0
- package/dist/tracked-DOGh1Q5Z.cjs.map +1 -0
- package/dist/tracked-DUkp4zve.cjs +227 -0
- package/dist/tracked-DUkp4zve.cjs.map +1 -0
- package/dist/tracked-D_ou7mYG.js +212 -0
- package/dist/tracked-D_ou7mYG.js.map +1 -0
- package/dist/tracked-Dcu6EATB.js +171 -151
- package/dist/tracked-GvAJQVAI.cjs +227 -196
- package/dist/tracked-O2lv-kJV.cjs +242 -0
- package/dist/tracked-O2lv-kJV.cjs.map +1 -0
- package/dist/tracked-WF6aXuAo.js +186 -162
- package/dist/tracked-d_sQWU3c.cjs +196 -175
- package/dist/tracked-n9TMK-30.cjs +196 -175
- package/dist/tracked-njU-_pVa.cjs +242 -0
- package/dist/tracked-njU-_pVa.cjs.map +1 -0
- package/dist/tracked-zAgmKIlC.js +212 -0
- package/dist/tracked-zAgmKIlC.js.map +1 -0
- package/dist/tracking/dependency-manager.d.ts +33 -29
- package/dist/tracking/index.d.ts +16 -1
- package/dist/tracking/iteration-perf.bench.d.ts +1 -0
- package/dist/tracking/path-utils.d.ts +18 -1
- package/dist/tracking/resolve-dependencies.d.ts +3 -1
- package/dist/tracking/tracked.d.ts +37 -34
- package/dist/tracking/tracking-proxy.d.ts +94 -47
- package/dist/tracking.cjs +12 -9
- package/dist/tracking.js +32 -2
- package/dist/types/utilities.d.ts +15 -3
- package/dist/types.cjs +1 -1
- package/dist/types.js +1 -1
- package/dist/utils/static-props.d.ts +23 -0
- package/dist/utils/structural-key.d.ts +14 -0
- package/dist/watch/watch.d.ts +1 -1
- package/dist/watch-BpwaUL8r.cjs +68 -0
- package/dist/watch-BpwaUL8r.cjs.map +1 -0
- package/dist/watch-DWCqXllW.js +57 -0
- package/dist/watch-DWCqXllW.js.map +1 -0
- package/dist/watch-entry.cjs +3 -6
- package/dist/watch-entry.d.cts +1 -3
- package/dist/watch-entry.d.ts +1 -3
- package/dist/watch-entry.js +2 -2
- package/package.json +4 -14
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import { a as BLAC_DEFAULTS } from './StateContainerRegistry-BpO5t-0i.js';
|
|
2
|
+
import { t as getRegistry } from './config-De9oQ6Ki.js';
|
|
3
|
+
//#region src/utils/idGenerator.ts
|
|
4
|
+
/**
|
|
5
|
+
* Generate simple ID with timestamp and random (no counter tracking)
|
|
6
|
+
*
|
|
7
|
+
* Format: `${prefix}:${timestamp}_${random}`
|
|
8
|
+
*
|
|
9
|
+
* @param prefix - Prefix for the ID
|
|
10
|
+
* @returns Branded ID string
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const id = generateSimpleId('CounterBloc');
|
|
15
|
+
* // Returns: "CounterBloc:1698765432100_a3k9d7f2q"
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
function generateSimpleId(prefix, affix) {
|
|
19
|
+
if (affix) return `${prefix}:${affix}`;
|
|
20
|
+
return `${prefix}:${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/core/symbols.ts
|
|
24
|
+
const EMIT = Symbol('blac.emit');
|
|
25
|
+
const UPDATE = Symbol('blac.update');
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/core/StateContainer.ts
|
|
28
|
+
const EMPTY_DEPS = /* @__PURE__ */ new Map();
|
|
29
|
+
var StateContainer = class {
|
|
30
|
+
static {
|
|
31
|
+
this.__excludeFromDevTools = false;
|
|
32
|
+
}
|
|
33
|
+
get dependencies() {
|
|
34
|
+
return this._dependencies ?? EMPTY_DEPS;
|
|
35
|
+
}
|
|
36
|
+
depend(Type, instanceKey) {
|
|
37
|
+
if (!this._dependencies) this._dependencies = /* @__PURE__ */ new Map();
|
|
38
|
+
this._dependencies.set(
|
|
39
|
+
Type,
|
|
40
|
+
instanceKey ?? BLAC_DEFAULTS.DEFAULT_INSTANCE_KEY,
|
|
41
|
+
);
|
|
42
|
+
return () => getRegistry().ensure(Type, instanceKey);
|
|
43
|
+
}
|
|
44
|
+
constructor(initialState) {
|
|
45
|
+
this._listeners = /* @__PURE__ */ new Set();
|
|
46
|
+
this._disposed = false;
|
|
47
|
+
this._hydrationStatus = 'idle';
|
|
48
|
+
this._changedWhileHydrating = false;
|
|
49
|
+
this._hydrationPromise = null;
|
|
50
|
+
this._hydrationPromiseSettled = false;
|
|
51
|
+
this._config = {};
|
|
52
|
+
this._systemEventHandlers = /* @__PURE__ */ new Map();
|
|
53
|
+
this._dependencies = null;
|
|
54
|
+
this.name = this.constructor.name;
|
|
55
|
+
this.debug = false;
|
|
56
|
+
this.instanceId = generateSimpleId(this.constructor.name, 'main');
|
|
57
|
+
this.createdAt = Date.now();
|
|
58
|
+
this.onSystemEvent = (event, handler) => {
|
|
59
|
+
let handlers = this._systemEventHandlers.get(event);
|
|
60
|
+
if (!handlers) {
|
|
61
|
+
handlers = /* @__PURE__ */ new Set();
|
|
62
|
+
this._systemEventHandlers.set(event, handlers);
|
|
63
|
+
}
|
|
64
|
+
handlers.add(handler);
|
|
65
|
+
return () => {
|
|
66
|
+
handlers?.delete(handler);
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
this._state = initialState;
|
|
70
|
+
}
|
|
71
|
+
initConfig(config) {
|
|
72
|
+
this._config = { ...config };
|
|
73
|
+
this.name = this._config.name || this.constructor.name;
|
|
74
|
+
this.debug = this._config.debug ?? false;
|
|
75
|
+
this.instanceId = generateSimpleId(
|
|
76
|
+
this.constructor.name,
|
|
77
|
+
this._config.instanceId,
|
|
78
|
+
);
|
|
79
|
+
getRegistry().emit('created', this);
|
|
80
|
+
}
|
|
81
|
+
get state() {
|
|
82
|
+
return this._state;
|
|
83
|
+
}
|
|
84
|
+
get isDisposed() {
|
|
85
|
+
return this._disposed;
|
|
86
|
+
}
|
|
87
|
+
get hydrationStatus() {
|
|
88
|
+
return this._hydrationStatus;
|
|
89
|
+
}
|
|
90
|
+
get hydrationError() {
|
|
91
|
+
return this._hydrationError;
|
|
92
|
+
}
|
|
93
|
+
get isHydrated() {
|
|
94
|
+
return this._hydrationStatus === 'hydrated';
|
|
95
|
+
}
|
|
96
|
+
get changedWhileHydrating() {
|
|
97
|
+
return this._changedWhileHydrating;
|
|
98
|
+
}
|
|
99
|
+
subscribe(listener) {
|
|
100
|
+
if (this._disposed)
|
|
101
|
+
throw new Error(`Cannot subscribe to disposed container ${this.name}`);
|
|
102
|
+
this._listeners.add(listener);
|
|
103
|
+
return () => this._listeners.delete(listener);
|
|
104
|
+
}
|
|
105
|
+
dispose() {
|
|
106
|
+
if (this._disposed) return;
|
|
107
|
+
if (this.debug) console.log(`[${this.name}] Disposing...`);
|
|
108
|
+
this._disposed = true;
|
|
109
|
+
if (this._hydrationStatus === 'hydrating')
|
|
110
|
+
this.failHydration(
|
|
111
|
+
/* @__PURE__ */ new Error(
|
|
112
|
+
`Hydration cancelled because ${this.name} was disposed`,
|
|
113
|
+
),
|
|
114
|
+
);
|
|
115
|
+
this.emitSystemEvent('dispose', void 0);
|
|
116
|
+
this._listeners.clear();
|
|
117
|
+
this._systemEventHandlers.clear();
|
|
118
|
+
getRegistry().emit('disposed', this);
|
|
119
|
+
if (this.debug) console.log(`[${this.name}] Disposed successfully`);
|
|
120
|
+
}
|
|
121
|
+
[EMIT](newState) {
|
|
122
|
+
this.applyState(newState, 'default');
|
|
123
|
+
}
|
|
124
|
+
[UPDATE](updater) {
|
|
125
|
+
if (this._disposed)
|
|
126
|
+
throw new Error(
|
|
127
|
+
`Cannot update state from disposed container ${this.name}`,
|
|
128
|
+
);
|
|
129
|
+
this[EMIT](updater(this._state));
|
|
130
|
+
}
|
|
131
|
+
beginHydration() {
|
|
132
|
+
if (this._disposed)
|
|
133
|
+
throw new Error(
|
|
134
|
+
`Cannot begin hydration for disposed container ${this.name}`,
|
|
135
|
+
);
|
|
136
|
+
this._changedWhileHydrating = false;
|
|
137
|
+
this._hydrationError = void 0;
|
|
138
|
+
this._hydrationPromise = null;
|
|
139
|
+
this._resolveHydrationPromise = void 0;
|
|
140
|
+
this._rejectHydrationPromise = void 0;
|
|
141
|
+
this._hydrationPromiseSettled = false;
|
|
142
|
+
this.ensureHydrationPromise();
|
|
143
|
+
this.setHydrationStatus('hydrating');
|
|
144
|
+
}
|
|
145
|
+
applyHydratedState(newState) {
|
|
146
|
+
if (this._disposed) return false;
|
|
147
|
+
if (this._hydrationStatus !== 'hydrating' || this._changedWhileHydrating)
|
|
148
|
+
return false;
|
|
149
|
+
this.applyState(newState, 'hydration');
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
finishHydration() {
|
|
153
|
+
if (this._hydrationStatus !== 'hydrating') {
|
|
154
|
+
if (this._hydrationStatus === 'hydrated') return;
|
|
155
|
+
if (this._hydrationStatus === 'error') this.ensureHydrationPromise();
|
|
156
|
+
}
|
|
157
|
+
this.setHydrationStatus('hydrated');
|
|
158
|
+
this.resolveHydration();
|
|
159
|
+
}
|
|
160
|
+
failHydration(error) {
|
|
161
|
+
const err =
|
|
162
|
+
error instanceof Error
|
|
163
|
+
? error
|
|
164
|
+
: /* @__PURE__ */ new Error(`Hydration failed: ${String(error)}`);
|
|
165
|
+
this._hydrationError = err;
|
|
166
|
+
this.setHydrationStatus('error', err);
|
|
167
|
+
this.rejectHydration(err);
|
|
168
|
+
}
|
|
169
|
+
waitForHydration() {
|
|
170
|
+
if (
|
|
171
|
+
this._hydrationStatus === 'idle' ||
|
|
172
|
+
this._hydrationStatus === 'hydrated'
|
|
173
|
+
)
|
|
174
|
+
return Promise.resolve();
|
|
175
|
+
if (this._hydrationStatus === 'error')
|
|
176
|
+
return Promise.reject(
|
|
177
|
+
this._hydrationError ??
|
|
178
|
+
/* @__PURE__ */ new Error(
|
|
179
|
+
`Hydration failed for container ${this.name}`,
|
|
180
|
+
),
|
|
181
|
+
);
|
|
182
|
+
return this.ensureHydrationPromise();
|
|
183
|
+
}
|
|
184
|
+
applyState(newState, source) {
|
|
185
|
+
if (this._disposed)
|
|
186
|
+
throw new Error(`Cannot emit state from disposed container ${this.name}`);
|
|
187
|
+
if (this._state === newState) return;
|
|
188
|
+
if (this._hydrationStatus === 'hydrating' && source !== 'hydration')
|
|
189
|
+
this._changedWhileHydrating = true;
|
|
190
|
+
const previousState = this._state;
|
|
191
|
+
this._state = newState;
|
|
192
|
+
this.emitSystemEvent('stateChanged', {
|
|
193
|
+
state: newState,
|
|
194
|
+
previousState,
|
|
195
|
+
});
|
|
196
|
+
if (this._listeners.size > 0) {
|
|
197
|
+
const listeners = Array.from(this._listeners);
|
|
198
|
+
for (const listener of listeners)
|
|
199
|
+
try {
|
|
200
|
+
listener(newState);
|
|
201
|
+
} catch (error) {
|
|
202
|
+
console.error(`[${this.name}] Error in listener:`, error);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
getRegistry().emit('stateChanged', this, previousState, newState);
|
|
206
|
+
}
|
|
207
|
+
setHydrationStatus(status, error) {
|
|
208
|
+
const previousStatus = this._hydrationStatus;
|
|
209
|
+
this._hydrationStatus = status;
|
|
210
|
+
this._hydrationError = error;
|
|
211
|
+
this.emitSystemEvent('hydrationChanged', {
|
|
212
|
+
status,
|
|
213
|
+
previousStatus,
|
|
214
|
+
error,
|
|
215
|
+
changedWhileHydrating: this._changedWhileHydrating,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
ensureHydrationPromise() {
|
|
219
|
+
if (!this._hydrationPromise || this._hydrationPromiseSettled) {
|
|
220
|
+
this._hydrationPromiseSettled = false;
|
|
221
|
+
this._hydrationPromise = new Promise((resolve, reject) => {
|
|
222
|
+
this._resolveHydrationPromise = () => {
|
|
223
|
+
if (this._hydrationPromiseSettled) return;
|
|
224
|
+
this._hydrationPromiseSettled = true;
|
|
225
|
+
resolve();
|
|
226
|
+
};
|
|
227
|
+
this._rejectHydrationPromise = (error) => {
|
|
228
|
+
if (this._hydrationPromiseSettled) return;
|
|
229
|
+
this._hydrationPromiseSettled = true;
|
|
230
|
+
reject(error);
|
|
231
|
+
};
|
|
232
|
+
});
|
|
233
|
+
this._hydrationPromise.catch(() => {});
|
|
234
|
+
}
|
|
235
|
+
return this._hydrationPromise;
|
|
236
|
+
}
|
|
237
|
+
resolveHydration() {
|
|
238
|
+
this._resolveHydrationPromise?.();
|
|
239
|
+
}
|
|
240
|
+
rejectHydration(error) {
|
|
241
|
+
this.ensureHydrationPromise();
|
|
242
|
+
this._rejectHydrationPromise?.(error);
|
|
243
|
+
}
|
|
244
|
+
emitSystemEvent(event, payload) {
|
|
245
|
+
const handlers = this._systemEventHandlers.get(event);
|
|
246
|
+
if (!handlers) return;
|
|
247
|
+
for (const handler of handlers)
|
|
248
|
+
try {
|
|
249
|
+
handler(payload);
|
|
250
|
+
} catch (error) {
|
|
251
|
+
console.error(`[${this.name}] Error in system event handler:`, error);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
//#endregion
|
|
256
|
+
//#region src/core/Cubit.ts
|
|
257
|
+
var Cubit = class extends StateContainer {
|
|
258
|
+
constructor(initialState) {
|
|
259
|
+
super(initialState);
|
|
260
|
+
this.patch = (partial) => {
|
|
261
|
+
if (typeof this.state !== 'object' || this.state === null)
|
|
262
|
+
throw new Error('patch() is only available for object state types');
|
|
263
|
+
const current = this.state;
|
|
264
|
+
let hasChanges = false;
|
|
265
|
+
for (const key in partial)
|
|
266
|
+
if (!Object.is(current[key], partial[key])) {
|
|
267
|
+
hasChanges = true;
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
if (hasChanges)
|
|
271
|
+
this[EMIT]({
|
|
272
|
+
...current,
|
|
273
|
+
...partial,
|
|
274
|
+
});
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
emit(newState) {
|
|
278
|
+
this[EMIT](newState);
|
|
279
|
+
}
|
|
280
|
+
update(updater) {
|
|
281
|
+
this[UPDATE](updater);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
//#endregion
|
|
285
|
+
export { UPDATE as i, StateContainer as n, EMIT as r, Cubit as t };
|
|
286
|
+
|
|
287
|
+
//# sourceMappingURL=Cubit-BBKF3PIg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cubit-BBKF3PIg.js","names":[],"sources":["../src/utils/idGenerator.ts","../src/core/symbols.ts","../src/core/StateContainer.ts","../src/core/Cubit.ts"],"sourcesContent":["/**\n * Centralized ID Generation\n *\n * Provides consistent, collision-resistant ID generation for all BlaC subsystems.\n * Uses timestamp + counter + random suffix for uniqueness.\n */\n\n// Global counter map for ID generation\nconst globalCounters = new Map<string, number>();\n\n/**\n * Creates an ID generator with isolated counter state\n *\n * @param prefix - Prefix for generated IDs\n * @returns Object with next(), nextSimple(), and reset() methods\n *\n * @example\n * ```ts\n * const generator = createIdGenerator('sub');\n * const id1 = generator.next(); // \"sub:1698765432100_1_a3k9d7f2q\"\n * const id2 = generator.next(); // \"sub:1698765432101_2_b4n8e9g3r\"\n * ```\n */\nexport function createIdGenerator(prefix: string) {\n let counter = 0;\n return {\n next: () =>\n `${prefix}:${Date.now()}_${++counter}_${Math.random().toString(36).substring(2, 11)}`,\n nextSimple: () => `${prefix}:${++counter}`,\n reset: () => {\n counter = 0;\n },\n };\n}\n\n/**\n * Generate ID with timestamp, counter, and random suffix (tree-shakeable)\n *\n * Format: `${prefix}:${timestamp}_${counter}_${random}`\n *\n * @param prefix - Prefix for the ID (e.g., 'sub', 'consumer', 'stage')\n * @returns Branded ID string\n *\n * @example\n * const id = generateId('sub');\n * // Returns: \"sub:1698765432100_1_a3k9d7f2q\"\n */\nexport function generateId(prefix: string): string {\n const counter = (globalCounters.get(prefix) ?? 0) + 1;\n globalCounters.set(prefix, counter);\n const timestamp = Date.now();\n const random = Math.random().toString(36).substring(2, 11);\n return `${prefix}:${timestamp}_${counter}_${random}`;\n}\n\n/**\n * Generate simple ID with timestamp and random (no counter tracking)\n *\n * Format: `${prefix}:${timestamp}_${random}`\n *\n * @param prefix - Prefix for the ID\n * @returns Branded ID string\n *\n * @example\n * ```ts\n * const id = generateSimpleId('CounterBloc');\n * // Returns: \"CounterBloc:1698765432100_a3k9d7f2q\"\n * ```\n */\nexport function generateSimpleId(prefix: string, affix?: string): string {\n if (affix) {\n return `${prefix}:${affix}`;\n }\n const timestamp = Date.now();\n const random = Math.random().toString(36).substring(2, 11);\n return `${prefix}:${timestamp}_${random}`;\n}\n\n/**\n * Reset all counters for testing purposes\n * @internal\n */\nexport function __resetIdCounters(): void {\n globalCounters.clear();\n}\n","export const EMIT = Symbol('blac.emit');\nexport const UPDATE = Symbol('blac.update');\n","import { generateSimpleId } from '../utils/idGenerator';\nimport { BLAC_DEFAULTS } from '../constants';\nimport { getRegistry } from '../registry/config';\nimport type { StateContainerConstructor } from '../types/utilities';\nimport { EMIT, UPDATE } from './symbols';\n\nexport interface StateContainerConfig {\n name?: string;\n debug?: boolean;\n instanceId?: string;\n}\n\nexport type HydrationStatus = 'idle' | 'hydrating' | 'hydrated' | 'error';\n\ntype StateListener<S> = (state: S) => void;\n\nexport type SystemEvent = 'stateChanged' | 'dispose' | 'hydrationChanged';\n\nexport interface SystemEventPayloads<S> {\n stateChanged: { state: S; previousState: S };\n dispose: void;\n hydrationChanged: {\n status: HydrationStatus;\n previousStatus: HydrationStatus;\n error?: Error;\n changedWhileHydrating: boolean;\n };\n}\n\ntype SystemEventHandler<S, E extends SystemEvent> = (\n payload: SystemEventPayloads<S>[E],\n) => void;\n\nconst EMPTY_DEPS: ReadonlyMap<any, any> = new Map();\n\nexport abstract class StateContainer<S extends object = any> {\n static __excludeFromDevTools = false;\n\n private _state: S;\n private readonly _listeners = new Set<StateListener<S>>();\n private _disposed = false;\n private _hydrationStatus: HydrationStatus = 'idle';\n private _hydrationError?: Error;\n private _changedWhileHydrating = false;\n private _hydrationPromise: Promise<void> | null = null;\n private _resolveHydrationPromise?: () => void;\n private _rejectHydrationPromise?: (error: Error) => void;\n private _hydrationPromiseSettled = false;\n private _config: StateContainerConfig = {};\n private readonly _systemEventHandlers = new Map<\n SystemEvent,\n Set<SystemEventHandler<S, any>>\n >();\n private _dependencies: Map<StateContainerConstructor, string> | null = null;\n\n name: string = this.constructor.name;\n debug: boolean = false;\n instanceId: string = generateSimpleId(this.constructor.name, 'main');\n createdAt: number = Date.now();\n\n get dependencies(): ReadonlyMap<StateContainerConstructor, string> {\n return this._dependencies ?? EMPTY_DEPS;\n }\n\n protected depend<T extends StateContainerConstructor>(\n Type: T,\n instanceKey?: string,\n ): () => InstanceType<T> {\n if (!this._dependencies) {\n this._dependencies = new Map();\n }\n this._dependencies.set(\n Type,\n instanceKey ?? BLAC_DEFAULTS.DEFAULT_INSTANCE_KEY,\n );\n return () => getRegistry().ensure(Type, instanceKey);\n }\n\n constructor(initialState: S) {\n this._state = initialState;\n }\n\n initConfig(config: StateContainerConfig): void {\n this._config = { ...config };\n this.name = this._config.name || this.constructor.name;\n this.debug = this._config.debug ?? false;\n this.instanceId = generateSimpleId(\n this.constructor.name,\n this._config.instanceId,\n );\n getRegistry().emit('created', this);\n }\n\n get state(): Readonly<S> {\n return this._state;\n }\n\n get isDisposed(): boolean {\n return this._disposed;\n }\n\n get hydrationStatus(): HydrationStatus {\n return this._hydrationStatus;\n }\n\n get hydrationError(): Error | undefined {\n return this._hydrationError;\n }\n\n get isHydrated(): boolean {\n return this._hydrationStatus === 'hydrated';\n }\n\n get changedWhileHydrating(): boolean {\n return this._changedWhileHydrating;\n }\n\n subscribe(listener: StateListener<S>): () => void {\n if (this._disposed) {\n throw new Error(`Cannot subscribe to disposed container ${this.name}`);\n }\n this._listeners.add(listener);\n return () => this._listeners.delete(listener);\n }\n\n dispose(): void {\n if (this._disposed) return;\n\n if (this.debug) {\n console.log(`[${this.name}] Disposing...`);\n }\n\n this._disposed = true;\n\n if (this._hydrationStatus === 'hydrating') {\n this.failHydration(\n new Error(`Hydration cancelled because ${this.name} was disposed`),\n );\n }\n\n this.emitSystemEvent('dispose', undefined as void);\n\n this._listeners.clear();\n this._systemEventHandlers.clear();\n\n getRegistry().emit('disposed', this);\n\n if (this.debug) {\n console.log(`[${this.name}] Disposed successfully`);\n }\n }\n\n protected [EMIT](newState: S): void {\n this.applyState(newState, 'default');\n }\n\n protected [UPDATE](updater: (current: S) => S): void {\n if (this._disposed) {\n throw new Error(\n `Cannot update state from disposed container ${this.name}`,\n );\n }\n this[EMIT](updater(this._state));\n }\n\n beginHydration(): void {\n if (this._disposed) {\n throw new Error(\n `Cannot begin hydration for disposed container ${this.name}`,\n );\n }\n\n this._changedWhileHydrating = false;\n this._hydrationError = undefined;\n this._hydrationPromise = null;\n this._resolveHydrationPromise = undefined;\n this._rejectHydrationPromise = undefined;\n this._hydrationPromiseSettled = false;\n void this.ensureHydrationPromise();\n this.setHydrationStatus('hydrating');\n }\n\n applyHydratedState(newState: S): boolean {\n if (this._disposed) {\n return false;\n }\n\n if (this._hydrationStatus !== 'hydrating' || this._changedWhileHydrating) {\n return false;\n }\n\n this.applyState(newState, 'hydration');\n return true;\n }\n\n finishHydration(): void {\n if (this._hydrationStatus !== 'hydrating') {\n if (this._hydrationStatus === 'hydrated') {\n return;\n }\n if (this._hydrationStatus === 'error') {\n void this.ensureHydrationPromise();\n }\n }\n\n this.setHydrationStatus('hydrated');\n this.resolveHydration();\n }\n\n failHydration(error: Error): void {\n const err =\n error instanceof Error\n ? error\n : new Error(`Hydration failed: ${String(error)}`);\n\n this._hydrationError = err;\n this.setHydrationStatus('error', err);\n this.rejectHydration(err);\n }\n\n waitForHydration(): Promise<void> {\n if (\n this._hydrationStatus === 'idle' ||\n this._hydrationStatus === 'hydrated'\n ) {\n return Promise.resolve();\n }\n\n if (this._hydrationStatus === 'error') {\n return Promise.reject(\n this._hydrationError ??\n new Error(`Hydration failed for container ${this.name}`),\n );\n }\n\n return this.ensureHydrationPromise();\n }\n\n private applyState(newState: S, source: 'default' | 'hydration'): void {\n if (this._disposed) {\n throw new Error(`Cannot emit state from disposed container ${this.name}`);\n }\n\n if (this._state === newState) return;\n\n if (this._hydrationStatus === 'hydrating' && source !== 'hydration') {\n this._changedWhileHydrating = true;\n }\n\n const previousState = this._state;\n this._state = newState;\n\n this.emitSystemEvent('stateChanged', {\n state: newState,\n previousState,\n });\n\n if (this._listeners.size > 0) {\n const listeners = Array.from(this._listeners);\n for (const listener of listeners) {\n try {\n listener(newState);\n } catch (error) {\n console.error(`[${this.name}] Error in listener:`, error);\n }\n }\n }\n\n getRegistry().emit('stateChanged', this, previousState, newState);\n }\n\n private setHydrationStatus(status: HydrationStatus, error?: Error): void {\n const previousStatus = this._hydrationStatus;\n this._hydrationStatus = status;\n this._hydrationError = error;\n\n this.emitSystemEvent('hydrationChanged', {\n status,\n previousStatus,\n error,\n changedWhileHydrating: this._changedWhileHydrating,\n });\n }\n\n private ensureHydrationPromise(): Promise<void> {\n if (!this._hydrationPromise || this._hydrationPromiseSettled) {\n this._hydrationPromiseSettled = false;\n this._hydrationPromise = new Promise<void>((resolve, reject) => {\n this._resolveHydrationPromise = () => {\n if (this._hydrationPromiseSettled) return;\n this._hydrationPromiseSettled = true;\n resolve();\n };\n this._rejectHydrationPromise = (error: Error) => {\n if (this._hydrationPromiseSettled) return;\n this._hydrationPromiseSettled = true;\n reject(error);\n };\n });\n this._hydrationPromise.catch(() => {});\n }\n\n return this._hydrationPromise;\n }\n\n private resolveHydration(): void {\n this._resolveHydrationPromise?.();\n }\n\n private rejectHydration(error: Error): void {\n void this.ensureHydrationPromise();\n this._rejectHydrationPromise?.(error);\n }\n\n protected onSystemEvent = <E extends SystemEvent>(\n event: E,\n handler: SystemEventHandler<S, E>,\n ): (() => void) => {\n let handlers = this._systemEventHandlers.get(event);\n if (!handlers) {\n handlers = new Set();\n this._systemEventHandlers.set(event, handlers);\n }\n handlers.add(handler as SystemEventHandler<S, any>);\n\n return () => {\n handlers?.delete(handler as SystemEventHandler<S, any>);\n };\n };\n\n private emitSystemEvent<E extends SystemEvent>(\n event: E,\n payload: SystemEventPayloads<S>[E],\n ): void {\n const handlers = this._systemEventHandlers.get(event);\n if (!handlers) return;\n\n for (const handler of handlers) {\n try {\n handler(payload);\n } catch (error) {\n console.error(`[${this.name}] Error in system event handler:`, error);\n }\n }\n }\n}\n","import { StateContainer } from './StateContainer';\nimport { EMIT, UPDATE } from './symbols';\n\nexport abstract class Cubit<S extends object = any> extends StateContainer<S> {\n constructor(initialState: S) {\n super(initialState);\n }\n\n public emit(newState: S): void {\n this[EMIT](newState);\n }\n\n public update(updater: (current: S) => S): void {\n this[UPDATE](updater);\n }\n\n public patch = ((partial: S extends object ? Partial<S> : never): void => {\n if (typeof this.state !== 'object' || this.state === null) {\n throw new Error('patch() is only available for object state types');\n }\n const current = this.state;\n let hasChanges = false;\n for (const key in partial) {\n if (!Object.is((current as any)[key], (partial as any)[key])) {\n hasChanges = true;\n break;\n }\n }\n if (hasChanges) {\n this[EMIT]({ ...current, ...partial } as S);\n }\n }) as S extends object ? (partial: Partial<S>) => void : never;\n}\n"],"mappings":"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"}
|