@nicia-ai/typegraph 0.45.0 → 0.46.1
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 +11 -11
- 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 -7
- package/dist/backend/index.cjs +53 -54
- package/dist/backend/index.d.cts +3 -3
- package/dist/backend/index.d.ts +3 -3
- package/dist/backend/index.js +13 -14
- package/dist/backend/postgres/index.cjs +29 -30
- package/dist/backend/postgres/index.d.cts +7 -7
- package/dist/backend/postgres/index.d.ts +7 -7
- package/dist/backend/postgres/index.js +16 -17
- package/dist/backend/postgres/pglite-store.cjs +48 -42
- package/dist/backend/postgres/pglite-store.cjs.map +1 -1
- package/dist/backend/postgres/pglite-store.d.cts +15 -9
- package/dist/backend/postgres/pglite-store.d.ts +15 -9
- package/dist/backend/postgres/pglite-store.js +44 -38
- package/dist/backend/postgres/pglite-store.js.map +1 -1
- package/dist/backend/postgres/pglite.cjs +18 -19
- package/dist/backend/postgres/pglite.d.cts +4 -4
- package/dist/backend/postgres/pglite.d.ts +4 -4
- package/dist/backend/postgres/pglite.js +17 -18
- package/dist/backend/sqlite/index.cjs +26 -27
- package/dist/backend/sqlite/index.d.cts +6 -6
- package/dist/backend/sqlite/index.d.ts +6 -6
- package/dist/backend/sqlite/index.js +14 -15
- package/dist/backend/sqlite/libsql.cjs +21 -22
- package/dist/backend/sqlite/libsql.cjs.map +1 -1
- package/dist/backend/sqlite/libsql.d.cts +15 -8
- package/dist/backend/sqlite/libsql.d.ts +15 -8
- package/dist/backend/sqlite/libsql.js +17 -18
- package/dist/backend/sqlite/libsql.js.map +1 -1
- package/dist/backend/sqlite/local-store.cjs +49 -43
- package/dist/backend/sqlite/local-store.cjs.map +1 -1
- package/dist/backend/sqlite/local-store.d.cts +15 -10
- package/dist/backend/sqlite/local-store.d.ts +15 -10
- package/dist/backend/sqlite/local-store.js +45 -39
- package/dist/backend/sqlite/local-store.js.map +1 -1
- package/dist/backend/sqlite/local.cjs +19 -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 +17 -18
- package/dist/{chunk-S3ZRKJHY.js → chunk-2LG2XB2M.js} +3 -3
- package/dist/{chunk-S3ZRKJHY.js.map → chunk-2LG2XB2M.js.map} +1 -1
- package/dist/{chunk-7PF2L3H6.cjs → chunk-2NA5DYLO.cjs} +4 -4
- package/dist/{chunk-7PF2L3H6.cjs.map → chunk-2NA5DYLO.cjs.map} +1 -1
- package/dist/chunk-2Z2Z3ZD6.js +58 -0
- package/dist/chunk-2Z2Z3ZD6.js.map +1 -0
- package/dist/{chunk-VVQM4CZD.cjs → chunk-3DHZCOT7.cjs} +20 -20
- package/dist/{chunk-VVQM4CZD.cjs.map → chunk-3DHZCOT7.cjs.map} +1 -1
- package/dist/{chunk-JXUTCSXX.cjs → chunk-4UGOKMI5.cjs} +250 -158
- package/dist/chunk-4UGOKMI5.cjs.map +1 -0
- package/dist/{chunk-RFRM3Q5K.js → chunk-5262ZMTR.js} +14 -5
- package/dist/chunk-5262ZMTR.js.map +1 -0
- package/dist/{chunk-QRNYDV5Z.js → chunk-5763DULU.js} +214 -69
- package/dist/chunk-5763DULU.js.map +1 -0
- package/dist/{chunk-BGYJW37L.js → chunk-5UVRGXD3.js} +277 -7
- package/dist/chunk-5UVRGXD3.js.map +1 -0
- package/dist/{chunk-QR24DJDF.cjs → chunk-62ZP23AW.cjs} +15 -15
- package/dist/{chunk-QR24DJDF.cjs.map → chunk-62ZP23AW.cjs.map} +1 -1
- package/dist/{chunk-ZI6VQSZA.cjs → chunk-65E3XWGF.cjs} +724 -577
- package/dist/chunk-65E3XWGF.cjs.map +1 -0
- package/dist/{chunk-S4KQ5LV4.js → chunk-775A4ZMN.js} +40 -6
- package/dist/chunk-775A4ZMN.js.map +1 -0
- package/dist/{chunk-J2ICGNHO.cjs → chunk-7BQXPCGN.cjs} +830 -169
- package/dist/chunk-7BQXPCGN.cjs.map +1 -0
- package/dist/{chunk-FJMPR3OH.cjs → chunk-7EO3TCQB.cjs} +33 -7
- package/dist/chunk-7EO3TCQB.cjs.map +1 -0
- package/dist/{chunk-DXEEHSGN.js → chunk-7VQXLT5O.js} +436 -43
- package/dist/chunk-7VQXLT5O.js.map +1 -0
- package/dist/chunk-A4OC4DVN.cjs +12 -0
- package/dist/{chunk-4SZ6XPTG.cjs.map → chunk-A4OC4DVN.cjs.map} +1 -1
- package/dist/{chunk-TDXIBCGY.cjs → chunk-A7J2YDDI.cjs} +5 -3
- package/dist/chunk-A7J2YDDI.cjs.map +1 -0
- package/dist/{chunk-55ITBQJI.js → chunk-AKLS3BYZ.js} +56 -5
- package/dist/chunk-AKLS3BYZ.js.map +1 -0
- package/dist/{chunk-D7PG5D5K.js → chunk-AMKPPFUO.js} +32 -6
- package/dist/chunk-AMKPPFUO.js.map +1 -0
- package/dist/{chunk-WUFASQUO.js → chunk-ASTI57H3.js} +3 -3
- package/dist/{chunk-WUFASQUO.js.map → chunk-ASTI57H3.js.map} +1 -1
- package/dist/{chunk-4QIKLIGG.js → chunk-BKCUOV7A.js} +15 -5
- package/dist/chunk-BKCUOV7A.js.map +1 -0
- package/dist/{chunk-JQXSZHF2.cjs → chunk-BSFJMMV3.cjs} +134 -7
- package/dist/chunk-BSFJMMV3.cjs.map +1 -0
- package/dist/{chunk-4GUTQPVO.js → chunk-C23WSN5E.js} +185 -24
- package/dist/chunk-C23WSN5E.js.map +1 -0
- package/dist/{chunk-QLUXRWKL.js → chunk-CBTIUB76.js} +3 -3
- package/dist/{chunk-QLUXRWKL.js.map → chunk-CBTIUB76.js.map} +1 -1
- package/dist/chunk-CMWHLBVN.cjs +2082 -0
- package/dist/chunk-CMWHLBVN.cjs.map +1 -0
- package/dist/{chunk-QB6VMOJ2.cjs → chunk-CXBHOOIQ.cjs} +45 -10
- package/dist/chunk-CXBHOOIQ.cjs.map +1 -0
- package/dist/{chunk-FL5UQRES.js → chunk-DCQVHAYQ.js} +5 -5
- package/dist/{chunk-FL5UQRES.js.map → chunk-DCQVHAYQ.js.map} +1 -1
- package/dist/chunk-DTVWX77L.cjs +3432 -0
- package/dist/chunk-DTVWX77L.cjs.map +1 -0
- package/dist/chunk-DYATYRY4.js +47 -0
- package/dist/chunk-DYATYRY4.js.map +1 -0
- package/dist/chunk-E4WNQBEF.cjs +217 -0
- package/dist/chunk-E4WNQBEF.cjs.map +1 -0
- package/dist/{chunk-G6Q5UM7U.js → chunk-FWJKWH6U.js} +5 -3
- package/dist/chunk-FWJKWH6U.js.map +1 -0
- package/dist/chunk-GF3KXUTW.js +3393 -0
- package/dist/chunk-GF3KXUTW.js.map +1 -0
- package/dist/{chunk-VTN3C3CH.js → chunk-HFHTMECK.js} +7 -7
- package/dist/{chunk-VTN3C3CH.js.map → chunk-HFHTMECK.js.map} +1 -1
- package/dist/{chunk-FLEQ2HBK.js → chunk-I5MOXA4H.js} +20 -14
- package/dist/chunk-I5MOXA4H.js.map +1 -0
- package/dist/{chunk-4MB3AQAQ.js → chunk-J3WZ3FA2.js} +77 -3
- package/dist/chunk-J3WZ3FA2.js.map +1 -0
- package/dist/{chunk-UR7W5YQK.js → chunk-JBQQ7THH.js} +5 -3
- package/dist/chunk-JBQQ7THH.js.map +1 -0
- package/dist/{chunk-TKP5T34P.js → chunk-JXA2ZP2Q.js} +6 -16
- package/dist/chunk-JXA2ZP2Q.js.map +1 -0
- package/dist/{chunk-GYA4JRP5.js → chunk-JXXDZTMN.js} +2 -2
- package/dist/chunk-JXXDZTMN.js.map +1 -0
- package/dist/chunk-JZUR7ZWE.js +254 -0
- package/dist/chunk-JZUR7ZWE.js.map +1 -0
- package/dist/{chunk-42PYUGLS.js → chunk-K5ELX2GT.js} +108 -8
- package/dist/chunk-K5ELX2GT.js.map +1 -0
- package/dist/{chunk-Q6EDCUXV.js → chunk-L65OU2U3.js} +556 -204
- package/dist/chunk-L65OU2U3.js.map +1 -0
- package/dist/{chunk-D54WH24V.cjs → chunk-LBJKZXDE.cjs} +115 -13
- package/dist/chunk-LBJKZXDE.cjs.map +1 -0
- package/dist/{chunk-FQ7ZPOTZ.js → chunk-LGHCOKTT.js} +637 -493
- package/dist/chunk-LGHCOKTT.js.map +1 -0
- package/dist/chunk-M3WP7RQZ.js +736 -0
- package/dist/chunk-M3WP7RQZ.js.map +1 -0
- package/dist/{chunk-4MEWSUVM.cjs → chunk-M4BDU5RX.cjs} +12 -12
- package/dist/chunk-M4BDU5RX.cjs.map +1 -0
- package/dist/chunk-MCLYU6BN.cjs +332 -0
- package/dist/chunk-MCLYU6BN.cjs.map +1 -0
- package/dist/{chunk-MIJKEVV7.js → chunk-MSY7FSX4.js} +37 -4
- package/dist/chunk-MSY7FSX4.js.map +1 -0
- package/dist/{chunk-H7VE3FL4.cjs → chunk-MUK4BU7K.cjs} +519 -125
- package/dist/chunk-MUK4BU7K.cjs.map +1 -0
- package/dist/{chunk-D56XG4EI.cjs → chunk-MXJDTH5B.cjs} +56 -45
- package/dist/chunk-MXJDTH5B.cjs.map +1 -0
- package/dist/{chunk-5EKPX6QU.js → chunk-MZLPX2R7.js} +8 -9
- package/dist/chunk-MZLPX2R7.js.map +1 -0
- package/dist/chunk-N66HCGCY.cjs +57 -0
- package/dist/chunk-N66HCGCY.cjs.map +1 -0
- package/dist/{chunk-CPEL3YIR.cjs → chunk-NFCVHQ5P.cjs} +55 -22
- package/dist/chunk-NFCVHQ5P.cjs.map +1 -0
- package/dist/{chunk-C4F7VJ5D.cjs → chunk-NI72YOJB.cjs} +84 -2
- package/dist/chunk-NI72YOJB.cjs.map +1 -0
- package/dist/{chunk-BNS75YNF.cjs → chunk-NK5Q7UNE.cjs} +10 -20
- package/dist/chunk-NK5Q7UNE.cjs.map +1 -0
- package/dist/{chunk-TKORQCG4.js → chunk-NLI2AVEF.js} +386 -862
- package/dist/chunk-NLI2AVEF.js.map +1 -0
- package/dist/{chunk-YMTXMPV6.js → chunk-NMWDXFPH.js} +4 -4
- package/dist/{chunk-YMTXMPV6.js.map → chunk-NMWDXFPH.js.map} +1 -1
- package/dist/{chunk-J7LXTUTP.cjs → chunk-PF6F5NLJ.cjs} +604 -1094
- package/dist/chunk-PF6F5NLJ.cjs.map +1 -0
- package/dist/{chunk-NAAMUYMS.cjs → chunk-PNN7RHVR.cjs} +58 -48
- package/dist/chunk-PNN7RHVR.cjs.map +1 -0
- package/dist/{chunk-YOALGKRE.cjs → chunk-PNTCATDE.cjs} +3528 -1763
- package/dist/chunk-PNTCATDE.cjs.map +1 -0
- package/dist/{chunk-6DCB664D.js → chunk-PQBQG7IM.js} +3 -3
- package/dist/{chunk-6DCB664D.js.map → chunk-PQBQG7IM.js.map} +1 -1
- package/dist/{chunk-UCQ3BFSY.cjs → chunk-PT7RIRIZ.cjs} +684 -332
- package/dist/chunk-PT7RIRIZ.cjs.map +1 -0
- package/dist/{chunk-ACSVZPK7.cjs → chunk-PWLJ77UV.cjs} +5 -3
- package/dist/chunk-PWLJ77UV.cjs.map +1 -0
- package/dist/chunk-Q3G6A4I3.cjs +755 -0
- package/dist/chunk-Q3G6A4I3.cjs.map +1 -0
- package/dist/{chunk-Z3WO6MND.cjs → chunk-RMQLSPA2.cjs} +297 -27
- package/dist/chunk-RMQLSPA2.cjs.map +1 -0
- package/dist/{chunk-SJDMVITW.cjs → chunk-RT5ZY4XA.cjs} +6 -5
- package/dist/chunk-RT5ZY4XA.cjs.map +1 -0
- package/dist/{chunk-ID4WXTKL.js → chunk-S6PW7VV5.js} +2382 -617
- package/dist/chunk-S6PW7VV5.js.map +1 -0
- package/dist/{chunk-4GUBTVPV.js → chunk-T4XNKYXB.js} +780 -126
- package/dist/chunk-T4XNKYXB.js.map +1 -0
- package/dist/{chunk-YDWLUT5V.cjs → chunk-TQR4KBY2.cjs} +323 -178
- package/dist/chunk-TQR4KBY2.cjs.map +1 -0
- package/dist/{chunk-OOA273IJ.cjs → chunk-U5SON7R2.cjs} +27 -27
- package/dist/{chunk-OOA273IJ.cjs.map → chunk-U5SON7R2.cjs.map} +1 -1
- package/dist/{chunk-IX64T5OL.cjs → chunk-U63GDNRC.cjs} +32 -26
- package/dist/chunk-U63GDNRC.cjs.map +1 -0
- package/dist/{chunk-WDBXJOU5.cjs → chunk-UDISNXDL.cjs} +56 -47
- package/dist/chunk-UDISNXDL.cjs.map +1 -0
- package/dist/{chunk-EFEOOCJ3.js → chunk-UV3SN74I.js} +5 -5
- package/dist/{chunk-EFEOOCJ3.js.map → chunk-UV3SN74I.js.map} +1 -1
- package/dist/{chunk-U5W4LKZV.cjs → chunk-VCRRKBLN.cjs} +9 -9
- package/dist/{chunk-U5W4LKZV.cjs.map → chunk-VCRRKBLN.cjs.map} +1 -1
- package/dist/{chunk-ISLPNELU.js → chunk-VGTJPTIC.js} +16 -5
- package/dist/chunk-VGTJPTIC.js.map +1 -0
- package/dist/chunk-VLT6PEWR.cjs +60 -0
- package/dist/chunk-VLT6PEWR.cjs.map +1 -0
- package/dist/chunk-VQH4VAWD.cjs +12 -0
- package/dist/{chunk-B3F2D3SP.cjs.map → chunk-VQH4VAWD.cjs.map} +1 -1
- package/dist/{chunk-SNXVDZAJ.js → chunk-W6OG3HDG.js} +5 -4
- package/dist/chunk-W6OG3HDG.js.map +1 -0
- package/dist/chunk-WDGA7IYB.js +207 -0
- package/dist/chunk-WDGA7IYB.js.map +1 -0
- package/dist/chunk-WQZLUGVR.js +2057 -0
- package/dist/chunk-WQZLUGVR.js.map +1 -0
- package/dist/{chunk-EKFUG4G7.cjs → chunk-XBYVV3MP.cjs} +60 -5
- package/dist/chunk-XBYVV3MP.cjs.map +1 -0
- package/dist/{chunk-5GAONX5G.cjs → chunk-XCAGZAKP.cjs} +7 -7
- package/dist/{chunk-5GAONX5G.cjs.map → chunk-XCAGZAKP.cjs.map} +1 -1
- package/dist/chunk-XL7SLCXS.js +309 -0
- package/dist/chunk-XL7SLCXS.js.map +1 -0
- package/dist/{chunk-SVJ5GEXW.cjs → chunk-XUO3KQFO.cjs} +2 -2
- package/dist/chunk-XUO3KQFO.cjs.map +1 -0
- package/dist/{chunk-F4NHQHEZ.cjs → chunk-YAAM3M2S.cjs} +10 -10
- package/dist/{chunk-F4NHQHEZ.cjs.map → chunk-YAAM3M2S.cjs.map} +1 -1
- package/dist/{chunk-RUQS6M7G.js → chunk-YBFHZUXX.js} +6 -6
- package/dist/chunk-YBFHZUXX.js.map +1 -0
- package/dist/{chunk-KMXWZLQX.cjs → chunk-YBQOHKHN.cjs} +99 -100
- package/dist/chunk-YBQOHKHN.cjs.map +1 -0
- package/dist/{chunk-PVUI6KGR.js → chunk-YDFDBE6D.js} +93 -6
- package/dist/chunk-YDFDBE6D.js.map +1 -0
- package/dist/{chunk-P7GTYOLB.cjs → chunk-YVWGEQJE.cjs} +297 -135
- package/dist/chunk-YVWGEQJE.cjs.map +1 -0
- package/dist/{chunk-QT6V3YRH.js → chunk-YWGVVALJ.js} +3 -3
- package/dist/{chunk-QT6V3YRH.js.map → chunk-YWGVVALJ.js.map} +1 -1
- package/dist/core/index.cjs +40 -40
- package/dist/core/index.d.cts +4 -5
- package/dist/core/index.d.ts +4 -5
- package/dist/core/index.js +8 -8
- package/dist/{ddl-BG4J805L.d.cts → ddl-BJcOp4WZ.d.cts} +3 -3
- package/dist/{ddl-CgiS9QLj.d.ts → ddl-BXfGHbPN.d.ts} +3 -3
- package/dist/graph-extension/index.cjs +26 -22
- package/dist/graph-extension/index.d.cts +16 -6
- package/dist/graph-extension/index.d.ts +16 -6
- package/dist/graph-extension/index.js +7 -7
- package/dist/graph-merge/index.cjs +2459 -654
- package/dist/graph-merge/index.cjs.map +1 -1
- package/dist/graph-merge/index.d.cts +170 -33
- package/dist/graph-merge/index.d.ts +170 -33
- package/dist/graph-merge/index.js +2269 -467
- package/dist/graph-merge/index.js.map +1 -1
- package/dist/{index-C3y_98iN.d.cts → index-BSHvKfok.d.ts} +221 -10
- package/dist/{index-BBxZCUdu.d.ts → index-DxaYCv8Y.d.cts} +221 -10
- package/dist/index.cjs +330 -268
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +590 -576
- package/dist/index.d.ts +590 -576
- package/dist/index.js +73 -49
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.cjs +17 -17
- package/dist/indexes/index.d.cts +4 -4
- package/dist/indexes/index.d.ts +4 -4
- package/dist/indexes/index.js +10 -10
- package/dist/interchange/index.cjs +165 -51
- package/dist/interchange/index.cjs.map +1 -1
- package/dist/interchange/index.d.cts +261 -16
- package/dist/interchange/index.d.ts +261 -16
- package/dist/interchange/index.js +128 -25
- package/dist/interchange/index.js.map +1 -1
- package/dist/{manager-YoLEfcc1.d.ts → manager-CfZAimti.d.ts} +36 -5
- package/dist/{manager-KS7CGQQT.d.cts → manager-HGk6E_HW.d.cts} +36 -5
- package/dist/{materialize-indexes-Bhhyb1B3.d.ts → materialize-indexes-6A7dWGtb.d.cts} +10 -2
- package/dist/{materialize-indexes-OHRWypW6.d.cts → materialize-indexes-BMJP6Tms.d.ts} +10 -2
- package/dist/{postgres-DpkW3R5Y.d.cts → postgres-DFYWENdR.d.cts} +1961 -439
- package/dist/{postgres-DwqyIniy.d.ts → postgres-e7a9TdvR.d.ts} +1961 -439
- package/dist/profiler/index.cjs +15 -15
- package/dist/profiler/index.d.cts +9 -10
- package/dist/profiler/index.d.ts +9 -10
- package/dist/profiler/index.js +4 -4
- package/dist/provenance/index.cjs +46 -48
- 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 -14
- package/dist/provenance/index.js.map +1 -1
- package/dist/schema/index.cjs +50 -48
- package/dist/schema/index.d.cts +9 -16
- package/dist/schema/index.d.ts +9 -16
- package/dist/schema/index.js +23 -21
- package/dist/{searchable-DLWEfC4a.d.ts → searchable-9OQoPuRs.d.ts} +1 -2
- package/dist/{searchable-CIZL8Hyw.d.cts → searchable-CIje5XYD.d.cts} +1 -2
- package/dist/{sqlite-DY0WODUK.d.cts → sqlite-DerU5tc7.d.ts} +2029 -347
- package/dist/{sqlite-L-VIRzqA.d.ts → sqlite-DitnISa9.d.cts} +2029 -347
- package/dist/{store-view-A85FFRnk.d.cts → store-B0h6x7wo.d.cts} +1289 -767
- package/dist/{store-view-66p92IPi.d.ts → store-ClQ-MZQS.d.ts} +1289 -767
- package/dist/{temporal-BNbjXqer.d.cts → temporal-Bn-Fi8FJ.d.cts} +1 -1
- package/dist/{temporal-Bob6Nfbp.d.ts → temporal-BtM4UALv.d.ts} +1 -1
- package/dist/{types-DeORZhxn.d.cts → types-CoIx8HX5.d.cts} +1 -1
- package/dist/{types-Ch9a0Dx6.d.ts → types-HkveCCx0.d.cts} +726 -5
- package/dist/{types-Ch9a0Dx6.d.cts → types-HkveCCx0.d.ts} +726 -5
- package/dist/{types-ClCzT-dT.d.ts → types-KFfk-8Ah.d.ts} +1 -1
- package/dist/{where-DPw52ksb.d.cts → where--fk7_0kv.d.cts} +1 -1
- package/dist/{where-kWUZPvEA.d.ts → where-ws5hf-Ov.d.ts} +1 -1
- package/package.json +3 -3
- package/dist/chunk-2L54C2C2.js +0 -144
- package/dist/chunk-2L54C2C2.js.map +0 -1
- package/dist/chunk-35S6P5ZU.js +0 -27
- package/dist/chunk-35S6P5ZU.js.map +0 -1
- package/dist/chunk-42PYUGLS.js.map +0 -1
- package/dist/chunk-4GUBTVPV.js.map +0 -1
- package/dist/chunk-4GUTQPVO.js.map +0 -1
- package/dist/chunk-4MB3AQAQ.js.map +0 -1
- package/dist/chunk-4MEWSUVM.cjs.map +0 -1
- package/dist/chunk-4QIKLIGG.js.map +0 -1
- package/dist/chunk-4SZ6XPTG.cjs +0 -12
- package/dist/chunk-55ITBQJI.js.map +0 -1
- package/dist/chunk-5EKPX6QU.js.map +0 -1
- package/dist/chunk-6RYPD3NJ.cjs +0 -1282
- package/dist/chunk-6RYPD3NJ.cjs.map +0 -1
- package/dist/chunk-764JHTLT.cjs +0 -15
- package/dist/chunk-764JHTLT.cjs.map +0 -1
- package/dist/chunk-ACSVZPK7.cjs.map +0 -1
- package/dist/chunk-B3F2D3SP.cjs +0 -12
- package/dist/chunk-BGYJW37L.js.map +0 -1
- package/dist/chunk-BNS75YNF.cjs.map +0 -1
- package/dist/chunk-C4F7VJ5D.cjs.map +0 -1
- package/dist/chunk-CBKG6HEP.js +0 -1263
- package/dist/chunk-CBKG6HEP.js.map +0 -1
- package/dist/chunk-CPEL3YIR.cjs.map +0 -1
- package/dist/chunk-D54WH24V.cjs.map +0 -1
- package/dist/chunk-D56XG4EI.cjs.map +0 -1
- package/dist/chunk-D7PG5D5K.js.map +0 -1
- package/dist/chunk-DI74SMXS.cjs +0 -29
- package/dist/chunk-DI74SMXS.cjs.map +0 -1
- package/dist/chunk-DK2S42XB.js +0 -77
- package/dist/chunk-DK2S42XB.js.map +0 -1
- package/dist/chunk-DRACN6XG.js +0 -27
- package/dist/chunk-DRACN6XG.js.map +0 -1
- package/dist/chunk-DXEEHSGN.js.map +0 -1
- package/dist/chunk-EKFUG4G7.cjs.map +0 -1
- package/dist/chunk-EQ7JKLZO.cjs +0 -157
- package/dist/chunk-EQ7JKLZO.cjs.map +0 -1
- package/dist/chunk-FJMPR3OH.cjs.map +0 -1
- package/dist/chunk-FLEQ2HBK.js.map +0 -1
- package/dist/chunk-FQ7ZPOTZ.js.map +0 -1
- package/dist/chunk-G6Q5UM7U.js.map +0 -1
- package/dist/chunk-GYA4JRP5.js.map +0 -1
- package/dist/chunk-H7VE3FL4.cjs.map +0 -1
- package/dist/chunk-ID4WXTKL.js.map +0 -1
- package/dist/chunk-ISLPNELU.js.map +0 -1
- package/dist/chunk-ITE4IXAK.js +0 -25
- package/dist/chunk-ITE4IXAK.js.map +0 -1
- package/dist/chunk-IX64T5OL.cjs.map +0 -1
- package/dist/chunk-J2ICGNHO.cjs.map +0 -1
- package/dist/chunk-J7LXTUTP.cjs.map +0 -1
- package/dist/chunk-JQXSZHF2.cjs.map +0 -1
- package/dist/chunk-JXUTCSXX.cjs.map +0 -1
- package/dist/chunk-KCO5EFJU.js +0 -79
- package/dist/chunk-KCO5EFJU.js.map +0 -1
- package/dist/chunk-KKYELPZ2.cjs +0 -83
- package/dist/chunk-KKYELPZ2.cjs.map +0 -1
- package/dist/chunk-KMXWZLQX.cjs.map +0 -1
- package/dist/chunk-MIJKEVV7.js.map +0 -1
- package/dist/chunk-NAAMUYMS.cjs.map +0 -1
- package/dist/chunk-P7GTYOLB.cjs.map +0 -1
- package/dist/chunk-PVUI6KGR.js.map +0 -1
- package/dist/chunk-Q6EDCUXV.js.map +0 -1
- package/dist/chunk-QB6VMOJ2.cjs.map +0 -1
- package/dist/chunk-QC4MCOFV.cjs +0 -83
- package/dist/chunk-QC4MCOFV.cjs.map +0 -1
- package/dist/chunk-QMQLUA66.js +0 -12
- package/dist/chunk-QMQLUA66.js.map +0 -1
- package/dist/chunk-QRNYDV5Z.js.map +0 -1
- package/dist/chunk-RFRM3Q5K.js.map +0 -1
- package/dist/chunk-RUQS6M7G.js.map +0 -1
- package/dist/chunk-S4KQ5LV4.js.map +0 -1
- package/dist/chunk-SJDMVITW.cjs.map +0 -1
- package/dist/chunk-SNXVDZAJ.js.map +0 -1
- package/dist/chunk-SVJ5GEXW.cjs.map +0 -1
- package/dist/chunk-TDXIBCGY.cjs.map +0 -1
- package/dist/chunk-TKORQCG4.js.map +0 -1
- package/dist/chunk-TKP5T34P.js.map +0 -1
- package/dist/chunk-TRF4EBJT.cjs +0 -30
- package/dist/chunk-TRF4EBJT.cjs.map +0 -1
- package/dist/chunk-UCQ3BFSY.cjs.map +0 -1
- package/dist/chunk-UR7W5YQK.js.map +0 -1
- package/dist/chunk-V34A6R5V.js +0 -134
- package/dist/chunk-V34A6R5V.js.map +0 -1
- package/dist/chunk-WDAVPX46.js +0 -81
- package/dist/chunk-WDAVPX46.js.map +0 -1
- package/dist/chunk-WDBXJOU5.cjs.map +0 -1
- package/dist/chunk-YDWLUT5V.cjs.map +0 -1
- package/dist/chunk-YOALGKRE.cjs.map +0 -1
- package/dist/chunk-Z3WO6MND.cjs.map +0 -1
- package/dist/chunk-ZDH3DX3C.cjs +0 -30
- package/dist/chunk-ZDH3DX3C.cjs.map +0 -1
- package/dist/chunk-ZI6VQSZA.cjs.map +0 -1
- package/dist/chunk-ZTAJL4DT.cjs +0 -85
- package/dist/chunk-ZTAJL4DT.cjs.map +0 -1
- package/dist/define-graph-BGrJahvp.d.ts +0 -173
- package/dist/define-graph-alREY2wj.d.cts +0 -173
package/dist/chunk-ZTAJL4DT.cjs
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkC4F7VJ5D_cjs = require('./chunk-C4F7VJ5D.cjs');
|
|
4
|
-
|
|
5
|
-
// src/utils/date.ts
|
|
6
|
-
var CANONICAL_ISO_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
|
|
7
|
-
var ZONELESS_DATETIME_PATTERN = /^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?$/;
|
|
8
|
-
var OFFSET_DATETIME_PATTERN = /^(\d{4}-\d{2}-\d{2})[ T](\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)(Z|[+-]\d{2}(?::?\d{2})?)$/i;
|
|
9
|
-
var DATE_ONLY_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
10
|
-
function normalizedOffset(offset) {
|
|
11
|
-
if (offset.toUpperCase() === "Z") return "Z";
|
|
12
|
-
if (/^[+-]\d{2}$/.test(offset)) return `${offset}:00`;
|
|
13
|
-
if (/^[+-]\d{4}$/.test(offset)) {
|
|
14
|
-
return `${offset.slice(0, 3)}:${offset.slice(3)}`;
|
|
15
|
-
}
|
|
16
|
-
return offset;
|
|
17
|
-
}
|
|
18
|
-
function databaseTimestampMilliseconds(value) {
|
|
19
|
-
if (ZONELESS_DATETIME_PATTERN.test(value)) {
|
|
20
|
-
return Date.parse(`${value.replace(" ", "T")}Z`);
|
|
21
|
-
}
|
|
22
|
-
const offsetMatch = OFFSET_DATETIME_PATTERN.exec(value);
|
|
23
|
-
if (offsetMatch !== null) {
|
|
24
|
-
const date = offsetMatch[1];
|
|
25
|
-
const time = offsetMatch[2];
|
|
26
|
-
const offset = offsetMatch[3];
|
|
27
|
-
if (date === void 0 || time === void 0 || offset === void 0) {
|
|
28
|
-
return Number.NaN;
|
|
29
|
-
}
|
|
30
|
-
return Date.parse(`${date}T${time}${normalizedOffset(offset)}`);
|
|
31
|
-
}
|
|
32
|
-
if (DATE_ONLY_PATTERN.test(value)) {
|
|
33
|
-
return Date.parse(`${value}T00:00:00.000Z`);
|
|
34
|
-
}
|
|
35
|
-
return Number.NaN;
|
|
36
|
-
}
|
|
37
|
-
function canonicalizeDatabaseTimestamp(value) {
|
|
38
|
-
if (value instanceof Date) {
|
|
39
|
-
if (Number.isNaN(value.getTime())) return void 0;
|
|
40
|
-
return value.toISOString();
|
|
41
|
-
}
|
|
42
|
-
if (typeof value !== "string") return void 0;
|
|
43
|
-
const milliseconds = databaseTimestampMilliseconds(value);
|
|
44
|
-
if (Number.isNaN(milliseconds)) return void 0;
|
|
45
|
-
return new Date(milliseconds).toISOString();
|
|
46
|
-
}
|
|
47
|
-
function isCanonicalIsoDate(value) {
|
|
48
|
-
if (!CANONICAL_ISO_DATE_PATTERN.test(value)) return false;
|
|
49
|
-
const date = new Date(value);
|
|
50
|
-
return !Number.isNaN(date.getTime()) && date.toISOString() === value;
|
|
51
|
-
}
|
|
52
|
-
function validateCanonicalIsoDate(value, fieldName) {
|
|
53
|
-
if (!isCanonicalIsoDate(value)) {
|
|
54
|
-
throw new chunkC4F7VJ5D_cjs.ValidationError(
|
|
55
|
-
`Invalid canonical ISO 8601 datetime for "${fieldName}": "${value}". Expected fixed-width UTC: YYYY-MM-DDTHH:mm:ss.sssZ`,
|
|
56
|
-
{
|
|
57
|
-
issues: [
|
|
58
|
-
{
|
|
59
|
-
path: fieldName,
|
|
60
|
-
message: `Expected canonical UTC ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ), got: "${value}"`
|
|
61
|
-
}
|
|
62
|
-
]
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
suggestion: `Use a fixed-width UTC datetime like "2024-01-15T10:30:00.000Z" (e.g. new Date(value).toISOString()).`
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
return value;
|
|
70
|
-
}
|
|
71
|
-
function validateOptionalCanonicalIsoDate(value, fieldName) {
|
|
72
|
-
if (value === void 0) return void 0;
|
|
73
|
-
return validateCanonicalIsoDate(value, fieldName);
|
|
74
|
-
}
|
|
75
|
-
function nowIso() {
|
|
76
|
-
return (/* @__PURE__ */ new Date()).toISOString();
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
exports.canonicalizeDatabaseTimestamp = canonicalizeDatabaseTimestamp;
|
|
80
|
-
exports.isCanonicalIsoDate = isCanonicalIsoDate;
|
|
81
|
-
exports.nowIso = nowIso;
|
|
82
|
-
exports.validateCanonicalIsoDate = validateCanonicalIsoDate;
|
|
83
|
-
exports.validateOptionalCanonicalIsoDate = validateOptionalCanonicalIsoDate;
|
|
84
|
-
//# sourceMappingURL=chunk-ZTAJL4DT.cjs.map
|
|
85
|
-
//# sourceMappingURL=chunk-ZTAJL4DT.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/date.ts"],"names":["ValidationError"],"mappings":"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","file":"chunk-ZTAJL4DT.cjs","sourcesContent":["/**\n * Date encoding utilities for consistent storage.\n *\n * Contract: All dates are stored as ISO 8601 strings in UTC.\n * - Always includes milliseconds\n * - Always UTC (Z suffix)\n * - Sorts correctly as strings\n */\n\nimport { ValidationError } from \"../errors\";\n\n/**\n * ISO 8601 datetime pattern.\n * Matches formats like:\n * - 2024-01-15T10:30:00.000Z\n * - 2024-01-15T10:30:00Z\n * - 2024-01-15T10:30:00.123Z\n */\nconst ISO_DATE_PATTERN = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$/;\n\n/**\n * Checks if a string is a valid ISO 8601 datetime.\n *\n * @param value - String to validate\n * @returns True if valid ISO 8601 datetime\n */\nexport function isValidIsoDate(value: string): boolean {\n if (!ISO_DATE_PATTERN.test(value)) {\n return false;\n }\n // Also check that Date parsing produces a valid date\n const date = new Date(value);\n return !Number.isNaN(date.getTime());\n}\n\n/**\n * Validates that a string is a valid ISO 8601 datetime.\n * Throws ValidationError if invalid.\n *\n * @param value - String to validate\n * @param fieldName - Name of field for error message\n * @returns The validated string\n * @throws ValidationError if not a valid ISO datetime\n */\nexport function validateIsoDate(value: string, fieldName: string): string {\n if (!isValidIsoDate(value)) {\n throw new ValidationError(\n `Invalid ISO 8601 datetime for \"${fieldName}\": \"${value}\". ` +\n `Expected format: YYYY-MM-DDTHH:mm:ss.sssZ`,\n {\n issues: [\n {\n path: fieldName,\n message: `Invalid ISO 8601 datetime format. Expected: YYYY-MM-DDTHH:mm:ss.sssZ, got: \"${value}\"`,\n },\n ],\n },\n {\n suggestion: `Use a valid ISO 8601 UTC datetime like \"2024-01-15T10:30:00.000Z\"`,\n },\n );\n }\n return value;\n}\n\n/**\n * Strict canonical ISO 8601 pattern: fixed-width UTC with exactly\n * millisecond precision (`YYYY-MM-DDTHH:mm:ss.sssZ`). Unlike\n * {@link ISO_DATE_PATTERN}, which tolerates a missing or variable-width\n * fractional part, this is the only shape whose lexicographic text order\n * matches chronological order — avoiding cases like `\"...:00.1Z\"` (= `.100`)\n * sorting *after* `\"...:00.101Z\"`.\n */\nconst CANONICAL_ISO_DATE_PATTERN =\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/;\n\nconst ZONELESS_DATETIME_PATTERN =\n /^\\d{4}-\\d{2}-\\d{2}[ T]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?$/;\nconst OFFSET_DATETIME_PATTERN =\n /^(\\d{4}-\\d{2}-\\d{2})[ T](\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)(Z|[+-]\\d{2}(?::?\\d{2})?)$/i;\nconst DATE_ONLY_PATTERN = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nfunction normalizedOffset(offset: string): string {\n if (offset.toUpperCase() === \"Z\") return \"Z\";\n if (/^[+-]\\d{2}$/.test(offset)) return `${offset}:00`;\n if (/^[+-]\\d{4}$/.test(offset)) {\n return `${offset.slice(0, 3)}:${offset.slice(3)}`;\n }\n return offset;\n}\n\nfunction databaseTimestampMilliseconds(value: string): number {\n if (ZONELESS_DATETIME_PATTERN.test(value)) {\n return Date.parse(`${value.replace(\" \", \"T\")}Z`);\n }\n const offsetMatch = OFFSET_DATETIME_PATTERN.exec(value);\n if (offsetMatch !== null) {\n const date = offsetMatch[1];\n const time = offsetMatch[2];\n const offset = offsetMatch[3];\n if (date === undefined || time === undefined || offset === undefined) {\n return Number.NaN;\n }\n return Date.parse(`${date}T${time}${normalizedOffset(offset)}`);\n }\n if (DATE_ONLY_PATTERN.test(value)) {\n return Date.parse(`${value}T00:00:00.000Z`);\n }\n return Number.NaN;\n}\n\n/**\n * Canonicalizes a database-driver timestamp without interpreting a zoneless\n * string in the host timezone. PostgreSQL drivers can return values such as\n * `2026-06-25 12:00:00`; TypeGraph treats that shape as UTC so the same stored\n * clock value cannot move across hosts or daylight-saving boundaries.\n *\n * Returns `undefined` for an unsupported or unrepresentable value so callers\n * can raise an error specific to their storage boundary.\n */\nexport function canonicalizeDatabaseTimestamp(\n value: unknown,\n): string | undefined {\n if (value instanceof Date) {\n if (Number.isNaN(value.getTime())) return undefined;\n return value.toISOString();\n }\n if (typeof value !== \"string\") return undefined;\n const milliseconds = databaseTimestampMilliseconds(value);\n if (Number.isNaN(milliseconds)) return undefined;\n return new Date(milliseconds).toISOString();\n}\n\n/**\n * Checks if a string is a canonical UTC ISO 8601 datetime with fixed\n * millisecond width (`YYYY-MM-DDTHH:mm:ss.sssZ`).\n */\nexport function isCanonicalIsoDate(value: string): boolean {\n if (!CANONICAL_ISO_DATE_PATTERN.test(value)) return false;\n const date = new Date(value);\n return !Number.isNaN(date.getTime()) && date.toISOString() === value;\n}\n\n/**\n * Validates that a string is a canonical UTC ISO 8601 datetime with fixed\n * millisecond width. Stricter than {@link validateIsoDate} (which also\n * accepts missing or 1–2 digit milliseconds): required wherever the value\n * is compared **as text** against stored timestamps and must sort\n * chronologically — e.g. a temporal `asOf` coordinate, where a\n * variable-width value would mis-order and silently include or exclude the\n * wrong rows. Produce one with `new Date(value).toISOString()`.\n *\n * @param value - String to validate\n * @param fieldName - Name of field for error message\n * @returns The validated string\n * @throws ValidationError if not a canonical UTC ISO datetime\n */\nexport function validateCanonicalIsoDate(\n value: string,\n fieldName: string,\n): string {\n if (!isCanonicalIsoDate(value)) {\n throw new ValidationError(\n `Invalid canonical ISO 8601 datetime for \"${fieldName}\": \"${value}\". ` +\n `Expected fixed-width UTC: YYYY-MM-DDTHH:mm:ss.sssZ`,\n {\n issues: [\n {\n path: fieldName,\n message: `Expected canonical UTC ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ), got: \"${value}\"`,\n },\n ],\n },\n {\n suggestion: `Use a fixed-width UTC datetime like \"2024-01-15T10:30:00.000Z\" (e.g. new Date(value).toISOString()).`,\n },\n );\n }\n return value;\n}\n\n/**\n * Validates an optional canonical ISO date string. Returns `undefined` for an\n * absent value; otherwise enforces canonical fixed-width UTC ISO 8601 via\n * {@link validateCanonicalIsoDate}. Used for stored validity-window inputs\n * (`validFrom` / `validTo`) so every timestamp the temporal filters compare as\n * text is canonical and sorts chronologically — the same contract the `asOf`\n * read coordinate already enforces.\n */\nexport function validateOptionalCanonicalIsoDate(\n value: string | undefined,\n fieldName: string,\n): string | undefined {\n if (value === undefined) return undefined;\n return validateCanonicalIsoDate(value, fieldName);\n}\n\n/**\n * Encodes a Date to an ISO 8601 string for storage.\n */\nexport function encodeDate(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Decodes an ISO 8601 string to a Date.\n * Validates the string format first.\n *\n * @throws ValidationError if not a valid ISO datetime\n */\nexport function decodeDate(isoString: string): Date {\n validateIsoDate(isoString, \"date\");\n return new Date(isoString);\n}\n\n/**\n * Returns the current timestamp as an ISO string.\n */\nexport function nowIso(): string {\n return new Date().toISOString();\n}\n"]}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { N as NodeRegistration, E as EdgeRegistration, O as OntologyRelation, D as DeleteBehavior, T as TemporalMode, I as IndexDeclaration, G as GraphExtension, d as NodeType, e as AnyEdgeType, f as GraphDefaults } from './types-Ch9a0Dx6.js';
|
|
2
|
-
|
|
3
|
-
/** Brand key for GraphDef */
|
|
4
|
-
declare const GRAPH_DEF_BRAND: "__graphDef";
|
|
5
|
-
/**
|
|
6
|
-
* An edge entry in the graph definition.
|
|
7
|
-
* Can be:
|
|
8
|
-
* - EdgeType directly (constrained or unconstrained)
|
|
9
|
-
* - EdgeRegistration object (always works, can override/narrow defaults)
|
|
10
|
-
*/
|
|
11
|
-
type EdgeEntry = EdgeRegistration | AnyEdgeType;
|
|
12
|
-
/**
|
|
13
|
-
* Normalized edge map type - all entries become EdgeRegistration.
|
|
14
|
-
* For bare EdgeTypes, constrained endpoints are extracted from the type;
|
|
15
|
-
* unconstrained edges fall back to all node types in the graph.
|
|
16
|
-
*/
|
|
17
|
-
type NormalizedEdges<TNodes extends Record<string, NodeRegistration>, TEdges extends Record<string, EdgeEntry>> = {
|
|
18
|
-
[K in keyof TEdges]: TEdges[K] extends EdgeRegistration ? TEdges[K] : TEdges[K] extends AnyEdgeType ? EdgeRegistration<TEdges[K], TEdges[K]["from"] extends readonly (infer N extends NodeType)[] ? N : TNodes[keyof TNodes]["type"], TEdges[K]["to"] extends readonly (infer N extends NodeType)[] ? N : TNodes[keyof TNodes]["type"]> : never;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Configuration for defineGraph.
|
|
22
|
-
*/
|
|
23
|
-
type GraphDefConfig<TNodes extends Record<string, NodeRegistration>, TEdges extends Record<string, EdgeEntry>, TOntology extends readonly OntologyRelation[]> = Readonly<{
|
|
24
|
-
/** Unique identifier for this graph */
|
|
25
|
-
id: string;
|
|
26
|
-
/** Node registrations */
|
|
27
|
-
nodes: TNodes;
|
|
28
|
-
/** Edge registrations or EdgeTypes with built-in domain/range */
|
|
29
|
-
edges: TEdges;
|
|
30
|
-
/** Ontology relations */
|
|
31
|
-
ontology?: TOntology;
|
|
32
|
-
/** Graph-wide defaults */
|
|
33
|
-
defaults?: GraphDefaults;
|
|
34
|
-
/**
|
|
35
|
-
* Index declarations attached to this graph.
|
|
36
|
-
*
|
|
37
|
-
* Accepts the outputs of `defineNodeIndex` / `defineEdgeIndex` (which
|
|
38
|
-
* already return `IndexDeclaration` values) or pre-built declarations
|
|
39
|
-
* reconstructed from a stored schema or graph extension.
|
|
40
|
-
*
|
|
41
|
-
* Validated at definition time: every index must reference a `kind`
|
|
42
|
-
* that exists in `nodes` / `edges`, and index `name`s must be unique
|
|
43
|
-
* within the graph.
|
|
44
|
-
*
|
|
45
|
-
* Index DDL is **not** generated by `defineGraph`. Indexes flow into
|
|
46
|
-
* `SerializedSchema.indexes` so they can later be materialized via
|
|
47
|
-
* `store.materializeIndexes()` — lifting the storage concern out of
|
|
48
|
-
* the schema-version commit path.
|
|
49
|
-
*/
|
|
50
|
-
indexes?: readonly IndexDeclaration[];
|
|
51
|
-
}>;
|
|
52
|
-
/**
|
|
53
|
-
* A graph definition.
|
|
54
|
-
*
|
|
55
|
-
* This is a compile-time artifact that describes the structure of a graph.
|
|
56
|
-
* Use `createStore()` to create a runtime store from this definition.
|
|
57
|
-
*/
|
|
58
|
-
type GraphDef<TNodes extends Record<string, NodeRegistration> = Record<string, NodeRegistration>, TEdges extends Record<string, EdgeRegistration> = Record<string, EdgeRegistration>, TOntology extends readonly OntologyRelation[] = readonly OntologyRelation[]> = Readonly<{
|
|
59
|
-
[GRAPH_DEF_BRAND]: true;
|
|
60
|
-
id: string;
|
|
61
|
-
nodes: TNodes;
|
|
62
|
-
edges: TEdges;
|
|
63
|
-
ontology: TOntology;
|
|
64
|
-
defaults: Readonly<{
|
|
65
|
-
onNodeDelete: DeleteBehavior;
|
|
66
|
-
temporalMode: TemporalMode;
|
|
67
|
-
}>;
|
|
68
|
-
/**
|
|
69
|
-
* Index declarations attached to this graph. Preserves whatever the
|
|
70
|
-
* caller passed to `defineGraph` (including an explicit empty array)
|
|
71
|
-
* for introspection purposes.
|
|
72
|
-
*
|
|
73
|
-
* The serialized canonical form is order-canonicalized (sorted by
|
|
74
|
-
* `name`) and treats `undefined` and `[]` as the same "no slice" form
|
|
75
|
-
* — an empty array does not bump the schema hash, since indexes are
|
|
76
|
-
* an unordered set keyed by name and `[]` carries no semantic meaning
|
|
77
|
-
* that an absent slice doesn't.
|
|
78
|
-
*/
|
|
79
|
-
indexes: readonly IndexDeclaration[] | undefined;
|
|
80
|
-
/**
|
|
81
|
-
* Graph extension this graph was merged with, if any. Set by
|
|
82
|
-
* `mergeGraphExtension`; never set by `defineGraph` directly.
|
|
83
|
-
* Exists solely so re-serialization is stable — the rest of the
|
|
84
|
-
* system reads the merged kinds through `nodes` / `edges` /
|
|
85
|
-
* `ontology` and never inspects this field. Absent on graphs that
|
|
86
|
-
* have never been extended; legacy graphs hash byte-identically.
|
|
87
|
-
*/
|
|
88
|
-
extension: GraphExtension | undefined;
|
|
89
|
-
/**
|
|
90
|
-
* Soft-deprecated kind names attached to this graph. Set by the
|
|
91
|
-
* loader from the persisted schema and by `store.deprecateKinds(...)`
|
|
92
|
-
* / `store.undeprecateKinds(...)`. A purely informational signal
|
|
93
|
-
* surfaced for introspection — does not gate reads, writes, or
|
|
94
|
-
* queries. Defaults to the empty set on freshly-defined graphs.
|
|
95
|
-
*/
|
|
96
|
-
deprecatedKinds: ReadonlySet<string>;
|
|
97
|
-
}>;
|
|
98
|
-
/**
|
|
99
|
-
* Extract node kind names from a GraphDef.
|
|
100
|
-
*/
|
|
101
|
-
type NodeKinds<G extends GraphDef> = keyof G["nodes"] & string;
|
|
102
|
-
/**
|
|
103
|
-
* Extract edge kind names from a GraphDef.
|
|
104
|
-
*/
|
|
105
|
-
type EdgeKinds<G extends GraphDef> = keyof G["edges"] & string;
|
|
106
|
-
/**
|
|
107
|
-
* Get a NodeType from a GraphDef by kind name.
|
|
108
|
-
*/
|
|
109
|
-
type GetNodeType<G extends GraphDef, K extends NodeKinds<G>> = G["nodes"][K]["type"];
|
|
110
|
-
/**
|
|
111
|
-
* Get an EdgeType from a GraphDef by kind name.
|
|
112
|
-
*/
|
|
113
|
-
type GetEdgeType<G extends GraphDef, K extends EdgeKinds<G>> = G["edges"][K]["type"];
|
|
114
|
-
/**
|
|
115
|
-
* Get all NodeTypes from a GraphDef.
|
|
116
|
-
*/
|
|
117
|
-
type AllNodeTypes<G extends GraphDef> = {
|
|
118
|
-
[K in NodeKinds<G>]: G["nodes"][K]["type"];
|
|
119
|
-
}[NodeKinds<G>];
|
|
120
|
-
/**
|
|
121
|
-
* Get all EdgeTypes from a GraphDef.
|
|
122
|
-
*/
|
|
123
|
-
type AllEdgeTypes<G extends GraphDef> = {
|
|
124
|
-
[K in EdgeKinds<G>]: G["edges"][K]["type"];
|
|
125
|
-
}[EdgeKinds<G>];
|
|
126
|
-
/**
|
|
127
|
-
* Creates a graph definition.
|
|
128
|
-
*
|
|
129
|
-
* @example
|
|
130
|
-
* ```typescript
|
|
131
|
-
* const graph = defineGraph({
|
|
132
|
-
* id: "my_graph",
|
|
133
|
-
* nodes: {
|
|
134
|
-
* Person: { type: Person },
|
|
135
|
-
* Company: { type: Company },
|
|
136
|
-
* },
|
|
137
|
-
* edges: {
|
|
138
|
-
* // Traditional EdgeRegistration syntax
|
|
139
|
-
* worksAt: {
|
|
140
|
-
* type: worksAt,
|
|
141
|
-
* from: [Person],
|
|
142
|
-
* to: [Company],
|
|
143
|
-
* cardinality: "many",
|
|
144
|
-
* },
|
|
145
|
-
* // Or use EdgeType directly if it has from/to defined
|
|
146
|
-
* knows, // EdgeType with built-in domain/range
|
|
147
|
-
* },
|
|
148
|
-
* ontology: [
|
|
149
|
-
* subClassOf(Company, Organization),
|
|
150
|
-
* disjointWith(Person, Organization),
|
|
151
|
-
* ],
|
|
152
|
-
* defaults: {
|
|
153
|
-
* onNodeDelete: "restrict",
|
|
154
|
-
* temporalMode: "current",
|
|
155
|
-
* },
|
|
156
|
-
* });
|
|
157
|
-
* ```
|
|
158
|
-
*/
|
|
159
|
-
declare function defineGraph<const TNodes extends Record<string, NodeRegistration<NodeType>>, const TEdges extends Record<string, EdgeEntry>, const TOntology extends readonly OntologyRelation[]>(config: GraphDefConfig<TNodes, TEdges, TOntology>): GraphDef<TNodes, NormalizedEdges<TNodes, TEdges>, TOntology>;
|
|
160
|
-
/**
|
|
161
|
-
* Checks if a value is a GraphDef.
|
|
162
|
-
*/
|
|
163
|
-
declare function isGraphDef(value: unknown): value is GraphDef;
|
|
164
|
-
/**
|
|
165
|
-
* Gets all node kind names from a GraphDef.
|
|
166
|
-
*/
|
|
167
|
-
declare function getNodeKinds<G extends GraphDef>(graph: G): readonly (keyof G["nodes"] & string)[];
|
|
168
|
-
/**
|
|
169
|
-
* Gets all edge kind names from a GraphDef.
|
|
170
|
-
*/
|
|
171
|
-
declare function getEdgeKinds<G extends GraphDef>(graph: G): readonly (keyof G["edges"] & string)[];
|
|
172
|
-
|
|
173
|
-
export { type AllEdgeTypes as A, type EdgeKinds as E, type GraphDef as G, type NodeKinds as N, type AllNodeTypes as a, type GetEdgeType as b, type GetNodeType as c, defineGraph as d, getNodeKinds as e, getEdgeKinds as g, isGraphDef as i };
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { N as NodeRegistration, E as EdgeRegistration, O as OntologyRelation, D as DeleteBehavior, T as TemporalMode, I as IndexDeclaration, G as GraphExtension, d as NodeType, e as AnyEdgeType, f as GraphDefaults } from './types-Ch9a0Dx6.cjs';
|
|
2
|
-
|
|
3
|
-
/** Brand key for GraphDef */
|
|
4
|
-
declare const GRAPH_DEF_BRAND: "__graphDef";
|
|
5
|
-
/**
|
|
6
|
-
* An edge entry in the graph definition.
|
|
7
|
-
* Can be:
|
|
8
|
-
* - EdgeType directly (constrained or unconstrained)
|
|
9
|
-
* - EdgeRegistration object (always works, can override/narrow defaults)
|
|
10
|
-
*/
|
|
11
|
-
type EdgeEntry = EdgeRegistration | AnyEdgeType;
|
|
12
|
-
/**
|
|
13
|
-
* Normalized edge map type - all entries become EdgeRegistration.
|
|
14
|
-
* For bare EdgeTypes, constrained endpoints are extracted from the type;
|
|
15
|
-
* unconstrained edges fall back to all node types in the graph.
|
|
16
|
-
*/
|
|
17
|
-
type NormalizedEdges<TNodes extends Record<string, NodeRegistration>, TEdges extends Record<string, EdgeEntry>> = {
|
|
18
|
-
[K in keyof TEdges]: TEdges[K] extends EdgeRegistration ? TEdges[K] : TEdges[K] extends AnyEdgeType ? EdgeRegistration<TEdges[K], TEdges[K]["from"] extends readonly (infer N extends NodeType)[] ? N : TNodes[keyof TNodes]["type"], TEdges[K]["to"] extends readonly (infer N extends NodeType)[] ? N : TNodes[keyof TNodes]["type"]> : never;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Configuration for defineGraph.
|
|
22
|
-
*/
|
|
23
|
-
type GraphDefConfig<TNodes extends Record<string, NodeRegistration>, TEdges extends Record<string, EdgeEntry>, TOntology extends readonly OntologyRelation[]> = Readonly<{
|
|
24
|
-
/** Unique identifier for this graph */
|
|
25
|
-
id: string;
|
|
26
|
-
/** Node registrations */
|
|
27
|
-
nodes: TNodes;
|
|
28
|
-
/** Edge registrations or EdgeTypes with built-in domain/range */
|
|
29
|
-
edges: TEdges;
|
|
30
|
-
/** Ontology relations */
|
|
31
|
-
ontology?: TOntology;
|
|
32
|
-
/** Graph-wide defaults */
|
|
33
|
-
defaults?: GraphDefaults;
|
|
34
|
-
/**
|
|
35
|
-
* Index declarations attached to this graph.
|
|
36
|
-
*
|
|
37
|
-
* Accepts the outputs of `defineNodeIndex` / `defineEdgeIndex` (which
|
|
38
|
-
* already return `IndexDeclaration` values) or pre-built declarations
|
|
39
|
-
* reconstructed from a stored schema or graph extension.
|
|
40
|
-
*
|
|
41
|
-
* Validated at definition time: every index must reference a `kind`
|
|
42
|
-
* that exists in `nodes` / `edges`, and index `name`s must be unique
|
|
43
|
-
* within the graph.
|
|
44
|
-
*
|
|
45
|
-
* Index DDL is **not** generated by `defineGraph`. Indexes flow into
|
|
46
|
-
* `SerializedSchema.indexes` so they can later be materialized via
|
|
47
|
-
* `store.materializeIndexes()` — lifting the storage concern out of
|
|
48
|
-
* the schema-version commit path.
|
|
49
|
-
*/
|
|
50
|
-
indexes?: readonly IndexDeclaration[];
|
|
51
|
-
}>;
|
|
52
|
-
/**
|
|
53
|
-
* A graph definition.
|
|
54
|
-
*
|
|
55
|
-
* This is a compile-time artifact that describes the structure of a graph.
|
|
56
|
-
* Use `createStore()` to create a runtime store from this definition.
|
|
57
|
-
*/
|
|
58
|
-
type GraphDef<TNodes extends Record<string, NodeRegistration> = Record<string, NodeRegistration>, TEdges extends Record<string, EdgeRegistration> = Record<string, EdgeRegistration>, TOntology extends readonly OntologyRelation[] = readonly OntologyRelation[]> = Readonly<{
|
|
59
|
-
[GRAPH_DEF_BRAND]: true;
|
|
60
|
-
id: string;
|
|
61
|
-
nodes: TNodes;
|
|
62
|
-
edges: TEdges;
|
|
63
|
-
ontology: TOntology;
|
|
64
|
-
defaults: Readonly<{
|
|
65
|
-
onNodeDelete: DeleteBehavior;
|
|
66
|
-
temporalMode: TemporalMode;
|
|
67
|
-
}>;
|
|
68
|
-
/**
|
|
69
|
-
* Index declarations attached to this graph. Preserves whatever the
|
|
70
|
-
* caller passed to `defineGraph` (including an explicit empty array)
|
|
71
|
-
* for introspection purposes.
|
|
72
|
-
*
|
|
73
|
-
* The serialized canonical form is order-canonicalized (sorted by
|
|
74
|
-
* `name`) and treats `undefined` and `[]` as the same "no slice" form
|
|
75
|
-
* — an empty array does not bump the schema hash, since indexes are
|
|
76
|
-
* an unordered set keyed by name and `[]` carries no semantic meaning
|
|
77
|
-
* that an absent slice doesn't.
|
|
78
|
-
*/
|
|
79
|
-
indexes: readonly IndexDeclaration[] | undefined;
|
|
80
|
-
/**
|
|
81
|
-
* Graph extension this graph was merged with, if any. Set by
|
|
82
|
-
* `mergeGraphExtension`; never set by `defineGraph` directly.
|
|
83
|
-
* Exists solely so re-serialization is stable — the rest of the
|
|
84
|
-
* system reads the merged kinds through `nodes` / `edges` /
|
|
85
|
-
* `ontology` and never inspects this field. Absent on graphs that
|
|
86
|
-
* have never been extended; legacy graphs hash byte-identically.
|
|
87
|
-
*/
|
|
88
|
-
extension: GraphExtension | undefined;
|
|
89
|
-
/**
|
|
90
|
-
* Soft-deprecated kind names attached to this graph. Set by the
|
|
91
|
-
* loader from the persisted schema and by `store.deprecateKinds(...)`
|
|
92
|
-
* / `store.undeprecateKinds(...)`. A purely informational signal
|
|
93
|
-
* surfaced for introspection — does not gate reads, writes, or
|
|
94
|
-
* queries. Defaults to the empty set on freshly-defined graphs.
|
|
95
|
-
*/
|
|
96
|
-
deprecatedKinds: ReadonlySet<string>;
|
|
97
|
-
}>;
|
|
98
|
-
/**
|
|
99
|
-
* Extract node kind names from a GraphDef.
|
|
100
|
-
*/
|
|
101
|
-
type NodeKinds<G extends GraphDef> = keyof G["nodes"] & string;
|
|
102
|
-
/**
|
|
103
|
-
* Extract edge kind names from a GraphDef.
|
|
104
|
-
*/
|
|
105
|
-
type EdgeKinds<G extends GraphDef> = keyof G["edges"] & string;
|
|
106
|
-
/**
|
|
107
|
-
* Get a NodeType from a GraphDef by kind name.
|
|
108
|
-
*/
|
|
109
|
-
type GetNodeType<G extends GraphDef, K extends NodeKinds<G>> = G["nodes"][K]["type"];
|
|
110
|
-
/**
|
|
111
|
-
* Get an EdgeType from a GraphDef by kind name.
|
|
112
|
-
*/
|
|
113
|
-
type GetEdgeType<G extends GraphDef, K extends EdgeKinds<G>> = G["edges"][K]["type"];
|
|
114
|
-
/**
|
|
115
|
-
* Get all NodeTypes from a GraphDef.
|
|
116
|
-
*/
|
|
117
|
-
type AllNodeTypes<G extends GraphDef> = {
|
|
118
|
-
[K in NodeKinds<G>]: G["nodes"][K]["type"];
|
|
119
|
-
}[NodeKinds<G>];
|
|
120
|
-
/**
|
|
121
|
-
* Get all EdgeTypes from a GraphDef.
|
|
122
|
-
*/
|
|
123
|
-
type AllEdgeTypes<G extends GraphDef> = {
|
|
124
|
-
[K in EdgeKinds<G>]: G["edges"][K]["type"];
|
|
125
|
-
}[EdgeKinds<G>];
|
|
126
|
-
/**
|
|
127
|
-
* Creates a graph definition.
|
|
128
|
-
*
|
|
129
|
-
* @example
|
|
130
|
-
* ```typescript
|
|
131
|
-
* const graph = defineGraph({
|
|
132
|
-
* id: "my_graph",
|
|
133
|
-
* nodes: {
|
|
134
|
-
* Person: { type: Person },
|
|
135
|
-
* Company: { type: Company },
|
|
136
|
-
* },
|
|
137
|
-
* edges: {
|
|
138
|
-
* // Traditional EdgeRegistration syntax
|
|
139
|
-
* worksAt: {
|
|
140
|
-
* type: worksAt,
|
|
141
|
-
* from: [Person],
|
|
142
|
-
* to: [Company],
|
|
143
|
-
* cardinality: "many",
|
|
144
|
-
* },
|
|
145
|
-
* // Or use EdgeType directly if it has from/to defined
|
|
146
|
-
* knows, // EdgeType with built-in domain/range
|
|
147
|
-
* },
|
|
148
|
-
* ontology: [
|
|
149
|
-
* subClassOf(Company, Organization),
|
|
150
|
-
* disjointWith(Person, Organization),
|
|
151
|
-
* ],
|
|
152
|
-
* defaults: {
|
|
153
|
-
* onNodeDelete: "restrict",
|
|
154
|
-
* temporalMode: "current",
|
|
155
|
-
* },
|
|
156
|
-
* });
|
|
157
|
-
* ```
|
|
158
|
-
*/
|
|
159
|
-
declare function defineGraph<const TNodes extends Record<string, NodeRegistration<NodeType>>, const TEdges extends Record<string, EdgeEntry>, const TOntology extends readonly OntologyRelation[]>(config: GraphDefConfig<TNodes, TEdges, TOntology>): GraphDef<TNodes, NormalizedEdges<TNodes, TEdges>, TOntology>;
|
|
160
|
-
/**
|
|
161
|
-
* Checks if a value is a GraphDef.
|
|
162
|
-
*/
|
|
163
|
-
declare function isGraphDef(value: unknown): value is GraphDef;
|
|
164
|
-
/**
|
|
165
|
-
* Gets all node kind names from a GraphDef.
|
|
166
|
-
*/
|
|
167
|
-
declare function getNodeKinds<G extends GraphDef>(graph: G): readonly (keyof G["nodes"] & string)[];
|
|
168
|
-
/**
|
|
169
|
-
* Gets all edge kind names from a GraphDef.
|
|
170
|
-
*/
|
|
171
|
-
declare function getEdgeKinds<G extends GraphDef>(graph: G): readonly (keyof G["edges"] & string)[];
|
|
172
|
-
|
|
173
|
-
export { type AllEdgeTypes as A, type EdgeKinds as E, type GraphDef as G, type NodeKinds as N, type AllNodeTypes as a, type GetEdgeType as b, type GetNodeType as c, defineGraph as d, getNodeKinds as e, getEdgeKinds as g, isGraphDef as i };
|