@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
package/dist/testing.cjs
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const require_config = require("./config-
|
|
5
|
-
const require_ensure = require("./ensure-
|
|
2
|
+
const require_StateContainerRegistry = require("./StateContainerRegistry-B4yVMYbx.cjs");
|
|
3
|
+
const require_Cubit = require("./Cubit-CWP8Ddzx.cjs");
|
|
4
|
+
const require_config = require("./config-B_4xXpvK.cjs");
|
|
5
|
+
const require_ensure = require("./ensure-BB6xHQAF.cjs");
|
|
6
6
|
//#region src/testing.ts
|
|
7
|
+
/** Synthetic owner id used by test helpers for pre-wired deps. */
|
|
8
|
+
const TESTING_DEPS_OWNER = "testing-deps";
|
|
7
9
|
function createTestRegistry() {
|
|
8
10
|
return new require_StateContainerRegistry.StateContainerRegistry();
|
|
9
11
|
}
|
|
@@ -38,19 +40,9 @@ function blacTestSetup() {
|
|
|
38
40
|
});
|
|
39
41
|
}
|
|
40
42
|
const DEFAULT_KEY = "default";
|
|
41
|
-
function registerOverride(BlocClass, instance, instanceKey
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
canCreate: true,
|
|
45
|
-
countRef: false
|
|
46
|
-
});
|
|
47
|
-
if (existing !== instance && !existing.isDisposed) existing.dispose();
|
|
48
|
-
const instancesMap = registry.getInstancesMap(BlocClass);
|
|
49
|
-
const entry = {
|
|
50
|
-
instance,
|
|
51
|
-
refs: new Map([["testing-override", 1]])
|
|
52
|
-
};
|
|
53
|
-
instancesMap.set(instanceKey, entry);
|
|
43
|
+
function registerOverride(BlocClass, instance, instanceKey) {
|
|
44
|
+
const key = instanceKey ?? DEFAULT_KEY;
|
|
45
|
+
require_config.getRegistry().insertInstance(BlocClass, key, instance, new Map([["testing-override", 1]]));
|
|
54
46
|
}
|
|
55
47
|
function overrideEnsure(BlocClass, instance, fn, instanceKey = DEFAULT_KEY) {
|
|
56
48
|
return withTestRegistry(() => {
|
|
@@ -60,6 +52,7 @@ function overrideEnsure(BlocClass, instance, fn, instanceKey = DEFAULT_KEY) {
|
|
|
60
52
|
}
|
|
61
53
|
function createCubitStub(BlocClass, options) {
|
|
62
54
|
const instance = new BlocClass();
|
|
55
|
+
if (options?.args != null) instance.initConfig({ args: options.args });
|
|
63
56
|
if (options?.state != null) {
|
|
64
57
|
if (instance instanceof require_Cubit.Cubit) {
|
|
65
58
|
const currentState = instance.state;
|
|
@@ -70,6 +63,7 @@ function createCubitStub(BlocClass, options) {
|
|
|
70
63
|
if (options?.methods) {
|
|
71
64
|
for (const [key, impl] of Object.entries(options.methods)) if (typeof impl === "function") instance[key] = impl;
|
|
72
65
|
}
|
|
66
|
+
if (options?.deps != null) instance[require_Cubit.APPLY_DEPS](TESTING_DEPS_OWNER, options.deps);
|
|
73
67
|
return instance;
|
|
74
68
|
}
|
|
75
69
|
function withBlocState(BlocClass, state, instanceKey) {
|
|
@@ -86,15 +80,28 @@ function withBlocMethod(BlocClass, methodName, impl, instanceKey) {
|
|
|
86
80
|
instance[methodName] = impl;
|
|
87
81
|
return instance;
|
|
88
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Drain pending microtasks so any channel-flushed effects (subscribe()
|
|
85
|
+
* listeners, `onSystemEvent('stateChanged')` handlers, plugin hooks) run
|
|
86
|
+
* before the next assertion.
|
|
87
|
+
*
|
|
88
|
+
* The default `MicrotaskScheduler` coalesces emits within a tick; tests
|
|
89
|
+
* that emit and then assert on listener side-effects need `await flush()`
|
|
90
|
+
* (or its alias `flushBlocUpdates()`) between the two.
|
|
91
|
+
*/
|
|
92
|
+
async function flush() {
|
|
93
|
+
await Promise.resolve();
|
|
94
|
+
await Promise.resolve();
|
|
95
|
+
}
|
|
96
|
+
/** @deprecated Alias for `flush()`. */
|
|
89
97
|
async function flushBlocUpdates() {
|
|
90
|
-
await
|
|
91
|
-
setTimeout(resolve, 0);
|
|
92
|
-
});
|
|
98
|
+
await flush();
|
|
93
99
|
}
|
|
94
100
|
//#endregion
|
|
95
101
|
exports.blacTestSetup = blacTestSetup;
|
|
96
102
|
exports.createCubitStub = createCubitStub;
|
|
97
103
|
exports.createTestRegistry = createTestRegistry;
|
|
104
|
+
exports.flush = flush;
|
|
98
105
|
exports.flushBlocUpdates = flushBlocUpdates;
|
|
99
106
|
exports.overrideEnsure = overrideEnsure;
|
|
100
107
|
exports.registerOverride = registerOverride;
|
package/dist/testing.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.cjs","names":["StateContainerRegistry","getRegistry","Cubit","ensure"],"sources":["../src/testing.ts"],"sourcesContent":["import { Cubit } from './core/Cubit';\nimport {
|
|
1
|
+
{"version":3,"file":"testing.cjs","names":["StateContainerRegistry","getRegistry","Cubit","APPLY_DEPS","ensure"],"sources":["../src/testing.ts"],"sourcesContent":["import { Cubit } from './core/Cubit';\nimport { StateContainerRegistry } from './core/StateContainerRegistry';\nimport { APPLY_DEPS } from './core/symbols';\nimport { ensure, getRegistry, setRegistry } from './registry';\nimport type {\n ExtractArgs,\n ExtractDeps,\n ExtractState,\n StateContainerConstructor,\n} from './types/utilities';\n\n/** Synthetic owner id used by test helpers for pre-wired deps. */\nconst TESTING_DEPS_OWNER = 'testing-deps';\n\ndeclare const beforeEach: (fn: () => void) => void;\ndeclare const afterEach: (fn: () => void) => void;\n\n// --- createTestRegistry + withTestRegistry ---\n\nexport function createTestRegistry(): StateContainerRegistry {\n return new StateContainerRegistry();\n}\n\nexport function withTestRegistry<T>(\n fn: (registry: StateContainerRegistry) => T,\n): T {\n const previous = getRegistry();\n const testRegistry = createTestRegistry();\n setRegistry(testRegistry);\n try {\n const result = fn(testRegistry);\n if (result instanceof Promise) {\n return result.then(\n (value) => {\n setRegistry(previous);\n return value;\n },\n (error) => {\n setRegistry(previous);\n throw error;\n },\n ) as T;\n }\n setRegistry(previous);\n return result;\n } catch (error) {\n setRegistry(previous);\n throw error;\n }\n}\n\n// --- blacTestSetup ---\n\nexport function blacTestSetup(): void {\n let savedRegistry: StateContainerRegistry;\n beforeEach(() => {\n savedRegistry = getRegistry();\n setRegistry(new StateContainerRegistry());\n });\n afterEach(() => {\n setRegistry(savedRegistry);\n });\n}\n\n// --- registerOverride + overrideEnsure ---\n\nconst DEFAULT_KEY = 'default';\n\nexport function registerOverride<T extends StateContainerConstructor>(\n BlocClass: T,\n instance: InstanceType<T>,\n instanceKey?: string,\n): void {\n const key = instanceKey ?? DEFAULT_KEY;\n const registry = getRegistry();\n registry.insertInstance(\n BlocClass,\n key,\n instance,\n new Map([['testing-override', 1]]),\n );\n}\n\nexport function overrideEnsure<T extends StateContainerConstructor, R>(\n BlocClass: T,\n instance: InstanceType<T>,\n fn: () => R,\n instanceKey: string = DEFAULT_KEY,\n): R {\n return withTestRegistry(() => {\n registerOverride(BlocClass, instance, instanceKey);\n return fn();\n });\n}\n\n// --- createCubitStub ---\n\ntype MethodKeys<T> = {\n [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never;\n}[keyof T];\n\nexport interface CubitStubOptions<T extends StateContainerConstructor> {\n state?: ExtractState<T> extends Record<string, any>\n ? Partial<ExtractState<T>>\n : ExtractState<T>;\n methods?: Partial<\n Record<MethodKeys<InstanceType<T>>, (...args: any[]) => any>\n >;\n /**\n * Args to pass to init(). If the bloc's Args type is not void, supplying\n * args here causes initConfig({ args }) to be called so init() runs.\n */\n args?: ExtractArgs<T> extends void ? never : ExtractArgs<T>;\n /**\n * Deps slice to pre-wire via the core [APPLY_DEPS] path (synthetic owner\n * \"testing-deps\"), so onDepsChanged fires during tests.\n */\n deps?: Partial<ExtractDeps<T>>;\n}\n\nexport function createCubitStub<T extends StateContainerConstructor>(\n BlocClass: T,\n options?: CubitStubOptions<T>,\n): InstanceType<T> {\n const instance = new BlocClass() as InstanceType<T>;\n\n // Run init() if args are supplied — goes through the same initConfig path\n // that the registry uses, so lifecycle hooks fire correctly.\n if (options?.args != null) {\n instance.initConfig({ args: options.args });\n }\n\n if (options?.state != null) {\n if (instance instanceof Cubit) {\n const currentState = instance.state;\n if (\n typeof currentState === 'object' &&\n currentState !== null &&\n typeof options.state === 'object' &&\n options.state !== null\n ) {\n instance.patch(options.state as any);\n } else {\n instance.emit(options.state as any);\n }\n }\n }\n if (options?.methods) {\n for (const [key, impl] of Object.entries(options.methods)) {\n if (typeof impl === 'function') {\n (instance as any)[key] = impl;\n }\n }\n }\n\n // Pre-wire deps via the core merge path so onDepsChanged fires in tests.\n if (options?.deps != null) {\n (instance as any)[APPLY_DEPS](TESTING_DEPS_OWNER, options.deps);\n }\n\n return instance;\n}\n\n// --- withBlocState ---\n\nexport function withBlocState<T extends StateContainerConstructor>(\n BlocClass: T,\n state: ExtractState<T> extends Record<string, any>\n ? Partial<ExtractState<T>>\n : ExtractState<T>,\n instanceKey?: string,\n): InstanceType<T> {\n const instance = ensure(BlocClass, instanceKey);\n if (instance instanceof Cubit) {\n const currentState = instance.state;\n if (\n typeof currentState === 'object' &&\n currentState !== null &&\n typeof state === 'object' &&\n state !== null\n ) {\n instance.patch(state as any);\n } else {\n instance.emit(state as any);\n }\n }\n return instance;\n}\n\n// --- withBlocMethod ---\n\nexport function withBlocMethod<T extends StateContainerConstructor>(\n BlocClass: T,\n methodName: keyof InstanceType<T>,\n impl: (...args: any[]) => any,\n instanceKey?: string,\n): InstanceType<T> {\n const instance = ensure(BlocClass, instanceKey);\n (instance as any)[methodName] = impl;\n return instance;\n}\n\n// --- flushBlocUpdates ---\n\n/**\n * Drain pending microtasks so any channel-flushed effects (subscribe()\n * listeners, `onSystemEvent('stateChanged')` handlers, plugin hooks) run\n * before the next assertion.\n *\n * The default `MicrotaskScheduler` coalesces emits within a tick; tests\n * that emit and then assert on listener side-effects need `await flush()`\n * (or its alias `flushBlocUpdates()`) between the two.\n */\nexport async function flush(): Promise<void> {\n // queueMicrotask wins the race against the channel's own queued flush —\n // we resolve after the channel has drained its current pending flush.\n await Promise.resolve();\n await Promise.resolve();\n}\n\n/** @deprecated Alias for `flush()`. */\nexport async function flushBlocUpdates(): Promise<void> {\n await flush();\n}\n"],"mappings":";;;;;;;AAYA,MAAM,qBAAqB;AAO3B,SAAgB,qBAA6C;CAC3D,OAAO,IAAIA,+BAAAA,wBAAwB;;AAGrC,SAAgB,iBACd,IACG;CACH,MAAM,WAAWC,eAAAA,aAAa;CAC9B,MAAM,eAAe,oBAAoB;CACzC,eAAA,YAAY,aAAa;CACzB,IAAI;EACF,MAAM,SAAS,GAAG,aAAa;EAC/B,IAAI,kBAAkB,SACpB,OAAO,OAAO,MACX,UAAU;GACT,eAAA,YAAY,SAAS;GACrB,OAAO;MAER,UAAU;GACT,eAAA,YAAY,SAAS;GACrB,MAAM;IAET;EAEH,eAAA,YAAY,SAAS;EACrB,OAAO;UACA,OAAO;EACd,eAAA,YAAY,SAAS;EACrB,MAAM;;;AAMV,SAAgB,gBAAsB;CACpC,IAAI;CACJ,iBAAiB;EACf,gBAAgBA,eAAAA,aAAa;EAC7B,eAAA,YAAY,IAAID,+BAAAA,wBAAwB,CAAC;GACzC;CACF,gBAAgB;EACd,eAAA,YAAY,cAAc;GAC1B;;AAKJ,MAAM,cAAc;AAEpB,SAAgB,iBACd,WACA,UACA,aACM;CACN,MAAM,MAAM,eAAe;CAE3B,eADiBC,aACT,CAAC,eACP,WACA,KACA,UACA,IAAI,IAAI,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CACnC;;AAGH,SAAgB,eACd,WACA,UACA,IACA,cAAsB,aACnB;CACH,OAAO,uBAAuB;EAC5B,iBAAiB,WAAW,UAAU,YAAY;EAClD,OAAO,IAAI;GACX;;AA4BJ,SAAgB,gBACd,WACA,SACiB;CACjB,MAAM,WAAW,IAAI,WAAW;CAIhC,IAAI,SAAS,QAAQ,MACnB,SAAS,WAAW,EAAE,MAAM,QAAQ,MAAM,CAAC;CAG7C,IAAI,SAAS,SAAS;MAChB,oBAAoBC,cAAAA,OAAO;GAC7B,MAAM,eAAe,SAAS;GAC9B,IACE,OAAO,iBAAiB,YACxB,iBAAiB,QACjB,OAAO,QAAQ,UAAU,YACzB,QAAQ,UAAU,MAElB,SAAS,MAAM,QAAQ,MAAa;QAEpC,SAAS,KAAK,QAAQ,MAAa;;;CAIzC,IAAI,SAAS;OACN,MAAM,CAAC,KAAK,SAAS,OAAO,QAAQ,QAAQ,QAAQ,EACvD,IAAI,OAAO,SAAS,YAClB,SAAkB,OAAO;;CAM/B,IAAI,SAAS,QAAQ,MACnB,SAAkBC,cAAAA,YAAY,oBAAoB,QAAQ,KAAK;CAGjE,OAAO;;AAKT,SAAgB,cACd,WACA,OAGA,aACiB;CACjB,MAAM,WAAWC,eAAAA,OAAO,WAAW,YAAY;CAC/C,IAAI,oBAAoBF,cAAAA,OAAO;EAC7B,MAAM,eAAe,SAAS;EAC9B,IACE,OAAO,iBAAiB,YACxB,iBAAiB,QACjB,OAAO,UAAU,YACjB,UAAU,MAEV,SAAS,MAAM,MAAa;OAE5B,SAAS,KAAK,MAAa;;CAG/B,OAAO;;AAKT,SAAgB,eACd,WACA,YACA,MACA,aACiB;CACjB,MAAM,WAAWE,eAAAA,OAAO,WAAW,YAAY;CAC/C,SAAkB,cAAc;CAChC,OAAO;;;;;;;;;;;AAcT,eAAsB,QAAuB;CAG3C,MAAM,QAAQ,SAAS;CACvB,MAAM,QAAQ,SAAS;;;AAIzB,eAAsB,mBAAkC;CACtD,MAAM,OAAO"}
|
package/dist/testing.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StateContainerRegistry } from './core/StateContainerRegistry';
|
|
2
|
-
import type { ExtractState, StateContainerConstructor } from './types/utilities';
|
|
2
|
+
import type { ExtractArgs, ExtractDeps, ExtractState, StateContainerConstructor } from './types/utilities';
|
|
3
3
|
export declare function createTestRegistry(): StateContainerRegistry;
|
|
4
4
|
export declare function withTestRegistry<T>(fn: (registry: StateContainerRegistry) => T): T;
|
|
5
5
|
export declare function blacTestSetup(): void;
|
|
@@ -11,9 +11,30 @@ type MethodKeys<T> = {
|
|
|
11
11
|
export interface CubitStubOptions<T extends StateContainerConstructor> {
|
|
12
12
|
state?: ExtractState<T> extends Record<string, any> ? Partial<ExtractState<T>> : ExtractState<T>;
|
|
13
13
|
methods?: Partial<Record<MethodKeys<InstanceType<T>>, (...args: any[]) => any>>;
|
|
14
|
+
/**
|
|
15
|
+
* Args to pass to init(). If the bloc's Args type is not void, supplying
|
|
16
|
+
* args here causes initConfig({ args }) to be called so init() runs.
|
|
17
|
+
*/
|
|
18
|
+
args?: ExtractArgs<T> extends void ? never : ExtractArgs<T>;
|
|
19
|
+
/**
|
|
20
|
+
* Deps slice to pre-wire via the core [APPLY_DEPS] path (synthetic owner
|
|
21
|
+
* "testing-deps"), so onDepsChanged fires during tests.
|
|
22
|
+
*/
|
|
23
|
+
deps?: Partial<ExtractDeps<T>>;
|
|
14
24
|
}
|
|
15
25
|
export declare function createCubitStub<T extends StateContainerConstructor>(BlocClass: T, options?: CubitStubOptions<T>): InstanceType<T>;
|
|
16
26
|
export declare function withBlocState<T extends StateContainerConstructor>(BlocClass: T, state: ExtractState<T> extends Record<string, any> ? Partial<ExtractState<T>> : ExtractState<T>, instanceKey?: string): InstanceType<T>;
|
|
17
27
|
export declare function withBlocMethod<T extends StateContainerConstructor>(BlocClass: T, methodName: keyof InstanceType<T>, impl: (...args: any[]) => any, instanceKey?: string): InstanceType<T>;
|
|
28
|
+
/**
|
|
29
|
+
* Drain pending microtasks so any channel-flushed effects (subscribe()
|
|
30
|
+
* listeners, `onSystemEvent('stateChanged')` handlers, plugin hooks) run
|
|
31
|
+
* before the next assertion.
|
|
32
|
+
*
|
|
33
|
+
* The default `MicrotaskScheduler` coalesces emits within a tick; tests
|
|
34
|
+
* that emit and then assert on listener side-effects need `await flush()`
|
|
35
|
+
* (or its alias `flushBlocUpdates()`) between the two.
|
|
36
|
+
*/
|
|
37
|
+
export declare function flush(): Promise<void>;
|
|
38
|
+
/** @deprecated Alias for `flush()`. */
|
|
18
39
|
export declare function flushBlocUpdates(): Promise<void>;
|
|
19
40
|
export {};
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StateContainerRegistry } from './core/StateContainerRegistry';
|
|
2
|
-
import type { ExtractState, StateContainerConstructor } from './types/utilities';
|
|
2
|
+
import type { ExtractArgs, ExtractDeps, ExtractState, StateContainerConstructor } from './types/utilities';
|
|
3
3
|
export declare function createTestRegistry(): StateContainerRegistry;
|
|
4
4
|
export declare function withTestRegistry<T>(fn: (registry: StateContainerRegistry) => T): T;
|
|
5
5
|
export declare function blacTestSetup(): void;
|
|
@@ -11,9 +11,30 @@ type MethodKeys<T> = {
|
|
|
11
11
|
export interface CubitStubOptions<T extends StateContainerConstructor> {
|
|
12
12
|
state?: ExtractState<T> extends Record<string, any> ? Partial<ExtractState<T>> : ExtractState<T>;
|
|
13
13
|
methods?: Partial<Record<MethodKeys<InstanceType<T>>, (...args: any[]) => any>>;
|
|
14
|
+
/**
|
|
15
|
+
* Args to pass to init(). If the bloc's Args type is not void, supplying
|
|
16
|
+
* args here causes initConfig({ args }) to be called so init() runs.
|
|
17
|
+
*/
|
|
18
|
+
args?: ExtractArgs<T> extends void ? never : ExtractArgs<T>;
|
|
19
|
+
/**
|
|
20
|
+
* Deps slice to pre-wire via the core [APPLY_DEPS] path (synthetic owner
|
|
21
|
+
* "testing-deps"), so onDepsChanged fires during tests.
|
|
22
|
+
*/
|
|
23
|
+
deps?: Partial<ExtractDeps<T>>;
|
|
14
24
|
}
|
|
15
25
|
export declare function createCubitStub<T extends StateContainerConstructor>(BlocClass: T, options?: CubitStubOptions<T>): InstanceType<T>;
|
|
16
26
|
export declare function withBlocState<T extends StateContainerConstructor>(BlocClass: T, state: ExtractState<T> extends Record<string, any> ? Partial<ExtractState<T>> : ExtractState<T>, instanceKey?: string): InstanceType<T>;
|
|
17
27
|
export declare function withBlocMethod<T extends StateContainerConstructor>(BlocClass: T, methodName: keyof InstanceType<T>, impl: (...args: any[]) => any, instanceKey?: string): InstanceType<T>;
|
|
28
|
+
/**
|
|
29
|
+
* Drain pending microtasks so any channel-flushed effects (subscribe()
|
|
30
|
+
* listeners, `onSystemEvent('stateChanged')` handlers, plugin hooks) run
|
|
31
|
+
* before the next assertion.
|
|
32
|
+
*
|
|
33
|
+
* The default `MicrotaskScheduler` coalesces emits within a tick; tests
|
|
34
|
+
* that emit and then assert on listener side-effects need `await flush()`
|
|
35
|
+
* (or its alias `flushBlocUpdates()`) between the two.
|
|
36
|
+
*/
|
|
37
|
+
export declare function flush(): Promise<void>;
|
|
38
|
+
/** @deprecated Alias for `flush()`. */
|
|
18
39
|
export declare function flushBlocUpdates(): Promise<void>;
|
|
19
40
|
export {};
|
package/dist/testing.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { t as
|
|
3
|
-
import { r as setRegistry, t as getRegistry } from "./config-
|
|
4
|
-
import { t as ensure } from "./ensure-
|
|
1
|
+
import { t as StateContainerRegistry } from "./StateContainerRegistry-DmmzYa7S.js";
|
|
2
|
+
import { r as APPLY_DEPS, t as Cubit } from "./Cubit-VJuu2tt9.js";
|
|
3
|
+
import { r as setRegistry, t as getRegistry } from "./config-DoHx0Xsl.js";
|
|
4
|
+
import { t as ensure } from "./ensure-mkL-3qh8.js";
|
|
5
5
|
//#region src/testing.ts
|
|
6
|
+
/** Synthetic owner id used by test helpers for pre-wired deps. */
|
|
7
|
+
const TESTING_DEPS_OWNER = "testing-deps";
|
|
6
8
|
function createTestRegistry() {
|
|
7
9
|
return new StateContainerRegistry();
|
|
8
10
|
}
|
|
@@ -37,19 +39,9 @@ function blacTestSetup() {
|
|
|
37
39
|
});
|
|
38
40
|
}
|
|
39
41
|
const DEFAULT_KEY = "default";
|
|
40
|
-
function registerOverride(BlocClass, instance, instanceKey
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
canCreate: true,
|
|
44
|
-
countRef: false
|
|
45
|
-
});
|
|
46
|
-
if (existing !== instance && !existing.isDisposed) existing.dispose();
|
|
47
|
-
const instancesMap = registry.getInstancesMap(BlocClass);
|
|
48
|
-
const entry = {
|
|
49
|
-
instance,
|
|
50
|
-
refs: new Map([["testing-override", 1]])
|
|
51
|
-
};
|
|
52
|
-
instancesMap.set(instanceKey, entry);
|
|
42
|
+
function registerOverride(BlocClass, instance, instanceKey) {
|
|
43
|
+
const key = instanceKey ?? DEFAULT_KEY;
|
|
44
|
+
getRegistry().insertInstance(BlocClass, key, instance, new Map([["testing-override", 1]]));
|
|
53
45
|
}
|
|
54
46
|
function overrideEnsure(BlocClass, instance, fn, instanceKey = DEFAULT_KEY) {
|
|
55
47
|
return withTestRegistry(() => {
|
|
@@ -59,6 +51,7 @@ function overrideEnsure(BlocClass, instance, fn, instanceKey = DEFAULT_KEY) {
|
|
|
59
51
|
}
|
|
60
52
|
function createCubitStub(BlocClass, options) {
|
|
61
53
|
const instance = new BlocClass();
|
|
54
|
+
if (options?.args != null) instance.initConfig({ args: options.args });
|
|
62
55
|
if (options?.state != null) {
|
|
63
56
|
if (instance instanceof Cubit) {
|
|
64
57
|
const currentState = instance.state;
|
|
@@ -69,6 +62,7 @@ function createCubitStub(BlocClass, options) {
|
|
|
69
62
|
if (options?.methods) {
|
|
70
63
|
for (const [key, impl] of Object.entries(options.methods)) if (typeof impl === "function") instance[key] = impl;
|
|
71
64
|
}
|
|
65
|
+
if (options?.deps != null) instance[APPLY_DEPS](TESTING_DEPS_OWNER, options.deps);
|
|
72
66
|
return instance;
|
|
73
67
|
}
|
|
74
68
|
function withBlocState(BlocClass, state, instanceKey) {
|
|
@@ -85,12 +79,24 @@ function withBlocMethod(BlocClass, methodName, impl, instanceKey) {
|
|
|
85
79
|
instance[methodName] = impl;
|
|
86
80
|
return instance;
|
|
87
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Drain pending microtasks so any channel-flushed effects (subscribe()
|
|
84
|
+
* listeners, `onSystemEvent('stateChanged')` handlers, plugin hooks) run
|
|
85
|
+
* before the next assertion.
|
|
86
|
+
*
|
|
87
|
+
* The default `MicrotaskScheduler` coalesces emits within a tick; tests
|
|
88
|
+
* that emit and then assert on listener side-effects need `await flush()`
|
|
89
|
+
* (or its alias `flushBlocUpdates()`) between the two.
|
|
90
|
+
*/
|
|
91
|
+
async function flush() {
|
|
92
|
+
await Promise.resolve();
|
|
93
|
+
await Promise.resolve();
|
|
94
|
+
}
|
|
95
|
+
/** @deprecated Alias for `flush()`. */
|
|
88
96
|
async function flushBlocUpdates() {
|
|
89
|
-
await
|
|
90
|
-
setTimeout(resolve, 0);
|
|
91
|
-
});
|
|
97
|
+
await flush();
|
|
92
98
|
}
|
|
93
99
|
//#endregion
|
|
94
|
-
export { blacTestSetup, createCubitStub, createTestRegistry, flushBlocUpdates, overrideEnsure, registerOverride, withBlocMethod, withBlocState, withTestRegistry };
|
|
100
|
+
export { blacTestSetup, createCubitStub, createTestRegistry, flush, flushBlocUpdates, overrideEnsure, registerOverride, withBlocMethod, withBlocState, withTestRegistry };
|
|
95
101
|
|
|
96
102
|
//# sourceMappingURL=testing.js.map
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","names":[],"sources":["../src/testing.ts"],"sourcesContent":["import { Cubit } from './core/Cubit';\nimport {
|
|
1
|
+
{"version":3,"file":"testing.js","names":[],"sources":["../src/testing.ts"],"sourcesContent":["import { Cubit } from './core/Cubit';\nimport { StateContainerRegistry } from './core/StateContainerRegistry';\nimport { APPLY_DEPS } from './core/symbols';\nimport { ensure, getRegistry, setRegistry } from './registry';\nimport type {\n ExtractArgs,\n ExtractDeps,\n ExtractState,\n StateContainerConstructor,\n} from './types/utilities';\n\n/** Synthetic owner id used by test helpers for pre-wired deps. */\nconst TESTING_DEPS_OWNER = 'testing-deps';\n\ndeclare const beforeEach: (fn: () => void) => void;\ndeclare const afterEach: (fn: () => void) => void;\n\n// --- createTestRegistry + withTestRegistry ---\n\nexport function createTestRegistry(): StateContainerRegistry {\n return new StateContainerRegistry();\n}\n\nexport function withTestRegistry<T>(\n fn: (registry: StateContainerRegistry) => T,\n): T {\n const previous = getRegistry();\n const testRegistry = createTestRegistry();\n setRegistry(testRegistry);\n try {\n const result = fn(testRegistry);\n if (result instanceof Promise) {\n return result.then(\n (value) => {\n setRegistry(previous);\n return value;\n },\n (error) => {\n setRegistry(previous);\n throw error;\n },\n ) as T;\n }\n setRegistry(previous);\n return result;\n } catch (error) {\n setRegistry(previous);\n throw error;\n }\n}\n\n// --- blacTestSetup ---\n\nexport function blacTestSetup(): void {\n let savedRegistry: StateContainerRegistry;\n beforeEach(() => {\n savedRegistry = getRegistry();\n setRegistry(new StateContainerRegistry());\n });\n afterEach(() => {\n setRegistry(savedRegistry);\n });\n}\n\n// --- registerOverride + overrideEnsure ---\n\nconst DEFAULT_KEY = 'default';\n\nexport function registerOverride<T extends StateContainerConstructor>(\n BlocClass: T,\n instance: InstanceType<T>,\n instanceKey?: string,\n): void {\n const key = instanceKey ?? DEFAULT_KEY;\n const registry = getRegistry();\n registry.insertInstance(\n BlocClass,\n key,\n instance,\n new Map([['testing-override', 1]]),\n );\n}\n\nexport function overrideEnsure<T extends StateContainerConstructor, R>(\n BlocClass: T,\n instance: InstanceType<T>,\n fn: () => R,\n instanceKey: string = DEFAULT_KEY,\n): R {\n return withTestRegistry(() => {\n registerOverride(BlocClass, instance, instanceKey);\n return fn();\n });\n}\n\n// --- createCubitStub ---\n\ntype MethodKeys<T> = {\n [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never;\n}[keyof T];\n\nexport interface CubitStubOptions<T extends StateContainerConstructor> {\n state?: ExtractState<T> extends Record<string, any>\n ? Partial<ExtractState<T>>\n : ExtractState<T>;\n methods?: Partial<\n Record<MethodKeys<InstanceType<T>>, (...args: any[]) => any>\n >;\n /**\n * Args to pass to init(). If the bloc's Args type is not void, supplying\n * args here causes initConfig({ args }) to be called so init() runs.\n */\n args?: ExtractArgs<T> extends void ? never : ExtractArgs<T>;\n /**\n * Deps slice to pre-wire via the core [APPLY_DEPS] path (synthetic owner\n * \"testing-deps\"), so onDepsChanged fires during tests.\n */\n deps?: Partial<ExtractDeps<T>>;\n}\n\nexport function createCubitStub<T extends StateContainerConstructor>(\n BlocClass: T,\n options?: CubitStubOptions<T>,\n): InstanceType<T> {\n const instance = new BlocClass() as InstanceType<T>;\n\n // Run init() if args are supplied — goes through the same initConfig path\n // that the registry uses, so lifecycle hooks fire correctly.\n if (options?.args != null) {\n instance.initConfig({ args: options.args });\n }\n\n if (options?.state != null) {\n if (instance instanceof Cubit) {\n const currentState = instance.state;\n if (\n typeof currentState === 'object' &&\n currentState !== null &&\n typeof options.state === 'object' &&\n options.state !== null\n ) {\n instance.patch(options.state as any);\n } else {\n instance.emit(options.state as any);\n }\n }\n }\n if (options?.methods) {\n for (const [key, impl] of Object.entries(options.methods)) {\n if (typeof impl === 'function') {\n (instance as any)[key] = impl;\n }\n }\n }\n\n // Pre-wire deps via the core merge path so onDepsChanged fires in tests.\n if (options?.deps != null) {\n (instance as any)[APPLY_DEPS](TESTING_DEPS_OWNER, options.deps);\n }\n\n return instance;\n}\n\n// --- withBlocState ---\n\nexport function withBlocState<T extends StateContainerConstructor>(\n BlocClass: T,\n state: ExtractState<T> extends Record<string, any>\n ? Partial<ExtractState<T>>\n : ExtractState<T>,\n instanceKey?: string,\n): InstanceType<T> {\n const instance = ensure(BlocClass, instanceKey);\n if (instance instanceof Cubit) {\n const currentState = instance.state;\n if (\n typeof currentState === 'object' &&\n currentState !== null &&\n typeof state === 'object' &&\n state !== null\n ) {\n instance.patch(state as any);\n } else {\n instance.emit(state as any);\n }\n }\n return instance;\n}\n\n// --- withBlocMethod ---\n\nexport function withBlocMethod<T extends StateContainerConstructor>(\n BlocClass: T,\n methodName: keyof InstanceType<T>,\n impl: (...args: any[]) => any,\n instanceKey?: string,\n): InstanceType<T> {\n const instance = ensure(BlocClass, instanceKey);\n (instance as any)[methodName] = impl;\n return instance;\n}\n\n// --- flushBlocUpdates ---\n\n/**\n * Drain pending microtasks so any channel-flushed effects (subscribe()\n * listeners, `onSystemEvent('stateChanged')` handlers, plugin hooks) run\n * before the next assertion.\n *\n * The default `MicrotaskScheduler` coalesces emits within a tick; tests\n * that emit and then assert on listener side-effects need `await flush()`\n * (or its alias `flushBlocUpdates()`) between the two.\n */\nexport async function flush(): Promise<void> {\n // queueMicrotask wins the race against the channel's own queued flush —\n // we resolve after the channel has drained its current pending flush.\n await Promise.resolve();\n await Promise.resolve();\n}\n\n/** @deprecated Alias for `flush()`. */\nexport async function flushBlocUpdates(): Promise<void> {\n await flush();\n}\n"],"mappings":";;;;;;AAYA,MAAM,qBAAqB;AAO3B,SAAgB,qBAA6C;CAC3D,OAAO,IAAI,wBAAwB;;AAGrC,SAAgB,iBACd,IACG;CACH,MAAM,WAAW,aAAa;CAC9B,MAAM,eAAe,oBAAoB;CACzC,YAAY,aAAa;CACzB,IAAI;EACF,MAAM,SAAS,GAAG,aAAa;EAC/B,IAAI,kBAAkB,SACpB,OAAO,OAAO,MACX,UAAU;GACT,YAAY,SAAS;GACrB,OAAO;MAER,UAAU;GACT,YAAY,SAAS;GACrB,MAAM;IAET;EAEH,YAAY,SAAS;EACrB,OAAO;UACA,OAAO;EACd,YAAY,SAAS;EACrB,MAAM;;;AAMV,SAAgB,gBAAsB;CACpC,IAAI;CACJ,iBAAiB;EACf,gBAAgB,aAAa;EAC7B,YAAY,IAAI,wBAAwB,CAAC;GACzC;CACF,gBAAgB;EACd,YAAY,cAAc;GAC1B;;AAKJ,MAAM,cAAc;AAEpB,SAAgB,iBACd,WACA,UACA,aACM;CACN,MAAM,MAAM,eAAe;CAE3B,aAAQ,CAAC,eACP,WACA,KACA,UACA,IAAI,IAAI,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CACnC;;AAGH,SAAgB,eACd,WACA,UACA,IACA,cAAsB,aACnB;CACH,OAAO,uBAAuB;EAC5B,iBAAiB,WAAW,UAAU,YAAY;EAClD,OAAO,IAAI;GACX;;AA4BJ,SAAgB,gBACd,WACA,SACiB;CACjB,MAAM,WAAW,IAAI,WAAW;CAIhC,IAAI,SAAS,QAAQ,MACnB,SAAS,WAAW,EAAE,MAAM,QAAQ,MAAM,CAAC;CAG7C,IAAI,SAAS,SAAS;MAChB,oBAAoB,OAAO;GAC7B,MAAM,eAAe,SAAS;GAC9B,IACE,OAAO,iBAAiB,YACxB,iBAAiB,QACjB,OAAO,QAAQ,UAAU,YACzB,QAAQ,UAAU,MAElB,SAAS,MAAM,QAAQ,MAAa;QAEpC,SAAS,KAAK,QAAQ,MAAa;;;CAIzC,IAAI,SAAS;OACN,MAAM,CAAC,KAAK,SAAS,OAAO,QAAQ,QAAQ,QAAQ,EACvD,IAAI,OAAO,SAAS,YAClB,SAAkB,OAAO;;CAM/B,IAAI,SAAS,QAAQ,MACnB,SAAkB,YAAY,oBAAoB,QAAQ,KAAK;CAGjE,OAAO;;AAKT,SAAgB,cACd,WACA,OAGA,aACiB;CACjB,MAAM,WAAW,OAAO,WAAW,YAAY;CAC/C,IAAI,oBAAoB,OAAO;EAC7B,MAAM,eAAe,SAAS;EAC9B,IACE,OAAO,iBAAiB,YACxB,iBAAiB,QACjB,OAAO,UAAU,YACjB,UAAU,MAEV,SAAS,MAAM,MAAa;OAE5B,SAAS,KAAK,MAAa;;CAG/B,OAAO;;AAKT,SAAgB,eACd,WACA,YACA,MACA,aACiB;CACjB,MAAM,WAAW,OAAO,WAAW,YAAY;CAC/C,SAAkB,cAAc;CAChC,OAAO;;;;;;;;;;;AAcT,eAAsB,QAAuB;CAG3C,MAAM,QAAQ,SAAS;CACvB,MAAM,QAAQ,SAAS;;;AAIzB,eAAsB,mBAAkC;CACtD,MAAM,OAAO"}
|