@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
|
@@ -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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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>(
|
|
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>(
|
|
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
|
-
|
|
56
|
-
|
|
65
|
+
segments: string[];
|
|
66
|
+
value: unknown;
|
|
57
67
|
}
|
|
58
68
|
/**
|
|
59
69
|
* @internal
|
|
60
70
|
*/
|
|
61
71
|
export interface DependencyState<T> {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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>(
|
|
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>(
|
|
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>(
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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(
|
|
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>(
|
|
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>(
|
|
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
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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(
|
|
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(
|
|
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>(
|
|
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:
|
|
2
|
-
const require_resolve_dependencies = require(
|
|
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.
|
|
6
|
-
|
|
5
|
+
exports.commitTrackedGetters =
|
|
6
|
+
require_resolve_dependencies.commitTrackedGetters;
|
|
7
7
|
exports.createBlocProxy = require_resolve_dependencies.createBlocProxy;
|
|
8
|
-
exports.createDependencyProxy =
|
|
9
|
-
|
|
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 =
|
|
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 =
|
|
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 {
|
|
2
|
-
|
|
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
package/dist/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as instanceId } from "./branded-
|
|
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
|
|
@@ -26,3 +27,25 @@ export declare function isKeepAliveClass<T extends StateContainerConstructor>(Ty
|
|
|
26
27
|
* @returns true if the class has `static __excludeFromDevTools = true`
|
|
27
28
|
*/
|
|
28
29
|
export declare function isExcludedFromDevTools<T extends StateContainerConstructor>(Type: T): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a class is marked as isolated.
|
|
32
|
+
* Isolated classes get a fresh, per-mount instance from `useBloc`
|
|
33
|
+
* (auto-keyed via React's `useId()`), instead of sharing the default
|
|
34
|
+
* instance with sibling call sites.
|
|
35
|
+
* @param Type - The class constructor to check
|
|
36
|
+
* @returns true if the class has `static isolated = true`
|
|
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;
|
package/dist/watch/watch.d.ts
CHANGED
|
@@ -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
|
*/
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
const require_StateContainerRegistry = require("./StateContainerRegistry-B4yVMYbx.cjs");
|
|
2
|
+
const require_ensure = require("./ensure-BB6xHQAF.cjs");
|
|
3
|
+
let _dirtytalk_structural = require("@dirtytalk/structural");
|
|
4
|
+
//#region src/watch/watch.ts
|
|
5
|
+
const STOP = Symbol("watch.STOP");
|
|
6
|
+
const BLOC_REF_MARKER = Symbol("BlocRef");
|
|
7
|
+
/**
|
|
8
|
+
* Create a reference to a specific bloc instance.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* watch(instance(UserBloc, 'user-123'), (userBloc) => {
|
|
13
|
+
* console.log(userBloc.state.name);
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
function instance(BlocClass, instanceId) {
|
|
18
|
+
return {
|
|
19
|
+
[BLOC_REF_MARKER]: true,
|
|
20
|
+
blocClass: BlocClass,
|
|
21
|
+
instanceId
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function isBlocRef(input) {
|
|
25
|
+
return typeof input === "object" && input !== null && BLOC_REF_MARKER in input;
|
|
26
|
+
}
|
|
27
|
+
function resolveBloc(input) {
|
|
28
|
+
if (isBlocRef(input)) return require_ensure.ensure(input.blocClass, input.instanceId);
|
|
29
|
+
return require_ensure.ensure(input, require_StateContainerRegistry.BLAC_DEFAULTS.DEFAULT_INSTANCE_KEY);
|
|
30
|
+
}
|
|
31
|
+
function isArray(input) {
|
|
32
|
+
return Array.isArray(input);
|
|
33
|
+
}
|
|
34
|
+
function watchImpl(blocsOrBloc, callback) {
|
|
35
|
+
const isSingle = !isArray(blocsOrBloc);
|
|
36
|
+
const instances = (isSingle ? [blocsOrBloc] : blocsOrBloc).map(resolveBloc);
|
|
37
|
+
let disposed = false;
|
|
38
|
+
const subscriptions = [];
|
|
39
|
+
const cleanup = () => {
|
|
40
|
+
if (disposed) return;
|
|
41
|
+
disposed = true;
|
|
42
|
+
for (const unsub of subscriptions) unsub();
|
|
43
|
+
subscriptions.length = 0;
|
|
44
|
+
};
|
|
45
|
+
const runCallback = () => {
|
|
46
|
+
if (disposed) return;
|
|
47
|
+
if (callback(isSingle ? instances[0] : instances) === STOP) cleanup();
|
|
48
|
+
};
|
|
49
|
+
for (const inst of instances) subscriptions.push(inst.channel.subscribe(() => _dirtytalk_structural.ALL_PATHS, runCallback));
|
|
50
|
+
runCallback();
|
|
51
|
+
return cleanup;
|
|
52
|
+
}
|
|
53
|
+
const watch = Object.assign(watchImpl, { STOP });
|
|
54
|
+
//#endregion
|
|
55
|
+
Object.defineProperty(exports, "instance", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function() {
|
|
58
|
+
return instance;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(exports, "watch", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
get: function() {
|
|
64
|
+
return watch;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=watch-BpwaUL8r.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-BpwaUL8r.cjs","names":["ensure","BLAC_DEFAULTS","ALL_PATHS"],"sources":["../src/watch/watch.ts"],"sourcesContent":["import { ALL_PATHS } from '@dirtytalk/structural';\nimport { ensure } from '../registry';\nimport { BLAC_DEFAULTS } from '../constants';\nimport type {\n StateContainerConstructor,\n StateContainerInstance,\n} from '../types/utilities';\n\nconst STOP: unique symbol = Symbol('watch.STOP');\ntype StopSymbol = typeof STOP;\n\nconst BLOC_REF_MARKER = Symbol('BlocRef');\n\n/**\n * Reference to a specific bloc instance by class and instance ID.\n */\nexport interface BlocRef<T extends StateContainerConstructor> {\n [BLOC_REF_MARKER]: true;\n blocClass: T;\n instanceId: string;\n}\n\n/**\n * Create a reference to a specific bloc instance.\n *\n * @example\n * ```ts\n * watch(instance(UserBloc, 'user-123'), (userBloc) => {\n * console.log(userBloc.state.name);\n * });\n * ```\n */\nexport function instance<T extends StateContainerConstructor>(\n BlocClass: T,\n instanceId: string,\n): BlocRef<T> {\n return {\n [BLOC_REF_MARKER]: true,\n blocClass: BlocClass,\n instanceId,\n };\n}\n\nfunction isBlocRef(\n input: unknown,\n): input is BlocRef<StateContainerConstructor> {\n return (\n typeof input === 'object' && input !== null && BLOC_REF_MARKER in input\n );\n}\n\ntype BlocInput = StateContainerConstructor | BlocRef<StateContainerConstructor>;\n\ntype ExtractInstance<T> =\n T extends BlocRef<infer C>\n ? InstanceType<C>\n : T extends StateContainerConstructor\n ? InstanceType<T>\n : never;\n\ntype ExtractInstances<T extends readonly BlocInput[]> = {\n [K in keyof T]: ExtractInstance<T[K]>;\n};\n\n/**\n * Watch function signature for single bloc.\n */\nexport interface WatchSingleFn {\n <T extends StateContainerConstructor>(\n bloc: T | BlocRef<T>,\n callback: (bloc: InstanceType<T>) => void | StopSymbol,\n ): () => void;\n\n STOP: StopSymbol;\n}\n\n/**\n * Watch function signature for multiple blocs.\n */\nexport interface WatchMultipleFn {\n <T extends readonly BlocInput[]>(\n blocs: T,\n callback: (blocs: ExtractInstances<T>) => void | StopSymbol,\n ): () => void;\n\n STOP: StopSymbol;\n}\n\n/**\n * Combined watch function type.\n */\nexport interface WatchFn extends WatchSingleFn {\n <T extends readonly BlocInput[]>(\n blocs: T,\n callback: (blocs: ExtractInstances<T>) => void | StopSymbol,\n ): () => void;\n}\n\nfunction resolveBloc(input: BlocInput): StateContainerInstance {\n if (isBlocRef(input)) {\n return ensure(input.blocClass, input.instanceId);\n }\n return ensure(input, BLAC_DEFAULTS.DEFAULT_INSTANCE_KEY);\n}\n\nfunction isArray(input: unknown): input is readonly BlocInput[] {\n return Array.isArray(input);\n}\n\n/**\n * Watch one or more blocs for state changes.\n *\n * Thin wrapper around `container.channel.subscribe(ALL_PATHS, ...)`. The\n * callback fires once immediately, then on every state change of any of the\n * passed blocs. Returning `watch.STOP` from the callback tears down all\n * subscriptions.\n *\n * Note: subscriptions are microtask-deferred (per the DirtyChannel default\n * scheduler), so callbacks land asynchronously after `emit()`.\n *\n * @example Single bloc\n * ```ts\n * const unwatch = watch(UserBloc, (userBloc) => {\n * console.log(userBloc.state.name);\n * });\n * ```\n *\n * @example Multiple blocs\n * ```ts\n * const unwatch = watch(\n * [UserBloc, SettingsBloc] as const,\n * ([userBloc, settingsBloc]) => {\n * console.log(userBloc.state.name, settingsBloc.state.theme);\n * }\n * );\n * ```\n *\n * @example With specific instance\n * ```ts\n * const unwatch = watch(\n * instance(UserBloc, 'user-123'),\n * (userBloc) => {\n * console.log(userBloc.state.name);\n * }\n * );\n * ```\n *\n * @example Stop watching from callback\n * ```ts\n * const unwatch = watch(UserBloc, (userBloc) => {\n * if (userBloc.state.done) {\n * return watch.STOP;\n * }\n * });\n * ```\n */\nfunction watchImpl<T extends StateContainerConstructor>(\n bloc: T | BlocRef<T>,\n callback: (bloc: InstanceType<T>) => void | StopSymbol,\n): () => void;\n\nfunction watchImpl<T extends readonly BlocInput[]>(\n blocs: T,\n callback: (blocs: ExtractInstances<T>) => void | StopSymbol,\n): () => void;\n\nfunction watchImpl(\n blocsOrBloc: BlocInput | readonly BlocInput[],\n callback: (blocsOrBloc: any) => void | StopSymbol,\n): () => void {\n const isSingle = !isArray(blocsOrBloc);\n const inputs = isSingle ? [blocsOrBloc] : blocsOrBloc;\n\n const instances = inputs.map(resolveBloc);\n\n let disposed = false;\n const subscriptions: (() => void)[] = [];\n\n const cleanup = () => {\n if (disposed) return;\n disposed = true;\n for (const unsub of subscriptions) unsub();\n subscriptions.length = 0;\n };\n\n const runCallback = () => {\n if (disposed) return;\n const arg = isSingle ? instances[0] : instances;\n const result = callback(arg);\n if (result === STOP) cleanup();\n };\n\n for (const inst of instances) {\n subscriptions.push(inst.channel.subscribe(() => ALL_PATHS, runCallback));\n }\n\n // Fire once immediately so the consumer sees the current state.\n runCallback();\n\n return cleanup;\n}\n\nexport const watch: WatchFn = Object.assign(watchImpl, { STOP }) as WatchFn;\n"],"mappings":";;;;AAQA,MAAM,OAAsB,OAAO,aAAa;AAGhD,MAAM,kBAAkB,OAAO,UAAU;;;;;;;;;;;AAqBzC,SAAgB,SACd,WACA,YACY;CACZ,OAAO;GACJ,kBAAkB;EACnB,WAAW;EACX;EACD;;AAGH,SAAS,UACP,OAC6C;CAC7C,OACE,OAAO,UAAU,YAAY,UAAU,QAAQ,mBAAmB;;AAmDtE,SAAS,YAAY,OAA0C;CAC7D,IAAI,UAAU,MAAM,EAClB,OAAOA,eAAAA,OAAO,MAAM,WAAW,MAAM,WAAW;CAElD,OAAOA,eAAAA,OAAO,OAAOC,+BAAAA,cAAc,qBAAqB;;AAG1D,SAAS,QAAQ,OAA+C;CAC9D,OAAO,MAAM,QAAQ,MAAM;;AA4D7B,SAAS,UACP,aACA,UACY;CACZ,MAAM,WAAW,CAAC,QAAQ,YAAY;CAGtC,MAAM,aAFS,WAAW,CAAC,YAAY,GAAG,aAEjB,IAAI,YAAY;CAEzC,IAAI,WAAW;CACf,MAAM,gBAAgC,EAAE;CAExC,MAAM,gBAAgB;EACpB,IAAI,UAAU;EACd,WAAW;EACX,KAAK,MAAM,SAAS,eAAe,OAAO;EAC1C,cAAc,SAAS;;CAGzB,MAAM,oBAAoB;EACxB,IAAI,UAAU;EAGd,IADe,SADH,WAAW,UAAU,KAAK,UAE5B,KAAK,MAAM,SAAS;;CAGhC,KAAK,MAAM,QAAQ,WACjB,cAAc,KAAK,KAAK,QAAQ,gBAAgBC,sBAAAA,WAAW,YAAY,CAAC;CAI1E,aAAa;CAEb,OAAO;;AAGT,MAAa,QAAiB,OAAO,OAAO,WAAW,EAAE,MAAM,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { l as BLAC_DEFAULTS } from "./StateContainerRegistry-DmmzYa7S.js";
|
|
2
|
+
import { t as ensure } from "./ensure-mkL-3qh8.js";
|
|
3
|
+
import { ALL_PATHS } from "@dirtytalk/structural";
|
|
4
|
+
//#region src/watch/watch.ts
|
|
5
|
+
const STOP = Symbol("watch.STOP");
|
|
6
|
+
const BLOC_REF_MARKER = Symbol("BlocRef");
|
|
7
|
+
/**
|
|
8
|
+
* Create a reference to a specific bloc instance.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* watch(instance(UserBloc, 'user-123'), (userBloc) => {
|
|
13
|
+
* console.log(userBloc.state.name);
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
function instance(BlocClass, instanceId) {
|
|
18
|
+
return {
|
|
19
|
+
[BLOC_REF_MARKER]: true,
|
|
20
|
+
blocClass: BlocClass,
|
|
21
|
+
instanceId
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function isBlocRef(input) {
|
|
25
|
+
return typeof input === "object" && input !== null && BLOC_REF_MARKER in input;
|
|
26
|
+
}
|
|
27
|
+
function resolveBloc(input) {
|
|
28
|
+
if (isBlocRef(input)) return ensure(input.blocClass, input.instanceId);
|
|
29
|
+
return ensure(input, BLAC_DEFAULTS.DEFAULT_INSTANCE_KEY);
|
|
30
|
+
}
|
|
31
|
+
function isArray(input) {
|
|
32
|
+
return Array.isArray(input);
|
|
33
|
+
}
|
|
34
|
+
function watchImpl(blocsOrBloc, callback) {
|
|
35
|
+
const isSingle = !isArray(blocsOrBloc);
|
|
36
|
+
const instances = (isSingle ? [blocsOrBloc] : blocsOrBloc).map(resolveBloc);
|
|
37
|
+
let disposed = false;
|
|
38
|
+
const subscriptions = [];
|
|
39
|
+
const cleanup = () => {
|
|
40
|
+
if (disposed) return;
|
|
41
|
+
disposed = true;
|
|
42
|
+
for (const unsub of subscriptions) unsub();
|
|
43
|
+
subscriptions.length = 0;
|
|
44
|
+
};
|
|
45
|
+
const runCallback = () => {
|
|
46
|
+
if (disposed) return;
|
|
47
|
+
if (callback(isSingle ? instances[0] : instances) === STOP) cleanup();
|
|
48
|
+
};
|
|
49
|
+
for (const inst of instances) subscriptions.push(inst.channel.subscribe(() => ALL_PATHS, runCallback));
|
|
50
|
+
runCallback();
|
|
51
|
+
return cleanup;
|
|
52
|
+
}
|
|
53
|
+
const watch = Object.assign(watchImpl, { STOP });
|
|
54
|
+
//#endregion
|
|
55
|
+
export { watch as n, instance as t };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=watch-DWCqXllW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-DWCqXllW.js","names":[],"sources":["../src/watch/watch.ts"],"sourcesContent":["import { ALL_PATHS } from '@dirtytalk/structural';\nimport { ensure } from '../registry';\nimport { BLAC_DEFAULTS } from '../constants';\nimport type {\n StateContainerConstructor,\n StateContainerInstance,\n} from '../types/utilities';\n\nconst STOP: unique symbol = Symbol('watch.STOP');\ntype StopSymbol = typeof STOP;\n\nconst BLOC_REF_MARKER = Symbol('BlocRef');\n\n/**\n * Reference to a specific bloc instance by class and instance ID.\n */\nexport interface BlocRef<T extends StateContainerConstructor> {\n [BLOC_REF_MARKER]: true;\n blocClass: T;\n instanceId: string;\n}\n\n/**\n * Create a reference to a specific bloc instance.\n *\n * @example\n * ```ts\n * watch(instance(UserBloc, 'user-123'), (userBloc) => {\n * console.log(userBloc.state.name);\n * });\n * ```\n */\nexport function instance<T extends StateContainerConstructor>(\n BlocClass: T,\n instanceId: string,\n): BlocRef<T> {\n return {\n [BLOC_REF_MARKER]: true,\n blocClass: BlocClass,\n instanceId,\n };\n}\n\nfunction isBlocRef(\n input: unknown,\n): input is BlocRef<StateContainerConstructor> {\n return (\n typeof input === 'object' && input !== null && BLOC_REF_MARKER in input\n );\n}\n\ntype BlocInput = StateContainerConstructor | BlocRef<StateContainerConstructor>;\n\ntype ExtractInstance<T> =\n T extends BlocRef<infer C>\n ? InstanceType<C>\n : T extends StateContainerConstructor\n ? InstanceType<T>\n : never;\n\ntype ExtractInstances<T extends readonly BlocInput[]> = {\n [K in keyof T]: ExtractInstance<T[K]>;\n};\n\n/**\n * Watch function signature for single bloc.\n */\nexport interface WatchSingleFn {\n <T extends StateContainerConstructor>(\n bloc: T | BlocRef<T>,\n callback: (bloc: InstanceType<T>) => void | StopSymbol,\n ): () => void;\n\n STOP: StopSymbol;\n}\n\n/**\n * Watch function signature for multiple blocs.\n */\nexport interface WatchMultipleFn {\n <T extends readonly BlocInput[]>(\n blocs: T,\n callback: (blocs: ExtractInstances<T>) => void | StopSymbol,\n ): () => void;\n\n STOP: StopSymbol;\n}\n\n/**\n * Combined watch function type.\n */\nexport interface WatchFn extends WatchSingleFn {\n <T extends readonly BlocInput[]>(\n blocs: T,\n callback: (blocs: ExtractInstances<T>) => void | StopSymbol,\n ): () => void;\n}\n\nfunction resolveBloc(input: BlocInput): StateContainerInstance {\n if (isBlocRef(input)) {\n return ensure(input.blocClass, input.instanceId);\n }\n return ensure(input, BLAC_DEFAULTS.DEFAULT_INSTANCE_KEY);\n}\n\nfunction isArray(input: unknown): input is readonly BlocInput[] {\n return Array.isArray(input);\n}\n\n/**\n * Watch one or more blocs for state changes.\n *\n * Thin wrapper around `container.channel.subscribe(ALL_PATHS, ...)`. The\n * callback fires once immediately, then on every state change of any of the\n * passed blocs. Returning `watch.STOP` from the callback tears down all\n * subscriptions.\n *\n * Note: subscriptions are microtask-deferred (per the DirtyChannel default\n * scheduler), so callbacks land asynchronously after `emit()`.\n *\n * @example Single bloc\n * ```ts\n * const unwatch = watch(UserBloc, (userBloc) => {\n * console.log(userBloc.state.name);\n * });\n * ```\n *\n * @example Multiple blocs\n * ```ts\n * const unwatch = watch(\n * [UserBloc, SettingsBloc] as const,\n * ([userBloc, settingsBloc]) => {\n * console.log(userBloc.state.name, settingsBloc.state.theme);\n * }\n * );\n * ```\n *\n * @example With specific instance\n * ```ts\n * const unwatch = watch(\n * instance(UserBloc, 'user-123'),\n * (userBloc) => {\n * console.log(userBloc.state.name);\n * }\n * );\n * ```\n *\n * @example Stop watching from callback\n * ```ts\n * const unwatch = watch(UserBloc, (userBloc) => {\n * if (userBloc.state.done) {\n * return watch.STOP;\n * }\n * });\n * ```\n */\nfunction watchImpl<T extends StateContainerConstructor>(\n bloc: T | BlocRef<T>,\n callback: (bloc: InstanceType<T>) => void | StopSymbol,\n): () => void;\n\nfunction watchImpl<T extends readonly BlocInput[]>(\n blocs: T,\n callback: (blocs: ExtractInstances<T>) => void | StopSymbol,\n): () => void;\n\nfunction watchImpl(\n blocsOrBloc: BlocInput | readonly BlocInput[],\n callback: (blocsOrBloc: any) => void | StopSymbol,\n): () => void {\n const isSingle = !isArray(blocsOrBloc);\n const inputs = isSingle ? [blocsOrBloc] : blocsOrBloc;\n\n const instances = inputs.map(resolveBloc);\n\n let disposed = false;\n const subscriptions: (() => void)[] = [];\n\n const cleanup = () => {\n if (disposed) return;\n disposed = true;\n for (const unsub of subscriptions) unsub();\n subscriptions.length = 0;\n };\n\n const runCallback = () => {\n if (disposed) return;\n const arg = isSingle ? instances[0] : instances;\n const result = callback(arg);\n if (result === STOP) cleanup();\n };\n\n for (const inst of instances) {\n subscriptions.push(inst.channel.subscribe(() => ALL_PATHS, runCallback));\n }\n\n // Fire once immediately so the consumer sees the current state.\n runCallback();\n\n return cleanup;\n}\n\nexport const watch: WatchFn = Object.assign(watchImpl, { STOP }) as WatchFn;\n"],"mappings":";;;;AAQA,MAAM,OAAsB,OAAO,aAAa;AAGhD,MAAM,kBAAkB,OAAO,UAAU;;;;;;;;;;;AAqBzC,SAAgB,SACd,WACA,YACY;CACZ,OAAO;GACJ,kBAAkB;EACnB,WAAW;EACX;EACD;;AAGH,SAAS,UACP,OAC6C;CAC7C,OACE,OAAO,UAAU,YAAY,UAAU,QAAQ,mBAAmB;;AAmDtE,SAAS,YAAY,OAA0C;CAC7D,IAAI,UAAU,MAAM,EAClB,OAAO,OAAO,MAAM,WAAW,MAAM,WAAW;CAElD,OAAO,OAAO,OAAO,cAAc,qBAAqB;;AAG1D,SAAS,QAAQ,OAA+C;CAC9D,OAAO,MAAM,QAAQ,MAAM;;AA4D7B,SAAS,UACP,aACA,UACY;CACZ,MAAM,WAAW,CAAC,QAAQ,YAAY;CAGtC,MAAM,aAFS,WAAW,CAAC,YAAY,GAAG,aAEjB,IAAI,YAAY;CAEzC,IAAI,WAAW;CACf,MAAM,gBAAgC,EAAE;CAExC,MAAM,gBAAgB;EACpB,IAAI,UAAU;EACd,WAAW;EACX,KAAK,MAAM,SAAS,eAAe,OAAO;EAC1C,cAAc,SAAS;;CAGzB,MAAM,oBAAoB;EACxB,IAAI,UAAU;EAGd,IADe,SADH,WAAW,UAAU,KAAK,UAE5B,KAAK,MAAM,SAAS;;CAGhC,KAAK,MAAM,QAAQ,WACjB,cAAc,KAAK,KAAK,QAAQ,gBAAgB,WAAW,YAAY,CAAC;CAI1E,aAAa;CAEb,OAAO;;AAGT,MAAa,QAAiB,OAAO,OAAO,WAAW,EAAE,MAAM,CAAC"}
|
package/dist/watch-entry.cjs
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.instance = require_tracked.instance;
|
|
6
|
-
exports.tracked = require_tracked.tracked;
|
|
7
|
-
exports.watch = require_tracked.watch;
|
|
2
|
+
const require_watch = require("./watch-BpwaUL8r.cjs");
|
|
3
|
+
exports.instance = require_watch.instance;
|
|
4
|
+
exports.watch = require_watch.watch;
|
package/dist/watch-entry.d.cts
CHANGED
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
* ```typescript
|
|
9
9
|
* import { watch, instance } from '@blac/core/watch';
|
|
10
10
|
*
|
|
11
|
-
* // Watch a bloc
|
|
11
|
+
* // Watch a bloc
|
|
12
12
|
* const unwatch = watch(UserBloc, (userBloc) => {
|
|
13
13
|
* console.log(userBloc.state.name);
|
|
14
|
-
* console.log(userBloc.fullName); // getter also tracked
|
|
15
14
|
* });
|
|
16
15
|
*
|
|
17
16
|
* // Watch a specific instance
|
|
@@ -23,4 +22,3 @@
|
|
|
23
22
|
* @packageDocumentation
|
|
24
23
|
*/
|
|
25
24
|
export { watch, instance, type WatchFn, type BlocRef } from './watch';
|
|
26
|
-
export { tracked, createTrackedContext, TrackedContext, type TrackedResult, type TrackedOptions, } from './tracking/tracked';
|
package/dist/watch-entry.d.ts
CHANGED
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
* ```typescript
|
|
9
9
|
* import { watch, instance } from '@blac/core/watch';
|
|
10
10
|
*
|
|
11
|
-
* // Watch a bloc
|
|
11
|
+
* // Watch a bloc
|
|
12
12
|
* const unwatch = watch(UserBloc, (userBloc) => {
|
|
13
13
|
* console.log(userBloc.state.name);
|
|
14
|
-
* console.log(userBloc.fullName); // getter also tracked
|
|
15
14
|
* });
|
|
16
15
|
*
|
|
17
16
|
* // Watch a specific instance
|
|
@@ -23,4 +22,3 @@
|
|
|
23
22
|
* @packageDocumentation
|
|
24
23
|
*/
|
|
25
24
|
export { watch, instance, type WatchFn, type BlocRef } from './watch';
|
|
26
|
-
export { tracked, createTrackedContext, TrackedContext, type TrackedResult, type TrackedOptions, } from './tracking/tracked';
|
package/dist/watch-entry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { n as watch, t as instance } from "./watch-DWCqXllW.js";
|
|
2
|
+
export { instance, watch };
|