@nicia-ai/typegraph 0.49.0 → 0.51.0
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 +12 -0
- package/dist/backend/drizzle/indexes.cjs +11 -9
- package/dist/backend/drizzle/indexes.d.cts +1 -1
- package/dist/backend/drizzle/indexes.d.ts +1 -1
- package/dist/backend/drizzle/indexes.js +7 -5
- package/dist/backend/index.cjs +190 -53
- package/dist/backend/index.d.cts +90 -4
- package/dist/backend/index.d.ts +90 -4
- package/dist/backend/index.js +9 -12
- package/dist/backend/postgres/index.cjs +36 -28
- package/dist/backend/postgres/index.d.cts +7 -7
- package/dist/backend/postgres/index.d.ts +7 -7
- package/dist/backend/postgres/index.js +19 -15
- package/dist/backend/postgres/pglite-store.cjs +7 -62
- package/dist/backend/postgres/pglite-store.cjs.map +1 -1
- package/dist/backend/postgres/pglite-store.d.cts +8 -8
- package/dist/backend/postgres/pglite-store.d.ts +8 -8
- package/dist/backend/postgres/pglite-store.js +7 -62
- package/dist/backend/postgres/pglite-store.js.map +1 -1
- package/dist/backend/postgres/pglite.cjs +21 -17
- package/dist/backend/postgres/pglite.d.cts +3 -3
- package/dist/backend/postgres/pglite.d.ts +3 -3
- package/dist/backend/postgres/pglite.js +20 -16
- package/dist/backend/sqlite/index.cjs +33 -25
- package/dist/backend/sqlite/index.d.cts +7 -7
- package/dist/backend/sqlite/index.d.ts +7 -7
- package/dist/backend/sqlite/index.js +17 -13
- package/dist/backend/sqlite/libsql.cjs +24 -20
- package/dist/backend/sqlite/libsql.cjs.map +1 -1
- package/dist/backend/sqlite/libsql.d.cts +3 -3
- package/dist/backend/sqlite/libsql.d.ts +3 -3
- package/dist/backend/sqlite/libsql.js +19 -15
- package/dist/backend/sqlite/libsql.js.map +1 -1
- package/dist/backend/sqlite/local-store.cjs +9 -64
- package/dist/backend/sqlite/local-store.cjs.map +1 -1
- package/dist/backend/sqlite/local-store.d.cts +8 -8
- package/dist/backend/sqlite/local-store.d.ts +8 -8
- package/dist/backend/sqlite/local-store.js +8 -64
- package/dist/backend/sqlite/local-store.js.map +1 -1
- package/dist/backend/sqlite/local.cjs +25 -20
- package/dist/backend/sqlite/local.d.cts +3 -3
- package/dist/backend/sqlite/local.d.ts +3 -3
- package/dist/backend/sqlite/local.js +21 -16
- package/dist/chunk-2CVDZCXH.cjs +1278 -0
- package/dist/chunk-2CVDZCXH.cjs.map +1 -0
- package/dist/{chunk-MYKHJI2J.js → chunk-2DWTBNSH.js} +3 -3
- package/dist/{chunk-MYKHJI2J.js.map → chunk-2DWTBNSH.js.map} +1 -1
- package/dist/{chunk-JB6T4GLL.cjs → chunk-2KCTP3U2.cjs} +870 -528
- package/dist/chunk-2KCTP3U2.cjs.map +1 -0
- package/dist/{chunk-OORXGFL5.cjs → chunk-322TBTOQ.cjs} +48 -48
- package/dist/{chunk-OORXGFL5.cjs.map → chunk-322TBTOQ.cjs.map} +1 -1
- package/dist/{chunk-FA2AFWLP.cjs → chunk-36SX6QXP.cjs} +31 -12
- package/dist/chunk-36SX6QXP.cjs.map +1 -0
- package/dist/{chunk-SDBBMD4N.js → chunk-36VYWVQU.js} +3 -3
- package/dist/{chunk-SDBBMD4N.js.map → chunk-36VYWVQU.js.map} +1 -1
- package/dist/chunk-4DKY6RIU.js +1253 -0
- package/dist/chunk-4DKY6RIU.js.map +1 -0
- package/dist/chunk-4QKOZYMV.js +9 -0
- package/dist/chunk-4QKOZYMV.js.map +1 -0
- package/dist/{chunk-WIC7DRXW.js → chunk-57JM6NW3.js} +9 -19
- package/dist/chunk-57JM6NW3.js.map +1 -0
- package/dist/chunk-5WWEYV4H.cjs +5113 -0
- package/dist/chunk-5WWEYV4H.cjs.map +1 -0
- package/dist/chunk-6KQEICJ6.cjs +12 -0
- package/dist/{chunk-MKJ4KXL5.cjs.map → chunk-6KQEICJ6.cjs.map} +1 -1
- package/dist/{chunk-DZAICA5J.js → chunk-6NKSE5AU.js} +4 -4
- package/dist/{chunk-DZAICA5J.js.map → chunk-6NKSE5AU.js.map} +1 -1
- package/dist/{chunk-KKBDXCLQ.js → chunk-6NLYIMJO.js} +4 -4
- package/dist/{chunk-KKBDXCLQ.js.map → chunk-6NLYIMJO.js.map} +1 -1
- package/dist/{chunk-BFUOME67.cjs → chunk-7B7I7YAW.cjs} +20 -11
- package/dist/chunk-7B7I7YAW.cjs.map +1 -0
- package/dist/{chunk-ZDKTPBGV.js → chunk-7G5IYROL.js} +6 -548
- package/dist/chunk-7G5IYROL.js.map +1 -0
- package/dist/{chunk-3DMMGT6S.js → chunk-7QFRK6PU.js} +4 -8
- package/dist/chunk-7QFRK6PU.js.map +1 -0
- package/dist/chunk-A4C4NJ5U.cjs +12 -0
- package/dist/chunk-A4C4NJ5U.cjs.map +1 -0
- package/dist/{chunk-CHAOFCHV.js → chunk-AH2A74OZ.js} +3 -3
- package/dist/{chunk-CHAOFCHV.js.map → chunk-AH2A74OZ.js.map} +1 -1
- package/dist/{chunk-UGHQV7MP.cjs → chunk-B3MN7EJR.cjs} +228 -162
- package/dist/chunk-B3MN7EJR.cjs.map +1 -0
- package/dist/{chunk-TZEGUG6D.cjs → chunk-BZ5MVITP.cjs} +4 -4
- package/dist/{chunk-TZEGUG6D.cjs.map → chunk-BZ5MVITP.cjs.map} +1 -1
- package/dist/{chunk-YVF2EM7B.js → chunk-CAI6SMP6.js} +3 -3
- package/dist/{chunk-YVF2EM7B.js.map → chunk-CAI6SMP6.js.map} +1 -1
- package/dist/{chunk-JONXFAPO.js → chunk-CBOD7TXH.js} +5 -5
- package/dist/{chunk-JONXFAPO.js.map → chunk-CBOD7TXH.js.map} +1 -1
- package/dist/{chunk-FQPEMEWX.cjs → chunk-CRZ56SZU.cjs} +81 -32
- package/dist/chunk-CRZ56SZU.cjs.map +1 -0
- package/dist/{chunk-DO7SAMEK.cjs → chunk-D3GWARN7.cjs} +47 -47
- package/dist/{chunk-DO7SAMEK.cjs.map → chunk-D3GWARN7.cjs.map} +1 -1
- package/dist/{chunk-QTD6HX4O.js → chunk-D3OUDFU7.js} +5 -5
- package/dist/{chunk-QTD6HX4O.js.map → chunk-D3OUDFU7.js.map} +1 -1
- package/dist/{chunk-2QGYQBS2.cjs → chunk-DWUDZ66O.cjs} +10 -10
- package/dist/{chunk-2QGYQBS2.cjs.map → chunk-DWUDZ66O.cjs.map} +1 -1
- package/dist/chunk-EKG2UXNX.cjs +23 -0
- package/dist/chunk-EKG2UXNX.cjs.map +1 -0
- package/dist/chunk-FMMW3KX7.cjs +148 -0
- package/dist/chunk-FMMW3KX7.cjs.map +1 -0
- package/dist/{chunk-XVWOYKIK.js → chunk-FZHF5UWR.js} +3 -3
- package/dist/{chunk-XVWOYKIK.js.map → chunk-FZHF5UWR.js.map} +1 -1
- package/dist/chunk-H2VWDQWC.cjs +571 -0
- package/dist/chunk-H2VWDQWC.cjs.map +1 -0
- package/dist/chunk-H4FY6OZK.js +13 -0
- package/dist/chunk-H4FY6OZK.js.map +1 -0
- package/dist/{chunk-EDN4Y4ZG.cjs → chunk-H5IJSROF.cjs} +9 -15
- package/dist/chunk-H5IJSROF.cjs.map +1 -0
- package/dist/chunk-HZUB5CON.js +27 -0
- package/dist/chunk-HZUB5CON.js.map +1 -0
- package/dist/{chunk-NACVVDWB.js → chunk-I5IOSA27.js} +103 -105
- package/dist/chunk-I5IOSA27.js.map +1 -0
- package/dist/{chunk-OI2GQ25X.cjs → chunk-I7YAY2VQ.cjs} +7 -7
- package/dist/{chunk-OI2GQ25X.cjs.map → chunk-I7YAY2VQ.cjs.map} +1 -1
- package/dist/chunk-IRCWIA3R.js +20 -0
- package/dist/chunk-IRCWIA3R.js.map +1 -0
- package/dist/chunk-IVQBLXBK.cjs +55 -0
- package/dist/chunk-IVQBLXBK.cjs.map +1 -0
- package/dist/{chunk-7SQSZN2J.js → chunk-IZD4HTCP.js} +5 -5
- package/dist/{chunk-7SQSZN2J.js.map → chunk-IZD4HTCP.js.map} +1 -1
- package/dist/{chunk-3FPR224C.cjs → chunk-JHRUZ73O.cjs} +116 -107
- package/dist/chunk-JHRUZ73O.cjs.map +1 -0
- package/dist/{chunk-EZEEWCFJ.cjs → chunk-JQKMEKKW.cjs} +525 -298
- package/dist/chunk-JQKMEKKW.cjs.map +1 -0
- package/dist/chunk-JVA3KDEA.cjs +691 -0
- package/dist/chunk-JVA3KDEA.cjs.map +1 -0
- package/dist/{chunk-5K2BKEBD.js → chunk-K46SDNQD.js} +10 -4
- package/dist/chunk-K46SDNQD.js.map +1 -0
- package/dist/{chunk-7LZJNLA5.js → chunk-K67P5DLL.js} +108 -42
- package/dist/chunk-K67P5DLL.js.map +1 -0
- package/dist/{chunk-3G5W2U2L.cjs → chunk-KACEYDYV.cjs} +335 -258
- package/dist/chunk-KACEYDYV.cjs.map +1 -0
- package/dist/{chunk-JFRT7S3B.cjs → chunk-L6EVYIID.cjs} +318 -478
- package/dist/chunk-L6EVYIID.cjs.map +1 -0
- package/dist/{chunk-SHFBB23Q.js → chunk-LI4K2KEJ.js} +6 -4
- package/dist/chunk-LI4K2KEJ.js.map +1 -0
- package/dist/chunk-LKZDQ2B4.js +1581 -0
- package/dist/chunk-LKZDQ2B4.js.map +1 -0
- package/dist/{chunk-WODMN3Q2.cjs → chunk-LLFPQOBA.cjs} +27 -27
- package/dist/{chunk-WODMN3Q2.cjs.map → chunk-LLFPQOBA.cjs.map} +1 -1
- package/dist/{chunk-P6YLZTRE.js → chunk-LZMQ3SFK.js} +3 -3
- package/dist/{chunk-P6YLZTRE.js.map → chunk-LZMQ3SFK.js.map} +1 -1
- package/dist/{chunk-HEV35TGT.js → chunk-M3VTS3F6.js} +13 -4
- package/dist/chunk-M3VTS3F6.js.map +1 -0
- package/dist/{chunk-TQHGE7UC.cjs → chunk-M5MSP3BI.cjs} +18 -10
- package/dist/chunk-M5MSP3BI.cjs.map +1 -0
- package/dist/{chunk-D4QLTJSM.js → chunk-NBOS7BY3.js} +63 -23
- package/dist/chunk-NBOS7BY3.js.map +1 -0
- package/dist/chunk-NGQDGL5X.js +140 -0
- package/dist/chunk-NGQDGL5X.js.map +1 -0
- package/dist/{chunk-SIT26LAZ.cjs → chunk-NLX5OWK7.cjs} +33 -5
- package/dist/chunk-NLX5OWK7.cjs.map +1 -0
- package/dist/chunk-NUQ2YFFH.cjs +1637 -0
- package/dist/chunk-NUQ2YFFH.cjs.map +1 -0
- package/dist/{chunk-UMGZDVOA.cjs → chunk-OGL4X4PH.cjs} +206 -208
- package/dist/chunk-OGL4X4PH.cjs.map +1 -0
- package/dist/{chunk-LRQKXRXO.cjs → chunk-OTNTGEXR.cjs} +4 -4
- package/dist/{chunk-LRQKXRXO.cjs.map → chunk-OTNTGEXR.cjs.map} +1 -1
- package/dist/chunk-OTWE63BW.js +53 -0
- package/dist/chunk-OTWE63BW.js.map +1 -0
- package/dist/chunk-PC5NGH5A.js +549 -0
- package/dist/chunk-PC5NGH5A.js.map +1 -0
- package/dist/{chunk-26YKDNUD.cjs → chunk-PS3TUWJM.cjs} +12 -10
- package/dist/chunk-PS3TUWJM.cjs.map +1 -0
- package/dist/{chunk-OMZ37BM2.js → chunk-PVFFH7TL.js} +5 -5
- package/dist/{chunk-OMZ37BM2.js.map → chunk-PVFFH7TL.js.map} +1 -1
- package/dist/chunk-QCD5JKU4.cjs +15 -0
- package/dist/chunk-QCD5JKU4.cjs.map +1 -0
- package/dist/{chunk-UGHG7PGX.js → chunk-QG5VEOKX.js} +30 -4
- package/dist/chunk-QG5VEOKX.js.map +1 -0
- package/dist/{chunk-TUNPBZY3.cjs → chunk-QLLZM5I3.cjs} +4 -4
- package/dist/{chunk-TUNPBZY3.cjs.map → chunk-QLLZM5I3.cjs.map} +1 -1
- package/dist/{chunk-BRRP76WO.js → chunk-RCBG6YMT.js} +781 -375
- package/dist/chunk-RCBG6YMT.js.map +1 -0
- package/dist/{chunk-LTXQOEIC.js → chunk-RI7RJH4G.js} +281 -204
- package/dist/chunk-RI7RJH4G.js.map +1 -0
- package/dist/{chunk-GYEG3ZLZ.cjs → chunk-RJMHU2MG.cjs} +121 -18
- package/dist/chunk-RJMHU2MG.cjs.map +1 -0
- package/dist/{chunk-GLHXM7C4.js → chunk-RVUL2HXY.js} +61 -23
- package/dist/chunk-RVUL2HXY.js.map +1 -0
- package/dist/chunk-RWUWTJQY.cjs +30 -0
- package/dist/chunk-RWUWTJQY.cjs.map +1 -0
- package/dist/{chunk-2O4PCIZ6.cjs → chunk-S5GU4LUN.cjs} +13 -13
- package/dist/{chunk-2O4PCIZ6.cjs.map → chunk-S5GU4LUN.cjs.map} +1 -1
- package/dist/{chunk-JPD2CTC3.js → chunk-SDPWO2Z5.js} +7 -7
- package/dist/{chunk-JPD2CTC3.js.map → chunk-SDPWO2Z5.js.map} +1 -1
- package/dist/{chunk-OVI7IXYX.js → chunk-SLGGT2XD.js} +3 -3
- package/dist/{chunk-OVI7IXYX.js.map → chunk-SLGGT2XD.js.map} +1 -1
- package/dist/{chunk-ROR5ZR6A.cjs → chunk-TIJUA4I6.cjs} +45 -45
- package/dist/{chunk-ROR5ZR6A.cjs.map → chunk-TIJUA4I6.cjs.map} +1 -1
- package/dist/{chunk-AOSSQDVO.cjs → chunk-TM54OBHX.cjs} +13 -13
- package/dist/{chunk-AOSSQDVO.cjs.map → chunk-TM54OBHX.cjs.map} +1 -1
- package/dist/{chunk-KF6K7TGH.js → chunk-TYEYRCXL.js} +766 -433
- package/dist/chunk-TYEYRCXL.js.map +1 -0
- package/dist/{chunk-Z2JCLZFJ.js → chunk-UKOVGCRN.js} +2151 -570
- package/dist/chunk-UKOVGCRN.js.map +1 -0
- package/dist/chunk-UYKDYE5D.cjs +12 -0
- package/dist/{chunk-CICO5GXD.cjs.map → chunk-UYKDYE5D.cjs.map} +1 -1
- package/dist/{chunk-S5TERQVW.js → chunk-VAAC7L57.js} +284 -66
- package/dist/chunk-VAAC7L57.js.map +1 -0
- package/dist/{chunk-7UOLHNWC.cjs → chunk-VKHXYVN7.cjs} +22 -33
- package/dist/chunk-VKHXYVN7.cjs.map +1 -0
- package/dist/{chunk-6NGW27EO.cjs → chunk-VLBTRXA2.cjs} +10 -10
- package/dist/{chunk-6NGW27EO.cjs.map → chunk-VLBTRXA2.cjs.map} +1 -1
- package/dist/{chunk-YIURNGXI.js → chunk-VUQZNUHU.js} +22 -6
- package/dist/chunk-VUQZNUHU.js.map +1 -0
- package/dist/{chunk-YYUHLYM2.cjs → chunk-WDM5WQK4.cjs} +183 -143
- package/dist/chunk-WDM5WQK4.cjs.map +1 -0
- package/dist/{chunk-ZFMCDJGB.js → chunk-WFSYYU4W.js} +70 -220
- package/dist/chunk-WFSYYU4W.js.map +1 -0
- package/dist/{chunk-SR725PWF.cjs → chunk-WRBV2FNH.cjs} +2065 -1659
- package/dist/chunk-WRBV2FNH.cjs.map +1 -0
- package/dist/{chunk-MRDBBHIZ.cjs → chunk-X4GDXBOP.cjs} +2 -2
- package/dist/chunk-X4GDXBOP.cjs.map +1 -0
- package/dist/chunk-XORONCV3.js +202 -0
- package/dist/chunk-XORONCV3.js.map +1 -0
- package/dist/{chunk-D5R42W5D.js → chunk-XZW2CTNO.js} +115 -12
- package/dist/chunk-XZW2CTNO.js.map +1 -0
- package/dist/{chunk-ZLONH2UD.js → chunk-YDEJQWOL.js} +2 -2
- package/dist/chunk-YDEJQWOL.js.map +1 -0
- package/dist/{chunk-2TYSSBU5.js → chunk-YT2IVFAI.js} +30 -21
- package/dist/chunk-YT2IVFAI.js.map +1 -0
- package/dist/chunk-ZGVTNKTX.cjs +217 -0
- package/dist/chunk-ZGVTNKTX.cjs.map +1 -0
- package/dist/core/index.cjs +29 -28
- package/dist/core/index.d.cts +4 -4
- package/dist/core/index.d.ts +4 -4
- package/dist/core/index.js +9 -8
- package/dist/{ddl-D_oW-EVO.d.ts → ddl-BvcbgzHo.d.ts} +3 -3
- package/dist/{ddl-BL1NZLMY.d.cts → ddl-Ufebz5q5.d.cts} +3 -3
- package/dist/graph-extension/index.cjs +21 -20
- package/dist/graph-extension/index.d.cts +2 -4
- package/dist/graph-extension/index.d.ts +2 -4
- package/dist/graph-extension/index.js +5 -4
- package/dist/graph-merge/index.cjs +324 -307
- package/dist/graph-merge/index.cjs.map +1 -1
- package/dist/graph-merge/index.d.cts +8 -9
- package/dist/graph-merge/index.d.ts +8 -9
- package/dist/graph-merge/index.js +51 -34
- package/dist/graph-merge/index.js.map +1 -1
- package/dist/index.cjs +224 -222
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -12
- package/dist/index.d.ts +11 -12
- package/dist/index.js +38 -36
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.cjs +15 -13
- package/dist/indexes/index.d.cts +4 -4
- package/dist/indexes/index.d.ts +4 -4
- package/dist/indexes/index.js +8 -6
- package/dist/{ingestion-import-target-dNeL7iAv.d.ts → ingestion-import-target-CAs1OX-l.d.cts} +1 -1
- package/dist/{ingestion-import-target-XPxZYw89.d.cts → ingestion-import-target-DCQSPfNx.d.ts} +1 -1
- package/dist/interchange/index.cjs +57 -54
- package/dist/interchange/index.cjs.map +1 -1
- package/dist/interchange/index.d.cts +19 -8
- package/dist/interchange/index.d.ts +19 -8
- package/dist/interchange/index.js +21 -18
- package/dist/interchange/index.js.map +1 -1
- package/dist/local-store-impl-6DDTFM32.cjs +77 -0
- package/dist/local-store-impl-6DDTFM32.cjs.map +1 -0
- package/dist/local-store-impl-OXTOVU2J.js +75 -0
- package/dist/local-store-impl-OXTOVU2J.js.map +1 -0
- package/dist/{manager-CYaff3n3.d.cts → manager-B68OrPR2.d.ts} +29 -2
- package/dist/{manager-D9eRT_ns.d.ts → manager-D_t7oK69.d.cts} +29 -2
- package/dist/pglite-store-impl-6EMZGL7K.js +73 -0
- package/dist/pglite-store-impl-6EMZGL7K.js.map +1 -0
- package/dist/pglite-store-impl-GJG3Y7RP.cjs +75 -0
- package/dist/pglite-store-impl-GJG3Y7RP.cjs.map +1 -0
- package/dist/{postgres-CcL4bAHS.d.ts → postgres-BPLSVyHM.d.ts} +279 -2
- package/dist/{postgres-DMj39MEu.d.cts → postgres-CqvtFC2y.d.cts} +279 -2
- package/dist/profiler/index.d.cts +9 -9
- package/dist/profiler/index.d.ts +9 -9
- package/dist/provenance/index.cjs +59 -44
- package/dist/provenance/index.cjs.map +1 -1
- package/dist/provenance/index.d.cts +7 -7
- package/dist/provenance/index.d.ts +7 -7
- package/dist/provenance/index.js +28 -13
- package/dist/provenance/index.js.map +1 -1
- package/dist/{repair-validity-windows-BFNZvd_H.d.cts → repair-validity-windows-DEzCKAdy.d.cts} +7 -3
- package/dist/{repair-validity-windows-DlUSqwCg.d.ts → repair-validity-windows-GMdaS2AH.d.ts} +7 -3
- package/dist/resolve-D_H8MHtq.d.ts +1805 -0
- package/dist/resolve-WEW8gWws.d.cts +1805 -0
- package/dist/schema/index.cjs +48 -46
- package/dist/schema/index.d.cts +4 -6
- package/dist/schema/index.d.ts +4 -6
- package/dist/schema/index.js +21 -19
- package/dist/{searchable-bpE1bBfc.d.ts → searchable-C_UREI9K.d.ts} +1 -1
- package/dist/{searchable-DHJMh_nj.d.cts → searchable-ClgET_i7.d.cts} +1 -1
- package/dist/{sqlite-YppHrNFb.d.cts → sqlite-D1mXO9Kp.d.cts} +310 -2
- package/dist/{sqlite-D7Oz0SQh.d.ts → sqlite-MZA3oZNB.d.ts} +310 -2
- package/dist/{store-bphCSo7z.d.cts → store-CuFX7fCx.d.cts} +117 -31
- package/dist/{store-DRrFCx5x.d.ts → store-D-ZjXQpW.d.ts} +117 -31
- package/dist/{temporal-CbnLzTmM.d.ts → temporal-CpyEiRY8.d.cts} +1 -1
- package/dist/{temporal-5GqpYCk2.d.cts → temporal-y0Aep9Su.d.ts} +1 -1
- package/dist/{types-BqFZTQmV.d.cts → types-6yf0Vv-_.d.cts} +2016 -94
- package/dist/{types-BqFZTQmV.d.ts → types-6yf0Vv-_.d.ts} +2016 -94
- package/dist/{types-Bx74kaTt.d.ts → types-DzJ4dlzk.d.cts} +1 -1
- package/dist/{types-CXAhpW-c.d.cts → types-_vVSB9k-.d.ts} +1 -1
- package/dist/{where-O-k2wgYm.d.ts → where-DuG2LCLe.d.ts} +1 -1
- package/dist/{where-DI_Fqz-X.d.cts → where-Mhf_yyKX.d.cts} +1 -1
- package/package.json +7 -2
- package/dist/chunk-26YKDNUD.cjs.map +0 -1
- package/dist/chunk-2TYSSBU5.js.map +0 -1
- package/dist/chunk-3DMMGT6S.js.map +0 -1
- package/dist/chunk-3FPR224C.cjs.map +0 -1
- package/dist/chunk-3G5W2U2L.cjs.map +0 -1
- package/dist/chunk-3KOY4FH3.cjs +0 -934
- package/dist/chunk-3KOY4FH3.cjs.map +0 -1
- package/dist/chunk-3QNZ5SAJ.cjs +0 -3502
- package/dist/chunk-3QNZ5SAJ.cjs.map +0 -1
- package/dist/chunk-3U5ABFDW.cjs +0 -259
- package/dist/chunk-3U5ABFDW.cjs.map +0 -1
- package/dist/chunk-5K2BKEBD.js.map +0 -1
- package/dist/chunk-5PRKMB24.cjs +0 -124
- package/dist/chunk-5PRKMB24.cjs.map +0 -1
- package/dist/chunk-6LN7FIVU.js +0 -107
- package/dist/chunk-6LN7FIVU.js.map +0 -1
- package/dist/chunk-6SWPJEYN.js +0 -1126
- package/dist/chunk-6SWPJEYN.js.map +0 -1
- package/dist/chunk-7LZJNLA5.js.map +0 -1
- package/dist/chunk-7UOLHNWC.cjs.map +0 -1
- package/dist/chunk-BFUOME67.cjs.map +0 -1
- package/dist/chunk-BRRP76WO.js.map +0 -1
- package/dist/chunk-CICO5GXD.cjs +0 -12
- package/dist/chunk-D4QLTJSM.js.map +0 -1
- package/dist/chunk-D5R42W5D.js.map +0 -1
- package/dist/chunk-EDN4Y4ZG.cjs.map +0 -1
- package/dist/chunk-EZEEWCFJ.cjs.map +0 -1
- package/dist/chunk-FA2AFWLP.cjs.map +0 -1
- package/dist/chunk-FQPEMEWX.cjs.map +0 -1
- package/dist/chunk-GLHXM7C4.js.map +0 -1
- package/dist/chunk-GYEG3ZLZ.cjs.map +0 -1
- package/dist/chunk-HDL2ARHX.cjs +0 -1156
- package/dist/chunk-HDL2ARHX.cjs.map +0 -1
- package/dist/chunk-HEV35TGT.js.map +0 -1
- package/dist/chunk-I4GAZH5Z.js +0 -913
- package/dist/chunk-I4GAZH5Z.js.map +0 -1
- package/dist/chunk-JB6T4GLL.cjs.map +0 -1
- package/dist/chunk-JBQQ7THH.js +0 -20
- package/dist/chunk-JBQQ7THH.js.map +0 -1
- package/dist/chunk-JFRT7S3B.cjs.map +0 -1
- package/dist/chunk-KF6K7TGH.js.map +0 -1
- package/dist/chunk-L3LQNR34.cjs +0 -1254
- package/dist/chunk-L3LQNR34.cjs.map +0 -1
- package/dist/chunk-LTXQOEIC.js.map +0 -1
- package/dist/chunk-MKJ4KXL5.cjs +0 -12
- package/dist/chunk-MRDBBHIZ.cjs.map +0 -1
- package/dist/chunk-NACVVDWB.js.map +0 -1
- package/dist/chunk-NVY5CJFP.js +0 -244
- package/dist/chunk-NVY5CJFP.js.map +0 -1
- package/dist/chunk-PWLJ77UV.cjs +0 -23
- package/dist/chunk-PWLJ77UV.cjs.map +0 -1
- package/dist/chunk-S5TERQVW.js.map +0 -1
- package/dist/chunk-SHFBB23Q.js.map +0 -1
- package/dist/chunk-SIT26LAZ.cjs.map +0 -1
- package/dist/chunk-SR725PWF.cjs.map +0 -1
- package/dist/chunk-TQHGE7UC.cjs.map +0 -1
- package/dist/chunk-UGHG7PGX.js.map +0 -1
- package/dist/chunk-UGHQV7MP.cjs.map +0 -1
- package/dist/chunk-UMGZDVOA.cjs.map +0 -1
- package/dist/chunk-WIC7DRXW.js.map +0 -1
- package/dist/chunk-YIURNGXI.js.map +0 -1
- package/dist/chunk-YYUHLYM2.cjs.map +0 -1
- package/dist/chunk-Z2JCLZFJ.js.map +0 -1
- package/dist/chunk-ZDKTPBGV.js.map +0 -1
- package/dist/chunk-ZFMCDJGB.js.map +0 -1
- package/dist/chunk-ZLONH2UD.js.map +0 -1
- package/dist/index-COs_z6nV.d.cts +0 -1132
- package/dist/index-D7d1u2gr.d.ts +0 -1132
- package/dist/materialize-indexes-DJ3ykH59.d.ts +0 -266
- package/dist/materialize-indexes-DTtAnvfY.d.cts +0 -266
|
@@ -1,46 +1,49 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
5
|
-
var
|
|
6
|
-
require('../chunk-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
require('../chunk-
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
require('../chunk-
|
|
19
|
-
var
|
|
20
|
-
require('../chunk-
|
|
21
|
-
require('../chunk-
|
|
22
|
-
require('../chunk-
|
|
3
|
+
var chunkWRBV2FNH_cjs = require('../chunk-WRBV2FNH.cjs');
|
|
4
|
+
require('../chunk-36SX6QXP.cjs');
|
|
5
|
+
var chunkKACEYDYV_cjs = require('../chunk-KACEYDYV.cjs');
|
|
6
|
+
require('../chunk-2KCTP3U2.cjs');
|
|
7
|
+
var chunk2CVDZCXH_cjs = require('../chunk-2CVDZCXH.cjs');
|
|
8
|
+
require('../chunk-FMMW3KX7.cjs');
|
|
9
|
+
var chunkJHRUZ73O_cjs = require('../chunk-JHRUZ73O.cjs');
|
|
10
|
+
var chunkPS3TUWJM_cjs = require('../chunk-PS3TUWJM.cjs');
|
|
11
|
+
var chunkL6EVYIID_cjs = require('../chunk-L6EVYIID.cjs');
|
|
12
|
+
var chunkJQKMEKKW_cjs = require('../chunk-JQKMEKKW.cjs');
|
|
13
|
+
var chunkNLX5OWK7_cjs = require('../chunk-NLX5OWK7.cjs');
|
|
14
|
+
require('../chunk-ZGVTNKTX.cjs');
|
|
15
|
+
var chunkNUQ2YFFH_cjs = require('../chunk-NUQ2YFFH.cjs');
|
|
16
|
+
var chunk7B7I7YAW_cjs = require('../chunk-7B7I7YAW.cjs');
|
|
17
|
+
var chunkCRZ56SZU_cjs = require('../chunk-CRZ56SZU.cjs');
|
|
18
|
+
require('../chunk-DWUDZ66O.cjs');
|
|
19
|
+
var chunkM5MSP3BI_cjs = require('../chunk-M5MSP3BI.cjs');
|
|
20
|
+
require('../chunk-TM54OBHX.cjs');
|
|
21
|
+
require('../chunk-I7YAY2VQ.cjs');
|
|
22
|
+
require('../chunk-OTNTGEXR.cjs');
|
|
23
23
|
var chunkZY4GXIVN_cjs = require('../chunk-ZY4GXIVN.cjs');
|
|
24
|
+
require('../chunk-JVA3KDEA.cjs');
|
|
25
|
+
require('../chunk-A4C4NJ5U.cjs');
|
|
24
26
|
require('../chunk-NAUA4PW5.cjs');
|
|
25
|
-
require('../chunk-
|
|
26
|
-
var
|
|
27
|
+
require('../chunk-H2VWDQWC.cjs');
|
|
28
|
+
var chunkH5IJSROF_cjs = require('../chunk-H5IJSROF.cjs');
|
|
27
29
|
require('../chunk-7EO3TCQB.cjs');
|
|
28
30
|
require('../chunk-RT5ZY4XA.cjs');
|
|
29
31
|
require('../chunk-HAHNRASW.cjs');
|
|
30
|
-
var
|
|
32
|
+
var chunkRJMHU2MG_cjs = require('../chunk-RJMHU2MG.cjs');
|
|
31
33
|
var chunkXUO3KQFO_cjs = require('../chunk-XUO3KQFO.cjs');
|
|
32
|
-
require('../chunk-
|
|
33
|
-
var
|
|
34
|
+
require('../chunk-VLBTRXA2.cjs');
|
|
35
|
+
var chunkRWUWTJQY_cjs = require('../chunk-RWUWTJQY.cjs');
|
|
36
|
+
var chunkX4GDXBOP_cjs = require('../chunk-X4GDXBOP.cjs');
|
|
34
37
|
require('../chunk-A7J2YDDI.cjs');
|
|
35
38
|
var chunkN66HCGCY_cjs = require('../chunk-N66HCGCY.cjs');
|
|
36
39
|
var zod = require('zod');
|
|
37
40
|
|
|
38
41
|
// src/graph-merge/canonical-props.ts
|
|
39
42
|
function canonicalizeProps(props) {
|
|
40
|
-
return JSON.stringify(props,
|
|
43
|
+
return JSON.stringify(props, chunkNLX5OWK7_cjs.sortedReplacer);
|
|
41
44
|
}
|
|
42
45
|
function canonicalValueKey(value) {
|
|
43
|
-
return JSON.stringify(value,
|
|
46
|
+
return JSON.stringify(value, chunkNLX5OWK7_cjs.sortedReplacer);
|
|
44
47
|
}
|
|
45
48
|
function edgeStateSignature(edge) {
|
|
46
49
|
return JSON.stringify([
|
|
@@ -131,7 +134,7 @@ function toTypeGraphErrorOptions(category, options) {
|
|
|
131
134
|
...options.cause === void 0 ? {} : { cause: options.cause }
|
|
132
135
|
};
|
|
133
136
|
}
|
|
134
|
-
var MergeError = class extends
|
|
137
|
+
var MergeError = class extends chunkX4GDXBOP_cjs.TypeGraphError {
|
|
135
138
|
static errorCategory = "system";
|
|
136
139
|
constructor(message, options = {}) {
|
|
137
140
|
const errorClass = new.target;
|
|
@@ -151,7 +154,7 @@ var InvalidMergeOptionsError = class extends MergeError {
|
|
|
151
154
|
this.name = "InvalidMergeOptionsError";
|
|
152
155
|
}
|
|
153
156
|
};
|
|
154
|
-
var BranchError = class extends
|
|
157
|
+
var BranchError = class extends chunkX4GDXBOP_cjs.TypeGraphError {
|
|
155
158
|
constructor(message, options = {}) {
|
|
156
159
|
super(
|
|
157
160
|
message,
|
|
@@ -197,7 +200,7 @@ var MergeConstraintConflictError = class extends MergeError {
|
|
|
197
200
|
};
|
|
198
201
|
function translateMergeCommitError(error) {
|
|
199
202
|
if (error instanceof MergeError) return error;
|
|
200
|
-
if (!(error instanceof
|
|
203
|
+
if (!(error instanceof chunkX4GDXBOP_cjs.TypeGraphError)) return error;
|
|
201
204
|
if (error.category !== "constraint" || error.code.startsWith("IDENTITY_")) {
|
|
202
205
|
return error;
|
|
203
206
|
}
|
|
@@ -716,10 +719,10 @@ function endpointTuple(assertion) {
|
|
|
716
719
|
return [assertion.a.kind, assertion.a.id, assertion.b.kind, assertion.b.id];
|
|
717
720
|
}
|
|
718
721
|
function identityEndpointKey(assertion) {
|
|
719
|
-
return
|
|
722
|
+
return chunkCRZ56SZU_cjs.encodeTupleKey(endpointTuple(assertion));
|
|
720
723
|
}
|
|
721
724
|
function identitySemanticKey(assertion) {
|
|
722
|
-
return
|
|
725
|
+
return chunkL6EVYIID_cjs.identityAssertionSemanticKey(
|
|
723
726
|
assertion.relation,
|
|
724
727
|
assertion.a,
|
|
725
728
|
assertion.b
|
|
@@ -728,11 +731,11 @@ function identitySemanticKey(assertion) {
|
|
|
728
731
|
function identityDedupeKey(assertion) {
|
|
729
732
|
const semantic = identitySemanticKey(assertion);
|
|
730
733
|
if (assertion.validTo === void 0) return semantic;
|
|
731
|
-
return
|
|
734
|
+
return chunkCRZ56SZU_cjs.encodeTupleKey([semantic, assertion.validFrom, assertion.validTo]);
|
|
732
735
|
}
|
|
733
736
|
function compareIdentitySurvivors(left, right) {
|
|
734
|
-
const byValidity =
|
|
735
|
-
return byValidity === 0 ?
|
|
737
|
+
const byValidity = chunkRWUWTJQY_cjs.compareCodePoints(left.validFrom, right.validFrom);
|
|
738
|
+
return byValidity === 0 ? chunkRWUWTJQY_cjs.compareCodePoints(left.id, right.id) : byValidity;
|
|
736
739
|
}
|
|
737
740
|
var DUPLICATE_IDENTITY_ASSERTION_DROP_REASON = "identity:duplicate-assertion";
|
|
738
741
|
var REDUNDANT_IDENTITY_ASSERTION_DROP_REASON = "identity:endpoints-collapsed";
|
|
@@ -763,7 +766,7 @@ function dedupeIdentityAssertions(assertions, committedIds) {
|
|
|
763
766
|
}
|
|
764
767
|
return {
|
|
765
768
|
survivors: [...survivorBySemantic.values()].toSorted(
|
|
766
|
-
(left, right) =>
|
|
769
|
+
(left, right) => chunkRWUWTJQY_cjs.compareCodePoints(identityDedupeKey(left), identityDedupeKey(right))
|
|
767
770
|
),
|
|
768
771
|
dropped
|
|
769
772
|
};
|
|
@@ -783,7 +786,7 @@ function assertNoOpposingIdentityRelations(assertions) {
|
|
|
783
786
|
);
|
|
784
787
|
for (const sameAssertion of same) {
|
|
785
788
|
for (const differentAssertion of different) {
|
|
786
|
-
if (!
|
|
789
|
+
if (!chunkL6EVYIID_cjs.identityValidityWindowsOverlap(sameAssertion, differentAssertion)) {
|
|
787
790
|
continue;
|
|
788
791
|
}
|
|
789
792
|
throw new IdentityMergeConflictError(
|
|
@@ -900,7 +903,7 @@ function planIdentityChanges(staging, storedIdentityRowsById) {
|
|
|
900
903
|
return {
|
|
901
904
|
assertions: deduped.survivors,
|
|
902
905
|
retractions: retractions.toSorted(
|
|
903
|
-
(left, right) =>
|
|
906
|
+
(left, right) => chunkRWUWTJQY_cjs.compareCodePoints(left.id, right.id)
|
|
904
907
|
),
|
|
905
908
|
dropped: [...deduped.dropped, ...retractionDropped]
|
|
906
909
|
};
|
|
@@ -943,7 +946,7 @@ function remapIdentityAssertionEndpoints(assertions, canonicalOf, retypeMap, sto
|
|
|
943
946
|
);
|
|
944
947
|
continue;
|
|
945
948
|
}
|
|
946
|
-
const [a, b] =
|
|
949
|
+
const [a, b] = chunkL6EVYIID_cjs.normalizeIdentityPair(remappedA, remappedB);
|
|
947
950
|
const endpointWindowA = endpointWindows.get(mergeKeyOf(a));
|
|
948
951
|
const endpointWindowB = endpointWindows.get(mergeKeyOf(b));
|
|
949
952
|
const validFrom = [
|
|
@@ -951,17 +954,17 @@ function remapIdentityAssertionEndpoints(assertions, canonicalOf, retypeMap, sto
|
|
|
951
954
|
endpointWindowA?.validFrom,
|
|
952
955
|
endpointWindowB?.validFrom
|
|
953
956
|
].filter((bound) => bound !== void 0).reduce(
|
|
954
|
-
(latest, bound) =>
|
|
957
|
+
(latest, bound) => chunkRWUWTJQY_cjs.compareCodePoints(latest, bound) < 0 ? bound : latest
|
|
955
958
|
);
|
|
956
959
|
const validTo = [
|
|
957
960
|
assertion.validTo,
|
|
958
961
|
endpointWindowA?.validTo,
|
|
959
962
|
endpointWindowB?.validTo
|
|
960
963
|
].filter((bound) => bound !== void 0).reduce(
|
|
961
|
-
(earliest, bound) => earliest === void 0 ||
|
|
964
|
+
(earliest, bound) => earliest === void 0 || chunkRWUWTJQY_cjs.compareCodePoints(bound, earliest) < 0 ? bound : earliest,
|
|
962
965
|
void 0
|
|
963
966
|
);
|
|
964
|
-
if (validTo !== void 0 &&
|
|
967
|
+
if (validTo !== void 0 && chunkRWUWTJQY_cjs.compareCodePoints(validFrom, validTo) >= 0) {
|
|
965
968
|
dropped.push(
|
|
966
969
|
droppedIdentityAssertion(
|
|
967
970
|
assertion,
|
|
@@ -1098,7 +1101,7 @@ async function buildIdentityPeerProbe(target, probedIds, targetPeers, plan, prof
|
|
|
1098
1101
|
(group) => group.map((member) => mergeKey(member.kind, member.id))
|
|
1099
1102
|
)
|
|
1100
1103
|
]);
|
|
1101
|
-
const ledger = (await relevantLedgerAssertions(target, memberKeys,
|
|
1104
|
+
const ledger = (await relevantLedgerAssertions(target, memberKeys, chunk2CVDZCXH_cjs.storeBackend(target))).filter(
|
|
1102
1105
|
(assertion) => !plannedDeletions.has(mergeKey(assertion.a.kind, assertion.a.id)) && !plannedDeletions.has(mergeKey(assertion.b.kind, assertion.b.id))
|
|
1103
1106
|
);
|
|
1104
1107
|
return {
|
|
@@ -1119,7 +1122,7 @@ async function buildIdentityPeerProbe(target, probedIds, targetPeers, plan, prof
|
|
|
1119
1122
|
};
|
|
1120
1123
|
}
|
|
1121
1124
|
async function snapshotIdentityClasses(target, seeds, liveKeys, plannedDeletions, txBackend) {
|
|
1122
|
-
const classes = await
|
|
1125
|
+
const classes = await chunk2CVDZCXH_cjs.storeRuntime(target).structuralIdentityClasses(
|
|
1123
1126
|
seeds,
|
|
1124
1127
|
txBackend
|
|
1125
1128
|
);
|
|
@@ -1127,7 +1130,7 @@ async function snapshotIdentityClasses(target, seeds, liveKeys, plannedDeletions
|
|
|
1127
1130
|
const groups = [];
|
|
1128
1131
|
for (const seed of seeds) {
|
|
1129
1132
|
const key = mergeKey(seed.kind, seed.id);
|
|
1130
|
-
const members = (classes.get(
|
|
1133
|
+
const members = (classes.get(chunkL6EVYIID_cjs.identityReferenceKey(seed)) ?? [seed]).filter(
|
|
1131
1134
|
(member) => !plannedDeletions.has(mergeKey(member.kind, member.id))
|
|
1132
1135
|
);
|
|
1133
1136
|
groups.push(members);
|
|
@@ -1136,7 +1139,7 @@ async function snapshotIdentityClasses(target, seeds, liveKeys, plannedDeletions
|
|
|
1136
1139
|
return { fingerprints, groups };
|
|
1137
1140
|
}
|
|
1138
1141
|
async function relevantLedgerAssertions(target, memberKeys, backend) {
|
|
1139
|
-
const current = await
|
|
1142
|
+
const current = await chunk2CVDZCXH_cjs.storeRuntime(target).identityAssertionsAtTarget(
|
|
1140
1143
|
backend,
|
|
1141
1144
|
"state"
|
|
1142
1145
|
);
|
|
@@ -1147,7 +1150,7 @@ async function relevantLedgerAssertions(target, memberKeys, backend) {
|
|
|
1147
1150
|
function differentLedgerFingerprint(assertions) {
|
|
1148
1151
|
return JSON.stringify(
|
|
1149
1152
|
assertions.filter((assertion) => assertion.relation === "different").map((assertion) => [assertion.id, ...endpointTuple(assertion)]).toSorted(
|
|
1150
|
-
(left, right) =>
|
|
1153
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(chunkCRZ56SZU_cjs.encodeTupleKey(left), chunkCRZ56SZU_cjs.encodeTupleKey(right))
|
|
1151
1154
|
)
|
|
1152
1155
|
);
|
|
1153
1156
|
}
|
|
@@ -1209,7 +1212,7 @@ async function assertPlannedIdentityIdsFresh(target, txBackend, plan) {
|
|
|
1209
1212
|
...plan.identityRetractions.map((retraction) => retraction.id)
|
|
1210
1213
|
];
|
|
1211
1214
|
if (plannedIds.length === 0) return;
|
|
1212
|
-
const storedById = await
|
|
1215
|
+
const storedById = await chunk2CVDZCXH_cjs.storeRuntime(target).identityAssertionRowsByIds(
|
|
1213
1216
|
plannedIds,
|
|
1214
1217
|
txBackend
|
|
1215
1218
|
);
|
|
@@ -1262,7 +1265,7 @@ function affectedIdentityClassSeeds(plan, profile) {
|
|
|
1262
1265
|
return [...seedsByKey.values()];
|
|
1263
1266
|
}
|
|
1264
1267
|
async function assertMergedIdentityClassesConsistent(target, txBackend, plan) {
|
|
1265
|
-
await
|
|
1268
|
+
await chunk2CVDZCXH_cjs.storeRuntime(target).assertIdentityClassesConsistentAtTarget(
|
|
1266
1269
|
txBackend,
|
|
1267
1270
|
affectedIdentityClassSeeds(plan, target.graph.identity?.sameIdAcrossKinds)
|
|
1268
1271
|
);
|
|
@@ -1301,9 +1304,9 @@ function identityRefusalCode(error) {
|
|
|
1301
1304
|
}
|
|
1302
1305
|
function translateIdentityCommitError(error) {
|
|
1303
1306
|
if (error instanceof MergeError) return error;
|
|
1304
|
-
if (!(error instanceof
|
|
1307
|
+
if (!(error instanceof chunkX4GDXBOP_cjs.TypeGraphError)) return error;
|
|
1305
1308
|
const identityCode = identityRefusalCode(error);
|
|
1306
|
-
const identityRefusal = error instanceof
|
|
1309
|
+
const identityRefusal = error instanceof chunkX4GDXBOP_cjs.IdentityContradictionError || error instanceof chunkX4GDXBOP_cjs.NodeNotFoundError || identityCode !== void 0 && !IDENTITY_ENVIRONMENT_CODES.has(identityCode);
|
|
1307
1310
|
if (!identityRefusal) return error;
|
|
1308
1311
|
return new IdentityMergeConflictError(
|
|
1309
1312
|
`The identity applier refused the resolved plan inside the commit transaction \u2014 identity truth on the target is incompatible with the plan. Cause: ${describeCause(error)}`,
|
|
@@ -1316,7 +1319,7 @@ function translateIdentityCommitError(error) {
|
|
|
1316
1319
|
}
|
|
1317
1320
|
async function assertIdentityPeersStable(target, txBackend, probe, plan) {
|
|
1318
1321
|
if (probe === void 0) return;
|
|
1319
|
-
const live = (await
|
|
1322
|
+
const live = (await chunk2CVDZCXH_cjs.storeRuntime(target).liveNodesSharingIds(probe.ids, txBackend)).filter((peer) => !probe.plannedDeletions.has(mergeKey(peer.kind, peer.id)));
|
|
1320
1323
|
const seedKindsById = /* @__PURE__ */ new Map();
|
|
1321
1324
|
for (const seed of probe.seeds) {
|
|
1322
1325
|
const kinds = seedKindsById.get(seed.id) ?? /* @__PURE__ */ new Set();
|
|
@@ -1341,7 +1344,7 @@ async function assertIdentityPeersStable(target, txBackend, probe, plan) {
|
|
|
1341
1344
|
probe.plannedDeletions,
|
|
1342
1345
|
txBackend
|
|
1343
1346
|
);
|
|
1344
|
-
const drifted = [...probe.classFingerprints].filter(([key, fingerprint]) => liveFingerprints.get(key) !== fingerprint).map(([key]) => key).sort((left, right) =>
|
|
1347
|
+
const drifted = [...probe.classFingerprints].filter(([key, fingerprint]) => liveFingerprints.get(key) !== fingerprint).map(([key]) => key).sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right));
|
|
1345
1348
|
if (drifted.length > 0) {
|
|
1346
1349
|
throw new BaseVersionMismatchError(
|
|
1347
1350
|
`mergeIncremental() validated identity against the classes visible at planning, but the identity class of ${drifted.length} node(s) the plan folds on changed before the commit transaction. Committing the plan could contradict identity truth it never validated.`,
|
|
@@ -1385,8 +1388,8 @@ var ENUMERATION_PAGE_SIZE = 1e3;
|
|
|
1385
1388
|
var EXPLICIT_RETRACTION = { kind: "explicit" };
|
|
1386
1389
|
function validWindowOf(row) {
|
|
1387
1390
|
return {
|
|
1388
|
-
validFrom:
|
|
1389
|
-
validTo:
|
|
1391
|
+
validFrom: chunkM5MSP3BI_cjs.canonicalizeDatabaseTimestamp(row.valid_from),
|
|
1392
|
+
validTo: chunkM5MSP3BI_cjs.canonicalizeDatabaseTimestamp(row.valid_to)
|
|
1390
1393
|
};
|
|
1391
1394
|
}
|
|
1392
1395
|
function windowsDiffer(left, right) {
|
|
@@ -1498,7 +1501,7 @@ function diffNodeKind(kind, baseRows, forkRows) {
|
|
|
1498
1501
|
deleted.push({
|
|
1499
1502
|
id: baseRow.id,
|
|
1500
1503
|
kind,
|
|
1501
|
-
deletedAt: forkRow === void 0 ? void 0 :
|
|
1504
|
+
deletedAt: forkRow === void 0 ? void 0 : chunkM5MSP3BI_cjs.canonicalizeDatabaseTimestamp(forkRow.deleted_at)
|
|
1502
1505
|
});
|
|
1503
1506
|
}
|
|
1504
1507
|
}
|
|
@@ -1609,15 +1612,15 @@ function classifyRetractions(retracted, deletedNodes, forkRowsById) {
|
|
|
1609
1612
|
});
|
|
1610
1613
|
}
|
|
1611
1614
|
function byId(left, right) {
|
|
1612
|
-
return
|
|
1615
|
+
return chunkRWUWTJQY_cjs.compareStrings(left.id, right.id);
|
|
1613
1616
|
}
|
|
1614
1617
|
async function diffAgainstBase(baseStore, forkStore, captureForkState = true) {
|
|
1615
1618
|
const graph = baseStore.graph;
|
|
1616
|
-
const nodeKinds =
|
|
1617
|
-
const edgeKinds =
|
|
1619
|
+
const nodeKinds = chunk7B7I7YAW_cjs.getNodeKinds(graph);
|
|
1620
|
+
const edgeKinds = chunk7B7I7YAW_cjs.getEdgeKinds(graph);
|
|
1618
1621
|
const [baseIdentity, forkIdentity] = await Promise.all([
|
|
1619
|
-
|
|
1620
|
-
|
|
1622
|
+
chunk2CVDZCXH_cjs.storeRuntime(baseStore).readCurrentIdentityAssertions("archival"),
|
|
1623
|
+
chunk2CVDZCXH_cjs.storeRuntime(forkStore).readCurrentIdentityAssertions("archival")
|
|
1621
1624
|
]);
|
|
1622
1625
|
const baseIdentityById = new Map(
|
|
1623
1626
|
baseIdentity.map((assertion) => [assertion.id, assertion])
|
|
@@ -1632,12 +1635,12 @@ async function diffAgainstBase(baseStore, forkStore, captureForkState = true) {
|
|
|
1632
1635
|
const forkNodeVersions = /* @__PURE__ */ new Map();
|
|
1633
1636
|
for (const kind of nodeKinds) {
|
|
1634
1637
|
const baseRows = await enumerateAllNodes(
|
|
1635
|
-
|
|
1638
|
+
chunk2CVDZCXH_cjs.storeBackend(baseStore),
|
|
1636
1639
|
baseStore.graphId,
|
|
1637
1640
|
kind
|
|
1638
1641
|
);
|
|
1639
1642
|
const forkRows = await enumerateAllNodes(
|
|
1640
|
-
|
|
1643
|
+
chunk2CVDZCXH_cjs.storeBackend(forkStore),
|
|
1641
1644
|
forkStore.graphId,
|
|
1642
1645
|
kind
|
|
1643
1646
|
);
|
|
@@ -1667,12 +1670,12 @@ async function diffAgainstBase(baseStore, forkStore, captureForkState = true) {
|
|
|
1667
1670
|
const forkEdgeSignatures = /* @__PURE__ */ new Map();
|
|
1668
1671
|
for (const kind of edgeKinds) {
|
|
1669
1672
|
const baseRows = await enumerateAllEdges(
|
|
1670
|
-
|
|
1673
|
+
chunk2CVDZCXH_cjs.storeBackend(baseStore),
|
|
1671
1674
|
baseStore.graphId,
|
|
1672
1675
|
kind
|
|
1673
1676
|
);
|
|
1674
1677
|
const forkRows = await enumerateAllEdges(
|
|
1675
|
-
|
|
1678
|
+
chunk2CVDZCXH_cjs.storeBackend(forkStore),
|
|
1676
1679
|
forkStore.graphId,
|
|
1677
1680
|
kind
|
|
1678
1681
|
);
|
|
@@ -1708,7 +1711,7 @@ async function diffAgainstBase(baseStore, forkStore, captureForkState = true) {
|
|
|
1708
1711
|
const retractedAssertions = baseIdentity.filter((assertion) => {
|
|
1709
1712
|
const fork = forkIdentityById.get(assertion.id);
|
|
1710
1713
|
return fork === void 0 || assertionTruthKey(fork) !== assertionTruthKey(assertion);
|
|
1711
|
-
}).toSorted((left, right) =>
|
|
1714
|
+
}).toSorted((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id));
|
|
1712
1715
|
const classifiedRetractions = classifyRetractions(
|
|
1713
1716
|
retractedAssertions,
|
|
1714
1717
|
deletedNodes,
|
|
@@ -1739,7 +1742,7 @@ async function diffAgainstBase(baseStore, forkStore, captureForkState = true) {
|
|
|
1739
1742
|
new: forkIdentity.filter((assertion) => {
|
|
1740
1743
|
const base = baseIdentityById.get(assertion.id);
|
|
1741
1744
|
return base === void 0 || assertionIdentityKey(base) !== assertionIdentityKey(assertion) && assertionTruthKey(base) !== assertionTruthKey(assertion);
|
|
1742
|
-
}).toSorted((left, right) =>
|
|
1745
|
+
}).toSorted((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)),
|
|
1743
1746
|
retracted: classifiedRetractions
|
|
1744
1747
|
},
|
|
1745
1748
|
forkNodeVersions,
|
|
@@ -1769,19 +1772,19 @@ async function readActiveSchemaVersion(backend, graphId) {
|
|
|
1769
1772
|
}
|
|
1770
1773
|
async function computeSchemaComponent(store) {
|
|
1771
1774
|
const version = await readActiveSchemaVersion(
|
|
1772
|
-
|
|
1775
|
+
chunk2CVDZCXH_cjs.storeBackend(store),
|
|
1773
1776
|
store.graphId
|
|
1774
1777
|
);
|
|
1775
|
-
return
|
|
1778
|
+
return chunkJHRUZ73O_cjs.computeSchemaHash(chunkJHRUZ73O_cjs.serializeSchema(store.graph, version));
|
|
1776
1779
|
}
|
|
1777
1780
|
function byDigestEntry(left, right) {
|
|
1778
|
-
const byKind =
|
|
1779
|
-
return byKind === 0 ?
|
|
1781
|
+
const byKind = chunkRWUWTJQY_cjs.compareStrings(left.kind, right.kind);
|
|
1782
|
+
return byKind === 0 ? chunkRWUWTJQY_cjs.compareStrings(left.id, right.id) : byKind;
|
|
1780
1783
|
}
|
|
1781
1784
|
var CONTENT_FINGERPRINT_BYTES = 16;
|
|
1782
1785
|
async function computeContentComponent(backend, graphId, graph, identityAssertions) {
|
|
1783
|
-
const nodeKinds =
|
|
1784
|
-
const edgeKinds =
|
|
1786
|
+
const nodeKinds = chunk7B7I7YAW_cjs.getNodeKinds(graph);
|
|
1787
|
+
const edgeKinds = chunk7B7I7YAW_cjs.getEdgeKinds(graph);
|
|
1785
1788
|
const nodeDigest = [];
|
|
1786
1789
|
for (const kind of nodeKinds) {
|
|
1787
1790
|
const rows = await enumerateAllNodes(backend, graphId, kind);
|
|
@@ -1831,7 +1834,7 @@ async function computeBaseVersion(store) {
|
|
|
1831
1834
|
computeSchemaComponent(store),
|
|
1832
1835
|
store.revisionOriginNow(),
|
|
1833
1836
|
store.revisionNow(),
|
|
1834
|
-
readActiveSchemaVersion(
|
|
1837
|
+
readActiveSchemaVersion(chunk2CVDZCXH_cjs.storeBackend(store), store.graphId)
|
|
1835
1838
|
]);
|
|
1836
1839
|
return asBaseVersion(
|
|
1837
1840
|
`${schemaComponent2}${SCHEMA_VERSION_TAG}${activeVersion}${TOKEN_SEPARATOR}${revisionComponent(origin, revision)}`
|
|
@@ -1846,9 +1849,9 @@ async function computeBaseVersion(store) {
|
|
|
1846
1849
|
);
|
|
1847
1850
|
}
|
|
1848
1851
|
async function computeStoreContentComponent(store) {
|
|
1849
|
-
const identityAssertions = await
|
|
1852
|
+
const identityAssertions = await chunk2CVDZCXH_cjs.storeRuntime(store).readCurrentIdentityAssertions("state");
|
|
1850
1853
|
return computeContentComponent(
|
|
1851
|
-
|
|
1854
|
+
chunk2CVDZCXH_cjs.storeBackend(store),
|
|
1852
1855
|
store.graphId,
|
|
1853
1856
|
store.graph,
|
|
1854
1857
|
identityAssertions
|
|
@@ -1902,7 +1905,7 @@ function cloneWorkingCopyWithGraphStrategy(makeBackend, graphForClone) {
|
|
|
1902
1905
|
create: async (baseStore) => {
|
|
1903
1906
|
const backend = await makeBackend();
|
|
1904
1907
|
try {
|
|
1905
|
-
const [freshStore] = await
|
|
1908
|
+
const [freshStore] = await chunkWRBV2FNH_cjs.createStoreWithSchema(
|
|
1906
1909
|
graphForClone(baseStore),
|
|
1907
1910
|
backend,
|
|
1908
1911
|
{
|
|
@@ -1923,16 +1926,16 @@ function cloneWorkingCopyWithGraphStrategy(makeBackend, graphForClone) {
|
|
|
1923
1926
|
validateReferences: true,
|
|
1924
1927
|
batchSize: CLONE_IMPORT_BATCH_SIZE
|
|
1925
1928
|
};
|
|
1926
|
-
const result =
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
) === void 0 ? await
|
|
1929
|
+
const result = chunkNLX5OWK7_cjs.snapshotExportContention(
|
|
1930
|
+
chunk2CVDZCXH_cjs.storeBackend(baseStore),
|
|
1931
|
+
chunk2CVDZCXH_cjs.storeBackend(freshStore)
|
|
1932
|
+
) === void 0 ? await chunkKACEYDYV_cjs.importGraphStream(
|
|
1930
1933
|
freshStore,
|
|
1931
|
-
|
|
1934
|
+
chunkKACEYDYV_cjs.exportGraphStream(baseStore, exportOptions),
|
|
1932
1935
|
importOptions
|
|
1933
|
-
) : await
|
|
1936
|
+
) : await chunkKACEYDYV_cjs.importGraph(
|
|
1934
1937
|
freshStore,
|
|
1935
|
-
await
|
|
1938
|
+
await chunkKACEYDYV_cjs.exportGraph(baseStore, exportOptions),
|
|
1936
1939
|
importOptions
|
|
1937
1940
|
);
|
|
1938
1941
|
if (!result.success) {
|
|
@@ -1981,18 +1984,18 @@ function graphWithoutNodeUniqueness(graph) {
|
|
|
1981
1984
|
async function branch(baseStore, makeBackend, options, strategy) {
|
|
1982
1985
|
try {
|
|
1983
1986
|
const base = await computeBaseVersion(baseStore);
|
|
1984
|
-
const id = options?.id ?? asBranchId(
|
|
1987
|
+
const id = options?.id ?? asBranchId(chunkJQKMEKKW_cjs.generateId());
|
|
1985
1988
|
const workingCopyStrategy = strategy ?? cloneWorkingCopyStrategy(makeBackend);
|
|
1986
1989
|
const store = await workingCopyStrategy.create(baseStore);
|
|
1987
1990
|
const schemaAnchor = await captureBranchSchemaAnchor(store);
|
|
1988
|
-
return
|
|
1991
|
+
return chunkRJMHU2MG_cjs.ok({
|
|
1989
1992
|
id,
|
|
1990
1993
|
base,
|
|
1991
1994
|
store,
|
|
1992
1995
|
...schemaAnchor === void 0 ? { schemaAnchor: void 0 } : { schemaAnchor }
|
|
1993
1996
|
});
|
|
1994
1997
|
} catch (error) {
|
|
1995
|
-
return
|
|
1998
|
+
return chunkRJMHU2MG_cjs.err(
|
|
1996
1999
|
new BranchError("Failed to create working-copy branch of base store", {
|
|
1997
2000
|
cause: error
|
|
1998
2001
|
})
|
|
@@ -2001,11 +2004,11 @@ async function branch(baseStore, makeBackend, options, strategy) {
|
|
|
2001
2004
|
}
|
|
2002
2005
|
async function captureBranchSchemaAnchor(store) {
|
|
2003
2006
|
try {
|
|
2004
|
-
const schemaRow = await
|
|
2007
|
+
const schemaRow = await chunk2CVDZCXH_cjs.storeBackend(store).getActiveSchema(store.graphId);
|
|
2005
2008
|
return schemaRow === void 0 ? void 0 : { version: schemaRow.version, hash: schemaRow.schema_hash };
|
|
2006
2009
|
} catch (error) {
|
|
2007
2010
|
try {
|
|
2008
|
-
await
|
|
2011
|
+
await chunk2CVDZCXH_cjs.storeBackend(store).close();
|
|
2009
2012
|
} catch {
|
|
2010
2013
|
}
|
|
2011
2014
|
throw error;
|
|
@@ -2038,8 +2041,8 @@ async function ingestionBranch(baseStore, makeBackend, options) {
|
|
|
2038
2041
|
options,
|
|
2039
2042
|
cloneIngestionWorkingCopyStrategy(makeBackend)
|
|
2040
2043
|
);
|
|
2041
|
-
if (
|
|
2042
|
-
return
|
|
2044
|
+
if (chunkRJMHU2MG_cjs.isErr(created)) {
|
|
2045
|
+
return chunkRJMHU2MG_cjs.err(
|
|
2043
2046
|
new BranchError("Failed to create constraint-aware ingestion branch", {
|
|
2044
2047
|
cause: created.error
|
|
2045
2048
|
})
|
|
@@ -2058,13 +2061,13 @@ async function ingestionBranch(baseStore, makeBackend, options) {
|
|
|
2058
2061
|
nodes: store.nodes,
|
|
2059
2062
|
edges: store.edges,
|
|
2060
2063
|
...identityAccess,
|
|
2061
|
-
close: async () =>
|
|
2064
|
+
close: async () => chunk2CVDZCXH_cjs.storeBackend(store).close()
|
|
2062
2065
|
});
|
|
2063
2066
|
PRIVATE_BRANCHES.set(handle, privateBranch);
|
|
2064
|
-
|
|
2065
|
-
return
|
|
2067
|
+
chunkKACEYDYV_cjs.registerIngestionImportTarget(handle, store);
|
|
2068
|
+
return chunkRJMHU2MG_cjs.ok(handle);
|
|
2066
2069
|
} catch (error) {
|
|
2067
|
-
return
|
|
2070
|
+
return chunkRJMHU2MG_cjs.err(
|
|
2068
2071
|
new BranchError("Failed to create constraint-aware ingestion branch", {
|
|
2069
2072
|
cause: error
|
|
2070
2073
|
})
|
|
@@ -2106,7 +2109,7 @@ function constraintSignature(node, constraint) {
|
|
|
2106
2109
|
return void 0;
|
|
2107
2110
|
}
|
|
2108
2111
|
}
|
|
2109
|
-
return `${constraint.name}${KEY_PART_SEPARATOR}${
|
|
2112
|
+
return `${constraint.name}${KEY_PART_SEPARATOR}${chunkCRZ56SZU_cjs.computeUniqueKey(
|
|
2110
2113
|
props,
|
|
2111
2114
|
constraint.fields,
|
|
2112
2115
|
constraint.collation
|
|
@@ -2143,12 +2146,12 @@ function blockNodes(newNodes, resolveConfig, uniqueConstraints = []) {
|
|
|
2143
2146
|
}
|
|
2144
2147
|
}
|
|
2145
2148
|
const sortedKeys = [...buckets.keys()].sort(
|
|
2146
|
-
(left, right) =>
|
|
2149
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)
|
|
2147
2150
|
);
|
|
2148
2151
|
const ordered = /* @__PURE__ */ new Map();
|
|
2149
2152
|
for (const key of sortedKeys) {
|
|
2150
2153
|
const members = [...chunkN66HCGCY_cjs.requireDefined(buckets.get(key))].sort(
|
|
2151
|
-
(left, right) =>
|
|
2154
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)
|
|
2152
2155
|
);
|
|
2153
2156
|
ordered.set(key, members);
|
|
2154
2157
|
}
|
|
@@ -2165,7 +2168,7 @@ function buildBranchRank(branchOrder, allBranchIds) {
|
|
|
2165
2168
|
next += 1;
|
|
2166
2169
|
}
|
|
2167
2170
|
}
|
|
2168
|
-
const remaining = allBranchIds.filter((branchId) => !rank.has(branchId)).sort((left, right) =>
|
|
2171
|
+
const remaining = allBranchIds.filter((branchId) => !rank.has(branchId)).sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right));
|
|
2169
2172
|
for (const branchId of remaining) {
|
|
2170
2173
|
if (!rank.has(branchId)) {
|
|
2171
2174
|
rank.set(branchId, next);
|
|
@@ -2237,8 +2240,8 @@ function collectConflictingValues(property, contributions) {
|
|
|
2237
2240
|
values.push({ branchId, value });
|
|
2238
2241
|
}
|
|
2239
2242
|
return [...values].sort((left, right) => {
|
|
2240
|
-
const byBranch =
|
|
2241
|
-
return byBranch === 0 ?
|
|
2243
|
+
const byBranch = chunkRWUWTJQY_cjs.compareStrings(left.branchId, right.branchId);
|
|
2244
|
+
return byBranch === 0 ? chunkRWUWTJQY_cjs.compareStrings(
|
|
2242
2245
|
canonicalValueKey(left.value),
|
|
2243
2246
|
canonicalValueKey(right.value)
|
|
2244
2247
|
) : byBranch;
|
|
@@ -2368,7 +2371,7 @@ function unionProperties(canonicalMember, members, context, baseContext, branchR
|
|
|
2368
2371
|
const props = chunkN66HCGCY_cjs.createDataKeyedBag();
|
|
2369
2372
|
const conflicts = [];
|
|
2370
2373
|
for (const property of [...propertyNames].sort(
|
|
2371
|
-
(left, right) =>
|
|
2374
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)
|
|
2372
2375
|
)) {
|
|
2373
2376
|
const values = collectConflictingValues(property, members);
|
|
2374
2377
|
if (values.length === 0) {
|
|
@@ -2433,14 +2436,14 @@ function canonicalizeCluster(cluster, members, policy, branchRank, weights, cano
|
|
|
2433
2436
|
);
|
|
2434
2437
|
const memberIds = [
|
|
2435
2438
|
...new Set(cluster.members.map((member) => idOf(member)))
|
|
2436
|
-
].sort((left, right) =>
|
|
2439
|
+
].sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right));
|
|
2437
2440
|
const branchOrigins = [
|
|
2438
2441
|
...new Set(
|
|
2439
2442
|
members.map((member) => member.branchId).filter(
|
|
2440
2443
|
(branchId) => branchId !== BASE_PROVENANCE_BRANCH && branchId !== preferredBranchId
|
|
2441
2444
|
)
|
|
2442
2445
|
)
|
|
2443
|
-
].sort((left, right) =>
|
|
2446
|
+
].sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right));
|
|
2444
2447
|
const resolution = {
|
|
2445
2448
|
canonicalId,
|
|
2446
2449
|
memberIds,
|
|
@@ -2520,7 +2523,7 @@ var EQUIVALENCE_META_EDGES = /* @__PURE__ */ new Set([
|
|
|
2520
2523
|
chunkXUO3KQFO_cjs.META_EDGE_SAME_AS
|
|
2521
2524
|
]);
|
|
2522
2525
|
function buildSubClassClosure(ontology) {
|
|
2523
|
-
const unionFind = new UnionFind(
|
|
2526
|
+
const unionFind = new UnionFind(chunkRWUWTJQY_cjs.compareStrings);
|
|
2524
2527
|
for (const relation of ontology) {
|
|
2525
2528
|
unionFind.add(relation.from);
|
|
2526
2529
|
unionFind.add(relation.to);
|
|
@@ -2551,7 +2554,7 @@ function buildSubClassClosure(ontology) {
|
|
|
2551
2554
|
relations.push([child, parent]);
|
|
2552
2555
|
}
|
|
2553
2556
|
return {
|
|
2554
|
-
closure:
|
|
2557
|
+
closure: chunkRJMHU2MG_cjs.computeTransitiveClosure(relations),
|
|
2555
2558
|
canonicalOf
|
|
2556
2559
|
};
|
|
2557
2560
|
}
|
|
@@ -2564,7 +2567,7 @@ function isReachable2(closure, from, to) {
|
|
|
2564
2567
|
if (fromRep === toRep) {
|
|
2565
2568
|
return from !== to;
|
|
2566
2569
|
}
|
|
2567
|
-
return
|
|
2570
|
+
return chunkRJMHU2MG_cjs.isReachable(closure.closure, fromRep, toRep);
|
|
2568
2571
|
}
|
|
2569
2572
|
|
|
2570
2573
|
// src/graph-merge/evidence.ts
|
|
@@ -2616,7 +2619,7 @@ function sourceKey(source) {
|
|
|
2616
2619
|
}
|
|
2617
2620
|
}
|
|
2618
2621
|
function compareMatchSources(left, right) {
|
|
2619
|
-
return
|
|
2622
|
+
return chunkRWUWTJQY_cjs.compareStrings(sourceKey(left), sourceKey(right));
|
|
2620
2623
|
}
|
|
2621
2624
|
function compareEntityRefs(left, right) {
|
|
2622
2625
|
return compareMergeKeys(
|
|
@@ -2845,7 +2848,7 @@ function scorePrepared(left, right, strategy, ctx) {
|
|
|
2845
2848
|
try {
|
|
2846
2849
|
raw = strategy.score(left.node, right.node);
|
|
2847
2850
|
} catch (error) {
|
|
2848
|
-
return
|
|
2851
|
+
return chunkRJMHU2MG_cjs.err(
|
|
2849
2852
|
new MatchEvidenceError("Custom similarity scorer failed.", {
|
|
2850
2853
|
details: {
|
|
2851
2854
|
kind: left.node.kind,
|
|
@@ -2857,7 +2860,7 @@ function scorePrepared(left, right, strategy, ctx) {
|
|
|
2857
2860
|
);
|
|
2858
2861
|
}
|
|
2859
2862
|
if (!Number.isFinite(raw)) {
|
|
2860
|
-
return
|
|
2863
|
+
return chunkRJMHU2MG_cjs.err(
|
|
2861
2864
|
new MatchEvidenceError(
|
|
2862
2865
|
"Custom similarity scorer returned a non-finite score.",
|
|
2863
2866
|
{
|
|
@@ -2871,37 +2874,37 @@ function scorePrepared(left, right, strategy, ctx) {
|
|
|
2871
2874
|
)
|
|
2872
2875
|
);
|
|
2873
2876
|
}
|
|
2874
|
-
return
|
|
2877
|
+
return chunkRJMHU2MG_cjs.ok(clampScore(raw));
|
|
2875
2878
|
}
|
|
2876
2879
|
case "fulltext": {
|
|
2877
2880
|
if (left.text.length === 0 || right.text.length === 0) {
|
|
2878
|
-
return
|
|
2881
|
+
return chunkRJMHU2MG_cjs.ok(NO_EVIDENCE_SCORE);
|
|
2879
2882
|
}
|
|
2880
|
-
return
|
|
2883
|
+
return chunkRJMHU2MG_cjs.ok(clampScore(diceFromMultisets(left.grams, right.grams)));
|
|
2881
2884
|
}
|
|
2882
2885
|
case "vector": {
|
|
2883
2886
|
if (ctx.embeddings === void 0) {
|
|
2884
|
-
return
|
|
2887
|
+
return chunkRJMHU2MG_cjs.err(embedderUnavailable("vector", ctx));
|
|
2885
2888
|
}
|
|
2886
2889
|
if (left.text.length === 0 || right.text.length === 0) {
|
|
2887
|
-
return
|
|
2890
|
+
return chunkRJMHU2MG_cjs.ok(NO_EVIDENCE_SCORE);
|
|
2888
2891
|
}
|
|
2889
2892
|
const cosine = cosineFromLookup(ctx.embeddings, left.text, right.text);
|
|
2890
|
-
return
|
|
2893
|
+
return chunkRJMHU2MG_cjs.ok(clampScore(cosine));
|
|
2891
2894
|
}
|
|
2892
2895
|
case "hybrid": {
|
|
2893
2896
|
if (ctx.embeddings === void 0) {
|
|
2894
|
-
return
|
|
2897
|
+
return chunkRJMHU2MG_cjs.err(embedderUnavailable("hybrid", ctx));
|
|
2895
2898
|
}
|
|
2896
2899
|
if (left.text.length === 0 || right.text.length === 0) {
|
|
2897
|
-
return
|
|
2900
|
+
return chunkRJMHU2MG_cjs.ok(NO_EVIDENCE_SCORE);
|
|
2898
2901
|
}
|
|
2899
2902
|
const vectorScore = clampScore(
|
|
2900
2903
|
cosineFromLookup(ctx.embeddings, left.text, right.text)
|
|
2901
2904
|
);
|
|
2902
2905
|
const fulltextScore = diceFromMultisets(left.grams, right.grams);
|
|
2903
2906
|
const weights = normalizeHybridWeights(strategy.weights);
|
|
2904
|
-
return
|
|
2907
|
+
return chunkRJMHU2MG_cjs.ok(
|
|
2905
2908
|
clampScore(
|
|
2906
2909
|
weights.vector * vectorScore + weights.fulltext * fulltextScore
|
|
2907
2910
|
)
|
|
@@ -2985,7 +2988,7 @@ function scoreCandidates(input, resolveConfig, ctx, ceilingPolicy, maxComparison
|
|
|
2985
2988
|
});
|
|
2986
2989
|
if (maxComparisonsPerKind !== void 0 && fuzzy.length > maxComparisonsPerKind) {
|
|
2987
2990
|
if (ceilingPolicy === "error") {
|
|
2988
|
-
return
|
|
2991
|
+
return chunkRJMHU2MG_cjs.err(
|
|
2989
2992
|
new MergeError(
|
|
2990
2993
|
`Comparison ceiling exceeded: ${fuzzy.length} candidate pairs > maxComparisonsPerKind ${maxComparisonsPerKind}.`,
|
|
2991
2994
|
{
|
|
@@ -2998,7 +3001,7 @@ function scoreCandidates(input, resolveConfig, ctx, ceilingPolicy, maxComparison
|
|
|
2998
3001
|
)
|
|
2999
3002
|
);
|
|
3000
3003
|
}
|
|
3001
|
-
return
|
|
3004
|
+
return chunkRJMHU2MG_cjs.ok({
|
|
3002
3005
|
edges: [...forced].sort(
|
|
3003
3006
|
(left, right) => compareCandidateEdges(left, right)
|
|
3004
3007
|
),
|
|
@@ -3020,9 +3023,9 @@ function scoreCandidates(input, resolveConfig, ctx, ceilingPolicy, maxComparison
|
|
|
3020
3023
|
let diagnosticsTotal = 0;
|
|
3021
3024
|
for (const { left, right, a, b, sources } of fuzzy) {
|
|
3022
3025
|
const scored = scorer(a, left, b, right);
|
|
3023
|
-
if (
|
|
3026
|
+
if (chunkRJMHU2MG_cjs.isErr(scored)) {
|
|
3024
3027
|
if (similarity.kind === "custom" && scored.error instanceof MatchEvidenceError) {
|
|
3025
|
-
return
|
|
3028
|
+
return chunkRJMHU2MG_cjs.err(
|
|
3026
3029
|
new MatchEvidenceError(scored.error.message, {
|
|
3027
3030
|
cause: scored.error,
|
|
3028
3031
|
details: {
|
|
@@ -3036,10 +3039,10 @@ function scoreCandidates(input, resolveConfig, ctx, ceilingPolicy, maxComparison
|
|
|
3036
3039
|
})
|
|
3037
3040
|
);
|
|
3038
3041
|
}
|
|
3039
|
-
return
|
|
3042
|
+
return chunkRJMHU2MG_cjs.err(scored.error);
|
|
3040
3043
|
}
|
|
3041
3044
|
if (!Number.isFinite(scored.data)) {
|
|
3042
|
-
return
|
|
3045
|
+
return chunkRJMHU2MG_cjs.err(
|
|
3043
3046
|
new MatchEvidenceError(
|
|
3044
3047
|
"Similarity scorer returned a non-finite score.",
|
|
3045
3048
|
{
|
|
@@ -3079,7 +3082,7 @@ function scoreCandidates(input, resolveConfig, ctx, ceilingPolicy, maxComparison
|
|
|
3079
3082
|
});
|
|
3080
3083
|
}
|
|
3081
3084
|
}
|
|
3082
|
-
return
|
|
3085
|
+
return chunkRJMHU2MG_cjs.ok({
|
|
3083
3086
|
edges: edges.sort((left, right) => compareCandidateEdges(left, right)),
|
|
3084
3087
|
warnings: [],
|
|
3085
3088
|
diagnostics,
|
|
@@ -3358,7 +3361,7 @@ function pickHighestPriorityBranch(branchIds, branchRank) {
|
|
|
3358
3361
|
let chosenRank = branchRank.get(chosen) ?? Number.MAX_SAFE_INTEGER;
|
|
3359
3362
|
for (const candidate of branchIds.slice(1)) {
|
|
3360
3363
|
const candidateRank = branchRank.get(candidate) ?? Number.MAX_SAFE_INTEGER;
|
|
3361
|
-
if (candidateRank < chosenRank || candidateRank === chosenRank &&
|
|
3364
|
+
if (candidateRank < chosenRank || candidateRank === chosenRank && chunkRWUWTJQY_cjs.compareStrings(candidate, chosen) < 0) {
|
|
3362
3365
|
chosen = candidate;
|
|
3363
3366
|
chosenRank = candidateRank;
|
|
3364
3367
|
}
|
|
@@ -3451,20 +3454,20 @@ function resolveDeleteModifyOver(modified, deleted, modifiedEntity, deletedEntit
|
|
|
3451
3454
|
}
|
|
3452
3455
|
return {
|
|
3453
3456
|
survivingModifications: [...survivingModifications].sort((left, right) => {
|
|
3454
|
-
const byId2 =
|
|
3457
|
+
const byId2 = chunkRWUWTJQY_cjs.compareStrings(
|
|
3455
3458
|
modifiedEntity(left).id,
|
|
3456
3459
|
modifiedEntity(right).id
|
|
3457
3460
|
);
|
|
3458
|
-
return byId2 === 0 ?
|
|
3461
|
+
return byId2 === 0 ? chunkRWUWTJQY_cjs.compareStrings(left.branchId, right.branchId) : byId2;
|
|
3459
3462
|
}),
|
|
3460
3463
|
deletions: [...deletions].sort(
|
|
3461
|
-
(left, right) =>
|
|
3464
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)
|
|
3462
3465
|
),
|
|
3463
3466
|
conflicts: [...conflicts].sort(
|
|
3464
|
-
(left, right) =>
|
|
3467
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left.entityId, right.entityId)
|
|
3465
3468
|
),
|
|
3466
3469
|
dropped: [...dropped].sort(
|
|
3467
|
-
(left, right) =>
|
|
3470
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)
|
|
3468
3471
|
)
|
|
3469
3472
|
};
|
|
3470
3473
|
}
|
|
@@ -3508,11 +3511,11 @@ function reconcileOver(survivingModifications, entityOf, rebuild, policy, branch
|
|
|
3508
3511
|
}
|
|
3509
3512
|
return {
|
|
3510
3513
|
survivingModifications: [...out].sort((left, right) => {
|
|
3511
|
-
const byId2 =
|
|
3512
|
-
return byId2 === 0 ?
|
|
3514
|
+
const byId2 = chunkRWUWTJQY_cjs.compareStrings(entityOf(left).id, entityOf(right).id);
|
|
3515
|
+
return byId2 === 0 ? chunkRWUWTJQY_cjs.compareStrings(left.branchId, right.branchId) : byId2;
|
|
3513
3516
|
}),
|
|
3514
3517
|
conflicts: conflicts.sort(
|
|
3515
|
-
(left, right) =>
|
|
3518
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(
|
|
3516
3519
|
`${left.entityId}|${left.property}`,
|
|
3517
3520
|
`${right.entityId}|${right.property}`
|
|
3518
3521
|
)
|
|
@@ -3546,7 +3549,7 @@ function threeWayMergeProps(entityId, kind, baseProps, contributions, context, b
|
|
|
3546
3549
|
propertyNames.add(name);
|
|
3547
3550
|
}
|
|
3548
3551
|
}
|
|
3549
|
-
for (const property of [...propertyNames].sort(
|
|
3552
|
+
for (const property of [...propertyNames].sort(chunkRWUWTJQY_cjs.compareStrings)) {
|
|
3550
3553
|
const baseHas = chunkN66HCGCY_cjs.hasOwnKey(baseProps, property);
|
|
3551
3554
|
const baseKey = baseHas ? canonicalValueKey(chunkN66HCGCY_cjs.requireDefined(baseProps[property])) : void 0;
|
|
3552
3555
|
const changed = contributions.filter((contribution) => {
|
|
@@ -3646,7 +3649,7 @@ function earliestEnd(claims) {
|
|
|
3646
3649
|
let earliest;
|
|
3647
3650
|
for (const claim of claims) {
|
|
3648
3651
|
if (claim.change.kind !== "set") continue;
|
|
3649
|
-
if (earliest === void 0 ||
|
|
3652
|
+
if (earliest === void 0 || chunkRWUWTJQY_cjs.compareStrings(claim.change.validTo, earliest) < 0) {
|
|
3650
3653
|
earliest = claim.change.validTo;
|
|
3651
3654
|
}
|
|
3652
3655
|
}
|
|
@@ -3662,7 +3665,7 @@ function resolveEndClaims(claims, preferredBranchId) {
|
|
|
3662
3665
|
}
|
|
3663
3666
|
function claimingBranches(claims) {
|
|
3664
3667
|
return [...new Set(claims.map((claim) => claim.branchId))].sort(
|
|
3665
|
-
(left, right) =>
|
|
3668
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)
|
|
3666
3669
|
);
|
|
3667
3670
|
}
|
|
3668
3671
|
function sameValidToChange(left, right) {
|
|
@@ -3759,7 +3762,7 @@ function resolvePopulation(entity, deltas, deletions, preferredBranchId, dropIte
|
|
|
3759
3762
|
mergeKey(right.kind, right.id)
|
|
3760
3763
|
)
|
|
3761
3764
|
),
|
|
3762
|
-
dropped: dropped.sort((left, right) =>
|
|
3765
|
+
dropped: dropped.sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id))
|
|
3763
3766
|
};
|
|
3764
3767
|
}
|
|
3765
3768
|
function resolveValidWindows(staging, nodeDeletions, edgeDeletions, preferredBranchId) {
|
|
@@ -3848,7 +3851,7 @@ function rowsById(groupEdges) {
|
|
|
3848
3851
|
function sourcePairByRow(rows) {
|
|
3849
3852
|
const pairs = /* @__PURE__ */ new Map();
|
|
3850
3853
|
for (const [id, members] of rows) {
|
|
3851
|
-
const sorted = members.map((member) => member.sourcePair).sort((left, right) =>
|
|
3854
|
+
const sorted = members.map((member) => member.sourcePair).sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right));
|
|
3852
3855
|
pairs.set(id, chunkN66HCGCY_cjs.requireDefined(sorted[0]));
|
|
3853
3856
|
}
|
|
3854
3857
|
return pairs;
|
|
@@ -3859,14 +3862,14 @@ function foldSets(groupEdges) {
|
|
|
3859
3862
|
const representatives = /* @__PURE__ */ new Map();
|
|
3860
3863
|
for (const [id, pair] of sourcePairs) {
|
|
3861
3864
|
const representative = representatives.get(pair);
|
|
3862
|
-
if (representative === void 0 ||
|
|
3865
|
+
if (representative === void 0 || chunkRWUWTJQY_cjs.compareStrings(id, representative) < 0) {
|
|
3863
3866
|
representatives.set(pair, id);
|
|
3864
3867
|
}
|
|
3865
3868
|
}
|
|
3866
3869
|
const collapsed = [];
|
|
3867
3870
|
const parallel = [];
|
|
3868
3871
|
for (const id of [...rows.keys()].sort(
|
|
3869
|
-
(left, right) =>
|
|
3872
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)
|
|
3870
3873
|
)) {
|
|
3871
3874
|
const members = chunkN66HCGCY_cjs.requireDefined(rows.get(id));
|
|
3872
3875
|
const pair = chunkN66HCGCY_cjs.requireDefined(sourcePairs.get(id));
|
|
@@ -3879,7 +3882,7 @@ function foldSets(groupEdges) {
|
|
|
3879
3882
|
return [collapsed, ...parallel];
|
|
3880
3883
|
}
|
|
3881
3884
|
function compareMembers(left, right, preferredBranchId) {
|
|
3882
|
-
const byId2 =
|
|
3885
|
+
const byId2 = chunkRWUWTJQY_cjs.compareStrings(left.staged.id, right.staged.id);
|
|
3883
3886
|
if (byId2 !== 0) {
|
|
3884
3887
|
return byId2;
|
|
3885
3888
|
}
|
|
@@ -3888,7 +3891,7 @@ function compareMembers(left, right, preferredBranchId) {
|
|
|
3888
3891
|
if (leftPreferred !== rightPreferred) {
|
|
3889
3892
|
return leftPreferred ? -1 : 1;
|
|
3890
3893
|
}
|
|
3891
|
-
return
|
|
3894
|
+
return chunkRWUWTJQY_cjs.compareStrings(left.staged.branchId, right.staged.branchId);
|
|
3892
3895
|
}
|
|
3893
3896
|
function pickSurvivor(edges, preferredBranchId) {
|
|
3894
3897
|
const inherited = edges.filter(
|
|
@@ -3914,8 +3917,8 @@ function authoredProperty(edge, property) {
|
|
|
3914
3917
|
}
|
|
3915
3918
|
function unauthoredValue(property, edges) {
|
|
3916
3919
|
const carriers = edges.filter((edge) => chunkN66HCGCY_cjs.hasOwnKey(edge.staged.props, property)).sort((left, right) => {
|
|
3917
|
-
const byId2 =
|
|
3918
|
-
return byId2 === 0 ?
|
|
3920
|
+
const byId2 = chunkRWUWTJQY_cjs.compareStrings(left.staged.id, right.staged.id);
|
|
3921
|
+
return byId2 === 0 ? chunkRWUWTJQY_cjs.compareStrings(
|
|
3919
3922
|
canonicalValueKey(left.staged.props[property]),
|
|
3920
3923
|
canonicalValueKey(right.staged.props[property])
|
|
3921
3924
|
) : byId2;
|
|
@@ -3932,7 +3935,7 @@ function unionEdgeProps(survivorId, kind, survivor, edges, context, branchRank,
|
|
|
3932
3935
|
const props = chunkN66HCGCY_cjs.createDataKeyedBag();
|
|
3933
3936
|
const conflicts = [];
|
|
3934
3937
|
for (const property of [...propertyNames].sort(
|
|
3935
|
-
(left, right) =>
|
|
3938
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)
|
|
3936
3939
|
)) {
|
|
3937
3940
|
const claimants = edges.filter((edge) => authoredProperty(edge, property)).map((edge) => edge.staged);
|
|
3938
3941
|
const values = collectConflictingValues(property, claimants);
|
|
@@ -3965,7 +3968,7 @@ function unionEdgeProps(survivorId, kind, survivor, edges, context, branchRank,
|
|
|
3965
3968
|
function foldEdgeSet(foldSet, context, branchRank, preferredBranchId) {
|
|
3966
3969
|
const survivor = pickSurvivor(foldSet, preferredBranchId);
|
|
3967
3970
|
const survivorId = survivor.staged.id;
|
|
3968
|
-
const mergedIds = foldSet.map((edge) => edge.staged.id).sort((left, right) =>
|
|
3971
|
+
const mergedIds = foldSet.map((edge) => edge.staged.id).sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right));
|
|
3969
3972
|
const fromId = idOf(survivor.fromKey);
|
|
3970
3973
|
const fromKind = kindOf(survivor.fromKey);
|
|
3971
3974
|
const toId = idOf(survivor.toKey);
|
|
@@ -4063,7 +4066,7 @@ function repointEdges(stagedEdges, canonicalOf, deletedNodeIds, policy, branchRa
|
|
|
4063
4066
|
const merged = [];
|
|
4064
4067
|
const conflicts = [];
|
|
4065
4068
|
const sortedGroups = [...liveByGroup.keys()].sort(
|
|
4066
|
-
(left, right) =>
|
|
4069
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)
|
|
4067
4070
|
);
|
|
4068
4071
|
for (const group of sortedGroups) {
|
|
4069
4072
|
const groupEdges = chunkN66HCGCY_cjs.requireDefined(liveByGroup.get(group));
|
|
@@ -4091,12 +4094,12 @@ function repointEdges(stagedEdges, canonicalOf, deletedNodeIds, policy, branchRa
|
|
|
4091
4094
|
),
|
|
4092
4095
|
edge.id
|
|
4093
4096
|
])
|
|
4094
|
-
})).sort((left, right) =>
|
|
4097
|
+
})).sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.sortKey, right.sortKey)).map(({ edge }) => edge);
|
|
4095
4098
|
return {
|
|
4096
4099
|
edges: sortedEdges,
|
|
4097
|
-
dropped: dropped.sort((left, right) =>
|
|
4100
|
+
dropped: dropped.sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)),
|
|
4098
4101
|
conflicts: conflicts.sort(
|
|
4099
|
-
(left, right) =>
|
|
4102
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(
|
|
4100
4103
|
`${left.entityId}|${left.property}`,
|
|
4101
4104
|
`${right.entityId}|${right.property}`
|
|
4102
4105
|
)
|
|
@@ -4767,7 +4770,7 @@ var mergePlanArtifactV1Schema = mergePlanArtifactV1BaseSchema.superRefine(
|
|
|
4767
4770
|
// src/graph-merge/plan-canonical.ts
|
|
4768
4771
|
function canonicalMergePlanJson(artifact) {
|
|
4769
4772
|
const digestless = "digest" in artifact ? omitDigest(artifact) : artifact;
|
|
4770
|
-
return JSON.stringify(digestless,
|
|
4773
|
+
return JSON.stringify(digestless, chunkNLX5OWK7_cjs.sortedReplacer);
|
|
4771
4774
|
}
|
|
4772
4775
|
async function computeMergePlanDigest(artifact) {
|
|
4773
4776
|
return chunkZY4GXIVN_cjs.sha256Hex(canonicalMergePlanJson(artifact), 32);
|
|
@@ -4781,7 +4784,7 @@ async function finalizeMergePlanArtifact(artifact) {
|
|
|
4781
4784
|
}
|
|
4782
4785
|
};
|
|
4783
4786
|
const canonical = JSON.parse(
|
|
4784
|
-
JSON.stringify(finalized,
|
|
4787
|
+
JSON.stringify(finalized, chunkNLX5OWK7_cjs.sortedReplacer)
|
|
4785
4788
|
);
|
|
4786
4789
|
return canonical;
|
|
4787
4790
|
}
|
|
@@ -4846,7 +4849,7 @@ function readFormatVersion(input) {
|
|
|
4846
4849
|
}
|
|
4847
4850
|
var PROVENANCE_KIND = "Provenance";
|
|
4848
4851
|
var PROVENANCE_OWNER_KIND = "ProvenanceOwner";
|
|
4849
|
-
var Provenance =
|
|
4852
|
+
var Provenance = chunkPS3TUWJM_cjs.defineNode(PROVENANCE_KIND, {
|
|
4850
4853
|
schema: zod.z.object({
|
|
4851
4854
|
targetGraphId: zod.z.string(),
|
|
4852
4855
|
role: zod.z.enum(["node", "edge"]),
|
|
@@ -4859,7 +4862,7 @@ var Provenance = chunk26YKDNUD_cjs.defineNode(PROVENANCE_KIND, {
|
|
|
4859
4862
|
var PROVENANCE_OWNER = "@nicia-ai/typegraph/merge-provenance";
|
|
4860
4863
|
var PROVENANCE_OWNER_VERSION = 1;
|
|
4861
4864
|
var PROVENANCE_OWNER_ID = "merge-provenance-owner";
|
|
4862
|
-
var ProvenanceOwner =
|
|
4865
|
+
var ProvenanceOwner = chunkPS3TUWJM_cjs.defineNode(PROVENANCE_OWNER_KIND, {
|
|
4863
4866
|
schema: zod.z.object({
|
|
4864
4867
|
owner: zod.z.literal(PROVENANCE_OWNER),
|
|
4865
4868
|
version: zod.z.literal(PROVENANCE_OWNER_VERSION),
|
|
@@ -4870,7 +4873,7 @@ function provenanceGraphId(targetGraphId) {
|
|
|
4870
4873
|
return `${targetGraphId}::merge-provenance`;
|
|
4871
4874
|
}
|
|
4872
4875
|
function buildOwnedProvenanceGraph(targetGraphId) {
|
|
4873
|
-
return
|
|
4876
|
+
return chunk7B7I7YAW_cjs.defineInternalGraph({
|
|
4874
4877
|
id: provenanceGraphId(targetGraphId),
|
|
4875
4878
|
nodes: {
|
|
4876
4879
|
Provenance: { type: Provenance },
|
|
@@ -4880,14 +4883,14 @@ function buildOwnedProvenanceGraph(targetGraphId) {
|
|
|
4880
4883
|
});
|
|
4881
4884
|
}
|
|
4882
4885
|
function buildProvenanceGraph(targetGraphId) {
|
|
4883
|
-
return
|
|
4886
|
+
return chunk7B7I7YAW_cjs.defineInternalGraph({
|
|
4884
4887
|
id: provenanceGraphId(targetGraphId),
|
|
4885
4888
|
nodes: { Provenance: { type: Provenance } },
|
|
4886
4889
|
edges: {}
|
|
4887
4890
|
});
|
|
4888
4891
|
}
|
|
4889
4892
|
async function openProvenanceStore(...args) {
|
|
4890
|
-
const [backend, targetGraphId] = args.length === 1 ? [
|
|
4893
|
+
const [backend, targetGraphId] = args.length === 1 ? [chunk2CVDZCXH_cjs.storeBackend(args[0]), args[0].graphId] : args;
|
|
4891
4894
|
const graph = buildOwnedProvenanceGraph(targetGraphId);
|
|
4892
4895
|
const preflight = await inspectSidecarGraphId(backend, graph, targetGraphId);
|
|
4893
4896
|
if (preflight.state === "refuse") {
|
|
@@ -4899,7 +4902,7 @@ async function openProvenanceStore(...args) {
|
|
|
4899
4902
|
throw provenanceGraphIdCollision(graph.id, targetGraphId, claim.reason);
|
|
4900
4903
|
}
|
|
4901
4904
|
}
|
|
4902
|
-
const [store] = await
|
|
4905
|
+
const [store] = await chunkWRBV2FNH_cjs.createStoreWithSchema(graph, backend);
|
|
4903
4906
|
return store;
|
|
4904
4907
|
}
|
|
4905
4908
|
async function claimSidecarOwnership(backend, graph, targetGraphId) {
|
|
@@ -4925,13 +4928,26 @@ async function claimSidecarOwnership(backend, graph, targetGraphId) {
|
|
|
4925
4928
|
});
|
|
4926
4929
|
}
|
|
4927
4930
|
async function drainUnfencedRowWriters(tx) {
|
|
4928
|
-
|
|
4929
|
-
const
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
)
|
|
4931
|
+
const plan = chunkNUQ2YFFH_cjs.resolveWriteFencePlan(tx);
|
|
4932
|
+
const fence = chunkNUQ2YFFH_cjs.requireWriteFence(
|
|
4933
|
+
plan,
|
|
4934
|
+
"graph-merge provenance fence",
|
|
4935
|
+
"table-lock"
|
|
4936
|
+
);
|
|
4937
|
+
switch (fence.kind) {
|
|
4938
|
+
case "lock": {
|
|
4939
|
+
const schema = chunkNUQ2YFFH_cjs.createSqlSchema(tx.tableNames);
|
|
4940
|
+
await tx.executeStatement(
|
|
4941
|
+
chunkH5IJSROF_cjs.asCompiledStatementSql(
|
|
4942
|
+
chunkH5IJSROF_cjs.sql`LOCK TABLE ${schema.nodesTable}, ${schema.edgesTable} IN SHARE ROW EXCLUSIVE MODE`
|
|
4943
|
+
)
|
|
4944
|
+
);
|
|
4945
|
+
return;
|
|
4946
|
+
}
|
|
4947
|
+
case "engine-serialized": {
|
|
4948
|
+
return;
|
|
4949
|
+
}
|
|
4950
|
+
}
|
|
4935
4951
|
}
|
|
4936
4952
|
async function inspectSidecarGraphId(port, graph, targetGraphId) {
|
|
4937
4953
|
const activeSchema = await port.getActiveSchema(graph.id);
|
|
@@ -4948,14 +4964,14 @@ async function inspectSidecarGraphId(port, graph, targetGraphId) {
|
|
|
4948
4964
|
if (activeSchema === void 0) {
|
|
4949
4965
|
return { state: "refuse", reason: "application-graph" };
|
|
4950
4966
|
}
|
|
4951
|
-
const ownedHash = await
|
|
4952
|
-
|
|
4967
|
+
const ownedHash = await chunkJHRUZ73O_cjs.computeSchemaHash(
|
|
4968
|
+
chunkJHRUZ73O_cjs.serializeSchema(graph, activeSchema.version)
|
|
4953
4969
|
);
|
|
4954
4970
|
if (activeSchema.schema_hash === ownedHash) {
|
|
4955
4971
|
return { state: "refuse", reason: "unowned-exact-schema-graph" };
|
|
4956
4972
|
}
|
|
4957
|
-
const legacyHash = await
|
|
4958
|
-
|
|
4973
|
+
const legacyHash = await chunkJHRUZ73O_cjs.computeSchemaHash(
|
|
4974
|
+
chunkJHRUZ73O_cjs.serializeSchema(buildProvenanceGraph(targetGraphId), activeSchema.version)
|
|
4959
4975
|
);
|
|
4960
4976
|
if (activeSchema.schema_hash !== legacyHash) {
|
|
4961
4977
|
return { state: "refuse", reason: "application-graph" };
|
|
@@ -4995,7 +5011,7 @@ var SIDECAR_REFUSALS = {
|
|
|
4995
5011
|
};
|
|
4996
5012
|
function provenanceGraphIdCollision(graphId, targetGraphId, reason) {
|
|
4997
5013
|
const refusal = SIDECAR_REFUSALS[reason];
|
|
4998
|
-
return new
|
|
5014
|
+
return new chunkX4GDXBOP_cjs.ConfigurationError(
|
|
4999
5015
|
refusal.describe(graphId, targetGraphId),
|
|
5000
5016
|
{
|
|
5001
5017
|
code: "GRAPH_MERGE_PROVENANCE_ID_COLLISION",
|
|
@@ -5007,7 +5023,7 @@ function provenanceGraphIdCollision(graphId, targetGraphId, reason) {
|
|
|
5007
5023
|
);
|
|
5008
5024
|
}
|
|
5009
5025
|
function provenanceClaimUnfenced(graphId, targetGraphId) {
|
|
5010
|
-
return new
|
|
5026
|
+
return new chunkX4GDXBOP_cjs.ConfigurationError(
|
|
5011
5027
|
`Claiming graph id "${graphId}" for merge provenance requires a transactional schema fence, which this backend does not provide.`,
|
|
5012
5028
|
{
|
|
5013
5029
|
code: "GRAPH_MERGE_PROVENANCE_CLAIM_UNFENCED",
|
|
@@ -5059,12 +5075,12 @@ async function* readRowsOfKind(port, graphId, kind) {
|
|
|
5059
5075
|
}
|
|
5060
5076
|
}
|
|
5061
5077
|
async function hasRowsUnderGraphId(port, graphId, scope) {
|
|
5062
|
-
const schema =
|
|
5063
|
-
const kindFilter = scope === "any" ?
|
|
5078
|
+
const schema = chunkNUQ2YFFH_cjs.createSqlSchema(port.tableNames);
|
|
5079
|
+
const kindFilter = scope === "any" ? chunkH5IJSROF_cjs.sql.empty() : chunkH5IJSROF_cjs.sql` AND kind <> ${PROVENANCE_KIND}`;
|
|
5064
5080
|
if (await hasRowsInTable(port, schema.tables.nodes, graphId, kindFilter)) {
|
|
5065
5081
|
return true;
|
|
5066
5082
|
}
|
|
5067
|
-
if (await hasRowsInTable(port, schema.tables.edges, graphId,
|
|
5083
|
+
if (await hasRowsInTable(port, schema.tables.edges, graphId, chunkH5IJSROF_cjs.sql.empty())) {
|
|
5068
5084
|
return true;
|
|
5069
5085
|
}
|
|
5070
5086
|
for (const tableName of secondaryRowTableNames(schema.tables)) {
|
|
@@ -5084,14 +5100,15 @@ function secondaryRowTableNames(tables) {
|
|
|
5084
5100
|
tables.identityClosure,
|
|
5085
5101
|
tables.identitySeparation,
|
|
5086
5102
|
tables.fulltext,
|
|
5087
|
-
tables.uniques
|
|
5103
|
+
tables.uniques,
|
|
5104
|
+
tables.edgeClaims
|
|
5088
5105
|
])
|
|
5089
5106
|
];
|
|
5090
5107
|
}
|
|
5091
5108
|
async function hasRowsInTable(port, tableName, graphId, filter) {
|
|
5092
5109
|
const rows = await port.execute(
|
|
5093
|
-
|
|
5094
|
-
|
|
5110
|
+
chunkH5IJSROF_cjs.asCompiledRowsSql(
|
|
5111
|
+
chunkH5IJSROF_cjs.sql`SELECT 1 AS present FROM ${chunkH5IJSROF_cjs.sql.identifier(tableName)} WHERE graph_id = ${graphId}${filter} LIMIT 1`
|
|
5095
5112
|
)
|
|
5096
5113
|
);
|
|
5097
5114
|
return rows.length > 0;
|
|
@@ -5099,10 +5116,10 @@ async function hasRowsInTable(port, tableName, graphId, filter) {
|
|
|
5099
5116
|
async function hasRowsInSecondaryTable(port, tableName, graphId) {
|
|
5100
5117
|
const tableExists = port.tableExists;
|
|
5101
5118
|
if (tableExists !== void 0) {
|
|
5102
|
-
return await tableExists(tableName) && await hasRowsInTable(port, tableName, graphId,
|
|
5119
|
+
return await tableExists(tableName) && await hasRowsInTable(port, tableName, graphId, chunkH5IJSROF_cjs.sql.empty());
|
|
5103
5120
|
}
|
|
5104
5121
|
try {
|
|
5105
|
-
return await hasRowsInTable(port, tableName, graphId,
|
|
5122
|
+
return await hasRowsInTable(port, tableName, graphId, chunkH5IJSROF_cjs.sql.empty());
|
|
5106
5123
|
} catch {
|
|
5107
5124
|
return false;
|
|
5108
5125
|
}
|
|
@@ -5147,7 +5164,7 @@ function contributionKey(record) {
|
|
|
5147
5164
|
]);
|
|
5148
5165
|
}
|
|
5149
5166
|
function encodeProvenanceTuple(values) {
|
|
5150
|
-
return values.some((value) => value.includes(ID_SEPARATOR)) ?
|
|
5167
|
+
return values.some((value) => value.includes(ID_SEPARATOR)) ? chunkCRZ56SZU_cjs.encodeTupleKey(values) : values.join(ID_SEPARATOR);
|
|
5151
5168
|
}
|
|
5152
5169
|
async function provenanceNodeId(targetGraphId, record) {
|
|
5153
5170
|
const tuple = encodeProvenanceTuple([
|
|
@@ -5190,7 +5207,7 @@ async function readProvenance(store, query = {}) {
|
|
|
5190
5207
|
const all = await store.nodes.Provenance.find();
|
|
5191
5208
|
return all.filter(
|
|
5192
5209
|
(node) => (query.branchId === void 0 || node.branchId === query.branchId) && (query.canonicalId === void 0 || node.canonicalId === query.canonicalId) && (query.role === void 0 || node.role === query.role)
|
|
5193
|
-
).sort((left, right) =>
|
|
5210
|
+
).sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id));
|
|
5194
5211
|
}
|
|
5195
5212
|
|
|
5196
5213
|
// src/graph-merge/sources.ts
|
|
@@ -5200,10 +5217,10 @@ function orderEndpoints(left, right, sources) {
|
|
|
5200
5217
|
return compareMergeKeys(leftKey, rightKey) <= 0 ? { a: leftKey, b: rightKey, left, right, sources } : { a: rightKey, b: leftKey, left: right, right: left, sources };
|
|
5201
5218
|
}
|
|
5202
5219
|
function sortMembersById(members) {
|
|
5203
|
-
return [...members].sort((left, right) =>
|
|
5220
|
+
return [...members].sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id));
|
|
5204
5221
|
}
|
|
5205
5222
|
function sortedBucketKeys(blocks) {
|
|
5206
|
-
return [...blocks.keys()].sort((left, right) =>
|
|
5223
|
+
return [...blocks.keys()].sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right));
|
|
5207
5224
|
}
|
|
5208
5225
|
var NODE_SYSTEM_FIELDS = /* @__PURE__ */ new Set(["id", "kind", "meta"]);
|
|
5209
5226
|
function nodeProps(node) {
|
|
@@ -5231,7 +5248,7 @@ function windowedPairs(members, config) {
|
|
|
5231
5248
|
key: fieldText(node, config.sortFields)
|
|
5232
5249
|
}));
|
|
5233
5250
|
keyed.sort(
|
|
5234
|
-
(left, right) => left.key === right.key ?
|
|
5251
|
+
(left, right) => left.key === right.key ? chunkRWUWTJQY_cjs.compareStrings(left.node.id, right.node.id) : chunkRWUWTJQY_cjs.compareStrings(left.key, right.key)
|
|
5235
5252
|
);
|
|
5236
5253
|
const pairs = [];
|
|
5237
5254
|
for (let index = 0; index < keyed.length; index += 1) {
|
|
@@ -5342,7 +5359,7 @@ function ontologyRetypeEdges(stagedIdentities, isRetypeCompatible) {
|
|
|
5342
5359
|
}
|
|
5343
5360
|
}
|
|
5344
5361
|
const edges = [];
|
|
5345
|
-
for (const id of [...identitiesById.keys()].sort(
|
|
5362
|
+
for (const id of [...identitiesById.keys()].sort(chunkRWUWTJQY_cjs.compareStrings)) {
|
|
5346
5363
|
const identities = [...new Set(identitiesById.get(id))].sort(
|
|
5347
5364
|
compareMergeKeys
|
|
5348
5365
|
);
|
|
@@ -5450,7 +5467,7 @@ var baseUniqueSource = {
|
|
|
5450
5467
|
const forcedEdges = [];
|
|
5451
5468
|
const baseMembers = /* @__PURE__ */ new Map();
|
|
5452
5469
|
const constraints = [...uniqueConstraints].sort(
|
|
5453
|
-
(left, right) =>
|
|
5470
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left.name, right.name)
|
|
5454
5471
|
);
|
|
5455
5472
|
const items = nodes.map((node) => ({ props: nodeProps(node) }));
|
|
5456
5473
|
const matchesByConstraint = await Promise.all(
|
|
@@ -5520,7 +5537,7 @@ var baseUniqueSource = {
|
|
|
5520
5537
|
pairs: [],
|
|
5521
5538
|
forcedEdges,
|
|
5522
5539
|
baseMembers: [...baseMembers.values()].sort(
|
|
5523
|
-
(left, right) =>
|
|
5540
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)
|
|
5524
5541
|
)
|
|
5525
5542
|
};
|
|
5526
5543
|
}
|
|
@@ -5598,7 +5615,7 @@ var baseKeySource = {
|
|
|
5598
5615
|
pairs,
|
|
5599
5616
|
forcedEdges: [],
|
|
5600
5617
|
baseMembers: [...baseMembers.values()].sort(
|
|
5601
|
-
(left, right) =>
|
|
5618
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)
|
|
5602
5619
|
)
|
|
5603
5620
|
};
|
|
5604
5621
|
}
|
|
@@ -5610,16 +5627,16 @@ var CANDIDATE_SOURCES = [
|
|
|
5610
5627
|
|
|
5611
5628
|
// src/graph-merge/staging.ts
|
|
5612
5629
|
function compareByIdThenBranch(left, right) {
|
|
5613
|
-
const byId2 =
|
|
5614
|
-
return byId2 === 0 ?
|
|
5630
|
+
const byId2 = chunkRWUWTJQY_cjs.compareStrings(left.id, right.id);
|
|
5631
|
+
return byId2 === 0 ? chunkRWUWTJQY_cjs.compareStrings(left.branchId, right.branchId) : byId2;
|
|
5615
5632
|
}
|
|
5616
5633
|
function compareByKindIdBranch(left, right) {
|
|
5617
|
-
const byKind =
|
|
5634
|
+
const byKind = chunkRWUWTJQY_cjs.compareStrings(left.kind, right.kind);
|
|
5618
5635
|
if (byKind !== 0) {
|
|
5619
5636
|
return byKind;
|
|
5620
5637
|
}
|
|
5621
|
-
const byId2 =
|
|
5622
|
-
return byId2 === 0 ?
|
|
5638
|
+
const byId2 = chunkRWUWTJQY_cjs.compareStrings(left.id, right.id);
|
|
5639
|
+
return byId2 === 0 ? chunkRWUWTJQY_cjs.compareStrings(left.branchId, right.branchId) : byId2;
|
|
5623
5640
|
}
|
|
5624
5641
|
function groupByKind(items) {
|
|
5625
5642
|
const buckets = /* @__PURE__ */ new Map();
|
|
@@ -5633,7 +5650,7 @@ function groupByKind(items) {
|
|
|
5633
5650
|
}
|
|
5634
5651
|
const ordered = /* @__PURE__ */ new Map();
|
|
5635
5652
|
for (const kind of [...buckets.keys()].sort(
|
|
5636
|
-
(left, right) =>
|
|
5653
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)
|
|
5637
5654
|
)) {
|
|
5638
5655
|
ordered.set(
|
|
5639
5656
|
kind,
|
|
@@ -5655,7 +5672,7 @@ async function stageBranches(baseStore, branches, captureTargetStateFor) {
|
|
|
5655
5672
|
const windowedEdges = [];
|
|
5656
5673
|
const newIdentityAssertions = [];
|
|
5657
5674
|
const retractedIdentityAssertions = [];
|
|
5658
|
-
const baseIdentityAssertions = await
|
|
5675
|
+
const baseIdentityAssertions = await chunk2CVDZCXH_cjs.storeRuntime(baseStore).readCurrentIdentityAssertions("state");
|
|
5659
5676
|
let targetNodeVersions = /* @__PURE__ */ new Map();
|
|
5660
5677
|
let targetEdgeSignatures = /* @__PURE__ */ new Map();
|
|
5661
5678
|
for (const branch2 of branches) {
|
|
@@ -5726,17 +5743,17 @@ async function stageBranches(baseStore, branches, captureTargetStateFor) {
|
|
|
5726
5743
|
(left, right) => compareByKindIdBranch(left, right)
|
|
5727
5744
|
),
|
|
5728
5745
|
newIdentityAssertions: newIdentityAssertions.toSorted((left, right) => {
|
|
5729
|
-
const byId2 =
|
|
5730
|
-
return byId2 === 0 ?
|
|
5746
|
+
const byId2 = chunkRWUWTJQY_cjs.compareStrings(left.assertion.id, right.assertion.id);
|
|
5747
|
+
return byId2 === 0 ? chunkRWUWTJQY_cjs.compareStrings(left.branchId, right.branchId) : byId2;
|
|
5731
5748
|
}),
|
|
5732
5749
|
retractedIdentityAssertions: retractedIdentityAssertions.toSorted(
|
|
5733
5750
|
(left, right) => {
|
|
5734
|
-
const byId2 =
|
|
5735
|
-
return byId2 === 0 ?
|
|
5751
|
+
const byId2 = chunkRWUWTJQY_cjs.compareStrings(left.assertion.id, right.assertion.id);
|
|
5752
|
+
return byId2 === 0 ? chunkRWUWTJQY_cjs.compareStrings(left.branchId, right.branchId) : byId2;
|
|
5736
5753
|
}
|
|
5737
5754
|
),
|
|
5738
5755
|
baseIdentityAssertions: baseIdentityAssertions.toSorted(
|
|
5739
|
-
(left, right) =>
|
|
5756
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)
|
|
5740
5757
|
),
|
|
5741
5758
|
targetNodeVersions,
|
|
5742
5759
|
targetEdgeSignatures
|
|
@@ -5788,7 +5805,7 @@ async function withTxConflictRetry(commit) {
|
|
|
5788
5805
|
// src/graph-merge/type-reconcile.ts
|
|
5789
5806
|
var INCOMPATIBLE_TYPES_FLAG_REASON = "type-reconcile:incompatible-kinds";
|
|
5790
5807
|
function distinctKinds(kinds) {
|
|
5791
|
-
return [...new Set(kinds)].sort((left, right) =>
|
|
5808
|
+
return [...new Set(kinds)].sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right));
|
|
5792
5809
|
}
|
|
5793
5810
|
function areEquivalent(closure, left, right) {
|
|
5794
5811
|
return left !== right && isReachable2(closure, left, right) && isReachable2(closure, right, left);
|
|
@@ -5807,7 +5824,7 @@ function mostSpecificCommonKind(closure, kinds) {
|
|
|
5807
5824
|
return void 0;
|
|
5808
5825
|
}
|
|
5809
5826
|
return chunkN66HCGCY_cjs.requireDefined(
|
|
5810
|
-
[...qualifiers].sort((left, right) =>
|
|
5827
|
+
[...qualifiers].sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right))[0]
|
|
5811
5828
|
);
|
|
5812
5829
|
}
|
|
5813
5830
|
function reconcileTypes(clusters, closure, mode) {
|
|
@@ -5845,10 +5862,10 @@ function reconcileTypes(clusters, closure, mode) {
|
|
|
5845
5862
|
}
|
|
5846
5863
|
return {
|
|
5847
5864
|
reconciliations: reconciliations.sort(
|
|
5848
|
-
(left, right) =>
|
|
5865
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left.entityId, right.entityId)
|
|
5849
5866
|
),
|
|
5850
5867
|
retypeMap,
|
|
5851
|
-
dropped: dropped.sort((left, right) =>
|
|
5868
|
+
dropped: dropped.sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id))
|
|
5852
5869
|
};
|
|
5853
5870
|
}
|
|
5854
5871
|
|
|
@@ -5866,8 +5883,8 @@ function newNodesByKind(staging) {
|
|
|
5866
5883
|
ordered.set(
|
|
5867
5884
|
kind,
|
|
5868
5885
|
[...items].sort((left, right) => {
|
|
5869
|
-
const byId2 =
|
|
5870
|
-
return byId2 === 0 ?
|
|
5886
|
+
const byId2 = chunkRWUWTJQY_cjs.compareStrings(left.node.id, right.node.id);
|
|
5887
|
+
return byId2 === 0 ? chunkRWUWTJQY_cjs.compareStrings(left.branchId, right.branchId) : byId2;
|
|
5871
5888
|
})
|
|
5872
5889
|
);
|
|
5873
5890
|
}
|
|
@@ -5901,7 +5918,7 @@ async function precomputeEmbeddings(byKind, resolve, embedder) {
|
|
|
5901
5918
|
}
|
|
5902
5919
|
async function embedSortedTexts(texts, embedder) {
|
|
5903
5920
|
const orderedTexts = [...texts].sort(
|
|
5904
|
-
(left, right) =>
|
|
5921
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)
|
|
5905
5922
|
);
|
|
5906
5923
|
const vectors = await embedder(orderedTexts);
|
|
5907
5924
|
if (vectors.length !== orderedTexts.length) {
|
|
@@ -5953,7 +5970,7 @@ async function generateAllCandidates(target, staging, options, introspectionKind
|
|
|
5953
5970
|
async ([kind, items]) => {
|
|
5954
5971
|
const resolveConfig = options.resolve[kind];
|
|
5955
5972
|
if (resolveConfig === void 0) {
|
|
5956
|
-
return
|
|
5973
|
+
return chunkRJMHU2MG_cjs.ok({
|
|
5957
5974
|
edges: [],
|
|
5958
5975
|
warnings: [],
|
|
5959
5976
|
baseMembers: [],
|
|
@@ -6003,10 +6020,10 @@ async function generateAllCandidates(target, staging, options, introspectionKind
|
|
|
6003
6020
|
options.maxComparisonsPerKind,
|
|
6004
6021
|
options.candidateDiagnostics?.limit ?? 0
|
|
6005
6022
|
);
|
|
6006
|
-
if (
|
|
6007
|
-
return
|
|
6023
|
+
if (chunkRJMHU2MG_cjs.isErr(scored)) {
|
|
6024
|
+
return chunkRJMHU2MG_cjs.err(scored.error);
|
|
6008
6025
|
}
|
|
6009
|
-
return
|
|
6026
|
+
return chunkRJMHU2MG_cjs.ok({
|
|
6010
6027
|
edges: scored.data.edges,
|
|
6011
6028
|
warnings: scored.data.warnings.map(
|
|
6012
6029
|
(warning) => `[${kind}] ${warning.message}`
|
|
@@ -6019,8 +6036,8 @@ async function generateAllCandidates(target, staging, options, introspectionKind
|
|
|
6019
6036
|
)
|
|
6020
6037
|
);
|
|
6021
6038
|
for (const result of perKind) {
|
|
6022
|
-
if (
|
|
6023
|
-
return
|
|
6039
|
+
if (chunkRJMHU2MG_cjs.isErr(result)) {
|
|
6040
|
+
return chunkRJMHU2MG_cjs.err(result.error);
|
|
6024
6041
|
}
|
|
6025
6042
|
allEdges.push(...result.data.edges);
|
|
6026
6043
|
warnings.push(...result.data.warnings);
|
|
@@ -6034,7 +6051,7 @@ async function generateAllCandidates(target, staging, options, introspectionKind
|
|
|
6034
6051
|
}
|
|
6035
6052
|
diagnosticsTotal += result.data.diagnosticsTotal;
|
|
6036
6053
|
}
|
|
6037
|
-
return
|
|
6054
|
+
return chunkRJMHU2MG_cjs.ok({
|
|
6038
6055
|
// The ONE shared `(a, b)` edge comparator (id-first `(kind, id)` order), so this
|
|
6039
6056
|
// stage emits edges in exactly the order clustering consumes them.
|
|
6040
6057
|
edges: allEdges.sort((left, right) => compareCandidateEdges(left, right)),
|
|
@@ -6176,9 +6193,9 @@ function buildProvenanceIndex(records) {
|
|
|
6176
6193
|
for (const [branchId, sets] of byBranch) {
|
|
6177
6194
|
frozen.set(branchId, {
|
|
6178
6195
|
nodeIds: [...sets.nodeIds].sort(
|
|
6179
|
-
(left, right) =>
|
|
6196
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)
|
|
6180
6197
|
),
|
|
6181
|
-
edgeIds: [...sets.edgeIds].sort((left, right) =>
|
|
6198
|
+
edgeIds: [...sets.edgeIds].sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right)).map((id) => id)
|
|
6182
6199
|
});
|
|
6183
6200
|
}
|
|
6184
6201
|
return {
|
|
@@ -6578,7 +6595,7 @@ function buildInternalMergePlan(staging, candidateEdges, candidateWarnings, cand
|
|
|
6578
6595
|
...identityRemap.dropped,
|
|
6579
6596
|
...validWindows.dropped
|
|
6580
6597
|
].sort(
|
|
6581
|
-
(left, right) =>
|
|
6598
|
+
(left, right) => chunkRWUWTJQY_cjs.compareStrings(`${left.kind}|${left.id}`, `${right.kind}|${right.id}`)
|
|
6582
6599
|
);
|
|
6583
6600
|
return {
|
|
6584
6601
|
canonicalEntities,
|
|
@@ -6615,7 +6632,7 @@ function buildInternalMergePlan(staging, candidateEdges, candidateWarnings, cand
|
|
|
6615
6632
|
mergeKey(left.kind, left.entityId),
|
|
6616
6633
|
mergeKey(right.kind, right.entityId)
|
|
6617
6634
|
);
|
|
6618
|
-
return byEntity === 0 ?
|
|
6635
|
+
return byEntity === 0 ? chunkRWUWTJQY_cjs.compareStrings(left.property, right.property) : byEntity;
|
|
6619
6636
|
}
|
|
6620
6637
|
),
|
|
6621
6638
|
deleteModifyConflicts: [
|
|
@@ -6798,7 +6815,7 @@ async function applyNodeRows(target, txBackend, nodesApi, deletions, upserts) {
|
|
|
6798
6815
|
afterImages.set(mergeKey(kind, item.id), props);
|
|
6799
6816
|
}
|
|
6800
6817
|
}
|
|
6801
|
-
return
|
|
6818
|
+
return chunk2CVDZCXH_cjs.storeRuntime(target).applyResolvedNodeUniqueness(
|
|
6802
6819
|
txBackend,
|
|
6803
6820
|
{
|
|
6804
6821
|
upserts: upserts.map((upsert) => ({
|
|
@@ -6846,7 +6863,7 @@ async function applyEdgeRows(edgesApi, deletions, upserts) {
|
|
|
6846
6863
|
}
|
|
6847
6864
|
async function applyIdentityRows(target, txBackend, assertions, retractions, assertConsistent) {
|
|
6848
6865
|
try {
|
|
6849
|
-
const applied = await
|
|
6866
|
+
const applied = await chunk2CVDZCXH_cjs.storeRuntime(target).applyIdentityMergeAtTarget(
|
|
6850
6867
|
txBackend,
|
|
6851
6868
|
retractions,
|
|
6852
6869
|
assertions
|
|
@@ -6894,7 +6911,7 @@ async function applyInternalMergePlan(plan, nodesApi, edgesApi, target, txBacken
|
|
|
6894
6911
|
nodeUpserts
|
|
6895
6912
|
);
|
|
6896
6913
|
} catch (error) {
|
|
6897
|
-
throw error instanceof
|
|
6914
|
+
throw error instanceof chunkX4GDXBOP_cjs.IdentityEndpointValidityError ? translateIdentityCommitError(error) : error;
|
|
6898
6915
|
}
|
|
6899
6916
|
const edgeDeletions = [...plan.edgeDeletions].map(([identity, kind]) => ({
|
|
6900
6917
|
kind,
|
|
@@ -6944,7 +6961,7 @@ async function applyInternalMergePlan(plan, nodesApi, edgesApi, target, txBacken
|
|
|
6944
6961
|
};
|
|
6945
6962
|
}
|
|
6946
6963
|
async function commitPlan(target, plan, expectedBaseVersion) {
|
|
6947
|
-
if (!
|
|
6964
|
+
if (!chunk2CVDZCXH_cjs.storeBackend(target).capabilities.transactions) {
|
|
6948
6965
|
throw new MergeError(
|
|
6949
6966
|
"merge() requires a transaction-capable target backend. The merged plan (canonical upserts, soft-deletes, edge upserts) must commit atomically; a non-transactional fallback would leave a partially-merged graph on a mid-commit failure. (mergeIncremental() enforces the same requirement.)",
|
|
6950
6967
|
{ details: { capability: "transactions" } }
|
|
@@ -6955,14 +6972,14 @@ async function commitPlan(target, plan, expectedBaseVersion) {
|
|
|
6955
6972
|
() => target.transaction(async (tx) => {
|
|
6956
6973
|
if (expectedBaseVersion !== void 0) {
|
|
6957
6974
|
await assertTargetUnchanged(
|
|
6958
|
-
|
|
6975
|
+
chunk2CVDZCXH_cjs.transactionBackend(tx),
|
|
6959
6976
|
target,
|
|
6960
6977
|
expectedBaseVersion
|
|
6961
6978
|
);
|
|
6962
6979
|
}
|
|
6963
6980
|
await assertPlannedIdentityIdsFresh(
|
|
6964
6981
|
target,
|
|
6965
|
-
|
|
6982
|
+
chunk2CVDZCXH_cjs.transactionBackend(tx),
|
|
6966
6983
|
plan
|
|
6967
6984
|
);
|
|
6968
6985
|
return applyInternalMergePlan(
|
|
@@ -6970,7 +6987,7 @@ async function commitPlan(target, plan, expectedBaseVersion) {
|
|
|
6970
6987
|
tx.nodes,
|
|
6971
6988
|
tx.edges,
|
|
6972
6989
|
target,
|
|
6973
|
-
|
|
6990
|
+
chunk2CVDZCXH_cjs.transactionBackend(tx)
|
|
6974
6991
|
);
|
|
6975
6992
|
}, mergeCommitTransactionOptions(target))
|
|
6976
6993
|
)
|
|
@@ -6991,9 +7008,9 @@ function mergeCommitTransactionOptions(target) {
|
|
|
6991
7008
|
}
|
|
6992
7009
|
async function assertTargetUnchanged(txBackend, target, expectedBaseVersion) {
|
|
6993
7010
|
if (hasRevisionAnchor(expectedBaseVersion)) {
|
|
6994
|
-
await
|
|
7011
|
+
await chunkJQKMEKKW_cjs.lockRecordedGraphWrite(txBackend, target.graphId);
|
|
6995
7012
|
const expectedOrigin = revisionOriginOf(expectedBaseVersion);
|
|
6996
|
-
const liveOrigin = await
|
|
7013
|
+
const liveOrigin = await chunkJQKMEKKW_cjs.readRevisionOrigin(
|
|
6997
7014
|
txBackend,
|
|
6998
7015
|
target.revisionSchema,
|
|
6999
7016
|
target.graphId
|
|
@@ -7007,7 +7024,7 @@ async function assertTargetUnchanged(txBackend, target, expectedBaseVersion) {
|
|
|
7007
7024
|
}
|
|
7008
7025
|
);
|
|
7009
7026
|
}
|
|
7010
|
-
const liveRevision = await
|
|
7027
|
+
const liveRevision = await chunkJQKMEKKW_cjs.readRecordedClock(
|
|
7011
7028
|
txBackend,
|
|
7012
7029
|
target.revisionSchema,
|
|
7013
7030
|
target.graphId
|
|
@@ -7028,7 +7045,7 @@ async function assertTargetUnchanged(txBackend, target, expectedBaseVersion) {
|
|
|
7028
7045
|
txBackend,
|
|
7029
7046
|
target.graphId,
|
|
7030
7047
|
target.graph,
|
|
7031
|
-
await
|
|
7048
|
+
await chunk2CVDZCXH_cjs.storeRuntime(target).identityAssertionsAtTarget(txBackend, "state")
|
|
7032
7049
|
);
|
|
7033
7050
|
const expectedContent = contentComponentOf(expectedBaseVersion);
|
|
7034
7051
|
if (liveContent !== expectedContent) {
|
|
@@ -7066,7 +7083,7 @@ async function validateBaseVersions(target, branches) {
|
|
|
7066
7083
|
const targetVersion = await computeBaseVersion(target);
|
|
7067
7084
|
for (const branch2 of branches) {
|
|
7068
7085
|
if (branch2.base !== targetVersion) {
|
|
7069
|
-
return
|
|
7086
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7070
7087
|
new BaseVersionMismatchError(
|
|
7071
7088
|
`Branch "${branch2.id}" forked from base@V "${branch2.base}", which does not match the merge target's current base@V "${targetVersion}".`,
|
|
7072
7089
|
{
|
|
@@ -7080,14 +7097,14 @@ async function validateBaseVersions(target, branches) {
|
|
|
7080
7097
|
);
|
|
7081
7098
|
}
|
|
7082
7099
|
}
|
|
7083
|
-
return
|
|
7100
|
+
return chunkRJMHU2MG_cjs.ok(targetVersion);
|
|
7084
7101
|
}
|
|
7085
7102
|
function tryNormalize(optionsInput, refusedOptions = []) {
|
|
7086
7103
|
const refusedOption = refusedOptions.find(
|
|
7087
7104
|
(option) => chunkN66HCGCY_cjs.hasOwnKey(optionsInput, option)
|
|
7088
7105
|
);
|
|
7089
7106
|
if (refusedOption !== void 0) {
|
|
7090
|
-
return
|
|
7107
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7091
7108
|
new InvalidMergeOptionsError(
|
|
7092
7109
|
`This merge operation does not accept options.${refusedOption}.`,
|
|
7093
7110
|
{ details: { option: refusedOption } }
|
|
@@ -7095,18 +7112,18 @@ function tryNormalize(optionsInput, refusedOptions = []) {
|
|
|
7095
7112
|
);
|
|
7096
7113
|
}
|
|
7097
7114
|
try {
|
|
7098
|
-
return
|
|
7115
|
+
return chunkRJMHU2MG_cjs.ok(normalizeMergeOptions(optionsInput));
|
|
7099
7116
|
} catch (error) {
|
|
7100
|
-
return
|
|
7117
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7101
7118
|
new InvalidMergeOptionsError("Invalid merge options.", { cause: error })
|
|
7102
7119
|
);
|
|
7103
7120
|
}
|
|
7104
7121
|
}
|
|
7105
7122
|
async function tryOpenProvenanceStore(target) {
|
|
7106
7123
|
try {
|
|
7107
|
-
return
|
|
7124
|
+
return chunkRJMHU2MG_cjs.ok(await openProvenanceStore(target));
|
|
7108
7125
|
} catch (error) {
|
|
7109
|
-
const code = error instanceof
|
|
7126
|
+
const code = error instanceof chunkX4GDXBOP_cjs.TypeGraphError ? error.details?.code : void 0;
|
|
7110
7127
|
const details = {
|
|
7111
7128
|
option: "persistProvenance",
|
|
7112
7129
|
graphId: provenanceGraphId(target.graphId),
|
|
@@ -7114,13 +7131,13 @@ async function tryOpenProvenanceStore(target) {
|
|
|
7114
7131
|
...typeof code === "string" ? { provenanceErrorCode: code } : {}
|
|
7115
7132
|
};
|
|
7116
7133
|
const message = `options.persistProvenance was requested but the merge-provenance sidecar cannot be opened: ${describeCause(error)}`;
|
|
7117
|
-
return
|
|
7134
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7118
7135
|
code === "GRAPH_MERGE_PROVENANCE_ID_COLLISION" || code === "GRAPH_MERGE_PROVENANCE_CLAIM_UNFENCED" ? new InvalidMergeOptionsError(message, { details, cause: error }) : new MergeError(message, { details, cause: error })
|
|
7119
7136
|
);
|
|
7120
7137
|
}
|
|
7121
7138
|
}
|
|
7122
7139
|
function assertPublicPlanCapability(target) {
|
|
7123
|
-
if (!
|
|
7140
|
+
if (!chunk2CVDZCXH_cjs.storeBackend(target).capabilities.transactions) {
|
|
7124
7141
|
throw new MergePlanCapabilityError(
|
|
7125
7142
|
"Public merge plans require a transaction-capable target backend.",
|
|
7126
7143
|
{ details: { capability: "transactions" } }
|
|
@@ -7139,7 +7156,7 @@ function assertPublicPlanCapability(target) {
|
|
|
7139
7156
|
async function captureMergePlanTargetFence(target) {
|
|
7140
7157
|
assertPublicPlanCapability(target);
|
|
7141
7158
|
const [activeSchema, schemaHash, origin, revision] = await Promise.all([
|
|
7142
|
-
|
|
7159
|
+
chunk2CVDZCXH_cjs.storeBackend(target).getActiveSchema(target.graphId),
|
|
7143
7160
|
computeSchemaComponent(target),
|
|
7144
7161
|
target.revisionOriginNow(),
|
|
7145
7162
|
target.revisionNow()
|
|
@@ -7168,7 +7185,7 @@ async function assertPlanningFenceUnchanged(target, startingFence) {
|
|
|
7168
7185
|
function splitWireProps(props) {
|
|
7169
7186
|
const setProps = chunkN66HCGCY_cjs.createDataKeyedBag();
|
|
7170
7187
|
const unsetProps = [];
|
|
7171
|
-
for (const key of Object.keys(props).sort(
|
|
7188
|
+
for (const key of Object.keys(props).sort(chunkRWUWTJQY_cjs.compareStrings)) {
|
|
7172
7189
|
const value = props[key];
|
|
7173
7190
|
if (value === void 0) {
|
|
7174
7191
|
unsetProps.push(key);
|
|
@@ -7285,7 +7302,7 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7285
7302
|
let targetBranchSeen = false;
|
|
7286
7303
|
for (const branch2 of branches) {
|
|
7287
7304
|
if (branch2.id === BASE_PROVENANCE_BRANCH) {
|
|
7288
|
-
return
|
|
7305
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7289
7306
|
new MergeError(
|
|
7290
7307
|
`Branch id "${BASE_PROVENANCE_BRANCH}" is reserved for committed-base provenance and cannot be used as a branch id.`,
|
|
7291
7308
|
{ details: { branchId: branch2.id } }
|
|
@@ -7294,7 +7311,7 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7294
7311
|
}
|
|
7295
7312
|
if (branch2.id === COMMITTED_TARGET_BRANCH) {
|
|
7296
7313
|
if (incremental?.targetBranchId !== COMMITTED_TARGET_BRANCH || targetBranchSeen) {
|
|
7297
|
-
return
|
|
7314
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7298
7315
|
new MergeError(
|
|
7299
7316
|
`Branch id "${COMMITTED_TARGET_BRANCH}" is reserved for the committed incremental target and cannot be used as a branch id.`,
|
|
7300
7317
|
{ details: { branchId: branch2.id } }
|
|
@@ -7305,7 +7322,7 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7305
7322
|
}
|
|
7306
7323
|
}
|
|
7307
7324
|
for (const branch2 of branches) {
|
|
7308
|
-
const branchSchemaRow = await
|
|
7325
|
+
const branchSchemaRow = await chunk2CVDZCXH_cjs.storeBackend(branch2.store).getActiveSchema(
|
|
7309
7326
|
branch2.store.graphId
|
|
7310
7327
|
);
|
|
7311
7328
|
let drifted;
|
|
@@ -7313,13 +7330,13 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7313
7330
|
const anchor = branch2.schemaAnchor;
|
|
7314
7331
|
drifted = anchor === void 0 ? branchSchemaRow !== void 0 : branchSchemaRow?.version !== anchor.version || branchSchemaRow.schema_hash !== anchor.hash;
|
|
7315
7332
|
} else {
|
|
7316
|
-
const sourceSchemaRow = await
|
|
7333
|
+
const sourceSchemaRow = await chunk2CVDZCXH_cjs.storeBackend(store).getActiveSchema(
|
|
7317
7334
|
store.graphId
|
|
7318
7335
|
);
|
|
7319
7336
|
drifted = branchSchemaRow?.schema_hash !== sourceSchemaRow?.schema_hash;
|
|
7320
7337
|
}
|
|
7321
7338
|
if (drifted) {
|
|
7322
|
-
return
|
|
7339
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7323
7340
|
new BaseVersionMismatchError(
|
|
7324
7341
|
`Branch "${branch2.id}"'s store has a committed schema different from its at-fork state \u2014 a schema operation ran on the branch after forking. Merge carries data changes only; apply the schema change to the target first (or re-fork), then merge.`,
|
|
7325
7342
|
{
|
|
@@ -7358,7 +7375,7 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7358
7375
|
options.embedder
|
|
7359
7376
|
);
|
|
7360
7377
|
const ctx = {
|
|
7361
|
-
backend:
|
|
7378
|
+
backend: chunk2CVDZCXH_cjs.storeBackend(store),
|
|
7362
7379
|
...embeddings === void 0 ? {} : { embeddings }
|
|
7363
7380
|
};
|
|
7364
7381
|
const candidates = await generateAllCandidates(
|
|
@@ -7370,8 +7387,8 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7370
7387
|
useBaseSources,
|
|
7371
7388
|
options.embedder
|
|
7372
7389
|
);
|
|
7373
|
-
if (
|
|
7374
|
-
return
|
|
7390
|
+
if (chunkRJMHU2MG_cjs.isErr(candidates)) {
|
|
7391
|
+
return chunkRJMHU2MG_cjs.err(candidates.error);
|
|
7375
7392
|
}
|
|
7376
7393
|
const identityProbeIds = target.graph.identity === void 0 ? void 0 : [
|
|
7377
7394
|
.../* @__PURE__ */ new Set([
|
|
@@ -7386,7 +7403,7 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7386
7403
|
])
|
|
7387
7404
|
])
|
|
7388
7405
|
];
|
|
7389
|
-
const targetPeers = identityProbeIds === void 0 ? [] : await
|
|
7406
|
+
const targetPeers = identityProbeIds === void 0 ? [] : await chunk2CVDZCXH_cjs.storeRuntime(target).liveNodesSharingIds(identityProbeIds);
|
|
7390
7407
|
const stagedIdentityIds = [
|
|
7391
7408
|
.../* @__PURE__ */ new Set([
|
|
7392
7409
|
...staging.newIdentityAssertions.map((staged) => staged.assertion.id),
|
|
@@ -7395,7 +7412,7 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7395
7412
|
)
|
|
7396
7413
|
])
|
|
7397
7414
|
];
|
|
7398
|
-
const storedIdentityRowsById = stagedIdentityIds.length === 0 || target.graph.identity === void 0 ? NO_STORED_ASSERTIONS : await
|
|
7415
|
+
const storedIdentityRowsById = stagedIdentityIds.length === 0 || target.graph.identity === void 0 ? NO_STORED_ASSERTIONS : await chunk2CVDZCXH_cjs.storeRuntime(target).identityAssertionRowsByIds(
|
|
7399
7416
|
stagedIdentityIds
|
|
7400
7417
|
);
|
|
7401
7418
|
const identityContext = {
|
|
@@ -7420,14 +7437,14 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7420
7437
|
if (plan.identityAssertions.length > 0) {
|
|
7421
7438
|
assertOneIdOneTruth(
|
|
7422
7439
|
plan.identityAssertions,
|
|
7423
|
-
await
|
|
7440
|
+
await chunk2CVDZCXH_cjs.storeRuntime(target).identityAssertionRowsByIds(
|
|
7424
7441
|
plan.identityAssertions.map((assertion) => assertion.id)
|
|
7425
7442
|
)
|
|
7426
7443
|
);
|
|
7427
7444
|
}
|
|
7428
7445
|
let identityGuard;
|
|
7429
7446
|
if (identityProbeIds !== void 0 && incremental !== void 0) {
|
|
7430
|
-
const freshPeers = await
|
|
7447
|
+
const freshPeers = await chunk2CVDZCXH_cjs.storeRuntime(target).liveNodesSharingIds(identityProbeIds);
|
|
7431
7448
|
const built = await buildIdentityPeerProbe(
|
|
7432
7449
|
target,
|
|
7433
7450
|
identityProbeIds,
|
|
@@ -7475,7 +7492,7 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7475
7492
|
targetNodeVersions: staging.targetNodeVersions,
|
|
7476
7493
|
targetEdgeSignatures: staging.targetEdgeSignatures
|
|
7477
7494
|
};
|
|
7478
|
-
return
|
|
7495
|
+
return chunkRJMHU2MG_cjs.ok(
|
|
7479
7496
|
await complete({
|
|
7480
7497
|
target,
|
|
7481
7498
|
plan,
|
|
@@ -7486,9 +7503,9 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7486
7503
|
);
|
|
7487
7504
|
} catch (error) {
|
|
7488
7505
|
if (error instanceof MergeError) {
|
|
7489
|
-
return
|
|
7506
|
+
return chunkRJMHU2MG_cjs.err(error);
|
|
7490
7507
|
}
|
|
7491
|
-
return
|
|
7508
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7492
7509
|
new MergeError(
|
|
7493
7510
|
`Merge failed while staging or committing: ${describeCause(error)}`,
|
|
7494
7511
|
{ cause: error }
|
|
@@ -7499,14 +7516,14 @@ async function resolveMerge(store, target, branches, options, useBaseSources, in
|
|
|
7499
7516
|
async function commitResolvedMerge(resolved) {
|
|
7500
7517
|
const { target, plan, options } = resolved;
|
|
7501
7518
|
const provenanceStore = options.persistProvenance ? await tryOpenProvenanceStore(target) : void 0;
|
|
7502
|
-
if (provenanceStore !== void 0 &&
|
|
7519
|
+
if (provenanceStore !== void 0 && chunkRJMHU2MG_cjs.isErr(provenanceStore)) {
|
|
7503
7520
|
throw provenanceStore.error;
|
|
7504
7521
|
}
|
|
7505
7522
|
const merged = resolved.incrementalGuard === void 0 ? await commitPlan(target, plan, resolved.expectedBaseVersion) : await commitIncrementalPlan(target, plan, resolved.incrementalGuard);
|
|
7506
7523
|
const provenance = options.provenance ? buildProvenanceIndex(plan.provenanceRecords) : { byBranch: () => ({ nodeIds: [], edgeIds: [] }) };
|
|
7507
7524
|
const warnings = [...plan.warnings];
|
|
7508
7525
|
let provenancePersisted;
|
|
7509
|
-
if (provenanceStore !== void 0 && !
|
|
7526
|
+
if (provenanceStore !== void 0 && !chunkRJMHU2MG_cjs.isErr(provenanceStore)) {
|
|
7510
7527
|
try {
|
|
7511
7528
|
const count = await persistProvenanceRecords(
|
|
7512
7529
|
provenanceStore.data,
|
|
@@ -7559,14 +7576,14 @@ function incrementalSchemaError() {
|
|
|
7559
7576
|
async function planMerge(store, branchInputs, optionsInput = {}) {
|
|
7560
7577
|
const branches = unwrapMergeBranches(branchInputs);
|
|
7561
7578
|
const normalized = tryNormalize(optionsInput);
|
|
7562
|
-
if (
|
|
7579
|
+
if (chunkRJMHU2MG_cjs.isErr(normalized)) return chunkRJMHU2MG_cjs.err(normalized.error);
|
|
7563
7580
|
const options = normalized.data;
|
|
7564
7581
|
const target = options.target ?? store;
|
|
7565
7582
|
let targetFence;
|
|
7566
7583
|
try {
|
|
7567
7584
|
targetFence = await captureMergePlanTargetFence(target);
|
|
7568
7585
|
} catch (error) {
|
|
7569
|
-
return
|
|
7586
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7570
7587
|
error instanceof MergeError ? error : new MergePlanCapabilityError(
|
|
7571
7588
|
`Unable to capture the target's durable plan fence: ${describeCause(error)}`,
|
|
7572
7589
|
{ cause: error }
|
|
@@ -7574,11 +7591,11 @@ async function planMerge(store, branchInputs, optionsInput = {}) {
|
|
|
7574
7591
|
);
|
|
7575
7592
|
}
|
|
7576
7593
|
const precondition = await validateBaseVersions(target, branches);
|
|
7577
|
-
if (
|
|
7594
|
+
if (chunkRJMHU2MG_cjs.isErr(precondition)) return chunkRJMHU2MG_cjs.err(precondition.error);
|
|
7578
7595
|
const anchors = {
|
|
7579
7596
|
kind: "snapshot",
|
|
7580
7597
|
base: { graphId: store.graphId, baseVersion: precondition.data },
|
|
7581
|
-
branches: [...branches].sort((left, right) =>
|
|
7598
|
+
branches: [...branches].sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)).map((branch2) => ({
|
|
7582
7599
|
branchId: branch2.id,
|
|
7583
7600
|
baseVersion: branch2.base
|
|
7584
7601
|
}))
|
|
@@ -7601,16 +7618,16 @@ async function planMergeIncremental(args) {
|
|
|
7601
7618
|
const { forkPoint, target } = args;
|
|
7602
7619
|
const branches = unwrapMergeBranches(args.branches);
|
|
7603
7620
|
const normalized = tryNormalize(args.options ?? {}, ["target"]);
|
|
7604
|
-
if (
|
|
7621
|
+
if (chunkRJMHU2MG_cjs.isErr(normalized)) return chunkRJMHU2MG_cjs.err(normalized.error);
|
|
7605
7622
|
const options = normalized.data;
|
|
7606
7623
|
if (options.onBasePropertyConflict !== "flag") {
|
|
7607
|
-
return
|
|
7624
|
+
return chunkRJMHU2MG_cjs.err(incrementalBaseConflictPolicyError(options));
|
|
7608
7625
|
}
|
|
7609
7626
|
let targetFence;
|
|
7610
7627
|
try {
|
|
7611
7628
|
targetFence = await captureMergePlanTargetFence(target);
|
|
7612
7629
|
} catch (error) {
|
|
7613
|
-
return
|
|
7630
|
+
return chunkRJMHU2MG_cjs.err(
|
|
7614
7631
|
error instanceof MergeError ? error : new MergePlanCapabilityError(
|
|
7615
7632
|
`Unable to capture the target's durable plan fence: ${describeCause(error)}`,
|
|
7616
7633
|
{ cause: error }
|
|
@@ -7618,14 +7635,14 @@ async function planMergeIncremental(args) {
|
|
|
7618
7635
|
);
|
|
7619
7636
|
}
|
|
7620
7637
|
const forkPrecondition = await validateForkPointVersions(forkPoint, branches);
|
|
7621
|
-
if (
|
|
7638
|
+
if (chunkRJMHU2MG_cjs.isErr(forkPrecondition)) return chunkRJMHU2MG_cjs.err(forkPrecondition.error);
|
|
7622
7639
|
const forkVersion = forkPrecondition.data;
|
|
7623
7640
|
const [forkSchema, targetSchema] = await Promise.all([
|
|
7624
7641
|
computeSchemaComponent(forkPoint),
|
|
7625
7642
|
computeSchemaComponent(target)
|
|
7626
7643
|
]);
|
|
7627
|
-
if (forkSchema !== targetSchema) return
|
|
7628
|
-
const forkActiveSchema = await
|
|
7644
|
+
if (forkSchema !== targetSchema) return chunkRJMHU2MG_cjs.err(incrementalSchemaError());
|
|
7645
|
+
const forkActiveSchema = await chunk2CVDZCXH_cjs.storeBackend(forkPoint).getActiveSchema(
|
|
7629
7646
|
forkPoint.graphId
|
|
7630
7647
|
);
|
|
7631
7648
|
const targetBranch = {
|
|
@@ -7644,7 +7661,7 @@ async function planMergeIncremental(args) {
|
|
|
7644
7661
|
hash: forkActiveSchema?.schema_hash ?? forkSchema
|
|
7645
7662
|
}
|
|
7646
7663
|
},
|
|
7647
|
-
branches: [...branches].sort((left, right) =>
|
|
7664
|
+
branches: [...branches].sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left.id, right.id)).map((branch2) => ({
|
|
7648
7665
|
branchId: branch2.id,
|
|
7649
7666
|
baseVersion: branch2.base
|
|
7650
7667
|
}))
|
|
@@ -7866,7 +7883,7 @@ async function preflightWireMergeWrites(target, nodesApi, edgesApi, artifact) {
|
|
|
7866
7883
|
}
|
|
7867
7884
|
for (const upsert of artifact.writes.edgeUpserts) {
|
|
7868
7885
|
const registration = chunkN66HCGCY_cjs.requireDefined(graphEdges[upsert.kind]);
|
|
7869
|
-
const endpointError =
|
|
7886
|
+
const endpointError = chunkCRZ56SZU_cjs.validateEdgeEndpoints(
|
|
7870
7887
|
upsert.kind,
|
|
7871
7888
|
upsert.from.kind,
|
|
7872
7889
|
upsert.to.kind,
|
|
@@ -7969,7 +7986,7 @@ async function preflightWireMergeWrites(target, nodesApi, edgesApi, artifact) {
|
|
|
7969
7986
|
}
|
|
7970
7987
|
}
|
|
7971
7988
|
async function assertMergePlanFenceInsideTransaction(target, txBackend, artifact) {
|
|
7972
|
-
await
|
|
7989
|
+
await chunkJQKMEKKW_cjs.lockRecordedGraphWrite(txBackend, target.graphId);
|
|
7973
7990
|
const activeSchema = await txBackend.getActiveSchema(target.graphId);
|
|
7974
7991
|
const liveSchema = {
|
|
7975
7992
|
managed: activeSchema !== void 0,
|
|
@@ -7982,7 +7999,7 @@ async function assertMergePlanFenceInsideTransaction(target, txBackend, artifact
|
|
|
7982
7999
|
{ details: { expected: artifact.target.schema, live: liveSchema } }
|
|
7983
8000
|
);
|
|
7984
8001
|
}
|
|
7985
|
-
const liveOrigin = await
|
|
8002
|
+
const liveOrigin = await chunkJQKMEKKW_cjs.readRevisionOrigin(
|
|
7986
8003
|
txBackend,
|
|
7987
8004
|
target.revisionSchema,
|
|
7988
8005
|
target.graphId
|
|
@@ -7998,7 +8015,7 @@ async function assertMergePlanFenceInsideTransaction(target, txBackend, artifact
|
|
|
7998
8015
|
}
|
|
7999
8016
|
);
|
|
8000
8017
|
}
|
|
8001
|
-
const liveRevision = await
|
|
8018
|
+
const liveRevision = await chunkJQKMEKKW_cjs.readRecordedClock(
|
|
8002
8019
|
txBackend,
|
|
8003
8020
|
target.revisionSchema,
|
|
8004
8021
|
target.graphId
|
|
@@ -8074,7 +8091,7 @@ async function applyWireMergeWrites(target, nodesApi, edgesApi, txBackend, artif
|
|
|
8074
8091
|
txBackend,
|
|
8075
8092
|
identityAssertions,
|
|
8076
8093
|
identityRetractions,
|
|
8077
|
-
() =>
|
|
8094
|
+
() => chunk2CVDZCXH_cjs.storeRuntime(target).assertIdentityClassesConsistentAtTarget(
|
|
8078
8095
|
txBackend,
|
|
8079
8096
|
identityConsistencySeeds(
|
|
8080
8097
|
artifact,
|
|
@@ -8082,8 +8099,8 @@ async function applyWireMergeWrites(target, nodesApi, edgesApi, txBackend, artif
|
|
|
8082
8099
|
)
|
|
8083
8100
|
)
|
|
8084
8101
|
);
|
|
8085
|
-
if (!
|
|
8086
|
-
await
|
|
8102
|
+
if (!chunkJQKMEKKW_cjs.forceRecordedGraphRevision(txBackend, target.graphId) && !chunkJQKMEKKW_cjs.forceWriteTransactionRevision(txBackend)) {
|
|
8103
|
+
await chunkJQKMEKKW_cjs.advanceRevisionClock(
|
|
8087
8104
|
txBackend,
|
|
8088
8105
|
target.revisionSchema,
|
|
8089
8106
|
target.graphId,
|
|
@@ -8123,7 +8140,7 @@ async function applyMergePlan(target, input) {
|
|
|
8123
8140
|
try {
|
|
8124
8141
|
validation = await validateMergePlanArtifact(input);
|
|
8125
8142
|
} catch (error) {
|
|
8126
|
-
return
|
|
8143
|
+
return chunkRJMHU2MG_cjs.err(
|
|
8127
8144
|
new InvalidMergePlanError(
|
|
8128
8145
|
`Merge plan validation failed: ${describeCause(error)}`,
|
|
8129
8146
|
{ cause: error }
|
|
@@ -8131,10 +8148,10 @@ async function applyMergePlan(target, input) {
|
|
|
8131
8148
|
);
|
|
8132
8149
|
}
|
|
8133
8150
|
if (!validation.success)
|
|
8134
|
-
return
|
|
8151
|
+
return chunkRJMHU2MG_cjs.err(mergePlanValidationError(validation.error));
|
|
8135
8152
|
const artifact = validation.artifact;
|
|
8136
8153
|
if (artifact.target.graphId !== target.graphId) {
|
|
8137
|
-
return
|
|
8154
|
+
return chunkRJMHU2MG_cjs.err(
|
|
8138
8155
|
new MergePlanTargetMismatchError(
|
|
8139
8156
|
"The merge plan names a different target graph.",
|
|
8140
8157
|
{
|
|
@@ -8149,12 +8166,12 @@ async function applyMergePlan(target, input) {
|
|
|
8149
8166
|
try {
|
|
8150
8167
|
assertPublicPlanCapability(target);
|
|
8151
8168
|
const provenanceStore = artifact.provenance.persist ? await tryOpenProvenanceStore(target) : void 0;
|
|
8152
|
-
if (provenanceStore !== void 0 &&
|
|
8153
|
-
return
|
|
8169
|
+
if (provenanceStore !== void 0 && chunkRJMHU2MG_cjs.isErr(provenanceStore)) {
|
|
8170
|
+
return chunkRJMHU2MG_cjs.err(provenanceStore.error);
|
|
8154
8171
|
}
|
|
8155
8172
|
const merged = await withTxConflictRetry(
|
|
8156
8173
|
() => target.transaction(async (tx) => {
|
|
8157
|
-
const txBackend =
|
|
8174
|
+
const txBackend = chunk2CVDZCXH_cjs.transactionBackend(tx);
|
|
8158
8175
|
await assertMergePlanFenceInsideTransaction(
|
|
8159
8176
|
target,
|
|
8160
8177
|
txBackend,
|
|
@@ -8181,7 +8198,7 @@ async function applyMergePlan(target, input) {
|
|
|
8181
8198
|
);
|
|
8182
8199
|
const warnings = [...artifact.review.warnings];
|
|
8183
8200
|
let provenancePersisted;
|
|
8184
|
-
if (provenanceStore !== void 0 && !
|
|
8201
|
+
if (provenanceStore !== void 0 && !chunkRJMHU2MG_cjs.isErr(provenanceStore)) {
|
|
8185
8202
|
try {
|
|
8186
8203
|
const records = artifact.review.provenanceRecords;
|
|
8187
8204
|
const count = await persistProvenanceRecords(
|
|
@@ -8199,12 +8216,12 @@ async function applyMergePlan(target, input) {
|
|
|
8199
8216
|
);
|
|
8200
8217
|
}
|
|
8201
8218
|
}
|
|
8202
|
-
return
|
|
8219
|
+
return chunkRJMHU2MG_cjs.ok(
|
|
8203
8220
|
reportFromArtifact(artifact, merged, warnings, provenancePersisted)
|
|
8204
8221
|
);
|
|
8205
8222
|
} catch (error) {
|
|
8206
8223
|
const translated = translateMergeCommitError(error);
|
|
8207
|
-
return
|
|
8224
|
+
return chunkRJMHU2MG_cjs.err(
|
|
8208
8225
|
translated instanceof MergeError ? translated : new MergeError(
|
|
8209
8226
|
`Merge plan apply failed: ${describeCause(translated)}`,
|
|
8210
8227
|
{
|
|
@@ -8217,14 +8234,14 @@ async function applyMergePlan(target, input) {
|
|
|
8217
8234
|
async function merge(store, branchInputs, optionsInput = {}) {
|
|
8218
8235
|
const branches = unwrapMergeBranches(branchInputs);
|
|
8219
8236
|
const normalized = tryNormalize(optionsInput);
|
|
8220
|
-
if (
|
|
8221
|
-
return
|
|
8237
|
+
if (chunkRJMHU2MG_cjs.isErr(normalized)) {
|
|
8238
|
+
return chunkRJMHU2MG_cjs.err(normalized.error);
|
|
8222
8239
|
}
|
|
8223
8240
|
const options = normalized.data;
|
|
8224
8241
|
const target = options.target ?? store;
|
|
8225
8242
|
const precondition = await validateBaseVersions(target, branches);
|
|
8226
|
-
if (
|
|
8227
|
-
return
|
|
8243
|
+
if (chunkRJMHU2MG_cjs.isErr(precondition)) {
|
|
8244
|
+
return chunkRJMHU2MG_cjs.err(precondition.error);
|
|
8228
8245
|
}
|
|
8229
8246
|
return resolveMerge(
|
|
8230
8247
|
store,
|
|
@@ -8241,7 +8258,7 @@ async function validateForkPointVersions(forkPoint, branches) {
|
|
|
8241
8258
|
const forkVersion = await computeBaseVersion(forkPoint);
|
|
8242
8259
|
for (const branch2 of branches) {
|
|
8243
8260
|
if (branch2.base !== forkVersion) {
|
|
8244
|
-
return
|
|
8261
|
+
return chunkRJMHU2MG_cjs.err(
|
|
8245
8262
|
new BaseVersionMismatchError(
|
|
8246
8263
|
`Branch "${branch2.id}" forked from base@V "${branch2.base}", which does not match the fork-point's base@V "${forkVersion}". mergeIncremental() requires every branch to have forked from the supplied forkPoint.`,
|
|
8247
8264
|
{
|
|
@@ -8255,7 +8272,7 @@ async function validateForkPointVersions(forkPoint, branches) {
|
|
|
8255
8272
|
);
|
|
8256
8273
|
}
|
|
8257
8274
|
}
|
|
8258
|
-
return
|
|
8275
|
+
return chunkRJMHU2MG_cjs.ok(forkVersion);
|
|
8259
8276
|
}
|
|
8260
8277
|
function nodeSchemaFor(target, kind) {
|
|
8261
8278
|
const registry = target.graph.nodes;
|
|
@@ -8410,7 +8427,7 @@ async function validateIncrementalEdgeWrites(target, edgesApi, plan) {
|
|
|
8410
8427
|
}
|
|
8411
8428
|
}
|
|
8412
8429
|
}
|
|
8413
|
-
const notFound = [...plannedKindById.keys()].filter((id) => !existingById.has(id)).sort((left, right) =>
|
|
8430
|
+
const notFound = [...plannedKindById.keys()].filter((id) => !existingById.has(id)).sort((left, right) => chunkRWUWTJQY_cjs.compareStrings(left, right));
|
|
8414
8431
|
if (notFound.length > 0) {
|
|
8415
8432
|
const crossKindById = /* @__PURE__ */ new Map();
|
|
8416
8433
|
for (const kind of Object.keys(target.graph.edges)) {
|
|
@@ -8647,7 +8664,7 @@ async function assertForkPointUnchanged(precondition) {
|
|
|
8647
8664
|
);
|
|
8648
8665
|
}
|
|
8649
8666
|
async function commitIncrementalPlan(target, plan, guard) {
|
|
8650
|
-
if (!
|
|
8667
|
+
if (!chunk2CVDZCXH_cjs.storeBackend(target).capabilities.transactions) {
|
|
8651
8668
|
throw new MergeError(
|
|
8652
8669
|
"mergeIncremental() requires a transaction-capable target backend. Incremental writes must preflight existing rows and commit atomically; non-transactional fallback would allow partial graph writes.",
|
|
8653
8670
|
{ details: { capability: "transactions" } }
|
|
@@ -8657,7 +8674,7 @@ async function commitIncrementalPlan(target, plan, guard) {
|
|
|
8657
8674
|
() => withTxConflictRetry(
|
|
8658
8675
|
() => target.transaction(async (tx) => {
|
|
8659
8676
|
if (target.revisionTrackingEnabled) {
|
|
8660
|
-
await
|
|
8677
|
+
await chunkJQKMEKKW_cjs.lockRecordedGraphWrite(chunk2CVDZCXH_cjs.transactionBackend(tx), target.graphId);
|
|
8661
8678
|
}
|
|
8662
8679
|
await assertForkPointUnchanged(guard.forkPoint);
|
|
8663
8680
|
const nodesApi = tx.nodes;
|
|
@@ -8668,12 +8685,12 @@ async function commitIncrementalPlan(target, plan, guard) {
|
|
|
8668
8685
|
);
|
|
8669
8686
|
await assertPlannedIdentityIdsFresh(
|
|
8670
8687
|
target,
|
|
8671
|
-
|
|
8688
|
+
chunk2CVDZCXH_cjs.transactionBackend(tx),
|
|
8672
8689
|
plan
|
|
8673
8690
|
);
|
|
8674
8691
|
await assertIdentityPeersStable(
|
|
8675
8692
|
target,
|
|
8676
|
-
|
|
8693
|
+
chunk2CVDZCXH_cjs.transactionBackend(tx),
|
|
8677
8694
|
guard.identityPeerProbe,
|
|
8678
8695
|
plan
|
|
8679
8696
|
);
|
|
@@ -8685,7 +8702,7 @@ async function commitIncrementalPlan(target, plan, guard) {
|
|
|
8685
8702
|
nodesApi,
|
|
8686
8703
|
edgesApi,
|
|
8687
8704
|
target,
|
|
8688
|
-
|
|
8705
|
+
chunk2CVDZCXH_cjs.transactionBackend(tx)
|
|
8689
8706
|
);
|
|
8690
8707
|
}, mergeCommitTransactionOptions(target))
|
|
8691
8708
|
)
|
|
@@ -8695,16 +8712,16 @@ async function mergeIncremental(args) {
|
|
|
8695
8712
|
const { forkPoint, target } = args;
|
|
8696
8713
|
const branches = unwrapMergeBranches(args.branches);
|
|
8697
8714
|
const normalized = tryNormalize(args.options ?? {}, ["target"]);
|
|
8698
|
-
if (
|
|
8699
|
-
return
|
|
8715
|
+
if (chunkRJMHU2MG_cjs.isErr(normalized)) {
|
|
8716
|
+
return chunkRJMHU2MG_cjs.err(normalized.error);
|
|
8700
8717
|
}
|
|
8701
8718
|
const options = normalized.data;
|
|
8702
8719
|
if (options.onBasePropertyConflict !== "flag") {
|
|
8703
|
-
return
|
|
8720
|
+
return chunkRJMHU2MG_cjs.err(incrementalBaseConflictPolicyError(options));
|
|
8704
8721
|
}
|
|
8705
8722
|
const forkPrecondition = await validateForkPointVersions(forkPoint, branches);
|
|
8706
|
-
if (
|
|
8707
|
-
return
|
|
8723
|
+
if (chunkRJMHU2MG_cjs.isErr(forkPrecondition)) {
|
|
8724
|
+
return chunkRJMHU2MG_cjs.err(forkPrecondition.error);
|
|
8708
8725
|
}
|
|
8709
8726
|
const forkVersion = forkPrecondition.data;
|
|
8710
8727
|
const [forkSchema, targetSchema] = await Promise.all([
|
|
@@ -8712,7 +8729,7 @@ async function mergeIncremental(args) {
|
|
|
8712
8729
|
computeSchemaComponent(target)
|
|
8713
8730
|
]);
|
|
8714
8731
|
if (forkSchema !== targetSchema) {
|
|
8715
|
-
return
|
|
8732
|
+
return chunkRJMHU2MG_cjs.err(incrementalSchemaError());
|
|
8716
8733
|
}
|
|
8717
8734
|
const targetBranch = {
|
|
8718
8735
|
id: COMMITTED_TARGET_BRANCH,
|
|
@@ -8739,15 +8756,15 @@ async function mergeIncremental(args) {
|
|
|
8739
8756
|
|
|
8740
8757
|
Object.defineProperty(exports, "isErr", {
|
|
8741
8758
|
enumerable: true,
|
|
8742
|
-
get: function () { return
|
|
8759
|
+
get: function () { return chunkRJMHU2MG_cjs.isErr; }
|
|
8743
8760
|
});
|
|
8744
8761
|
Object.defineProperty(exports, "isOk", {
|
|
8745
8762
|
enumerable: true,
|
|
8746
|
-
get: function () { return
|
|
8763
|
+
get: function () { return chunkRJMHU2MG_cjs.isOk; }
|
|
8747
8764
|
});
|
|
8748
8765
|
Object.defineProperty(exports, "unwrap", {
|
|
8749
8766
|
enumerable: true,
|
|
8750
|
-
get: function () { return
|
|
8767
|
+
get: function () { return chunkRJMHU2MG_cjs.unwrap; }
|
|
8751
8768
|
});
|
|
8752
8769
|
exports.BaseVersionMismatchError = BaseVersionMismatchError;
|
|
8753
8770
|
exports.BranchError = BranchError;
|