@nicia-ai/typegraph 0.48.0 → 0.50.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/dist/backend/drizzle/indexes.cjs +9 -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 +5 -5
- package/dist/backend/index.cjs +56 -52
- package/dist/backend/index.d.cts +3 -3
- package/dist/backend/index.d.ts +3 -3
- package/dist/backend/index.js +11 -11
- package/dist/backend/postgres/index.cjs +34 -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 +17 -15
- package/dist/backend/postgres/pglite-store.cjs +36 -35
- 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 +32 -31
- package/dist/backend/postgres/pglite-store.js.map +1 -1
- package/dist/backend/postgres/pglite.cjs +19 -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 +18 -16
- package/dist/backend/sqlite/index.cjs +31 -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 +15 -13
- package/dist/backend/sqlite/libsql.cjs +22 -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 +17 -15
- package/dist/backend/sqlite/libsql.js.map +1 -1
- package/dist/backend/sqlite/local-store.cjs +37 -36
- 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 +33 -32
- package/dist/backend/sqlite/local-store.js.map +1 -1
- package/dist/backend/sqlite/local.cjs +20 -18
- package/dist/backend/sqlite/local.d.cts +3 -3
- package/dist/backend/sqlite/local.d.ts +3 -3
- package/dist/backend/sqlite/local.js +18 -16
- package/dist/{chunk-AX6JGVTZ.js → chunk-2CYI5HRH.js} +276 -206
- package/dist/chunk-2CYI5HRH.js.map +1 -0
- package/dist/{chunk-KF6K7TGH.js → chunk-2GIV5X4P.js} +702 -422
- package/dist/chunk-2GIV5X4P.js.map +1 -0
- package/dist/{chunk-2TYSSBU5.js → chunk-2Q45FAIE.js} +15 -15
- package/dist/{chunk-2TYSSBU5.js.map → chunk-2Q45FAIE.js.map} +1 -1
- package/dist/{chunk-WODMN3Q2.cjs → chunk-45YZXI6X.cjs} +27 -27
- package/dist/{chunk-WODMN3Q2.cjs.map → chunk-45YZXI6X.cjs.map} +1 -1
- package/dist/{chunk-3DMMGT6S.js → chunk-46UGOVRW.js} +3 -3
- package/dist/{chunk-3DMMGT6S.js.map → chunk-46UGOVRW.js.map} +1 -1
- package/dist/{chunk-GLHXM7C4.js → chunk-5LKOVCPP.js} +60 -23
- package/dist/chunk-5LKOVCPP.js.map +1 -0
- package/dist/{chunk-JFRT7S3B.cjs → chunk-5OWHU7Z7.cjs} +261 -459
- package/dist/chunk-5OWHU7Z7.cjs.map +1 -0
- package/dist/{chunk-7SQSZN2J.js → chunk-5PP4KRPV.js} +5 -5
- package/dist/{chunk-7SQSZN2J.js.map → chunk-5PP4KRPV.js.map} +1 -1
- package/dist/chunk-6KQEICJ6.cjs +12 -0
- package/dist/{chunk-MKJ4KXL5.cjs.map → chunk-6KQEICJ6.cjs.map} +1 -1
- package/dist/{chunk-6SWPJEYN.js → chunk-6LEOAIIB.js} +40 -6
- package/dist/chunk-6LEOAIIB.js.map +1 -0
- 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-OVI7IXYX.js → chunk-6S3PTHL4.js} +3 -3
- package/dist/{chunk-OVI7IXYX.js.map → chunk-6S3PTHL4.js.map} +1 -1
- package/dist/{chunk-3FPR224C.cjs → chunk-7CCMCMJO.cjs} +102 -102
- package/dist/{chunk-3FPR224C.cjs.map → chunk-7CCMCMJO.cjs.map} +1 -1
- package/dist/{chunk-SHFBB23Q.js → chunk-7OWE7WD6.js} +6 -4
- package/dist/chunk-7OWE7WD6.js.map +1 -0
- package/dist/chunk-7PRMDZIA.cjs +182 -0
- package/dist/chunk-7PRMDZIA.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-OORXGFL5.cjs → chunk-BYBDM423.cjs} +48 -48
- package/dist/{chunk-OORXGFL5.cjs.map → chunk-BYBDM423.cjs.map} +1 -1
- package/dist/{chunk-JB6T4GLL.cjs → chunk-C76WFIVZ.cjs} +808 -519
- package/dist/chunk-C76WFIVZ.cjs.map +1 -0
- package/dist/{chunk-OTUPEF2W.cjs → chunk-CS6JTQQ2.cjs} +328 -257
- package/dist/chunk-CS6JTQQ2.cjs.map +1 -0
- package/dist/{chunk-AOSSQDVO.cjs → chunk-CSNOYIB4.cjs} +13 -13
- package/dist/{chunk-AOSSQDVO.cjs.map → chunk-CSNOYIB4.cjs.map} +1 -1
- package/dist/{chunk-HEV35TGT.js → chunk-DI6VC62F.js} +13 -4
- package/dist/chunk-DI6VC62F.js.map +1 -0
- 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-ZDKTPBGV.js → chunk-EDLKIQRI.js} +4 -4
- package/dist/{chunk-ZDKTPBGV.js.map → chunk-EDLKIQRI.js.map} +1 -1
- package/dist/chunk-EH3JZJUM.cjs +567 -0
- package/dist/chunk-EH3JZJUM.cjs.map +1 -0
- package/dist/{chunk-S5TERQVW.js → chunk-FX5ZW6PN.js} +196 -33
- package/dist/chunk-FX5ZW6PN.js.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-BFUOME67.cjs → chunk-G2TLHH6T.cjs} +20 -11
- package/dist/chunk-G2TLHH6T.cjs.map +1 -0
- package/dist/{chunk-5PRKMB24.cjs → chunk-GHZPZNFC.cjs} +12 -4
- package/dist/chunk-GHZPZNFC.cjs.map +1 -0
- package/dist/{chunk-ZFMCDJGB.js → chunk-GVYVGGPJ.js} +11 -199
- package/dist/chunk-GVYVGGPJ.js.map +1 -0
- package/dist/{chunk-SDBBMD4N.js → chunk-H3XP6BAV.js} +3 -3
- package/dist/{chunk-SDBBMD4N.js.map → chunk-H3XP6BAV.js.map} +1 -1
- package/dist/{chunk-ROR5ZR6A.cjs → chunk-HSEZ7X6Y.cjs} +45 -45
- package/dist/{chunk-ROR5ZR6A.cjs.map → chunk-HSEZ7X6Y.cjs.map} +1 -1
- package/dist/{chunk-LRQKXRXO.cjs → chunk-HY5BNOUN.cjs} +4 -4
- package/dist/{chunk-LRQKXRXO.cjs.map → chunk-HY5BNOUN.cjs.map} +1 -1
- package/dist/chunk-HZUB5CON.js +27 -0
- package/dist/chunk-HZUB5CON.js.map +1 -0
- package/dist/{chunk-MYKHJI2J.js → chunk-I5C6OTKR.js} +3 -3
- package/dist/{chunk-MYKHJI2J.js.map → chunk-I5C6OTKR.js.map} +1 -1
- package/dist/{chunk-3U5ABFDW.cjs → chunk-IHK5KA2Q.cjs} +31 -28
- package/dist/chunk-IHK5KA2Q.cjs.map +1 -0
- package/dist/{chunk-26YKDNUD.cjs → chunk-IPRP6TDL.cjs} +12 -10
- package/dist/chunk-IPRP6TDL.cjs.map +1 -0
- package/dist/{chunk-UGHG7PGX.js → chunk-IRPYOHRC.js} +26 -4
- package/dist/chunk-IRPYOHRC.js.map +1 -0
- package/dist/{chunk-7XUYFFR4.cjs → chunk-ISKCIQF2.cjs} +20 -20
- package/dist/{chunk-7XUYFFR4.cjs.map → chunk-ISKCIQF2.cjs.map} +1 -1
- package/dist/{chunk-OD4SSY2U.js → chunk-JG5XIJDY.js} +57 -31
- package/dist/chunk-JG5XIJDY.js.map +1 -0
- package/dist/{chunk-2HIYYMWY.cjs → chunk-K2XYLVVB.cjs} +134 -133
- package/dist/chunk-K2XYLVVB.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-TZEGUG6D.cjs → chunk-K6VKTBST.cjs} +4 -4
- package/dist/{chunk-TZEGUG6D.cjs.map → chunk-K6VKTBST.cjs.map} +1 -1
- package/dist/chunk-KWNWG4RC.cjs +12 -0
- package/dist/{chunk-CICO5GXD.cjs.map → chunk-KWNWG4RC.cjs.map} +1 -1
- package/dist/{chunk-FQPEMEWX.cjs → chunk-LLVOQOWE.cjs} +80 -32
- package/dist/chunk-LLVOQOWE.cjs.map +1 -0
- package/dist/{chunk-TQHGE7UC.cjs → chunk-M5MSP3BI.cjs} +18 -10
- package/dist/chunk-M5MSP3BI.cjs.map +1 -0
- package/dist/{chunk-ACGSAMD3.js → chunk-MJPZNEJZ.js} +274 -292
- package/dist/chunk-MJPZNEJZ.js.map +1 -0
- package/dist/{chunk-TUNPBZY3.cjs → chunk-MM3JHVKZ.cjs} +4 -4
- package/dist/{chunk-TUNPBZY3.cjs.map → chunk-MM3JHVKZ.cjs.map} +1 -1
- package/dist/{chunk-BRRP76WO.js → chunk-MX7EKQPM.js} +457 -299
- package/dist/chunk-MX7EKQPM.js.map +1 -0
- package/dist/{chunk-2SYZXD54.js → chunk-MZ34E2GN.js} +13 -12
- package/dist/chunk-MZ34E2GN.js.map +1 -0
- package/dist/{chunk-EDN4Y4ZG.cjs → chunk-OJHD3LXJ.cjs} +9 -9
- package/dist/{chunk-EDN4Y4ZG.cjs.map → chunk-OJHD3LXJ.cjs.map} +1 -1
- package/dist/{chunk-DO7SAMEK.cjs → chunk-ON47CBE4.cjs} +47 -47
- package/dist/{chunk-DO7SAMEK.cjs.map → chunk-ON47CBE4.cjs.map} +1 -1
- package/dist/{chunk-6LN7FIVU.js → chunk-PALYTHGM.js} +11 -4
- package/dist/chunk-PALYTHGM.js.map +1 -0
- package/dist/{chunk-YVF2EM7B.js → chunk-R7MRFE5P.js} +3 -3
- package/dist/{chunk-YVF2EM7B.js.map → chunk-R7MRFE5P.js.map} +1 -1
- package/dist/{chunk-EZEEWCFJ.cjs → chunk-RDP6ZRSM.cjs} +435 -265
- package/dist/chunk-RDP6ZRSM.cjs.map +1 -0
- package/dist/{chunk-GYEG3ZLZ.cjs → chunk-RJMHU2MG.cjs} +121 -18
- package/dist/chunk-RJMHU2MG.cjs.map +1 -0
- package/dist/chunk-RWUWTJQY.cjs +30 -0
- package/dist/chunk-RWUWTJQY.cjs.map +1 -0
- package/dist/{chunk-CT3ZKTOF.js → chunk-S33YQEL7.js} +7 -7
- package/dist/{chunk-CT3ZKTOF.js.map → chunk-S33YQEL7.js.map} +1 -1
- package/dist/chunk-S3SDEQMC.js +532 -0
- package/dist/chunk-S3SDEQMC.js.map +1 -0
- package/dist/{chunk-OI2GQ25X.cjs → chunk-SHC7BCG5.cjs} +7 -7
- package/dist/{chunk-OI2GQ25X.cjs.map → chunk-SHC7BCG5.cjs.map} +1 -1
- package/dist/{chunk-L3LQNR34.cjs → chunk-TEC24ZDA.cjs} +161 -161
- package/dist/{chunk-L3LQNR34.cjs.map → chunk-TEC24ZDA.cjs.map} +1 -1
- package/dist/{chunk-HDL2ARHX.cjs → chunk-TP4NJTI3.cjs} +63 -27
- package/dist/chunk-TP4NJTI3.cjs.map +1 -0
- package/dist/{chunk-UMGZDVOA.cjs → chunk-TTCOPKUL.cjs} +124 -124
- package/dist/{chunk-UMGZDVOA.cjs.map → chunk-TTCOPKUL.cjs.map} +1 -1
- package/dist/chunk-TUVD4DFR.cjs +1207 -0
- package/dist/chunk-TUVD4DFR.cjs.map +1 -0
- package/dist/{chunk-PFBRJBUL.cjs → chunk-TYGGUWMS.cjs} +178 -152
- package/dist/chunk-TYGGUWMS.cjs.map +1 -0
- package/dist/{chunk-4WMMBDS5.js → chunk-U3Z7XKAG.js} +7 -7
- package/dist/{chunk-4WMMBDS5.js.map → chunk-U3Z7XKAG.js.map} +1 -1
- package/dist/{chunk-NACVVDWB.js → chunk-U5EL6JUV.js} +10 -10
- package/dist/{chunk-NACVVDWB.js.map → chunk-U5EL6JUV.js.map} +1 -1
- package/dist/{chunk-OMZ37BM2.js → chunk-V76FGHY3.js} +5 -5
- package/dist/{chunk-OMZ37BM2.js.map → chunk-V76FGHY3.js.map} +1 -1
- 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-VTJVMP4I.js +1182 -0
- package/dist/chunk-VTJVMP4I.js.map +1 -0
- package/dist/{chunk-QTD6HX4O.js → chunk-W5SOCUBL.js} +5 -5
- package/dist/{chunk-QTD6HX4O.js.map → chunk-W5SOCUBL.js.map} +1 -1
- package/dist/{chunk-SR725PWF.cjs → chunk-WCLMKNQE.cjs} +1750 -1592
- package/dist/chunk-WCLMKNQE.cjs.map +1 -0
- package/dist/{chunk-TKZXMWQF.cjs → chunk-WK23PGTP.cjs} +13 -13
- package/dist/{chunk-TKZXMWQF.cjs.map → chunk-WK23PGTP.cjs.map} +1 -1
- package/dist/{chunk-KKBDXCLQ.js → chunk-WQBAQZHR.js} +4 -4
- package/dist/{chunk-KKBDXCLQ.js.map → chunk-WQBAQZHR.js.map} +1 -1
- package/dist/{chunk-MRDBBHIZ.cjs → chunk-X4GDXBOP.cjs} +2 -2
- package/dist/chunk-X4GDXBOP.cjs.map +1 -0
- package/dist/{chunk-WCCATHMB.cjs → chunk-XMY2SXOH.cjs} +438 -456
- package/dist/chunk-XMY2SXOH.cjs.map +1 -0
- package/dist/{chunk-D5R42W5D.js → chunk-XZW2CTNO.js} +115 -12
- package/dist/chunk-XZW2CTNO.js.map +1 -0
- package/dist/{chunk-NVY5CJFP.js → chunk-Y55DLLEG.js} +9 -6
- package/dist/chunk-Y55DLLEG.js.map +1 -0
- package/dist/chunk-YA36ABIL.js +174 -0
- package/dist/chunk-YA36ABIL.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-JONXFAPO.js → chunk-ZAQUKCUC.js} +5 -5
- package/dist/{chunk-JONXFAPO.js.map → chunk-ZAQUKCUC.js.map} +1 -1
- package/dist/{chunk-SIT26LAZ.cjs → chunk-ZBFZGLZE.cjs} +29 -5
- package/dist/chunk-ZBFZGLZE.cjs.map +1 -0
- package/dist/{chunk-P6YLZTRE.js → chunk-ZRJTM7MT.js} +3 -3
- package/dist/{chunk-P6YLZTRE.js.map → chunk-ZRJTM7MT.js.map} +1 -1
- 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-B49O7dB_.d.ts} +3 -3
- package/dist/{ddl-BL1NZLMY.d.cts → ddl-DcZG660s.d.cts} +3 -3
- package/dist/graph-extension/index.cjs +21 -20
- package/dist/graph-extension/index.d.cts +4 -4
- package/dist/graph-extension/index.d.ts +4 -4
- package/dist/graph-extension/index.js +5 -4
- package/dist/graph-merge/index.cjs +327 -302
- package/dist/graph-merge/index.cjs.map +1 -1
- package/dist/graph-merge/index.d.cts +14 -11
- package/dist/graph-merge/index.d.ts +14 -11
- package/dist/graph-merge/index.js +52 -27
- package/dist/graph-merge/index.js.map +1 -1
- package/dist/{index-D7d1u2gr.d.ts → index-B0PrmE3K.d.cts} +16 -2
- package/dist/{index-COs_z6nV.d.cts → index-CwcXsL5R.d.ts} +16 -2
- package/dist/index.cjs +223 -222
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -12
- package/dist/index.d.ts +12 -12
- package/dist/index.js +37 -36
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.cjs +13 -13
- package/dist/indexes/index.d.cts +4 -4
- package/dist/indexes/index.d.ts +4 -4
- package/dist/indexes/index.js +6 -6
- package/dist/ingestion-import-target-CI8OWIkM.d.ts +17 -0
- package/dist/ingestion-import-target-DCpfM1PX.d.cts +17 -0
- package/dist/interchange/index.cjs +55 -54
- package/dist/interchange/index.cjs.map +1 -1
- package/dist/interchange/index.d.cts +26 -12
- package/dist/interchange/index.d.ts +26 -12
- package/dist/interchange/index.js +19 -18
- package/dist/interchange/index.js.map +1 -1
- package/dist/{manager-D9eRT_ns.d.ts → manager-Cfg1ENj1.d.ts} +30 -2
- package/dist/{manager-CYaff3n3.d.cts → manager-D348fa6W.d.cts} +30 -2
- package/dist/{materialize-indexes-DJ3ykH59.d.ts → materialize-indexes-C9GG3O3C.d.ts} +1 -1
- package/dist/{materialize-indexes-DTtAnvfY.d.cts → materialize-indexes-CrSiW_lT.d.cts} +1 -1
- package/dist/{postgres-DMj39MEu.d.cts → postgres-CH1kkM5J.d.cts} +279 -2
- package/dist/{postgres-CcL4bAHS.d.ts → postgres-UStOycLI.d.ts} +279 -2
- package/dist/profiler/index.d.cts +9 -9
- package/dist/profiler/index.d.ts +9 -9
- package/dist/provenance/index.cjs +46 -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 +12 -10
- package/dist/provenance/index.js.map +1 -1
- package/dist/{repair-validity-windows-DlUSqwCg.d.ts → repair-validity-windows-BtOEe2pS.d.ts} +2 -2
- package/dist/{repair-validity-windows-BFNZvd_H.d.cts → repair-validity-windows-aWX7VNvv.d.cts} +2 -2
- package/dist/schema/index.cjs +46 -46
- package/dist/schema/index.d.cts +6 -6
- package/dist/schema/index.d.ts +6 -6
- package/dist/schema/index.js +19 -19
- package/dist/{searchable-DHJMh_nj.d.cts → searchable-C8-RrL3l.d.cts} +1 -1
- package/dist/{searchable-bpE1bBfc.d.ts → searchable-z4BiFfHI.d.ts} +1 -1
- package/dist/{sqlite-D7Oz0SQh.d.ts → sqlite-Cyx9j9o6.d.cts} +309 -2
- package/dist/{sqlite-YppHrNFb.d.cts → sqlite-axLw5Lo5.d.ts} +309 -2
- package/dist/{store-JUVvtmR4.d.cts → store-CTfQ9taw.d.ts} +110 -13
- package/dist/{store-UzrGvZOo.d.ts → store-DR9J7JVB.d.cts} +110 -13
- package/dist/{temporal-5GqpYCk2.d.cts → temporal-B4Ky4wzh.d.cts} +1 -1
- package/dist/{temporal-CbnLzTmM.d.ts → temporal-CBOrERz5.d.ts} +1 -1
- package/dist/{types-CXAhpW-c.d.cts → types-BE921wRl.d.cts} +1 -1
- package/dist/{types-Bx74kaTt.d.ts → types-BScHXVM7.d.ts} +1 -1
- package/dist/{types-BqFZTQmV.d.cts → types-CWg4dTjj.d.cts} +257 -6
- package/dist/{types-BqFZTQmV.d.ts → types-CWg4dTjj.d.ts} +257 -6
- package/dist/{where-O-k2wgYm.d.ts → where-BWXUPV3C.d.ts} +1 -1
- package/dist/{where-DI_Fqz-X.d.cts → where-CNtx1aLc.d.cts} +1 -1
- package/package.json +4 -4
- package/dist/chunk-26YKDNUD.cjs.map +0 -1
- package/dist/chunk-2HIYYMWY.cjs.map +0 -1
- package/dist/chunk-2SYZXD54.js.map +0 -1
- package/dist/chunk-3KOY4FH3.cjs +0 -934
- package/dist/chunk-3KOY4FH3.cjs.map +0 -1
- package/dist/chunk-3U5ABFDW.cjs.map +0 -1
- package/dist/chunk-5K2BKEBD.js.map +0 -1
- package/dist/chunk-5PRKMB24.cjs.map +0 -1
- package/dist/chunk-6LN7FIVU.js.map +0 -1
- package/dist/chunk-6SWPJEYN.js.map +0 -1
- package/dist/chunk-ACGSAMD3.js.map +0 -1
- package/dist/chunk-AX6JGVTZ.js.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-D5R42W5D.js.map +0 -1
- package/dist/chunk-EZEEWCFJ.cjs.map +0 -1
- package/dist/chunk-FA2AFWLP.cjs +0 -167
- 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.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-MKJ4KXL5.cjs +0 -12
- package/dist/chunk-MRDBBHIZ.cjs.map +0 -1
- package/dist/chunk-NVY5CJFP.js.map +0 -1
- package/dist/chunk-OD4SSY2U.js.map +0 -1
- package/dist/chunk-OTUPEF2W.cjs.map +0 -1
- package/dist/chunk-PFBRJBUL.cjs.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-WCCATHMB.cjs.map +0 -1
- package/dist/chunk-YIURNGXI.js +0 -155
- package/dist/chunk-YIURNGXI.js.map +0 -1
- package/dist/chunk-ZFMCDJGB.js.map +0 -1
- package/dist/chunk-ZLONH2UD.js.map +0 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { formatPostgresTimestamp, coerceNumericScore, nowIso } from './chunk-
|
|
2
|
-
import { runtimeStrategyContributions } from './chunk-
|
|
3
|
-
import { toDrizzleSql } from './chunk-
|
|
4
|
-
import {
|
|
5
|
-
import { parseDimensionMismatch, deriveBackend, chunk, isMissingTableError, isDuplicatePrimaryKeyError, errorChain } from './chunk-
|
|
6
|
-
import {
|
|
1
|
+
import { formatPostgresTimestamp, coerceNumericScore, nowIso, buildPurgeEdgeClaims, buildTakeOverEdgeClaim, buildLockEdgeClaims, buildHardDeleteUniquesByConcreteKind, buildInsertUniqueBatch, buildInsertUnique, edgePrimaryKeyConstraint, nodePrimaryKeyConstraint, liveNodeIdsSubquery, buildCheckUniqueBatch, buildCheckUnique, buildHardDeleteUniquesByNodeIds, buildHardDeleteUniquesByNode, buildDeleteUnique, quotedColumn, quotedTableName, codePointOrderKey, sqlNull, expectedValidFromPredicate, edgeColumnList, nodeColumnList } from './chunk-S3SDEQMC.js';
|
|
2
|
+
import { runtimeStrategyContributions } from './chunk-6LEOAIIB.js';
|
|
3
|
+
import { toDrizzleSql } from './chunk-V76FGHY3.js';
|
|
4
|
+
import { edgeCardinalityClaimTarget, EDGE_CARDINALITY_SPECS } from './chunk-YA36ABIL.js';
|
|
5
|
+
import { parseDimensionMismatch, deriveBackend, chunk, isMissingTableError, isDuplicatePrimaryKeyError, errorChain, sortedReplacer } from './chunk-IRPYOHRC.js';
|
|
6
|
+
import { isSameClaimOwner } from './chunk-5LKOVCPP.js';
|
|
7
|
+
import { resolveStampedValidityLowerBound, resolveStatedValidityLowerBound } from './chunk-K46SDNQD.js';
|
|
7
8
|
import { sha256Hex } from './chunk-K34OPSJK.js';
|
|
8
|
-
import { buildFulltextGraphDelete, buildForeignFulltextGraphProbe, getDialect } from './chunk-
|
|
9
|
-
import { sql as sql$1, asCompiledStatementSql, asCompiledRowsSql, isSqlFragment } from './chunk-
|
|
10
|
-
import { EmbeddingDimensionChangedError, ConfigurationError, StaleVersionError, MigrationError, SchemaContentConflictError, DatabaseOperationError, UniquenessError, TrustedImportError, ContributionUnavailableError, ContributionRebuildUnsupportedError, StoreNotInitializedError } from './chunk-
|
|
9
|
+
import { buildFulltextGraphDelete, buildForeignFulltextGraphProbe, getDialect } from './chunk-EDLKIQRI.js';
|
|
10
|
+
import { sql as sql$1, asCompiledStatementSql, asCompiledRowsSql, isSqlFragment } from './chunk-46UGOVRW.js';
|
|
11
|
+
import { EmbeddingDimensionChangedError, ConfigurationError, StaleVersionError, MigrationError, SchemaContentConflictError, DatabaseOperationError, UniquenessError, TrustedImportError, ContributionUnavailableError, ContributionRebuildUnsupportedError, StoreNotInitializedError } from './chunk-YDEJQWOL.js';
|
|
11
12
|
import { isPresent } from './chunk-DYATYRY4.js';
|
|
12
13
|
import { sql, is, getTableName } from 'drizzle-orm';
|
|
13
14
|
|
|
@@ -251,7 +252,7 @@ function missingTableErrorNames(error, tableName) {
|
|
|
251
252
|
for (const link of errorChain(error)) {
|
|
252
253
|
const message = errorMessage(link);
|
|
253
254
|
if (typeof message !== "string") continue;
|
|
254
|
-
const sqliteMatch = /\bno such table:\s*([^\s
|
|
255
|
+
const sqliteMatch = /\bno such table:\s*([^\s;:]+)/i.exec(message);
|
|
255
256
|
const sqliteName = unquoteSqliteIdentifier(sqliteMatch?.[1]);
|
|
256
257
|
if (sqliteName === tableName) return true;
|
|
257
258
|
const namesPostgresTable = message.includes(`relation ${quotedTableName2} does not exist`) || message.includes(`table ${quotedTableName2} does not exist`);
|
|
@@ -1040,66 +1041,6 @@ function buildKindRemovalOnConflictSet(removedAtColumn, paramsRemovedAt) {
|
|
|
1040
1041
|
lastError: sql`excluded.${sql.identifier("last_error")}`
|
|
1041
1042
|
};
|
|
1042
1043
|
}
|
|
1043
|
-
function primaryKeyConstraintNames(relation, keyColumns) {
|
|
1044
|
-
return [`${relation}_pkey`, `${relation}_${keyColumns.join("_")}_pk`];
|
|
1045
|
-
}
|
|
1046
|
-
function nodePrimaryKeyConstraint(nodes) {
|
|
1047
|
-
const relation = getTableName(nodes);
|
|
1048
|
-
return {
|
|
1049
|
-
table: relation,
|
|
1050
|
-
constraintNames: primaryKeyConstraintNames(relation, [
|
|
1051
|
-
nodes.graphId.name,
|
|
1052
|
-
nodes.kind.name,
|
|
1053
|
-
nodes.id.name
|
|
1054
|
-
])
|
|
1055
|
-
};
|
|
1056
|
-
}
|
|
1057
|
-
function edgePrimaryKeyConstraint(edges) {
|
|
1058
|
-
const relation = getTableName(edges);
|
|
1059
|
-
return {
|
|
1060
|
-
table: relation,
|
|
1061
|
-
constraintNames: primaryKeyConstraintNames(relation, [
|
|
1062
|
-
edges.graphId.name,
|
|
1063
|
-
edges.id.name
|
|
1064
|
-
])
|
|
1065
|
-
};
|
|
1066
|
-
}
|
|
1067
|
-
function sqlNull(value) {
|
|
1068
|
-
return value ?? sql.raw("NULL");
|
|
1069
|
-
}
|
|
1070
|
-
function expectedValidFromPredicate(column, expected) {
|
|
1071
|
-
if (expected === void 0) return sql.empty();
|
|
1072
|
-
if (expected === null) return sql` AND ${column} IS NULL`;
|
|
1073
|
-
return sql` AND ${column} = ${expected}`;
|
|
1074
|
-
}
|
|
1075
|
-
function quotedColumn(column) {
|
|
1076
|
-
return sql.raw(`"${column.name.replaceAll('"', '""')}"`);
|
|
1077
|
-
}
|
|
1078
|
-
function quotedTableName(tableName) {
|
|
1079
|
-
return sql.raw(`"${tableName.replaceAll('"', '""')}"`);
|
|
1080
|
-
}
|
|
1081
|
-
var CODE_POINT_ORDER_BUILDERS = {
|
|
1082
|
-
postgres: (value) => sql`${value} COLLATE "C"`,
|
|
1083
|
-
sqlite: (value) => value
|
|
1084
|
-
};
|
|
1085
|
-
function codePointOrderKey(column, dialect) {
|
|
1086
|
-
return CODE_POINT_ORDER_BUILDERS[dialect](column);
|
|
1087
|
-
}
|
|
1088
|
-
function liveNodeIdsSubquery(nodes, graphId, nodeKind, nowIso2) {
|
|
1089
|
-
return sql`SELECT ${nodes.id} AS node_id FROM ${nodes} WHERE ${nodes.graphId} = ${graphId} AND ${nodes.kind} = ${nodeKind} AND ${nodes.deletedAt} IS NULL AND (${nodes.validFrom} IS NULL OR ${nodes.validFrom} <= ${nowIso2}) AND (${nodes.validTo} IS NULL OR ${nodes.validTo} > ${nowIso2})`;
|
|
1090
|
-
}
|
|
1091
|
-
function nodeColumnList(nodes) {
|
|
1092
|
-
return sql.raw(
|
|
1093
|
-
`"${nodes.graphId.name}", "${nodes.kind.name}", "${nodes.id.name}", "${nodes.props.name}", "${nodes.version.name}", "${nodes.validFrom.name}", "${nodes.validTo.name}", "${nodes.createdAt.name}", "${nodes.updatedAt.name}"`
|
|
1094
|
-
);
|
|
1095
|
-
}
|
|
1096
|
-
function edgeColumnList(edges) {
|
|
1097
|
-
return sql.raw(
|
|
1098
|
-
`"${edges.graphId.name}", "${edges.id.name}", "${edges.kind.name}", "${edges.fromKind.name}", "${edges.fromId.name}", "${edges.toKind.name}", "${edges.toId.name}", "${edges.props.name}", "${edges.validFrom.name}", "${edges.validTo.name}", "${edges.createdAt.name}", "${edges.updatedAt.name}"`
|
|
1099
|
-
);
|
|
1100
|
-
}
|
|
1101
|
-
|
|
1102
|
-
// src/backend/drizzle/operations/hybrid.ts
|
|
1103
1044
|
function nodeIdOrderKey(dialect) {
|
|
1104
1045
|
return codePointOrderKey(sql.raw("node_id"), dialect);
|
|
1105
1046
|
}
|
|
@@ -1247,6 +1188,17 @@ function buildClearGraph(tables, graphId) {
|
|
|
1247
1188
|
{
|
|
1248
1189
|
query: sql`DELETE FROM ${tables.uniques} WHERE ${tables.uniques.graphId} = ${graphId}`
|
|
1249
1190
|
},
|
|
1191
|
+
// Edge claims name the edges they are held by, so they are cleared
|
|
1192
|
+
// BEFORE the edges — the same ordering `uniques` gets against `nodes`.
|
|
1193
|
+
// Tolerates absence for the reason the recorded relations do: bootstrap DDL
|
|
1194
|
+
// runs only on first boot, so a database initialized before this relation
|
|
1195
|
+
// existed has no such table, and clearing a graph must not become the
|
|
1196
|
+
// operation that fails on it.
|
|
1197
|
+
{
|
|
1198
|
+
query: sql`DELETE FROM ${tables.edgeClaims} WHERE ${tables.edgeClaims.graphId} = ${graphId}`,
|
|
1199
|
+
ignoreMissingTable: true,
|
|
1200
|
+
requiredTableName: getTableName(tables.edgeClaims)
|
|
1201
|
+
},
|
|
1250
1202
|
{
|
|
1251
1203
|
query: sql`DELETE FROM ${tables.edges} WHERE ${tables.edges.graphId} = ${graphId}`
|
|
1252
1204
|
},
|
|
@@ -1507,6 +1459,85 @@ function buildCountEdgesByKind(tables, params) {
|
|
|
1507
1459
|
WHERE ${whereClause}
|
|
1508
1460
|
`;
|
|
1509
1461
|
}
|
|
1462
|
+
var PEER = "peer";
|
|
1463
|
+
function qualified2(relation, column) {
|
|
1464
|
+
return sql.raw(`"${relation}"."${column.name}"`);
|
|
1465
|
+
}
|
|
1466
|
+
function inList(values) {
|
|
1467
|
+
return sql.join(
|
|
1468
|
+
values.map((value) => sql`${value}`),
|
|
1469
|
+
sql`, `
|
|
1470
|
+
);
|
|
1471
|
+
}
|
|
1472
|
+
function buildContendedUniqueRowAudit(tables, graphId, constraintNames) {
|
|
1473
|
+
const { uniques } = tables;
|
|
1474
|
+
const relation = getTableName(uniques);
|
|
1475
|
+
return sql`
|
|
1476
|
+
SELECT
|
|
1477
|
+
${quotedColumn(uniques.nodeKind)} as node_kind,
|
|
1478
|
+
${quotedColumn(uniques.constraintName)} as constraint_name,
|
|
1479
|
+
${quotedColumn(uniques.key)} as key,
|
|
1480
|
+
${quotedColumn(uniques.concreteKind)} as concrete_kind,
|
|
1481
|
+
${quotedColumn(uniques.nodeId)} as node_id
|
|
1482
|
+
FROM ${uniques}
|
|
1483
|
+
WHERE ${qualified2(relation, uniques.graphId)} = ${graphId}
|
|
1484
|
+
AND ${qualified2(relation, uniques.constraintName)} IN (${inList(constraintNames)})
|
|
1485
|
+
AND ${qualified2(relation, uniques.deletedAt)} IS NULL
|
|
1486
|
+
AND EXISTS (
|
|
1487
|
+
SELECT 1 FROM ${uniques} AS ${sql.raw(`"${PEER}"`)}
|
|
1488
|
+
WHERE ${qualified2(PEER, uniques.graphId)} = ${qualified2(relation, uniques.graphId)}
|
|
1489
|
+
AND ${qualified2(PEER, uniques.constraintName)} = ${qualified2(relation, uniques.constraintName)}
|
|
1490
|
+
AND ${qualified2(PEER, uniques.key)} = ${qualified2(relation, uniques.key)}
|
|
1491
|
+
AND ${qualified2(PEER, uniques.deletedAt)} IS NULL
|
|
1492
|
+
AND ${qualified2(PEER, uniques.nodeKind)} <> ${qualified2(relation, uniques.nodeKind)}
|
|
1493
|
+
)
|
|
1494
|
+
`;
|
|
1495
|
+
}
|
|
1496
|
+
function buildContendedEdgeRowAudit(tables, graphId, cardinality, edgeKinds) {
|
|
1497
|
+
const { edges } = tables;
|
|
1498
|
+
const relation = getTableName(edges);
|
|
1499
|
+
const spec = EDGE_CARDINALITY_SPECS[cardinality];
|
|
1500
|
+
const activeOnly = spec.holderLiveness === "liveAndActive" ? sql` AND ${qualified2(relation, edges.validTo)} IS NULL` : sql.empty();
|
|
1501
|
+
const peerActiveOnly = spec.holderLiveness === "liveAndActive" ? sql` AND ${qualified2(PEER, edges.validTo)} IS NULL` : sql.empty();
|
|
1502
|
+
const peerToEndpoints = spec.keyShape === "fromAndTo" ? sql`
|
|
1503
|
+
AND ${qualified2(PEER, edges.toKind)} = ${qualified2(relation, edges.toKind)}
|
|
1504
|
+
AND ${qualified2(PEER, edges.toId)} = ${qualified2(relation, edges.toId)}
|
|
1505
|
+
` : sql.empty();
|
|
1506
|
+
return sql`
|
|
1507
|
+
SELECT
|
|
1508
|
+
${quotedColumn(edges.id)} as edge_id,
|
|
1509
|
+
${quotedColumn(edges.kind)} as edge_kind,
|
|
1510
|
+
${quotedColumn(edges.fromKind)} as from_kind,
|
|
1511
|
+
${quotedColumn(edges.fromId)} as from_id,
|
|
1512
|
+
${quotedColumn(edges.toKind)} as to_kind,
|
|
1513
|
+
${quotedColumn(edges.toId)} as to_id
|
|
1514
|
+
FROM ${edges}
|
|
1515
|
+
WHERE ${qualified2(relation, edges.graphId)} = ${graphId}
|
|
1516
|
+
AND ${qualified2(relation, edges.kind)} IN (${inList(edgeKinds)})
|
|
1517
|
+
AND ${qualified2(relation, edges.deletedAt)} IS NULL${activeOnly}
|
|
1518
|
+
AND EXISTS (
|
|
1519
|
+
SELECT 1 FROM ${edges} AS ${sql.raw(`"${PEER}"`)}
|
|
1520
|
+
WHERE ${qualified2(PEER, edges.graphId)} = ${qualified2(relation, edges.graphId)}
|
|
1521
|
+
AND ${qualified2(PEER, edges.kind)} = ${qualified2(relation, edges.kind)}
|
|
1522
|
+
AND ${qualified2(PEER, edges.fromKind)} = ${qualified2(relation, edges.fromKind)}
|
|
1523
|
+
AND ${qualified2(PEER, edges.fromId)} = ${qualified2(relation, edges.fromId)}${peerToEndpoints}
|
|
1524
|
+
AND ${qualified2(PEER, edges.deletedAt)} IS NULL${peerActiveOnly}
|
|
1525
|
+
AND ${qualified2(PEER, edges.id)} <> ${qualified2(relation, edges.id)}
|
|
1526
|
+
)
|
|
1527
|
+
`;
|
|
1528
|
+
}
|
|
1529
|
+
function buildDisjointOverlapAudit(tables, graphId, kinds) {
|
|
1530
|
+
const { nodes } = tables;
|
|
1531
|
+
const relation = getTableName(nodes);
|
|
1532
|
+
const liveIdsOfKind = (kind) => sql`
|
|
1533
|
+
SELECT ${quotedColumn(nodes.id)} as node_id
|
|
1534
|
+
FROM ${nodes}
|
|
1535
|
+
WHERE ${qualified2(relation, nodes.graphId)} = ${graphId}
|
|
1536
|
+
AND ${qualified2(relation, nodes.kind)} = ${kind}
|
|
1537
|
+
AND ${qualified2(relation, nodes.deletedAt)} IS NULL
|
|
1538
|
+
`;
|
|
1539
|
+
return sql`${liveIdsOfKind(kinds[0])} INTERSECT ${liveIdsOfKind(kinds[1])}`;
|
|
1540
|
+
}
|
|
1510
1541
|
function buildInsertEdge(tables, params, timestamp) {
|
|
1511
1542
|
const { edges } = tables;
|
|
1512
1543
|
const propsJson = JSON.stringify(params.props);
|
|
@@ -2050,215 +2081,6 @@ function buildSetActiveSchema(tables, graphId, version, dialect = "sqlite") {
|
|
|
2050
2081
|
`;
|
|
2051
2082
|
return { deactivateAll, activateVersion };
|
|
2052
2083
|
}
|
|
2053
|
-
function buildInsertUniqueSqlite(tables, params) {
|
|
2054
|
-
const { uniques } = tables;
|
|
2055
|
-
const columns = sql.raw(
|
|
2056
|
-
`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}", "${uniques.nodeId.name}", "${uniques.concreteKind.name}", "${uniques.deletedAt.name}"`
|
|
2057
|
-
);
|
|
2058
|
-
const conflictColumns = sql.raw(
|
|
2059
|
-
`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}"`
|
|
2060
|
-
);
|
|
2061
|
-
return sql`
|
|
2062
|
-
INSERT INTO ${uniques} (${columns})
|
|
2063
|
-
VALUES (
|
|
2064
|
-
${params.graphId}, ${params.nodeKind}, ${params.constraintName},
|
|
2065
|
-
${params.key}, ${params.nodeId}, ${params.concreteKind}, ${sql.raw("NULL")}
|
|
2066
|
-
)
|
|
2067
|
-
ON CONFLICT (${conflictColumns})
|
|
2068
|
-
DO UPDATE SET
|
|
2069
|
-
${quotedColumn(uniques.nodeId)} = CASE
|
|
2070
|
-
WHEN ${quotedColumn(uniques.nodeId)} = ${params.nodeId} THEN ${params.nodeId}
|
|
2071
|
-
WHEN ${quotedColumn(uniques.deletedAt)} IS NOT NULL THEN ${params.nodeId}
|
|
2072
|
-
ELSE ${quotedColumn(uniques.nodeId)}
|
|
2073
|
-
END,
|
|
2074
|
-
${quotedColumn(uniques.concreteKind)} = CASE
|
|
2075
|
-
WHEN ${quotedColumn(uniques.nodeId)} = ${params.nodeId} THEN ${params.concreteKind}
|
|
2076
|
-
WHEN ${quotedColumn(uniques.deletedAt)} IS NOT NULL THEN ${params.concreteKind}
|
|
2077
|
-
ELSE ${quotedColumn(uniques.concreteKind)}
|
|
2078
|
-
END,
|
|
2079
|
-
${quotedColumn(uniques.deletedAt)} = CASE
|
|
2080
|
-
WHEN ${quotedColumn(uniques.nodeId)} = ${params.nodeId} THEN NULL
|
|
2081
|
-
WHEN ${quotedColumn(uniques.deletedAt)} IS NOT NULL THEN NULL
|
|
2082
|
-
ELSE ${quotedColumn(uniques.deletedAt)}
|
|
2083
|
-
END
|
|
2084
|
-
RETURNING ${quotedColumn(uniques.nodeId)} as node_id
|
|
2085
|
-
`;
|
|
2086
|
-
}
|
|
2087
|
-
function buildInsertUniquePostgres(tables, params) {
|
|
2088
|
-
const { uniques } = tables;
|
|
2089
|
-
const columns = sql.raw(
|
|
2090
|
-
`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}", "${uniques.nodeId.name}", "${uniques.concreteKind.name}", "${uniques.deletedAt.name}"`
|
|
2091
|
-
);
|
|
2092
|
-
const conflictColumns = sql.raw(
|
|
2093
|
-
`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}"`
|
|
2094
|
-
);
|
|
2095
|
-
const tableName = getTableName(uniques);
|
|
2096
|
-
const existingColumn = (column) => sql.raw(`"${tableName}"."${column.name}"`);
|
|
2097
|
-
return sql`
|
|
2098
|
-
INSERT INTO ${uniques} (${columns})
|
|
2099
|
-
VALUES (
|
|
2100
|
-
${params.graphId}, ${params.nodeKind}, ${params.constraintName},
|
|
2101
|
-
${params.key}, ${params.nodeId}, ${params.concreteKind}, ${sql.raw("NULL")}
|
|
2102
|
-
)
|
|
2103
|
-
ON CONFLICT (${conflictColumns})
|
|
2104
|
-
DO UPDATE SET
|
|
2105
|
-
${quotedColumn(uniques.nodeId)} = CASE
|
|
2106
|
-
WHEN ${existingColumn(uniques.nodeId)} = ${params.nodeId} THEN ${params.nodeId}
|
|
2107
|
-
WHEN ${existingColumn(uniques.deletedAt)} IS NOT NULL THEN ${params.nodeId}
|
|
2108
|
-
ELSE ${existingColumn(uniques.nodeId)}
|
|
2109
|
-
END,
|
|
2110
|
-
${quotedColumn(uniques.concreteKind)} = CASE
|
|
2111
|
-
WHEN ${existingColumn(uniques.nodeId)} = ${params.nodeId} THEN ${params.concreteKind}
|
|
2112
|
-
WHEN ${existingColumn(uniques.deletedAt)} IS NOT NULL THEN ${params.concreteKind}
|
|
2113
|
-
ELSE ${existingColumn(uniques.concreteKind)}
|
|
2114
|
-
END,
|
|
2115
|
-
${quotedColumn(uniques.deletedAt)} = CASE
|
|
2116
|
-
WHEN ${existingColumn(uniques.nodeId)} = ${params.nodeId} THEN NULL
|
|
2117
|
-
WHEN ${existingColumn(uniques.deletedAt)} IS NOT NULL THEN NULL
|
|
2118
|
-
ELSE ${existingColumn(uniques.deletedAt)}
|
|
2119
|
-
END
|
|
2120
|
-
RETURNING ${quotedColumn(uniques.nodeId)} as node_id
|
|
2121
|
-
`;
|
|
2122
|
-
}
|
|
2123
|
-
var UNIQUE_INSERT_BUILDERS = {
|
|
2124
|
-
postgres: buildInsertUniquePostgres,
|
|
2125
|
-
sqlite: buildInsertUniqueSqlite
|
|
2126
|
-
};
|
|
2127
|
-
function buildInsertUnique(tables, dialect, params) {
|
|
2128
|
-
const builder = UNIQUE_INSERT_BUILDERS[dialect];
|
|
2129
|
-
return builder(tables, params);
|
|
2130
|
-
}
|
|
2131
|
-
function buildInsertUniqueBatch(tables, dialect, entries) {
|
|
2132
|
-
const { uniques } = tables;
|
|
2133
|
-
const columns = sql.raw(
|
|
2134
|
-
`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}", "${uniques.nodeId.name}", "${uniques.concreteKind.name}", "${uniques.deletedAt.name}"`
|
|
2135
|
-
);
|
|
2136
|
-
const conflictColumns = sql.raw(
|
|
2137
|
-
`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}"`
|
|
2138
|
-
);
|
|
2139
|
-
const tableName = getTableName(uniques);
|
|
2140
|
-
const existingColumn = (column) => {
|
|
2141
|
-
switch (dialect) {
|
|
2142
|
-
case "postgres": {
|
|
2143
|
-
return sql.raw(`"${tableName}"."${column.name}"`);
|
|
2144
|
-
}
|
|
2145
|
-
case "sqlite": {
|
|
2146
|
-
return sql.raw(`"${column.name}"`);
|
|
2147
|
-
}
|
|
2148
|
-
default: {
|
|
2149
|
-
return dialect;
|
|
2150
|
-
}
|
|
2151
|
-
}
|
|
2152
|
-
};
|
|
2153
|
-
const excludedColumn = (column) => sql.raw(`excluded."${column.name}"`);
|
|
2154
|
-
const valueRows = sql.join(
|
|
2155
|
-
entries.map(
|
|
2156
|
-
(params) => sql`(${params.graphId}, ${params.nodeKind}, ${params.constraintName}, ${params.key}, ${params.nodeId}, ${params.concreteKind}, ${sql.raw("NULL")})`
|
|
2157
|
-
),
|
|
2158
|
-
sql`, `
|
|
2159
|
-
);
|
|
2160
|
-
return sql`
|
|
2161
|
-
INSERT INTO ${uniques} (${columns})
|
|
2162
|
-
VALUES ${valueRows}
|
|
2163
|
-
ON CONFLICT (${conflictColumns})
|
|
2164
|
-
DO UPDATE SET
|
|
2165
|
-
${quotedColumn(uniques.nodeId)} = CASE
|
|
2166
|
-
WHEN ${existingColumn(uniques.nodeId)} = ${excludedColumn(uniques.nodeId)} THEN ${excludedColumn(uniques.nodeId)}
|
|
2167
|
-
WHEN ${existingColumn(uniques.deletedAt)} IS NOT NULL THEN ${excludedColumn(uniques.nodeId)}
|
|
2168
|
-
ELSE ${existingColumn(uniques.nodeId)}
|
|
2169
|
-
END,
|
|
2170
|
-
${quotedColumn(uniques.concreteKind)} = CASE
|
|
2171
|
-
WHEN ${existingColumn(uniques.nodeId)} = ${excludedColumn(uniques.nodeId)} THEN ${excludedColumn(uniques.concreteKind)}
|
|
2172
|
-
WHEN ${existingColumn(uniques.deletedAt)} IS NOT NULL THEN ${excludedColumn(uniques.concreteKind)}
|
|
2173
|
-
ELSE ${existingColumn(uniques.concreteKind)}
|
|
2174
|
-
END,
|
|
2175
|
-
${quotedColumn(uniques.deletedAt)} = CASE
|
|
2176
|
-
WHEN ${existingColumn(uniques.nodeId)} = ${excludedColumn(uniques.nodeId)} THEN NULL
|
|
2177
|
-
WHEN ${existingColumn(uniques.deletedAt)} IS NOT NULL THEN NULL
|
|
2178
|
-
ELSE ${existingColumn(uniques.deletedAt)}
|
|
2179
|
-
END
|
|
2180
|
-
RETURNING
|
|
2181
|
-
${quotedColumn(uniques.nodeKind)} as node_kind,
|
|
2182
|
-
${quotedColumn(uniques.constraintName)} as constraint_name,
|
|
2183
|
-
${quotedColumn(uniques.key)} as key,
|
|
2184
|
-
${quotedColumn(uniques.nodeId)} as node_id
|
|
2185
|
-
`;
|
|
2186
|
-
}
|
|
2187
|
-
function buildDeleteUnique(tables, params, timestamp) {
|
|
2188
|
-
const { uniques } = tables;
|
|
2189
|
-
return sql`
|
|
2190
|
-
UPDATE ${uniques}
|
|
2191
|
-
SET ${quotedColumn(uniques.deletedAt)} = ${timestamp}
|
|
2192
|
-
WHERE ${uniques.graphId} = ${params.graphId}
|
|
2193
|
-
AND ${uniques.nodeKind} = ${params.nodeKind}
|
|
2194
|
-
AND ${uniques.constraintName} = ${params.constraintName}
|
|
2195
|
-
AND ${uniques.key} = ${params.key}
|
|
2196
|
-
AND ${uniques.deletedAt} IS NULL
|
|
2197
|
-
`;
|
|
2198
|
-
}
|
|
2199
|
-
function buildHardDeleteUniquesByNode(tables, graphId, concreteKind, nodeId) {
|
|
2200
|
-
return buildHardDeleteUniquesByNodeIds(tables, {
|
|
2201
|
-
graphId,
|
|
2202
|
-
concreteKind,
|
|
2203
|
-
nodeIds: [nodeId]
|
|
2204
|
-
});
|
|
2205
|
-
}
|
|
2206
|
-
function buildHardDeleteUniquesByNodeIds(tables, params) {
|
|
2207
|
-
const { uniques } = tables;
|
|
2208
|
-
return sql`
|
|
2209
|
-
DELETE FROM ${uniques}
|
|
2210
|
-
WHERE ${uniques.graphId} = ${params.graphId}
|
|
2211
|
-
AND ${uniques.concreteKind} = ${params.concreteKind}
|
|
2212
|
-
AND ${uniques.nodeId} IN (${sql.join(
|
|
2213
|
-
params.nodeIds.map((nodeId) => sql`${nodeId}`),
|
|
2214
|
-
sql`, `
|
|
2215
|
-
)})
|
|
2216
|
-
`;
|
|
2217
|
-
}
|
|
2218
|
-
function buildCheckUnique(tables, params) {
|
|
2219
|
-
const { uniques } = tables;
|
|
2220
|
-
if (params.includeDeleted) {
|
|
2221
|
-
return sql`
|
|
2222
|
-
SELECT * FROM ${uniques}
|
|
2223
|
-
WHERE ${uniques.graphId} = ${params.graphId}
|
|
2224
|
-
AND ${uniques.nodeKind} = ${params.nodeKind}
|
|
2225
|
-
AND ${uniques.constraintName} = ${params.constraintName}
|
|
2226
|
-
AND ${uniques.key} = ${params.key}
|
|
2227
|
-
`;
|
|
2228
|
-
}
|
|
2229
|
-
return sql`
|
|
2230
|
-
SELECT * FROM ${uniques}
|
|
2231
|
-
WHERE ${uniques.graphId} = ${params.graphId}
|
|
2232
|
-
AND ${uniques.nodeKind} = ${params.nodeKind}
|
|
2233
|
-
AND ${uniques.constraintName} = ${params.constraintName}
|
|
2234
|
-
AND ${uniques.key} = ${params.key}
|
|
2235
|
-
AND ${uniques.deletedAt} IS NULL
|
|
2236
|
-
`;
|
|
2237
|
-
}
|
|
2238
|
-
function buildCheckUniqueBatch(tables, params) {
|
|
2239
|
-
const { uniques } = tables;
|
|
2240
|
-
const keyPlaceholders = sql.join(
|
|
2241
|
-
params.keys.map((key) => sql`${key}`),
|
|
2242
|
-
sql`, `
|
|
2243
|
-
);
|
|
2244
|
-
if (params.includeDeleted) {
|
|
2245
|
-
return sql`
|
|
2246
|
-
SELECT * FROM ${uniques}
|
|
2247
|
-
WHERE ${uniques.graphId} = ${params.graphId}
|
|
2248
|
-
AND ${uniques.nodeKind} = ${params.nodeKind}
|
|
2249
|
-
AND ${uniques.constraintName} = ${params.constraintName}
|
|
2250
|
-
AND ${uniques.key} IN (${keyPlaceholders})
|
|
2251
|
-
`;
|
|
2252
|
-
}
|
|
2253
|
-
return sql`
|
|
2254
|
-
SELECT * FROM ${uniques}
|
|
2255
|
-
WHERE ${uniques.graphId} = ${params.graphId}
|
|
2256
|
-
AND ${uniques.nodeKind} = ${params.nodeKind}
|
|
2257
|
-
AND ${uniques.constraintName} = ${params.constraintName}
|
|
2258
|
-
AND ${uniques.key} IN (${keyPlaceholders})
|
|
2259
|
-
AND ${uniques.deletedAt} IS NULL
|
|
2260
|
-
`;
|
|
2261
|
-
}
|
|
2262
2084
|
|
|
2263
2085
|
// src/backend/drizzle/operations/strategy.ts
|
|
2264
2086
|
function nullableText(value) {
|
|
@@ -2431,6 +2253,35 @@ function createCommonOperationStrategy(tables, dialect, fulltextStrategy) {
|
|
|
2431
2253
|
buildInsertUniqueBatch(entries) {
|
|
2432
2254
|
return buildInsertUniqueBatch(tables, dialect, entries);
|
|
2433
2255
|
},
|
|
2256
|
+
buildHardDeleteUniquesByConcreteKind(params) {
|
|
2257
|
+
return buildHardDeleteUniquesByConcreteKind(
|
|
2258
|
+
getTableName(tables.uniques),
|
|
2259
|
+
params
|
|
2260
|
+
);
|
|
2261
|
+
},
|
|
2262
|
+
buildLockEdgeClaims(entries, timestamp) {
|
|
2263
|
+
return buildLockEdgeClaims(tables, entries, timestamp);
|
|
2264
|
+
},
|
|
2265
|
+
buildTakeOverEdgeClaim(params, timestamp) {
|
|
2266
|
+
return buildTakeOverEdgeClaim(tables, params, timestamp);
|
|
2267
|
+
},
|
|
2268
|
+
buildPurgeEdgeClaims(params) {
|
|
2269
|
+
return buildPurgeEdgeClaims(tables, params);
|
|
2270
|
+
},
|
|
2271
|
+
buildContendedUniqueRowAudit(graphId, constraintNames) {
|
|
2272
|
+
return buildContendedUniqueRowAudit(tables, graphId, constraintNames);
|
|
2273
|
+
},
|
|
2274
|
+
buildContendedEdgeRowAudit(graphId, cardinality, edgeKinds) {
|
|
2275
|
+
return buildContendedEdgeRowAudit(
|
|
2276
|
+
tables,
|
|
2277
|
+
graphId,
|
|
2278
|
+
cardinality,
|
|
2279
|
+
edgeKinds
|
|
2280
|
+
);
|
|
2281
|
+
},
|
|
2282
|
+
buildDisjointOverlapAudit(graphId, kinds) {
|
|
2283
|
+
return buildDisjointOverlapAudit(tables, graphId, kinds);
|
|
2284
|
+
},
|
|
2434
2285
|
buildGetActiveSchema(graphId) {
|
|
2435
2286
|
return buildGetActiveSchema(tables, graphId, dialect);
|
|
2436
2287
|
},
|
|
@@ -2493,6 +2344,9 @@ function createSqliteOperationStrategy(tables, fulltextStrategy) {
|
|
|
2493
2344
|
function createPostgresOperationStrategy(tables, fulltextStrategy) {
|
|
2494
2345
|
return createCommonOperationStrategy(tables, "postgres", fulltextStrategy);
|
|
2495
2346
|
}
|
|
2347
|
+
function claimOwnerOf(params) {
|
|
2348
|
+
return { concreteKind: params.concreteKind, nodeId: params.nodeId };
|
|
2349
|
+
}
|
|
2496
2350
|
var DRIZZLE_DIALECT_LABELS = {
|
|
2497
2351
|
postgres: "Postgres",
|
|
2498
2352
|
sqlite: "SQLite"
|
|
@@ -2594,6 +2448,50 @@ function createCommonOperationBackend(options) {
|
|
|
2594
2448
|
}
|
|
2595
2449
|
await execution.execRun(statement.query);
|
|
2596
2450
|
}
|
|
2451
|
+
async function claimEdgeCardinalityEntries(entries) {
|
|
2452
|
+
if (entries.length === 0) return [];
|
|
2453
|
+
const targetKey = (entry) => {
|
|
2454
|
+
const target = edgeCardinalityClaimTarget(entry);
|
|
2455
|
+
return `${target.axis}\0${target.key}`;
|
|
2456
|
+
};
|
|
2457
|
+
const seen = /* @__PURE__ */ new Set();
|
|
2458
|
+
for (const entry of entries) {
|
|
2459
|
+
const key = targetKey(entry);
|
|
2460
|
+
if (seen.has(key)) {
|
|
2461
|
+
throw new DatabaseOperationError(
|
|
2462
|
+
"Two edge claims in one batch name the same cardinality axis and key; a multi-row upsert cannot affect one row twice.",
|
|
2463
|
+
{ operation: "insert", entity: "edge" }
|
|
2464
|
+
);
|
|
2465
|
+
}
|
|
2466
|
+
seen.add(key);
|
|
2467
|
+
}
|
|
2468
|
+
const outcomes = /* @__PURE__ */ new Map();
|
|
2469
|
+
for (const chunk2 of chunk(entries, batchConfig.edgeInsertBatchSize)) {
|
|
2470
|
+
const lockQuery = operationStrategy.buildLockEdgeClaims(chunk2, nowIso2());
|
|
2471
|
+
const rows = await execution.execAll(lockQuery);
|
|
2472
|
+
const holderByTarget = new Map(
|
|
2473
|
+
rows.map((row) => [`${row.axis}\0${row.key}`, row.holder_edge_id])
|
|
2474
|
+
);
|
|
2475
|
+
for (const entry of chunk2) {
|
|
2476
|
+
const key = targetKey(entry);
|
|
2477
|
+
const holder = holderByTarget.get(key);
|
|
2478
|
+
if (holder === void 0 || holder === entry.edgeId) {
|
|
2479
|
+
outcomes.set(key, { status: "claimed" });
|
|
2480
|
+
continue;
|
|
2481
|
+
}
|
|
2482
|
+
const takeOver = await execution.execAll(
|
|
2483
|
+
operationStrategy.buildTakeOverEdgeClaim(entry, nowIso2())
|
|
2484
|
+
);
|
|
2485
|
+
outcomes.set(
|
|
2486
|
+
key,
|
|
2487
|
+
takeOver.length > 0 ? { status: "claimed" } : { status: "refused", holderEdgeId: holder }
|
|
2488
|
+
);
|
|
2489
|
+
}
|
|
2490
|
+
}
|
|
2491
|
+
return entries.map(
|
|
2492
|
+
(entry) => outcomes.get(targetKey(entry)) ?? { status: "claimed" }
|
|
2493
|
+
);
|
|
2494
|
+
}
|
|
2597
2495
|
async function readActiveVersion(graphId) {
|
|
2598
2496
|
const row = await execution.execGet(
|
|
2599
2497
|
operationStrategy.buildGetActiveSchema(graphId)
|
|
@@ -2976,13 +2874,23 @@ function createCommonOperationBackend(options) {
|
|
|
2976
2874
|
async insertUnique(params) {
|
|
2977
2875
|
const query = operationStrategy.buildInsertUnique(params);
|
|
2978
2876
|
const result = await execution.execGet(query);
|
|
2979
|
-
if (result &&
|
|
2877
|
+
if (result && !isSameClaimOwner(
|
|
2878
|
+
{ concreteKind: result.concrete_kind, nodeId: result.node_id },
|
|
2879
|
+
claimOwnerOf(params)
|
|
2880
|
+
)) {
|
|
2980
2881
|
throw new UniquenessError({
|
|
2981
2882
|
constraintName: params.constraintName,
|
|
2982
|
-
kind
|
|
2883
|
+
// The holder's own kind, never `nodeKind`: that column carries the
|
|
2884
|
+
// claim AXIS, which a shared scope folds across kinds, so it need not
|
|
2885
|
+
// be the holder's kind and usually is not.
|
|
2886
|
+
kind: result.concrete_kind,
|
|
2983
2887
|
existingId: result.node_id,
|
|
2984
2888
|
newId: params.nodeId,
|
|
2985
|
-
fields: []
|
|
2889
|
+
fields: [],
|
|
2890
|
+
// The axis THIS statement attempted — `mapClaimRefusal`'s only way to
|
|
2891
|
+
// tell two disjoint pairs (or two scoped constraints) sharing a key
|
|
2892
|
+
// apart, since `constraintName` alone does not.
|
|
2893
|
+
axis: params.nodeKind
|
|
2986
2894
|
});
|
|
2987
2895
|
}
|
|
2988
2896
|
},
|
|
@@ -2996,13 +2904,14 @@ function createCommonOperationBackend(options) {
|
|
|
2996
2904
|
byTarget.set(targetKey(entry), entry);
|
|
2997
2905
|
continue;
|
|
2998
2906
|
}
|
|
2999
|
-
if (existing
|
|
2907
|
+
if (!isSameClaimOwner(claimOwnerOf(existing), claimOwnerOf(entry))) {
|
|
3000
2908
|
throw new UniquenessError({
|
|
3001
2909
|
constraintName: entry.constraintName,
|
|
3002
|
-
kind:
|
|
2910
|
+
kind: existing.concreteKind,
|
|
3003
2911
|
existingId: existing.nodeId,
|
|
3004
2912
|
newId: entry.nodeId,
|
|
3005
|
-
fields: []
|
|
2913
|
+
fields: [],
|
|
2914
|
+
axis: entry.nodeKind
|
|
3006
2915
|
});
|
|
3007
2916
|
}
|
|
3008
2917
|
}
|
|
@@ -3016,18 +2925,19 @@ function createCommonOperationBackend(options) {
|
|
|
3016
2925
|
const ownerByTarget = new Map(
|
|
3017
2926
|
rows.map((row) => [
|
|
3018
2927
|
`${row.node_kind}\0${row.constraint_name}\0${row.key}`,
|
|
3019
|
-
row.node_id
|
|
2928
|
+
{ concreteKind: row.concrete_kind, nodeId: row.node_id }
|
|
3020
2929
|
])
|
|
3021
2930
|
);
|
|
3022
2931
|
for (const entry of chunk2) {
|
|
3023
2932
|
const owner = ownerByTarget.get(targetKey(entry));
|
|
3024
|
-
if (owner !== void 0 && owner
|
|
2933
|
+
if (owner !== void 0 && !isSameClaimOwner(owner, claimOwnerOf(entry))) {
|
|
3025
2934
|
throw new UniquenessError({
|
|
3026
2935
|
constraintName: entry.constraintName,
|
|
3027
|
-
kind:
|
|
3028
|
-
existingId: owner,
|
|
2936
|
+
kind: owner.concreteKind,
|
|
2937
|
+
existingId: owner.nodeId,
|
|
3029
2938
|
newId: entry.nodeId,
|
|
3030
|
-
fields: []
|
|
2939
|
+
fields: [],
|
|
2940
|
+
axis: entry.nodeKind
|
|
3031
2941
|
});
|
|
3032
2942
|
}
|
|
3033
2943
|
}
|
|
@@ -3051,6 +2961,78 @@ function createCommonOperationBackend(options) {
|
|
|
3051
2961
|
await execution.execRun(query);
|
|
3052
2962
|
}
|
|
3053
2963
|
},
|
|
2964
|
+
async hardDeleteUniquesByConcreteKind(params) {
|
|
2965
|
+
const query = operationStrategy.buildHardDeleteUniquesByConcreteKind(params);
|
|
2966
|
+
await execution.execRun(query);
|
|
2967
|
+
},
|
|
2968
|
+
async claimEdgeCardinality(params) {
|
|
2969
|
+
const [outcome] = await claimEdgeCardinalityEntries([params]);
|
|
2970
|
+
return outcome ?? { status: "claimed" };
|
|
2971
|
+
},
|
|
2972
|
+
claimEdgeCardinalityBatch(entries) {
|
|
2973
|
+
return claimEdgeCardinalityEntries(entries);
|
|
2974
|
+
},
|
|
2975
|
+
async purgeEdgeClaims(params) {
|
|
2976
|
+
const edgeIds = [...new Set(params.edgeIds)];
|
|
2977
|
+
for (const chunk2 of chunk(edgeIds, batchConfig.getEdgesChunkSize)) {
|
|
2978
|
+
const query = operationStrategy.buildPurgeEdgeClaims({
|
|
2979
|
+
...params,
|
|
2980
|
+
edgeIds: chunk2
|
|
2981
|
+
});
|
|
2982
|
+
await execution.execRun(query);
|
|
2983
|
+
}
|
|
2984
|
+
},
|
|
2985
|
+
async readConstraintFenceViolations(params) {
|
|
2986
|
+
const uniqueRows = params.uniqueConstraintNames.length === 0 ? [] : await execution.execAll(
|
|
2987
|
+
operationStrategy.buildContendedUniqueRowAudit(
|
|
2988
|
+
params.graphId,
|
|
2989
|
+
params.uniqueConstraintNames
|
|
2990
|
+
)
|
|
2991
|
+
);
|
|
2992
|
+
const contendedUniqueRows = uniqueRows.map((row) => ({
|
|
2993
|
+
nodeKind: row.node_kind,
|
|
2994
|
+
constraintName: row.constraint_name,
|
|
2995
|
+
key: row.key,
|
|
2996
|
+
concreteKind: row.concrete_kind,
|
|
2997
|
+
nodeId: row.node_id
|
|
2998
|
+
}));
|
|
2999
|
+
const edgeKindsByCardinality = /* @__PURE__ */ new Map();
|
|
3000
|
+
for (const declaration of params.edgeCardinalities) {
|
|
3001
|
+
const kinds = edgeKindsByCardinality.get(declaration.cardinality) ?? [];
|
|
3002
|
+
kinds.push(declaration.edgeKind);
|
|
3003
|
+
edgeKindsByCardinality.set(declaration.cardinality, kinds);
|
|
3004
|
+
}
|
|
3005
|
+
const contendedEdgeRows = [];
|
|
3006
|
+
for (const [cardinality, edgeKinds] of edgeKindsByCardinality) {
|
|
3007
|
+
const rows = await execution.execAll(
|
|
3008
|
+
operationStrategy.buildContendedEdgeRowAudit(
|
|
3009
|
+
params.graphId,
|
|
3010
|
+
cardinality,
|
|
3011
|
+
edgeKinds
|
|
3012
|
+
)
|
|
3013
|
+
);
|
|
3014
|
+
for (const row of rows) {
|
|
3015
|
+
contendedEdgeRows.push({
|
|
3016
|
+
edgeKind: row.edge_kind,
|
|
3017
|
+
cardinality,
|
|
3018
|
+
edgeId: row.edge_id,
|
|
3019
|
+
fromKind: row.from_kind,
|
|
3020
|
+
fromId: row.from_id,
|
|
3021
|
+
toKind: row.to_kind,
|
|
3022
|
+
toId: row.to_id
|
|
3023
|
+
});
|
|
3024
|
+
}
|
|
3025
|
+
}
|
|
3026
|
+
const disjointOverlaps = [];
|
|
3027
|
+
for (const kinds of params.disjointKindPairs) {
|
|
3028
|
+
const rows = await execution.execAll(
|
|
3029
|
+
operationStrategy.buildDisjointOverlapAudit(params.graphId, kinds)
|
|
3030
|
+
);
|
|
3031
|
+
for (const row of rows)
|
|
3032
|
+
disjointOverlaps.push({ kinds, nodeId: row.node_id });
|
|
3033
|
+
}
|
|
3034
|
+
return { contendedUniqueRows, contendedEdgeRows, disjointOverlaps };
|
|
3035
|
+
},
|
|
3054
3036
|
async checkUnique(params) {
|
|
3055
3037
|
const query = operationStrategy.buildCheckUnique(params);
|
|
3056
3038
|
const row = await execution.execGet(query);
|
|
@@ -3453,5 +3435,5 @@ function getOrCreateLru(cache, key, cacheMax, create) {
|
|
|
3453
3435
|
}
|
|
3454
3436
|
|
|
3455
3437
|
export { EMBEDDING_UPSERT_PARAM_COUNT, FIND_EDGES_ENDPOINT_FIXED_PARAM_COUNT, POSTGRES_CONTRIBUTION_MAT_TIMESTAMPS, POSTGRES_INDEX_MAT_TIMESTAMPS, POSTGRES_KIND_REMOVAL_TIMESTAMPS, SQLITE_CONTRIBUTION_MAT_TIMESTAMPS, SQLITE_INDEX_MAT_TIMESTAMPS, SQLITE_KIND_REMOVAL_TIMESTAMPS, analyzeImportedTables, assertActiveSchemaVersion, assertAdoptedDialect, assertTrustedImportDatabaseEmpty, buildContributionInsertValues, buildContributionOnConflictSet, buildKindRemovalInsertValues, buildKindRemovalOnConflictSet, buildLiveNodeCandidates, buildMaterializationInsertValues, buildMaterializationOnConflictSet, commitSchemaVersionIfKindsEmpty, contributionRebuildSupported, createCachedTableExistence, createCommonOperationBackend, createContributionMaterializer, createPostgresOperationStrategy, createPostgresTrustedImportSession, createSqliteOperationStrategy, createSqliteTrustedImportSession, gateFulltext, gateFulltextMethods, getOrCreateLru, lockPostgresTrustedImportTables, mapContributionMaterializationRow, mapHybridSearchRow, mapKindRemovalRow, mapMaterializationRow, mapVectorWriteError, restoreSecondaryIndexes, suspendPostgresSecondaryIndexes, suspendSqliteSecondaryIndexes, tableExistsFromRow, vectorSlotFromCreateIndexParams, vectorSlotFromDropIndexParams, vectorSlotFromParams };
|
|
3456
|
-
//# sourceMappingURL=chunk-
|
|
3457
|
-
//# sourceMappingURL=chunk-
|
|
3438
|
+
//# sourceMappingURL=chunk-MJPZNEJZ.js.map
|
|
3439
|
+
//# sourceMappingURL=chunk-MJPZNEJZ.js.map
|