@blac/core 2.0.15 → 2.0.16
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/dist/{StateContainerRegistry-DmmzYa7S.js → StateContainerRegistry-B_ViBLvJ.js} +78 -77
- package/dist/StateContainerRegistry-B_ViBLvJ.js.map +1 -0
- package/dist/{StateContainerRegistry-B4yVMYbx.cjs → StateContainerRegistry-FWKzPfS-.cjs} +77 -88
- package/dist/StateContainerRegistry-FWKzPfS-.cjs.map +1 -0
- package/dist/acquire-DHEOEVcj.cjs +46 -0
- package/dist/acquire-DHEOEVcj.cjs.map +1 -0
- package/dist/acquire-Don7499S.js +35 -0
- package/dist/acquire-Don7499S.js.map +1 -0
- package/dist/{branded-BSeA_mZO.cjs → branded-BybA0_xw.cjs} +1 -1
- package/dist/{branded-BSeA_mZO.cjs.map → branded-BybA0_xw.cjs.map} +1 -1
- package/dist/{branded-DwtzSsg0.js → branded-DkbUzncc.js} +1 -1
- package/dist/{branded-DwtzSsg0.js.map → branded-DkbUzncc.js.map} +1 -1
- package/dist/{config-DoHx0Xsl.js → config-8pyOC5gv.js} +2 -2
- package/dist/{config-0ZD9i3wy.js.map → config-8pyOC5gv.js.map} +1 -1
- package/dist/{config-B_4xXpvK.cjs → config-DVMnlHLv.cjs} +2 -2
- package/dist/{config-B3NIwDQv.cjs.map → config-DVMnlHLv.cjs.map} +1 -1
- package/dist/constants.d.cts +0 -5
- package/dist/constants.d.ts +0 -5
- package/dist/core/StateContainer.d.ts +2 -2
- package/dist/core/StateContainerRegistry.d.ts +25 -8
- package/dist/debug.cjs +3 -3
- package/dist/debug.js +3 -3
- package/dist/{Cubit-CWP8Ddzx.cjs → ensure-CLQEx0Nn.cjs} +24 -6
- package/dist/ensure-CLQEx0Nn.cjs.map +1 -0
- package/dist/{Cubit-VJuu2tt9.js → ensure-CPMiGvov.js} +19 -7
- package/dist/ensure-CPMiGvov.js.map +1 -0
- package/dist/index.cjs +33 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +27 -33
- package/dist/index.js.map +1 -1
- package/dist/management-7jLjVHJd.js +38 -0
- package/dist/management-7jLjVHJd.js.map +1 -0
- package/dist/{management-DTzcC6aD.cjs → management-GcnNJjnm.cjs} +14 -8
- package/dist/management-GcnNJjnm.cjs.map +1 -0
- package/dist/plugins.cjs +1 -1
- package/dist/plugins.js +1 -1
- package/dist/registry/acquire.d.ts +19 -6
- package/dist/registry/borrow.d.ts +14 -3
- package/dist/registry/ensure.d.ts +7 -1
- package/dist/registry/index.d.ts +1 -0
- package/dist/registry/queries.d.ts +10 -4
- package/dist/registry/release.d.ts +14 -2
- package/dist/testing.cjs +17 -17
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +4 -4
- package/dist/testing.d.ts +4 -4
- package/dist/testing.js +14 -14
- package/dist/testing.js.map +1 -1
- package/dist/types/utilities.d.ts +1 -12
- package/dist/types.cjs +1 -1
- package/dist/types.js +1 -1
- package/dist/utils/static-props.d.ts +0 -9
- package/dist/watch/watch.d.ts +8 -5
- package/dist/{watch-DWCqXllW.js → watch-BmC-Tyqg.js} +11 -9
- package/dist/watch-BmC-Tyqg.js.map +1 -0
- package/dist/{watch-BpwaUL8r.cjs → watch-CKWt788i.cjs} +11 -9
- package/dist/watch-CKWt788i.cjs.map +1 -0
- package/dist/watch-entry.cjs +1 -1
- package/dist/watch-entry.js +1 -1
- package/package.json +22 -11
- package/dist/Cubit-9jal5zdZ.cjs +0 -390
- package/dist/Cubit-9jal5zdZ.cjs.map +0 -1
- package/dist/Cubit-BAUPiUF7.cjs +0 -380
- package/dist/Cubit-BAUPiUF7.cjs.map +0 -1
- package/dist/Cubit-BBKF3PIg.js +0 -287
- package/dist/Cubit-BBKF3PIg.js.map +0 -1
- package/dist/Cubit-BC70gaiA.js +0 -453
- package/dist/Cubit-BC70gaiA.js.map +0 -1
- package/dist/Cubit-BOgUZva7.js +0 -360
- package/dist/Cubit-BOgUZva7.js.map +0 -1
- package/dist/Cubit-BOxMvpfc.js +0 -291
- package/dist/Cubit-BOxMvpfc.js.map +0 -1
- package/dist/Cubit-BTznt8zg.js +0 -370
- package/dist/Cubit-BTznt8zg.js.map +0 -1
- package/dist/Cubit-BogJXkLm.js +0 -278
- package/dist/Cubit-BogJXkLm.js.map +0 -1
- package/dist/Cubit-C-8R_8db.cjs +0 -475
- package/dist/Cubit-C-8R_8db.cjs.map +0 -1
- package/dist/Cubit-C3Mw3EoO.cjs +0 -401
- package/dist/Cubit-C3Mw3EoO.cjs.map +0 -1
- package/dist/Cubit-CO8Fr72L.cjs +0 -447
- package/dist/Cubit-CO8Fr72L.cjs.map +0 -1
- package/dist/Cubit-COfHT1Bm.cjs +0 -321
- package/dist/Cubit-COfHT1Bm.cjs.map +0 -1
- package/dist/Cubit-CROWjjs9.js +0 -481
- package/dist/Cubit-CROWjjs9.js.map +0 -1
- package/dist/Cubit-CWP8Ddzx.cjs.map +0 -1
- package/dist/Cubit-CXxh9iol.js +0 -302
- package/dist/Cubit-CXxh9iol.js.map +0 -1
- package/dist/Cubit-CYOWfzQt.cjs +0 -317
- package/dist/Cubit-CYOWfzQt.cjs.map +0 -1
- package/dist/Cubit-CZaf_fp4.cjs +0 -388
- package/dist/Cubit-CZaf_fp4.cjs.map +0 -1
- package/dist/Cubit-C_dUEUdd.cjs +0 -380
- package/dist/Cubit-C_dUEUdd.cjs.map +0 -1
- package/dist/Cubit-C_rxRCTN.cjs +0 -523
- package/dist/Cubit-C_rxRCTN.cjs.map +0 -1
- package/dist/Cubit-CcKgMEBO.js +0 -299
- package/dist/Cubit-CcKgMEBO.js.map +0 -1
- package/dist/Cubit-CfT6Y1jl.js +0 -346
- package/dist/Cubit-CfT6Y1jl.js.map +0 -1
- package/dist/Cubit-CynJruuO.js +0 -369
- package/dist/Cubit-CynJruuO.js.map +0 -1
- package/dist/Cubit-D2vQ6nMb.js +0 -360
- package/dist/Cubit-D2vQ6nMb.js.map +0 -1
- package/dist/Cubit-D7jOZCoZ.js +0 -360
- package/dist/Cubit-D7jOZCoZ.js.map +0 -1
- package/dist/Cubit-D9j3IGPc.cjs +0 -523
- package/dist/Cubit-D9j3IGPc.cjs.map +0 -1
- package/dist/Cubit-DKEY9WYq.cjs +0 -296
- package/dist/Cubit-DKEY9WYq.cjs.map +0 -1
- package/dist/Cubit-DMV_0TCp.js +0 -481
- package/dist/Cubit-DMV_0TCp.js.map +0 -1
- package/dist/Cubit-DP5DXPUK.js +0 -360
- package/dist/Cubit-DP5DXPUK.js.map +0 -1
- package/dist/Cubit-DRFkzD2h.js +0 -426
- package/dist/Cubit-DRFkzD2h.js.map +0 -1
- package/dist/Cubit-DbnhTUaZ.cjs +0 -380
- package/dist/Cubit-DbnhTUaZ.cjs.map +0 -1
- package/dist/Cubit-DrqG3SP3.cjs +0 -370
- package/dist/Cubit-DrqG3SP3.cjs.map +0 -1
- package/dist/Cubit-DsDkCo42.cjs +0 -313
- package/dist/Cubit-DsDkCo42.cjs.map +0 -1
- package/dist/Cubit-DwRw1E9D.cjs +0 -309
- package/dist/Cubit-DwRw1E9D.cjs.map +0 -1
- package/dist/Cubit-Dw_kFBgc.js +0 -372
- package/dist/Cubit-Dw_kFBgc.js.map +0 -1
- package/dist/Cubit-KiXZCubP.cjs +0 -392
- package/dist/Cubit-KiXZCubP.cjs.map +0 -1
- package/dist/Cubit-Ksj7G4uR.js +0 -360
- package/dist/Cubit-Ksj7G4uR.js.map +0 -1
- package/dist/Cubit-MkjbpcPf.cjs +0 -380
- package/dist/Cubit-MkjbpcPf.cjs.map +0 -1
- package/dist/Cubit-NRhvdDQ6.js +0 -297
- package/dist/Cubit-NRhvdDQ6.js.map +0 -1
- package/dist/Cubit-PMTXxI_u.js +0 -368
- package/dist/Cubit-PMTXxI_u.js.map +0 -1
- package/dist/Cubit-VJuu2tt9.js.map +0 -1
- package/dist/Cubit-jz922NKf.cjs +0 -320
- package/dist/Cubit-jz922NKf.cjs.map +0 -1
- package/dist/Cubit-kU5_4jgC.cjs +0 -380
- package/dist/Cubit-kU5_4jgC.cjs.map +0 -1
- package/dist/StateContainerRegistry-B4yVMYbx.cjs.map +0 -1
- package/dist/StateContainerRegistry-BAcxouCu.js +0 -723
- package/dist/StateContainerRegistry-BAcxouCu.js.map +0 -1
- package/dist/StateContainerRegistry-BK57H92E.js +0 -747
- package/dist/StateContainerRegistry-BK57H92E.js.map +0 -1
- package/dist/StateContainerRegistry-BRBATSrx.cjs +0 -1030
- package/dist/StateContainerRegistry-BRBATSrx.cjs.map +0 -1
- package/dist/StateContainerRegistry-BgBIKcQF.js +0 -956
- package/dist/StateContainerRegistry-BgBIKcQF.js.map +0 -1
- package/dist/StateContainerRegistry-BglEhqdA.js +0 -709
- package/dist/StateContainerRegistry-BglEhqdA.js.map +0 -1
- package/dist/StateContainerRegistry-BhcnG0DF.js +0 -665
- package/dist/StateContainerRegistry-BhcnG0DF.js.map +0 -1
- package/dist/StateContainerRegistry-BpO5t-0i.js +0 -682
- package/dist/StateContainerRegistry-BpO5t-0i.js.map +0 -1
- package/dist/StateContainerRegistry-BqS-wpb_.js +0 -957
- package/dist/StateContainerRegistry-BqS-wpb_.js.map +0 -1
- package/dist/StateContainerRegistry-BrEGYPZT.cjs +0 -1029
- package/dist/StateContainerRegistry-BrEGYPZT.cjs.map +0 -1
- package/dist/StateContainerRegistry-BsMIpllP.cjs +0 -659
- package/dist/StateContainerRegistry-BsMIpllP.cjs.map +0 -1
- package/dist/StateContainerRegistry-Bxfne4A7.cjs +0 -908
- package/dist/StateContainerRegistry-Bxfne4A7.cjs.map +0 -1
- package/dist/StateContainerRegistry-C0E7vsgy.js +0 -758
- package/dist/StateContainerRegistry-C0E7vsgy.js.map +0 -1
- package/dist/StateContainerRegistry-C0I77Ndz.cjs +0 -920
- package/dist/StateContainerRegistry-C0I77Ndz.cjs.map +0 -1
- package/dist/StateContainerRegistry-CDH9mnQS.cjs +0 -715
- package/dist/StateContainerRegistry-CDH9mnQS.cjs.map +0 -1
- package/dist/StateContainerRegistry-CTOXUf75.cjs +0 -742
- package/dist/StateContainerRegistry-CTOXUf75.cjs.map +0 -1
- package/dist/StateContainerRegistry-CX2CBOmv.cjs +0 -795
- package/dist/StateContainerRegistry-CX2CBOmv.cjs.map +0 -1
- package/dist/StateContainerRegistry-CXnnf2-l.js +0 -867
- package/dist/StateContainerRegistry-CXnnf2-l.js.map +0 -1
- package/dist/StateContainerRegistry-CehuIpK_.cjs +0 -811
- package/dist/StateContainerRegistry-CehuIpK_.cjs.map +0 -1
- package/dist/StateContainerRegistry-Ci0ajc5g.js +0 -720
- package/dist/StateContainerRegistry-Ci0ajc5g.js.map +0 -1
- package/dist/StateContainerRegistry-Ck2-XmT_.js +0 -627
- package/dist/StateContainerRegistry-Ck2-XmT_.js.map +0 -1
- package/dist/StateContainerRegistry-D1lVJFGL.cjs +0 -753
- package/dist/StateContainerRegistry-D1lVJFGL.cjs.map +0 -1
- package/dist/StateContainerRegistry-DC4N73O6.js +0 -672
- package/dist/StateContainerRegistry-DC4N73O6.js.map +0 -1
- package/dist/StateContainerRegistry-DOkDGng-.js +0 -626
- package/dist/StateContainerRegistry-DOkDGng-.js.map +0 -1
- package/dist/StateContainerRegistry-DOuGI-l5.js +0 -685
- package/dist/StateContainerRegistry-DOuGI-l5.js.map +0 -1
- package/dist/StateContainerRegistry-DT66lr3I.cjs +0 -698
- package/dist/StateContainerRegistry-DT66lr3I.cjs.map +0 -1
- package/dist/StateContainerRegistry-DmmzYa7S.js.map +0 -1
- package/dist/StateContainerRegistry-Upsrlg9G.cjs +0 -756
- package/dist/StateContainerRegistry-Upsrlg9G.cjs.map +0 -1
- package/dist/StateContainerRegistry-WznfcA-Q.js +0 -855
- package/dist/StateContainerRegistry-WznfcA-Q.js.map +0 -1
- package/dist/StateContainerRegistry-Yph6UCA_.js +0 -678
- package/dist/StateContainerRegistry-Yph6UCA_.js.map +0 -1
- package/dist/StateContainerRegistry-mseeTqSA.cjs +0 -718
- package/dist/StateContainerRegistry-mseeTqSA.cjs.map +0 -1
- package/dist/StateContainerRegistry-pRNxHNFD.cjs +0 -705
- package/dist/StateContainerRegistry-pRNxHNFD.cjs.map +0 -1
- package/dist/StateContainerRegistry-vXMWtG7J.cjs +0 -660
- package/dist/StateContainerRegistry-vXMWtG7J.cjs.map +0 -1
- package/dist/StateContainerRegistry-v_prqMcI.cjs +0 -711
- package/dist/StateContainerRegistry-v_prqMcI.cjs.map +0 -1
- package/dist/branded-DCqi3De1.cjs +0 -18
- package/dist/branded-DCqi3De1.cjs.map +0 -1
- package/dist/branded-Max3xOTA.js +0 -13
- package/dist/branded-Max3xOTA.js.map +0 -1
- package/dist/config-0ZD9i3wy.js +0 -16
- package/dist/config-B3NIwDQv.cjs +0 -32
- package/dist/config-BKGHop0V.js +0 -16
- package/dist/config-BKGHop0V.js.map +0 -1
- package/dist/config-BKoaAlmb.js +0 -16
- package/dist/config-BKoaAlmb.js.map +0 -1
- package/dist/config-BPj08-8h.cjs +0 -32
- package/dist/config-BPj08-8h.cjs.map +0 -1
- package/dist/config-BR0Xy-Tn.cjs +0 -32
- package/dist/config-BR0Xy-Tn.cjs.map +0 -1
- package/dist/config-B_4xXpvK.cjs.map +0 -1
- package/dist/config-BflrQM4_.cjs +0 -32
- package/dist/config-BflrQM4_.cjs.map +0 -1
- package/dist/config-BzObBsk2.cjs +0 -32
- package/dist/config-BzObBsk2.cjs.map +0 -1
- package/dist/config-C0yumL1H.cjs +0 -32
- package/dist/config-C0yumL1H.cjs.map +0 -1
- package/dist/config-C8xqVHTf.js +0 -16
- package/dist/config-C8xqVHTf.js.map +0 -1
- package/dist/config-CCUhIYIF.js +0 -16
- package/dist/config-CCUhIYIF.js.map +0 -1
- package/dist/config-CGo__MAt.js +0 -16
- package/dist/config-CGo__MAt.js.map +0 -1
- package/dist/config-CQH9fTY-.cjs +0 -32
- package/dist/config-CQH9fTY-.cjs.map +0 -1
- package/dist/config-CR_Bz7RD.js +0 -16
- package/dist/config-CR_Bz7RD.js.map +0 -1
- package/dist/config-CTOa-yPN.cjs +0 -32
- package/dist/config-CTOa-yPN.cjs.map +0 -1
- package/dist/config-Cd7Q-B4g.js +0 -16
- package/dist/config-Cd7Q-B4g.js.map +0 -1
- package/dist/config-CmDEX-1o.js +0 -16
- package/dist/config-CmDEX-1o.js.map +0 -1
- package/dist/config-CoNMTnMA.cjs +0 -32
- package/dist/config-CoNMTnMA.cjs.map +0 -1
- package/dist/config-Cwj8-C1J.js +0 -16
- package/dist/config-Cwj8-C1J.js.map +0 -1
- package/dist/config-D3jisfdj.cjs +0 -32
- package/dist/config-D3jisfdj.cjs.map +0 -1
- package/dist/config-D4GifZQ4.js +0 -16
- package/dist/config-D4GifZQ4.js.map +0 -1
- package/dist/config-DDrSQGpQ.cjs +0 -32
- package/dist/config-DDrSQGpQ.cjs.map +0 -1
- package/dist/config-DEcslxan.cjs +0 -32
- package/dist/config-DEcslxan.cjs.map +0 -1
- package/dist/config-DLzmy2rZ.cjs +0 -32
- package/dist/config-DLzmy2rZ.cjs.map +0 -1
- package/dist/config-DMNZ2YLV.cjs +0 -32
- package/dist/config-DMNZ2YLV.cjs.map +0 -1
- package/dist/config-De9oQ6Ki.js +0 -16
- package/dist/config-De9oQ6Ki.js.map +0 -1
- package/dist/config-DoHx0Xsl.js.map +0 -1
- package/dist/config-DokTzpr8.cjs +0 -32
- package/dist/config-DokTzpr8.cjs.map +0 -1
- package/dist/config-DslYBm4Z.js +0 -16
- package/dist/config-DslYBm4Z.js.map +0 -1
- package/dist/config-H6FAqbW4.cjs +0 -32
- package/dist/config-H6FAqbW4.cjs.map +0 -1
- package/dist/config-XQua95Xz.js +0 -16
- package/dist/config-XQua95Xz.js.map +0 -1
- package/dist/config-Yp645dGK.js +0 -16
- package/dist/config-Yp645dGK.js.map +0 -1
- package/dist/config-ispAzOZV.js +0 -16
- package/dist/config-ispAzOZV.js.map +0 -1
- package/dist/ensure-9VEq5H0L.js +0 -9
- package/dist/ensure-9VEq5H0L.js.map +0 -1
- package/dist/ensure-BB6xHQAF.cjs +0 -14
- package/dist/ensure-BB6xHQAF.cjs.map +0 -1
- package/dist/ensure-BNDfTzqg.cjs +0 -14
- package/dist/ensure-BNDfTzqg.cjs.map +0 -1
- package/dist/ensure-BVCnjU7r.js +0 -365
- package/dist/ensure-BVCnjU7r.js.map +0 -1
- package/dist/ensure-BbzGXjep.cjs +0 -14
- package/dist/ensure-BbzGXjep.cjs.map +0 -1
- package/dist/ensure-BlIaQai6.js +0 -9
- package/dist/ensure-BlIaQai6.js.map +0 -1
- package/dist/ensure-Bm3oHxga.js +0 -9
- package/dist/ensure-Bm3oHxga.js.map +0 -1
- package/dist/ensure-C3eIRs6e.cjs +0 -14
- package/dist/ensure-C3eIRs6e.cjs.map +0 -1
- package/dist/ensure-C5I1xp2C.js +0 -9
- package/dist/ensure-C5I1xp2C.js.map +0 -1
- package/dist/ensure-CJZL7bcA.cjs +0 -391
- package/dist/ensure-CJZL7bcA.cjs.map +0 -1
- package/dist/ensure-CN6unBOe.cjs +0 -14
- package/dist/ensure-CN6unBOe.cjs.map +0 -1
- package/dist/ensure-CSHYjIeH.cjs +0 -14
- package/dist/ensure-CSHYjIeH.cjs.map +0 -1
- package/dist/ensure-CU-B1ywv.js +0 -9
- package/dist/ensure-CU-B1ywv.js.map +0 -1
- package/dist/ensure-CWKzeno7.js +0 -9
- package/dist/ensure-CWKzeno7.js.map +0 -1
- package/dist/ensure-CkENsuQ9.js +0 -9
- package/dist/ensure-CkENsuQ9.js.map +0 -1
- package/dist/ensure-Cm-4_LSh.cjs +0 -14
- package/dist/ensure-Cm-4_LSh.cjs.map +0 -1
- package/dist/ensure-Cqex5r1P.cjs +0 -14
- package/dist/ensure-Cqex5r1P.cjs.map +0 -1
- package/dist/ensure-Cv5AbNGZ.js +0 -9
- package/dist/ensure-Cv5AbNGZ.js.map +0 -1
- package/dist/ensure-D63lEMUK.cjs +0 -14
- package/dist/ensure-D63lEMUK.cjs.map +0 -1
- package/dist/ensure-DGEtPU9A.cjs +0 -14
- package/dist/ensure-DGEtPU9A.cjs.map +0 -1
- package/dist/ensure-DM3qb336.cjs +0 -14
- package/dist/ensure-DM3qb336.cjs.map +0 -1
- package/dist/ensure-DME-_T0j.cjs +0 -14
- package/dist/ensure-DME-_T0j.cjs.map +0 -1
- package/dist/ensure-DWd0GCYB.js +0 -9
- package/dist/ensure-DWd0GCYB.js.map +0 -1
- package/dist/ensure-DamKOP6q.cjs +0 -14
- package/dist/ensure-DamKOP6q.cjs.map +0 -1
- package/dist/ensure-Dcfptl-A.js +0 -9
- package/dist/ensure-Dcfptl-A.js.map +0 -1
- package/dist/ensure-Def-EBWG.js +0 -9
- package/dist/ensure-Def-EBWG.js.map +0 -1
- package/dist/ensure-DnHL5QiQ.cjs +0 -14
- package/dist/ensure-DnHL5QiQ.cjs.map +0 -1
- package/dist/ensure-Dr7I78Ku.cjs +0 -14
- package/dist/ensure-Dr7I78Ku.cjs.map +0 -1
- package/dist/ensure-SLVdGd5b.js +0 -9
- package/dist/ensure-SLVdGd5b.js.map +0 -1
- package/dist/ensure-Sb92MCXu.js +0 -9
- package/dist/ensure-Sb92MCXu.js.map +0 -1
- package/dist/ensure-gFlvevGm.cjs +0 -14
- package/dist/ensure-gFlvevGm.cjs.map +0 -1
- package/dist/ensure-l2-H7S5W.js +0 -9
- package/dist/ensure-l2-H7S5W.js.map +0 -1
- package/dist/ensure-mkL-3qh8.js +0 -9
- package/dist/ensure-mkL-3qh8.js.map +0 -1
- package/dist/ensure-n80crSlX.js +0 -9
- package/dist/ensure-n80crSlX.js.map +0 -1
- package/dist/ensure-nCxg7MCN.js +0 -9
- package/dist/ensure-nCxg7MCN.js.map +0 -1
- package/dist/ensure-vS71MV4q.cjs +0 -14
- package/dist/ensure-vS71MV4q.cjs.map +0 -1
- package/dist/management-6oQbmf0z.js +0 -41
- package/dist/management-6oQbmf0z.js.map +0 -1
- package/dist/management-B46QwA9Y.js +0 -41
- package/dist/management-B46QwA9Y.js.map +0 -1
- package/dist/management-B9yrRpeg.js +0 -41
- package/dist/management-B9yrRpeg.js.map +0 -1
- package/dist/management-BCKTEZ8Q.js +0 -41
- package/dist/management-BCKTEZ8Q.js.map +0 -1
- package/dist/management-BbMzdXbT.js +0 -41
- package/dist/management-BbMzdXbT.js.map +0 -1
- package/dist/management-Bg652agq.js +0 -41
- package/dist/management-Bg652agq.js.map +0 -1
- package/dist/management-BnedF5ZD.cjs +0 -79
- package/dist/management-BnedF5ZD.cjs.map +0 -1
- package/dist/management-BoUa99eB.cjs +0 -79
- package/dist/management-BoUa99eB.cjs.map +0 -1
- package/dist/management-C-wBdpho.js +0 -37
- package/dist/management-C-wBdpho.js.map +0 -1
- package/dist/management-C4SHcrJm.cjs +0 -79
- package/dist/management-C4SHcrJm.cjs.map +0 -1
- package/dist/management-CK-GL3wY.js +0 -41
- package/dist/management-CK-GL3wY.js.map +0 -1
- package/dist/management-CPhgY8OE.js +0 -41
- package/dist/management-CPhgY8OE.js.map +0 -1
- package/dist/management-CU_V3LIP.js +0 -41
- package/dist/management-CU_V3LIP.js.map +0 -1
- package/dist/management-CUwXDSi9.cjs +0 -79
- package/dist/management-CUwXDSi9.cjs.map +0 -1
- package/dist/management-CaqiyNzB.js +0 -41
- package/dist/management-CaqiyNzB.js.map +0 -1
- package/dist/management-Cin-JvYe.js +0 -41
- package/dist/management-Cin-JvYe.js.map +0 -1
- package/dist/management-ClaXym0F.cjs +0 -79
- package/dist/management-ClaXym0F.cjs.map +0 -1
- package/dist/management-DL0Uzsoz.js +0 -41
- package/dist/management-DL0Uzsoz.js.map +0 -1
- package/dist/management-DLdAQfqk.cjs +0 -79
- package/dist/management-DLdAQfqk.cjs.map +0 -1
- package/dist/management-DMZ8qpwr.cjs +0 -79
- package/dist/management-DMZ8qpwr.cjs.map +0 -1
- package/dist/management-DTzcC6aD.cjs.map +0 -1
- package/dist/management-DYLNyj9p.cjs +0 -79
- package/dist/management-DYLNyj9p.cjs.map +0 -1
- package/dist/management-Dag9u4t6.cjs +0 -79
- package/dist/management-Dag9u4t6.cjs.map +0 -1
- package/dist/management-DbMRdDBo.cjs +0 -79
- package/dist/management-DbMRdDBo.cjs.map +0 -1
- package/dist/management-DfnDAKmP.js +0 -41
- package/dist/management-DfnDAKmP.js.map +0 -1
- package/dist/management-DjBU1gtb.cjs +0 -79
- package/dist/management-DjBU1gtb.cjs.map +0 -1
- package/dist/management-DwCozsY8.js +0 -41
- package/dist/management-DwCozsY8.js.map +0 -1
- package/dist/management-H4m3ciJO.js +0 -32
- package/dist/management-H4m3ciJO.js.map +0 -1
- package/dist/management-Xo3A6Za3.cjs +0 -79
- package/dist/management-Xo3A6Za3.cjs.map +0 -1
- package/dist/management-ZU2YzOkr.js +0 -37
- package/dist/management-ZU2YzOkr.js.map +0 -1
- package/dist/management-baPDwA9n.cjs +0 -79
- package/dist/management-baPDwA9n.cjs.map +0 -1
- package/dist/management-jQGCvZNN.cjs +0 -70
- package/dist/management-jQGCvZNN.cjs.map +0 -1
- package/dist/management-ry_KteFK.cjs +0 -79
- package/dist/management-ry_KteFK.cjs.map +0 -1
- package/dist/management-xoZ7w3bI.cjs +0 -70
- package/dist/management-xoZ7w3bI.cjs.map +0 -1
- package/dist/resolve-dependencies-B2QggQAi.js +0 -729
- package/dist/resolve-dependencies-B2QggQAi.js.map +0 -1
- package/dist/resolve-dependencies-B6JDXvpr.js +0 -739
- package/dist/resolve-dependencies-B6JDXvpr.js.map +0 -1
- package/dist/resolve-dependencies-BA3u06uC.js +0 -731
- package/dist/resolve-dependencies-BA3u06uC.js.map +0 -1
- package/dist/resolve-dependencies-BAKAoD0U.js +0 -878
- package/dist/resolve-dependencies-BAKAoD0U.js.map +0 -1
- package/dist/resolve-dependencies-BFZQq60Y.cjs +0 -832
- package/dist/resolve-dependencies-BFZQq60Y.cjs.map +0 -1
- package/dist/resolve-dependencies-BGafS3Ww.js +0 -731
- package/dist/resolve-dependencies-BGafS3Ww.js.map +0 -1
- package/dist/resolve-dependencies-BHd34gS3.cjs +0 -832
- package/dist/resolve-dependencies-BHd34gS3.cjs.map +0 -1
- package/dist/resolve-dependencies-BNeayhbQ.cjs +0 -840
- package/dist/resolve-dependencies-BNeayhbQ.cjs.map +0 -1
- package/dist/resolve-dependencies-BT6TU2HF.cjs +0 -832
- package/dist/resolve-dependencies-BT6TU2HF.cjs.map +0 -1
- package/dist/resolve-dependencies-BWEMpuDy.js +0 -729
- package/dist/resolve-dependencies-BWEMpuDy.js.map +0 -1
- package/dist/resolve-dependencies-BiWkW2eS.js +0 -731
- package/dist/resolve-dependencies-BiWkW2eS.js.map +0 -1
- package/dist/resolve-dependencies-BjxCztYD.js +0 -739
- package/dist/resolve-dependencies-BjxCztYD.js.map +0 -1
- package/dist/resolve-dependencies-BlyBV0hB.cjs +0 -969
- package/dist/resolve-dependencies-BlyBV0hB.cjs.map +0 -1
- package/dist/resolve-dependencies-By26rT_i.js +0 -739
- package/dist/resolve-dependencies-By26rT_i.js.map +0 -1
- package/dist/resolve-dependencies-C9Kf7AzY.cjs +0 -832
- package/dist/resolve-dependencies-C9Kf7AzY.cjs.map +0 -1
- package/dist/resolve-dependencies-CTzV1txG.js +0 -731
- package/dist/resolve-dependencies-CTzV1txG.js.map +0 -1
- package/dist/resolve-dependencies-CWjuGHiF.cjs +0 -969
- package/dist/resolve-dependencies-CWjuGHiF.cjs.map +0 -1
- package/dist/resolve-dependencies-ClSsP0DJ.cjs +0 -830
- package/dist/resolve-dependencies-ClSsP0DJ.cjs.map +0 -1
- package/dist/resolve-dependencies-D0vTzZgs.js +0 -731
- package/dist/resolve-dependencies-D0vTzZgs.js.map +0 -1
- package/dist/resolve-dependencies-D2WnZMF-.cjs +0 -832
- package/dist/resolve-dependencies-D2WnZMF-.cjs.map +0 -1
- package/dist/resolve-dependencies-DCBLTeza.cjs +0 -969
- package/dist/resolve-dependencies-DCBLTeza.cjs.map +0 -1
- package/dist/resolve-dependencies-DMlqYJR2.js +0 -731
- package/dist/resolve-dependencies-DMlqYJR2.js.map +0 -1
- package/dist/resolve-dependencies-DP6U1EYB.cjs +0 -840
- package/dist/resolve-dependencies-DP6U1EYB.cjs.map +0 -1
- package/dist/resolve-dependencies-DSQNXvnV.cjs +0 -832
- package/dist/resolve-dependencies-DSQNXvnV.cjs.map +0 -1
- package/dist/resolve-dependencies-DV3HO_uH.js +0 -878
- package/dist/resolve-dependencies-DV3HO_uH.js.map +0 -1
- package/dist/resolve-dependencies-DXwMhP0Y.js +0 -878
- package/dist/resolve-dependencies-DXwMhP0Y.js.map +0 -1
- package/dist/resolve-dependencies-DbRWlt9u.js +0 -878
- package/dist/resolve-dependencies-DbRWlt9u.js.map +0 -1
- package/dist/resolve-dependencies-DcUUva2P.cjs +0 -832
- package/dist/resolve-dependencies-DcUUva2P.cjs.map +0 -1
- package/dist/resolve-dependencies-Dd8T6TLt.cjs +0 -832
- package/dist/resolve-dependencies-Dd8T6TLt.cjs.map +0 -1
- package/dist/resolve-dependencies-Dfdp_DZd.cjs +0 -840
- package/dist/resolve-dependencies-Dfdp_DZd.cjs.map +0 -1
- package/dist/resolve-dependencies-GJ8PNyNB.cjs +0 -969
- package/dist/resolve-dependencies-GJ8PNyNB.cjs.map +0 -1
- package/dist/resolve-dependencies-KSpTt4jy.cjs +0 -830
- package/dist/resolve-dependencies-KSpTt4jy.cjs.map +0 -1
- package/dist/resolve-dependencies-Nvjp4CwS.js +0 -731
- package/dist/resolve-dependencies-Nvjp4CwS.js.map +0 -1
- package/dist/resolve-dependencies-f-QUqYiL.js +0 -731
- package/dist/resolve-dependencies-f-QUqYiL.js.map +0 -1
- package/dist/tracked-B77j2g9M.js +0 -197
- package/dist/tracked-B77j2g9M.js.map +0 -1
- package/dist/tracked-BDVi2LKM.cjs +0 -227
- package/dist/tracked-BDVi2LKM.cjs.map +0 -1
- package/dist/tracked-BFdJCzL0.cjs +0 -242
- package/dist/tracked-BFdJCzL0.cjs.map +0 -1
- package/dist/tracked-BH-gX4T1.cjs +0 -227
- package/dist/tracked-BH-gX4T1.cjs.map +0 -1
- package/dist/tracked-BTHok3Dl.cjs +0 -227
- package/dist/tracked-BTHok3Dl.cjs.map +0 -1
- package/dist/tracked-BTbFkFeM.js +0 -212
- package/dist/tracked-BTbFkFeM.js.map +0 -1
- package/dist/tracked-BU_OBWqM.cjs +0 -242
- package/dist/tracked-BU_OBWqM.cjs.map +0 -1
- package/dist/tracked-BfctH2es.cjs +0 -242
- package/dist/tracked-BfctH2es.cjs.map +0 -1
- package/dist/tracked-BhQtzUhZ.js +0 -212
- package/dist/tracked-BhQtzUhZ.js.map +0 -1
- package/dist/tracked-BnqrYXiO.js +0 -212
- package/dist/tracked-BnqrYXiO.js.map +0 -1
- package/dist/tracked-BtgFOGup.js +0 -212
- package/dist/tracked-BtgFOGup.js.map +0 -1
- package/dist/tracked-C3nIS4J7.cjs +0 -242
- package/dist/tracked-C3nIS4J7.cjs.map +0 -1
- package/dist/tracked-C52awNV9.js +0 -197
- package/dist/tracked-C52awNV9.js.map +0 -1
- package/dist/tracked-CGzduF2m.js +0 -212
- package/dist/tracked-CGzduF2m.js.map +0 -1
- package/dist/tracked-CK_-ixtX.cjs +0 -227
- package/dist/tracked-CK_-ixtX.cjs.map +0 -1
- package/dist/tracked-CLlvURln.js +0 -212
- package/dist/tracked-CLlvURln.js.map +0 -1
- package/dist/tracked-CgHWmuGC.cjs +0 -242
- package/dist/tracked-CgHWmuGC.cjs.map +0 -1
- package/dist/tracked-CoAlC8fs.js +0 -197
- package/dist/tracked-CoAlC8fs.js.map +0 -1
- package/dist/tracked-D3Xjm1H1.cjs +0 -242
- package/dist/tracked-D3Xjm1H1.cjs.map +0 -1
- package/dist/tracked-DB6yMV5F.js +0 -212
- package/dist/tracked-DB6yMV5F.js.map +0 -1
- package/dist/tracked-DBn-bs_G.js +0 -197
- package/dist/tracked-DBn-bs_G.js.map +0 -1
- package/dist/tracked-DCfBaYjL.cjs +0 -227
- package/dist/tracked-DCfBaYjL.cjs.map +0 -1
- package/dist/tracked-DKduNLgI.js +0 -197
- package/dist/tracked-DKduNLgI.js.map +0 -1
- package/dist/tracked-DMBTDF0P.js +0 -197
- package/dist/tracked-DMBTDF0P.js.map +0 -1
- package/dist/tracked-DN3h3Rp1.js +0 -197
- package/dist/tracked-DN3h3Rp1.js.map +0 -1
- package/dist/tracked-DOGh1Q5Z.cjs +0 -242
- package/dist/tracked-DOGh1Q5Z.cjs.map +0 -1
- package/dist/tracked-DUkp4zve.cjs +0 -227
- package/dist/tracked-DUkp4zve.cjs.map +0 -1
- package/dist/tracked-D_ou7mYG.js +0 -212
- package/dist/tracked-D_ou7mYG.js.map +0 -1
- package/dist/tracked-Dcu6EATB.js +0 -197
- package/dist/tracked-Dcu6EATB.js.map +0 -1
- package/dist/tracked-GvAJQVAI.cjs +0 -271
- package/dist/tracked-GvAJQVAI.cjs.map +0 -1
- package/dist/tracked-O2lv-kJV.cjs +0 -242
- package/dist/tracked-O2lv-kJV.cjs.map +0 -1
- package/dist/tracked-WF6aXuAo.js +0 -223
- package/dist/tracked-WF6aXuAo.js.map +0 -1
- package/dist/tracked-d_sQWU3c.cjs +0 -227
- package/dist/tracked-d_sQWU3c.cjs.map +0 -1
- package/dist/tracked-n9TMK-30.cjs +0 -227
- package/dist/tracked-n9TMK-30.cjs.map +0 -1
- package/dist/tracked-njU-_pVa.cjs +0 -242
- package/dist/tracked-njU-_pVa.cjs.map +0 -1
- package/dist/tracked-zAgmKIlC.js +0 -212
- package/dist/tracked-zAgmKIlC.js.map +0 -1
- package/dist/tracking/dependency-manager.d.ts +0 -41
- package/dist/tracking/index.d.ts +0 -28
- package/dist/tracking/iteration-perf.bench.d.ts +0 -1
- package/dist/tracking/path-utils.d.ts +0 -69
- package/dist/tracking/resolve-dependencies.d.ts +0 -9
- package/dist/tracking/tracked.d.ts +0 -73
- package/dist/tracking/tracking-proxy.d.ts +0 -230
- package/dist/tracking.cjs +0 -21
- package/dist/tracking.d.cts +0 -9
- package/dist/tracking.d.ts +0 -9
- package/dist/tracking.js +0 -32
- package/dist/watch-BpwaUL8r.cjs.map +0 -1
- package/dist/watch-DWCqXllW.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-dependencies-DbRWlt9u.js","names":[],"sources":["../src/tracking/path-utils.ts","../src/tracking/tracking-proxy.ts","../src/tracking/dependency-manager.ts","../src/tracking/resolve-dependencies.ts"],"sourcesContent":["/**\n * Path utilities for dependency tracking\n *\n * Provides utilities for parsing property paths and extracting values\n * from nested objects using path strings.\n *\n * @internal\n */\n\n/**\n * Parse a property path string into an array of segments\n *\n * @internal\n *\n * Handles both dot notation (a.b.c) and bracket notation (a[0].b)\n *\n * @example\n * ```ts\n * parsePath('user.name') // ['user', 'name']\n * parsePath('items[0].name') // ['items', '0', 'name']\n * parsePath('data.users[2].address.city') // ['data', 'users', '2', 'address', 'city']\n * ```\n */\nexport function parsePath(path: string): string[] {\n const segments: string[] = [];\n let current = '';\n let i = 0;\n\n while (i < path.length) {\n const char = path[i];\n if (char === '.') {\n if (current) segments.push(current);\n current = '';\n } else if (char === '[') {\n if (current) segments.push(current);\n current = '';\n // Skip bracket\n i++;\n // Read until ]\n while (i < path.length && path[i] !== ']') {\n current += path[i++];\n }\n if (current) segments.push(current);\n current = '';\n } else {\n current += char;\n }\n i++;\n }\n\n if (current) segments.push(current);\n return segments;\n}\n\n/**\n * Sentinel value returned by `getValueAtPath` when the path cannot be fully\n * walked because an intermediate segment is null or undefined. This is\n * distinct from `undefined`, which is a legitimate leaf value.\n *\n * @internal\n */\nconst MISSING = Symbol('missing');\nexport { MISSING as PATH_MISSING };\n\n/**\n * Get a value from an object using a path of segments\n *\n * Returns `PATH_MISSING` (not `undefined`) when the path cannot be walked\n * because an intermediate parent is null or undefined. This lets callers\n * distinguish \"the leaf is explicitly `undefined`\" from \"the path is broken\".\n *\n * @example\n * ```ts\n * const obj = { user: { name: 'Alice', age: 30 } }\n * getValueAtPath(obj, ['user', 'name']) // 'Alice'\n * getValueAtPath(obj, ['user', 'age']) // 30\n * getValueAtPath(obj, ['user', 'missing']) // undefined\n * getValueAtPath({ a: null }, ['a', 'b']) // PATH_MISSING\n * ```\n *\n * @internal\n */\nexport function getValueAtPath(obj: unknown, segments: string[]): unknown {\n let current: unknown = obj;\n for (let i = 0; i < segments.length; i++) {\n if (current === null || current === undefined) {\n // Asked to descend into a nullish value. Return MISSING so that\n // hasDependencyChanges can distinguish this from a real `undefined` leaf.\n return MISSING;\n }\n current = (current as Record<string, unknown>)[segments[i]];\n }\n return current;\n}\n\n/**\n * Shallow equality comparison for arrays\n *\n * Compares two arrays element-by-element using Object.is\n *\n * @example\n * ```ts\n * shallowEqual([1, 2, 3], [1, 2, 3]) // true\n * shallowEqual([1, 2, 3], [1, 2, 4]) // false\n * shallowEqual([1, 2], [1, 2, 3]) // false\n * ```\n *\n * @internal\n */\nexport function shallowEqual(arr1: unknown[], arr2: unknown[]): boolean {\n if (arr1.length !== arr2.length) return false;\n for (let i = 0; i < arr1.length; i++) {\n if (!Object.is(arr1[i], arr2[i])) return false;\n }\n return true;\n}\n","/**\n * Consolidated Tracking System\n *\n * This module provides all dependency and getter tracking functionality:\n * - Proxy creation for automatic property access tracking\n * - Dependency path tracking and change detection\n * - Getter execution tracking for computed properties\n * - Combined tracking proxy for watch/waitUntil use cases\n */\nimport { BLAC_DEFAULTS, BLAC_ERROR_PREFIX } from '../constants';\nimport type { StateContainerInstance } from '../types/utilities';\nimport { parsePath, getValueAtPath } from './path-utils';\n\n// =============================================================================\n// PROXY TRACKER (Low-level proxy creation)\n// =============================================================================\n\n/**\n * Check if a value can be proxied\n * Returns true for plain objects and arrays only.\n * @internal\n */\nexport function isProxyable(value: unknown): value is object {\n if (typeof value !== 'object' || value === null) return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === Array.prototype;\n}\n\n/**\n * State container for proxy tracking\n * @internal\n */\nexport interface ProxyState<T> {\n trackedPaths: Set<string>;\n isTracking: boolean;\n proxyCache: WeakMap<object, unknown>;\n // oxlint-disable-next-line @typescript-eslint/no-unsafe-function-type\n boundFunctionsCache: WeakMap<object, WeakMap<Function, Function>> | null;\n lastProxiedState: T | null;\n lastProxy: T | null;\n maxDepth: number;\n}\n\n/**\n * Create a new proxy tracker state\n * @internal\n */\nexport function createProxyState<T>(): ProxyState<T> {\n return {\n trackedPaths: new Set<string>(),\n isTracking: false,\n proxyCache: new WeakMap<object, unknown>(),\n boundFunctionsCache: null,\n lastProxiedState: null,\n lastProxy: null,\n maxDepth: 10,\n };\n}\n\n/**\n * Start tracking property accesses\n * @internal\n */\nexport function startProxy<T>(state: ProxyState<T>): void {\n state.isTracking = true;\n state.trackedPaths.clear();\n}\n\n/**\n * Stop tracking and return the tracked paths\n * @internal\n */\nexport function stopProxy<T>(state: ProxyState<T>): Set<string> {\n state.isTracking = false;\n const paths = state.trackedPaths;\n state.trackedPaths = new Set<string>();\n return paths;\n}\n\n/**\n * Cache (or create + cache) a function keyed by (target, fn). The cached\n * value is whatever `factory()` returns the first time the pair is seen.\n *\n * Used for both:\n * - plain bound copies (see `getBoundFunction`)\n * - custom wrappers (e.g. iterating-array-method wrappers in\n * `createArrayProxy`) that need stable identity across renders\n * @internal\n */\nfunction getOrCacheBound(\n state: ProxyState<unknown>,\n target: object,\n // oxlint-disable-next-line @typescript-eslint/no-unsafe-function-type\n fn: Function,\n // oxlint-disable-next-line @typescript-eslint/no-unsafe-function-type\n factory: () => Function,\n // oxlint-disable-next-line @typescript-eslint/no-unsafe-function-type\n): Function {\n if (!state.boundFunctionsCache) {\n state.boundFunctionsCache = new WeakMap();\n }\n let perTarget = state.boundFunctionsCache.get(target);\n if (!perTarget) {\n perTarget = new WeakMap();\n state.boundFunctionsCache.set(target, perTarget);\n }\n const cached = perTarget.get(fn);\n if (cached) return cached;\n const made = factory();\n perTarget.set(fn, made);\n return made;\n}\n\n/**\n * Return a bound copy of `fn` keyed by (target, fn) so that the same\n * prototype method (e.g. Array.prototype.map) bound to different targets\n * produces different cached values.\n * @internal\n */\nfunction getBoundFunction(\n state: ProxyState<unknown>,\n target: object,\n // oxlint-disable-next-line @typescript-eslint/no-unsafe-function-type\n fn: Function,\n // oxlint-disable-next-line @typescript-eslint/no-unsafe-function-type\n): Function {\n return getOrCacheBound(state, target, fn, () => fn.bind(target));\n}\n\n/**\n * Array methods whose callback we wrap so each item is proxied at its\n * own per-index path. Excludes mutators, derived-array returners, and\n * the iterator-returning helpers (handled elsewhere).\n * @internal\n */\nconst ITERATING_METHODS: ReadonlySet<string> = new Set([\n 'forEach',\n 'map',\n 'filter',\n 'find',\n 'findIndex',\n 'findLast',\n 'findLastIndex',\n 'some',\n 'every',\n 'flatMap',\n]);\n\n/**\n * Array folding methods whose callback has the reduce signature\n * (acc, item, index, arr) => acc. Items are proxied; accumulator passes raw.\n * @internal\n */\nconst REDUCING_METHODS: ReadonlySet<string> = new Set(['reduce', 'reduceRight']);\n\n/**\n * Create a proxy for an array with property access tracking\n * @internal\n */\nexport function createArrayProxy<T, U>(\n state: ProxyState<T>,\n target: U[],\n path: string,\n depth: number = 0,\n): U[] {\n // Forward-declare so iterating-method wrappers can close over the proxy\n // itself and pass it as the third callback argument.\n let proxyRef: U[];\n\n function makeIteratingWrapper(methodName: string) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const realMethod = (Array.prototype as any)[methodName] as (\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n ...args: any[]\n ) => unknown;\n return function (\n this: unknown,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (item: any, index: number, arr: U[]) => unknown,\n thisArg?: unknown,\n ) {\n return realMethod.call(\n target,\n (item: U, index: number /*, _rawArr */) => {\n const indexPath = path ? `${path}[${index}]` : `[${index}]`;\n if (state.isTracking) {\n state.trackedPaths.add(indexPath);\n }\n const proxiedItem = isProxyable(item)\n ? createInternal(state, item as unknown as T, indexPath, depth + 1)\n : item;\n return callback.call(thisArg, proxiedItem, index, proxyRef);\n },\n );\n };\n }\n\n /**\n * Iterator-returning array methods whose yielded items need to be proxied.\n * `keys()` is excluded — it yields numeric indices (primitives, no proxying needed).\n */\n const ITERATOR_METHODS = new Set(['values', 'entries']);\n\n function makeIteratorMethod(methodName: 'values' | 'entries') {\n return function () {\n return (function* () {\n const len = target.length;\n if (state.isTracking && path) {\n state.trackedPaths.add(`${path}.length`);\n }\n for (let i = 0; i < len; i++) {\n const indexPath = path ? `${path}[${i}]` : `[${i}]`;\n if (state.isTracking) {\n state.trackedPaths.add(indexPath);\n }\n const item = target[i];\n const proxied = isProxyable(item)\n ? createInternal(state, item as unknown as T, indexPath, depth + 1)\n : item;\n if (methodName === 'entries') {\n yield [i, proxied] as [number, U];\n } else {\n yield proxied;\n }\n }\n })();\n };\n }\n\n function makeReducingWrapper(methodName: string) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const realMethod = (Array.prototype as any)[methodName] as Function;\n return function (\n this: unknown,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (acc: any, item: any, index: number, arr: U[]) => any,\n ...rest: unknown[]\n ) {\n const wrapped = (acc: unknown, item: U, index: number /*, _rawArr */) => {\n const indexPath = path ? `${path}[${index}]` : `[${index}]`;\n if (state.isTracking) {\n state.trackedPaths.add(indexPath);\n }\n const proxiedItem = isProxyable(item)\n ? createInternal(state, item as unknown as T, indexPath, depth + 1)\n : item;\n return callback(acc, proxiedItem, index, proxyRef);\n };\n // Forward `initialValue` only when actually provided — reduce/reduceRight\n // treat absence specially (use first/last element as seed).\n return rest.length > 0\n ? realMethod.call(target, wrapped, rest[0])\n : realMethod.call(target, wrapped);\n };\n }\n\n const proxy = new Proxy(target, {\n get: (arr, prop: string | symbol) => {\n if (prop === Symbol.iterator) {\n return function* () {\n const len = arr.length;\n if (state.isTracking && path) {\n state.trackedPaths.add(`${path}.length`);\n }\n for (let i = 0; i < len; i++) {\n const indexPath = path ? `${path}[${i}]` : `[${i}]`;\n if (state.isTracking) {\n state.trackedPaths.add(indexPath);\n }\n const item = arr[i];\n yield isProxyable(item)\n ? createInternal(state, item as T, indexPath, depth + 1)\n : item;\n }\n };\n }\n\n if (typeof prop === 'symbol') {\n return Reflect.get(arr, prop);\n }\n\n const value = Reflect.get(arr, prop);\n\n if (typeof value === 'function') {\n if (typeof prop === 'string' && ITERATING_METHODS.has(prop)) {\n return getOrCacheBound(\n state as ProxyState<unknown>,\n arr,\n value,\n () => makeIteratingWrapper(prop),\n );\n }\n if (typeof prop === 'string' && REDUCING_METHODS.has(prop)) {\n return getOrCacheBound(\n state as ProxyState<unknown>,\n arr,\n value,\n () => makeReducingWrapper(prop),\n );\n }\n if (typeof prop === 'string' && ITERATOR_METHODS.has(prop)) {\n return getOrCacheBound(\n state as ProxyState<unknown>,\n arr,\n value,\n () => makeIteratorMethod(prop as 'values' | 'entries'),\n );\n }\n return getBoundFunction(state as ProxyState<unknown>, arr, value);\n }\n\n if (prop === 'length') {\n if (state.isTracking) {\n const fullPath = path ? `${path}.length` : 'length';\n state.trackedPaths.add(fullPath);\n }\n return value;\n }\n\n let fullPath: string;\n if (typeof prop === 'string') {\n const index = Number(prop);\n if (!isNaN(index) && index >= 0) {\n fullPath = path ? `${path}[${index}]` : `[${index}]`;\n } else {\n fullPath = path ? `${path}.${prop}` : prop;\n }\n } else {\n return value;\n }\n\n if (state.isTracking) {\n state.trackedPaths.add(fullPath);\n }\n\n if (isProxyable(value)) {\n return createInternal(state, value as T, fullPath, depth + 1);\n }\n\n return value;\n },\n });\n\n proxyRef = proxy;\n state.proxyCache.set(target, proxy);\n return proxy;\n}\n\n/**\n * Create a proxy for an object with property access tracking\n * @internal\n */\nexport function createInternal<T>(\n state: ProxyState<T>,\n target: T,\n path: string = '',\n depth: number = 0,\n): T {\n if (!state.isTracking || !isProxyable(target)) {\n return target;\n }\n\n if (depth >= state.maxDepth) {\n console.warn(\n `${BLAC_ERROR_PREFIX} Proxy depth limit (${state.maxDepth}) reached at path \"${path}\". ` +\n `Deeper property accesses won't be tracked for re-renders.`,\n );\n return target;\n }\n\n if (state.proxyCache.has(target)) {\n return state.proxyCache.get(target) as T;\n }\n\n if (Array.isArray(target)) {\n return createArrayProxy(\n state,\n target as unknown[],\n path,\n depth,\n ) as unknown as T;\n }\n\n const proxy = new Proxy(target, {\n get: (obj, prop: string | symbol) => {\n if (typeof prop === 'symbol') {\n return Reflect.get(obj, prop);\n }\n\n const value = Reflect.get(obj, prop);\n\n if (typeof value === 'function') {\n return getBoundFunction(state as ProxyState<unknown>, obj, value);\n }\n\n const fullPath = path ? `${path}.${String(prop)}` : String(prop);\n\n if (typeof prop === 'string' && state.isTracking) {\n if (!prop.startsWith('_') && !prop.startsWith('$$')) {\n state.trackedPaths.add(fullPath);\n }\n }\n\n if (isProxyable(value)) {\n const proxiedValue = createInternal(\n state,\n value as T,\n fullPath,\n depth + 1,\n );\n return proxiedValue;\n }\n\n return value;\n },\n\n has: (obj, prop: string | symbol) => {\n if (typeof prop === 'string' && state.isTracking) {\n const fullPath = path ? `${path}.${prop}` : prop;\n state.trackedPaths.add(fullPath);\n }\n return Reflect.has(obj, prop);\n },\n\n ownKeys: (obj) => {\n if (state.isTracking && path) {\n state.trackedPaths.add(path);\n }\n return Reflect.ownKeys(obj);\n },\n });\n\n state.proxyCache.set(target, proxy);\n return proxy as T;\n}\n\n/**\n * Create a proxy for a target with caching\n * @internal\n */\nexport function createForTarget<T>(state: ProxyState<T>, target: T): T {\n if (state.lastProxiedState === target && state.lastProxy) {\n return state.lastProxy;\n }\n\n // New state — discard all nested proxies. They might point at the wrong path.\n state.proxyCache = new WeakMap<object, unknown>();\n state.boundFunctionsCache = null;\n\n const proxy = createInternal(state, target, '', 0);\n state.lastProxiedState = target;\n state.lastProxy = proxy;\n return proxy;\n}\n\n// =============================================================================\n// DEPENDENCY TRACKER (Path tracking and change detection)\n// =============================================================================\n\n/**\n * @internal\n */\nexport interface PathInfo {\n segments: string[];\n value: unknown;\n}\n\n/**\n * @internal\n */\nexport interface DependencyState<T> {\n proxyState: ProxyState<T>;\n previousRenderPaths: Set<string>;\n currentRenderPaths: Set<string>;\n pathCache: Map<string, PathInfo>;\n lastCheckedState: T | null;\n lastCheckedValues: Map<string, unknown>;\n}\n\nfunction isChildPath(child: string, parent: string): boolean {\n if (child === parent) return false;\n return child.startsWith(parent + '.') || child.startsWith(parent + '[');\n}\n\n/**\n * @internal\n */\nexport function optimizeTrackedPaths(paths: Set<string>): Set<string> {\n if (paths.size <= 1) {\n return paths;\n }\n\n let allFlat = true;\n for (const path of paths) {\n if (path.charCodeAt(path.length - 1) === 93 || path.includes('.')) {\n allFlat = false;\n break;\n }\n }\n if (allFlat) {\n return paths;\n }\n\n const sortedPaths = Array.from(paths).sort((a, b) =>\n a > b ? -1 : a < b ? 1 : 0,\n );\n const optimized = new Set<string>();\n\n // Walk sorted list: skip any path that is a parent of the last kept path.\n // In reverse-lex order, all children of a parent appear before the parent itself.\n let lastKept: string | undefined;\n for (const path of sortedPaths) {\n if (lastKept !== undefined && isChildPath(lastKept, path)) {\n continue;\n }\n optimized.add(path);\n lastKept = path;\n }\n\n return optimized;\n}\n\n/**\n * @internal\n */\nexport function createDependencyState<T>(): DependencyState<T> {\n return {\n proxyState: createProxyState<T>(),\n previousRenderPaths: new Set<string>(),\n currentRenderPaths: new Set<string>(),\n pathCache: new Map<string, PathInfo>(),\n lastCheckedState: null,\n lastCheckedValues: new Map<string, any>(),\n };\n}\n\n/**\n * @internal\n */\nexport function startDependency<T>(tracker: DependencyState<T>): void {\n startProxy(tracker.proxyState);\n}\n\n/**\n * @internal\n */\nexport function createDependencyProxy<T>(\n tracker: DependencyState<T>,\n state: T,\n): T {\n return createForTarget(tracker.proxyState, state);\n}\n\n/**\n * @internal\n */\nexport function capturePaths<T>(tracker: DependencyState<T>, state: T): void {\n tracker.previousRenderPaths = tracker.currentRenderPaths;\n\n const rawPaths = stopProxy(tracker.proxyState);\n tracker.currentRenderPaths = optimizeTrackedPaths(rawPaths);\n\n if (\n tracker.previousRenderPaths.size === 0 &&\n tracker.currentRenderPaths.size === 0\n ) {\n tracker.pathCache.clear(); // <-- ensure no leftover from prior life\n tracker.lastCheckedValues.clear();\n return;\n }\n\n const trackedPathsUnion = new Set(tracker.previousRenderPaths);\n for (const path of tracker.currentRenderPaths) {\n trackedPathsUnion.add(path);\n }\n\n // Prune entries that fell out of both renders.\n if (tracker.pathCache.size > trackedPathsUnion.size) {\n for (const path of tracker.pathCache.keys()) {\n if (!trackedPathsUnion.has(path)) {\n tracker.pathCache.delete(path);\n }\n }\n }\n\n const canReuseCache = tracker.lastCheckedState === state;\n\n for (const path of trackedPathsUnion) {\n if (!tracker.pathCache.has(path)) {\n const segments = parsePath(path);\n const value =\n canReuseCache && tracker.lastCheckedValues.has(path)\n ? tracker.lastCheckedValues.get(path)\n : getValueAtPath(state, segments);\n tracker.pathCache.set(path, { segments, value });\n } else {\n const info = tracker.pathCache.get(path);\n if (!info) continue;\n info.value =\n canReuseCache && tracker.lastCheckedValues.has(path)\n ? tracker.lastCheckedValues.get(path)\n : getValueAtPath(state, info.segments);\n }\n }\n\n tracker.lastCheckedValues.clear();\n}\n\n/**\n * @internal\n */\nexport function hasDependencyChanges<T>(\n tracker: DependencyState<T>,\n state: T,\n): boolean {\n if (tracker.pathCache.size === 0) {\n return true;\n }\n\n tracker.lastCheckedValues.clear();\n\n for (const [path, info] of tracker.pathCache.entries()) {\n const currentValue = getValueAtPath(state, info.segments);\n tracker.lastCheckedValues.set(path, currentValue);\n\n if (!Object.is(currentValue, info.value)) {\n tracker.lastCheckedState = state;\n return true;\n }\n }\n\n tracker.lastCheckedState = state;\n return false;\n}\n\n/**\n * @internal\n */\nexport function hasTrackedData<T>(tracker: DependencyState<T>): boolean {\n return (\n tracker.proxyState.trackedPaths.size > 0 ||\n tracker.pathCache.size > 0 ||\n tracker.previousRenderPaths.size > 0\n );\n}\n\n// =============================================================================\n// GETTER TRACKER (Getter execution tracking)\n// =============================================================================\n\n/**\n * @internal\n */\nexport interface GetterState {\n trackedValues: Map<string | symbol, unknown>;\n currentlyAccessing: Set<string | symbol>;\n trackedGetters: Set<string | symbol>;\n isTracking: boolean;\n renderCache: Map<string | symbol, unknown>;\n cacheValid: boolean;\n depth: number;\n visitedBlocs: Set<StateContainerInstance>;\n}\n\nconst descriptorCache = new WeakMap<\n // oxlint-disable-next-line @typescript-eslint/no-unsafe-function-type\n Function,\n Map<string | symbol, PropertyDescriptor | undefined>\n>();\n\nconst MAX_GETTER_DEPTH = BLAC_DEFAULTS.MAX_GETTER_DEPTH;\n\n/**\n * @internal\n */\nexport function getDescriptor(\n obj: any,\n prop: string | symbol,\n): PropertyDescriptor | undefined {\n const constructor = obj.constructor;\n\n let constructorCache = descriptorCache.get(constructor);\n if (constructorCache?.has(prop)) {\n return constructorCache.get(prop);\n }\n\n let current = obj;\n let descriptor: PropertyDescriptor | undefined;\n\n while (current && current !== Object.prototype) {\n descriptor = Object.getOwnPropertyDescriptor(current, prop);\n if (descriptor) {\n break;\n }\n current = Object.getPrototypeOf(current);\n }\n\n if (!constructorCache) {\n constructorCache = new Map();\n descriptorCache.set(constructor, constructorCache);\n }\n constructorCache.set(prop, descriptor);\n\n return descriptor;\n}\n\n/**\n * @internal\n */\nexport function isGetter(obj: any, prop: string | symbol): boolean {\n const descriptor = getDescriptor(obj, prop);\n return descriptor?.get !== undefined;\n}\n\n/**\n * @internal\n */\nexport function createGetterState(): GetterState {\n return {\n trackedValues: new Map(),\n currentlyAccessing: new Set(),\n trackedGetters: new Set(),\n isTracking: false,\n renderCache: new Map(),\n cacheValid: false,\n depth: 0,\n visitedBlocs: new Set(),\n };\n}\n\n/**\n * @internal\n */\n/**\n * Commit getters accessed during the active tracking window into the\n * authoritative `trackedGetters` set used by change-detection.\n *\n * When `currentlyAccessing` is empty (e.g. React StrictMode firing\n * `useEffect` setup → cleanup → setup for one logical render, where the\n * second setup runs with no intervening render and therefore no accesses)\n * we deliberately preserve the previous commit's `trackedGetters`. This\n * keeps consumer subscriptions stable across StrictMode double-invocation.\n *\n * The next legitimate render that records accesses replaces the set in full;\n * components that conditionally drop a getter incur at most one extra\n * re-render before `trackedGetters` self-corrects on the subsequent commit.\n *\n * @internal\n */\nexport function commitTrackedGetters(tracker: GetterState): void {\n if (tracker.currentlyAccessing.size === 0) return;\n tracker.trackedGetters = new Set(tracker.currentlyAccessing);\n tracker.currentlyAccessing.clear();\n}\n\n/**\n * Execute a tracked getter with depth/circular dependency checks and context management.\n * @internal\n */\nfunction executeTrackedGetter<T extends StateContainerInstance>(\n target: T,\n prop: string | symbol,\n tracker: GetterState,\n): unknown {\n tracker.currentlyAccessing.add(prop);\n\n if (tracker.cacheValid && tracker.renderCache.has(prop)) {\n const cachedValue = tracker.renderCache.get(prop);\n tracker.trackedValues.set(prop, cachedValue);\n return cachedValue;\n }\n\n if (tracker.depth >= MAX_GETTER_DEPTH) {\n throw new Error(\n `${BLAC_ERROR_PREFIX} Maximum getter depth (${MAX_GETTER_DEPTH}) exceeded. ` +\n `Possible circular dependency in getter \"${String(prop)}\" on ${target.constructor.name}.`,\n );\n }\n\n if (tracker.visitedBlocs.has(target)) {\n throw new Error(\n `${BLAC_ERROR_PREFIX} Circular dependency detected: getter \"${String(prop)}\" on ${target.constructor.name}.`,\n );\n }\n\n const prevDepth = tracker.depth;\n const prevVisited = new Set(tracker.visitedBlocs);\n\n tracker.depth++;\n tracker.visitedBlocs.add(target);\n\n try {\n const descriptor = getDescriptor(target, prop);\n if (!descriptor?.get) {\n return (target as Record<PropertyKey, unknown>)[prop];\n }\n const value = descriptor.get.call(target);\n tracker.trackedValues.set(prop, value);\n return value;\n } catch (error) {\n tracker.currentlyAccessing.delete(prop);\n throw error;\n } finally {\n tracker.depth = prevDepth;\n tracker.visitedBlocs = prevVisited;\n }\n}\n\n/**\n * Create a per-consumer bloc proxy that closes over its own getter tracker.\n *\n * Each useBloc consumer owns its own proxy and tracker, eliminating the\n * cross-component contamination that a shared module-level tracker map\n * caused under interleaved/concurrent rendering.\n *\n * @internal\n */\nexport function createBlocProxy<TBloc extends StateContainerInstance>(\n bloc: TBloc,\n tracker: GetterState,\n): TBloc {\n return new Proxy(bloc, {\n get(target, prop, receiver) {\n if (tracker.isTracking && isGetter(target, prop)) {\n return executeTrackedGetter(target, prop, tracker);\n }\n\n return Reflect.get(target, prop, receiver);\n },\n }) as TBloc;\n}\n\n/**\n * @internal\n */\nexport function hasGetterChanges<TBloc extends StateContainerInstance>(\n bloc: TBloc,\n tracker: GetterState | null,\n): boolean {\n if (!tracker || tracker.trackedGetters.size === 0) {\n return false;\n }\n\n tracker.renderCache.clear();\n\n let hasAnyChange = false;\n\n for (const prop of tracker.trackedGetters) {\n try {\n const descriptor = getDescriptor(bloc, prop);\n if (!descriptor?.get) {\n continue;\n }\n\n const newValue = descriptor.get.call(bloc);\n const oldValue = tracker.trackedValues.get(prop);\n\n tracker.renderCache.set(prop, newValue);\n tracker.trackedValues.set(prop, newValue);\n\n if (!Object.is(newValue, oldValue)) {\n hasAnyChange = true;\n }\n } catch (error) {\n console.warn(\n `${BLAC_ERROR_PREFIX} Getter \"${String(prop)}\" threw error during change detection. Stopping tracking for this getter.`,\n error,\n );\n\n tracker.trackedGetters.delete(prop);\n tracker.trackedValues.delete(prop);\n tracker.cacheValid = false;\n return true;\n }\n }\n\n tracker.cacheValid = true;\n\n return hasAnyChange;\n}\n\n/**\n * @internal\n */\nexport function invalidateRenderCache(tracker: GetterState): void {\n tracker.cacheValid = false;\n}\n\n/**\n * @internal\n */\nexport function resetGetterState(tracker: GetterState): void {\n tracker.trackedValues.clear();\n tracker.currentlyAccessing.clear();\n tracker.trackedGetters.clear();\n tracker.renderCache.clear();\n tracker.cacheValid = false;\n tracker.isTracking = false;\n tracker.depth = 0;\n tracker.visitedBlocs.clear();\n}\n\n// =============================================================================\n// TRACKING PROXY (Combined tracking for watch/waitUntil)\n// =============================================================================\n\n/**\n * State for tracking both state property access and getter access.\n */\nexport interface TrackingProxyState {\n dependencyState: DependencyState<any>;\n getterState: GetterState;\n dependencies: Set<StateContainerInstance>;\n isTracking: boolean;\n}\n\n/**\n * Create a new tracking proxy state.\n */\nexport function createState(): TrackingProxyState {\n return {\n dependencyState: createDependencyState(),\n getterState: createGetterState(),\n dependencies: new Set(),\n isTracking: false,\n };\n}\n\n/**\n * Start tracking on a tracking proxy.\n */\nexport function startTracking(tracker: TrackingProxyState): void {\n tracker.isTracking = true;\n tracker.dependencies.clear();\n tracker.getterState.isTracking = true;\n startDependency(tracker.dependencyState);\n}\n\n/**\n * Stop tracking and collect all dependencies.\n */\nexport function stopTracking(\n tracker: TrackingProxyState,\n bloc: StateContainerInstance,\n): Set<StateContainerInstance> {\n tracker.isTracking = false;\n tracker.getterState.isTracking = false;\n\n capturePaths(tracker.dependencyState, bloc.state);\n commitTrackedGetters(tracker.getterState);\n\n return new Set(tracker.dependencies);\n}\n\n/**\n * Check if tracked state or getters have changed.\n */\nexport function hasChanges(\n tracker: TrackingProxyState,\n bloc: StateContainerInstance,\n): boolean {\n invalidateRenderCache(tracker.getterState);\n\n const stateChanged = hasDependencyChanges(\n tracker.dependencyState,\n bloc.state,\n );\n const getterChanged = hasGetterChanges(bloc, tracker.getterState);\n\n return stateChanged || getterChanged;\n}\n\n/**\n * Create a tracking proxy for a bloc instance.\n * Tracks both state property access and getter access.\n */\nexport function createTrackingProxy<T extends StateContainerInstance>(\n bloc: T,\n tracker: TrackingProxyState,\n): T {\n tracker.dependencies.add(bloc);\n\n const stateProxyCache = new WeakMap<object, any>();\n\n const proxy = new Proxy(bloc, {\n get(target, prop, receiver) {\n if (prop === 'state') {\n if (!tracker.isTracking) {\n return target.state;\n }\n\n const rawState = target.state;\n if (rawState === null || typeof rawState !== 'object') {\n return rawState;\n }\n\n if (stateProxyCache.has(rawState)) {\n return stateProxyCache.get(rawState);\n }\n\n const stateProxy = createDependencyProxy(\n tracker.dependencyState,\n rawState,\n );\n stateProxyCache.set(rawState, stateProxy);\n return stateProxy;\n }\n\n if (typeof prop === 'symbol') {\n return Reflect.get(target, prop, receiver);\n }\n\n const value = Reflect.get(target, prop, receiver);\n\n if (typeof value === 'function') {\n return value.bind(target);\n }\n\n if (tracker.isTracking && isGetter(target, prop)) {\n return executeTrackedGetter(target, prop, tracker.getterState);\n }\n\n return value;\n },\n });\n\n return proxy as T;\n}\n","import type { StateContainerInstance } from '../types/utilities';\n\n/**\n * Manages subscriptions to state container dependencies.\n * Provides efficient sync mechanism to add/remove subscriptions\n * as dependencies change between callback invocations.\n */\nexport class DependencyManager {\n private subscriptions = new Map<StateContainerInstance, () => void>();\n private currentDeps = new Set<StateContainerInstance>();\n\n /**\n * Sync subscriptions with a new set of dependencies.\n * Adds subscriptions for new deps, removes subscriptions for stale deps.\n *\n * @param newDeps - The new set of dependencies to subscribe to\n * @param onChange - Callback to invoke when any dependency changes\n * @param exclude - Optional instance to exclude from subscriptions (e.g., primary bloc)\n * @returns true if the dependency set changed, false if unchanged\n */\n sync(\n newDeps: Set<StateContainerInstance>,\n onChange: () => void,\n exclude?: StateContainerInstance,\n ): boolean {\n const filteredNewDeps = new Set<StateContainerInstance>();\n for (const dep of newDeps) {\n if (dep !== exclude && !dep.isDisposed) {\n filteredNewDeps.add(dep);\n }\n }\n\n if (this.areSetsEqual(this.currentDeps, filteredNewDeps)) {\n return false;\n }\n\n for (const dep of this.currentDeps) {\n if (!filteredNewDeps.has(dep)) {\n const unsub = this.subscriptions.get(dep);\n if (unsub) {\n unsub();\n this.subscriptions.delete(dep);\n }\n }\n }\n\n for (const dep of filteredNewDeps) {\n if (!this.currentDeps.has(dep) && !this.subscriptions.has(dep)) {\n const unsub = dep.subscribe(onChange);\n this.subscriptions.set(dep, unsub);\n }\n }\n\n this.currentDeps = filteredNewDeps;\n return true;\n }\n\n /**\n * Add a single dependency subscription.\n */\n add(dep: StateContainerInstance, onChange: () => void): void {\n if (this.subscriptions.has(dep) || dep.isDisposed) {\n return;\n }\n const unsub = dep.subscribe(onChange);\n this.subscriptions.set(dep, unsub);\n this.currentDeps.add(dep);\n }\n\n /**\n * Check if a dependency is currently subscribed.\n */\n has(dep: StateContainerInstance): boolean {\n return this.currentDeps.has(dep);\n }\n\n /**\n * Get the current set of dependencies.\n */\n getDependencies(): Set<StateContainerInstance> {\n return new Set(this.currentDeps);\n }\n\n /**\n * Clean up all active subscriptions.\n */\n cleanup(): void {\n for (const unsub of this.subscriptions.values()) {\n unsub();\n }\n this.subscriptions.clear();\n this.currentDeps.clear();\n }\n\n private areSetsEqual(\n a: Set<StateContainerInstance>,\n b: Set<StateContainerInstance>,\n ): boolean {\n if (a.size !== b.size) return false;\n for (const item of a) {\n if (!b.has(item)) return false;\n }\n return true;\n }\n}\n","import { getRegistry } from '../registry/config';\nimport type {\n StateContainerConstructor,\n StateContainerInstance,\n} from '../types/utilities';\n\n/**\n * Resolve all transitive dependencies of a bloc via BFS over `dependencies` maps.\n * Uses cycle detection to avoid infinite loops.\n * @internal\n */\nexport function resolveDependencies(\n bloc: StateContainerInstance,\n): Set<StateContainerInstance> {\n const result = new Set<StateContainerInstance>();\n const visited = new Map<StateContainerConstructor, Set<string>>();\n const queue: StateContainerInstance[] = [bloc];\n let head = 0;\n\n while (head < queue.length) {\n const current = queue[head++];\n for (const [Type, key] of current.dependencies) {\n let keys = visited.get(Type);\n if (!keys) {\n keys = new Set();\n visited.set(Type, keys);\n }\n if (keys.has(key)) continue;\n keys.add(key);\n\n const dep = getRegistry().ensure(Type, key);\n result.add(dep);\n if (dep.dependencies.size > 0) {\n queue.push(dep);\n }\n }\n }\n\n result.delete(bloc);\n return result;\n}\n"],"mappings":"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"}
|