@nicia-ai/typegraph 0.33.0 → 0.34.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.
Files changed (244) hide show
  1. package/README.md +20 -0
  2. package/dist/backend/postgres/index.cjs +26 -22
  3. package/dist/backend/postgres/index.d.cts +5 -5
  4. package/dist/backend/postgres/index.d.ts +5 -5
  5. package/dist/backend/postgres/index.js +13 -9
  6. package/dist/backend/postgres/pglite.cjs +17 -13
  7. package/dist/backend/postgres/pglite.cjs.map +1 -1
  8. package/dist/backend/postgres/pglite.d.cts +2 -2
  9. package/dist/backend/postgres/pglite.d.ts +2 -2
  10. package/dist/backend/postgres/pglite.js +13 -9
  11. package/dist/backend/postgres/pglite.js.map +1 -1
  12. package/dist/backend/sqlite/index.cjs +24 -20
  13. package/dist/backend/sqlite/index.d.cts +6 -6
  14. package/dist/backend/sqlite/index.d.ts +6 -6
  15. package/dist/backend/sqlite/index.js +12 -8
  16. package/dist/backend/sqlite/libsql.cjs +18 -14
  17. package/dist/backend/sqlite/libsql.cjs.map +1 -1
  18. package/dist/backend/sqlite/libsql.d.cts +11 -4
  19. package/dist/backend/sqlite/libsql.d.ts +11 -4
  20. package/dist/backend/sqlite/libsql.js +14 -10
  21. package/dist/backend/sqlite/libsql.js.map +1 -1
  22. package/dist/backend/sqlite/local.cjs +18 -14
  23. package/dist/backend/sqlite/local.cjs.map +1 -1
  24. package/dist/backend/sqlite/local.d.cts +2 -2
  25. package/dist/backend/sqlite/local.d.ts +2 -2
  26. package/dist/backend/sqlite/local.js +13 -9
  27. package/dist/backend/sqlite/local.js.map +1 -1
  28. package/dist/chunk-2EBMPJBO.js +16 -0
  29. package/dist/chunk-2EBMPJBO.js.map +1 -0
  30. package/dist/{chunk-CFNT3ITG.cjs → chunk-2JXB3NYJ.cjs} +15 -35
  31. package/dist/chunk-2JXB3NYJ.cjs.map +1 -0
  32. package/dist/{chunk-GYVBEZAO.js → chunk-2MRAX3UE.js} +3 -18
  33. package/dist/chunk-2MRAX3UE.js.map +1 -0
  34. package/dist/{chunk-D3EWZ67S.cjs → chunk-3BRVBQQD.cjs} +999 -2675
  35. package/dist/chunk-3BRVBQQD.cjs.map +1 -0
  36. package/dist/{chunk-FDN43KXV.cjs → chunk-3Z6TW3CT.cjs} +20 -19
  37. package/dist/chunk-3Z6TW3CT.cjs.map +1 -0
  38. package/dist/{chunk-6NRFUHMS.js → chunk-4DIBPQNJ.js} +5 -4
  39. package/dist/chunk-4DIBPQNJ.js.map +1 -0
  40. package/dist/chunk-4S2FXGBJ.js +9 -0
  41. package/dist/chunk-4S2FXGBJ.js.map +1 -0
  42. package/dist/chunk-5IQIX7LU.cjs +2070 -0
  43. package/dist/chunk-5IQIX7LU.cjs.map +1 -0
  44. package/dist/{chunk-CWFPJ3RC.js → chunk-6GNSY7AV.js} +3 -3
  45. package/dist/{chunk-CWFPJ3RC.js.map → chunk-6GNSY7AV.js.map} +1 -1
  46. package/dist/{chunk-NG5N7R45.cjs → chunk-6HVOHZHS.cjs} +184 -117
  47. package/dist/chunk-6HVOHZHS.cjs.map +1 -0
  48. package/dist/chunk-6SCVW4AS.js +20 -0
  49. package/dist/chunk-6SCVW4AS.js.map +1 -0
  50. package/dist/chunk-A7SZZFAG.js +2010 -0
  51. package/dist/chunk-A7SZZFAG.js.map +1 -0
  52. package/dist/chunk-ACSVZPK7.cjs +21 -0
  53. package/dist/chunk-ACSVZPK7.cjs.map +1 -0
  54. package/dist/{chunk-IZ4PCL47.js → chunk-BVTWD66D.js} +4 -66
  55. package/dist/chunk-BVTWD66D.js.map +1 -0
  56. package/dist/{chunk-QBYTJSAY.js → chunk-CHXTTSC6.js} +5 -39
  57. package/dist/chunk-CHXTTSC6.js.map +1 -0
  58. package/dist/{chunk-DJYRRDHA.js → chunk-CYX2JTDG.js} +3 -3
  59. package/dist/{chunk-DJYRRDHA.js.map → chunk-CYX2JTDG.js.map} +1 -1
  60. package/dist/{chunk-PRMKPFN5.js → chunk-DEQFL35G.js} +4 -3
  61. package/dist/chunk-DEQFL35G.js.map +1 -0
  62. package/dist/chunk-DI74SMXS.cjs +29 -0
  63. package/dist/chunk-DI74SMXS.cjs.map +1 -0
  64. package/dist/{chunk-WWVV44DY.cjs → chunk-G6SOJEDI.cjs} +11 -11
  65. package/dist/{chunk-WWVV44DY.cjs.map → chunk-G6SOJEDI.cjs.map} +1 -1
  66. package/dist/{chunk-LM2IC4ZJ.cjs → chunk-GQANNXXT.cjs} +15 -14
  67. package/dist/chunk-GQANNXXT.cjs.map +1 -0
  68. package/dist/chunk-GZCNZ7QW.js +24 -0
  69. package/dist/chunk-GZCNZ7QW.js.map +1 -0
  70. package/dist/{chunk-KTIEB7VH.cjs → chunk-HK5SATYM.cjs} +35 -58
  71. package/dist/chunk-HK5SATYM.cjs.map +1 -0
  72. package/dist/chunk-HMFK4BXR.cjs +12 -0
  73. package/dist/{chunk-6ZR4QC3O.cjs.map → chunk-HMFK4BXR.cjs.map} +1 -1
  74. package/dist/chunk-ITE4IXAK.js +25 -0
  75. package/dist/chunk-ITE4IXAK.js.map +1 -0
  76. package/dist/chunk-JJRCLAUN.cjs +155 -0
  77. package/dist/chunk-JJRCLAUN.cjs.map +1 -0
  78. package/dist/{chunk-ZFWNO3GE.cjs → chunk-JQGIPGVL.cjs} +66 -2
  79. package/dist/chunk-JQGIPGVL.cjs.map +1 -0
  80. package/dist/{chunk-XVUJY72M.js → chunk-K2TGS3EN.js} +105 -38
  81. package/dist/chunk-K2TGS3EN.js.map +1 -0
  82. package/dist/chunk-K34OPSJK.js +29 -0
  83. package/dist/chunk-K34OPSJK.js.map +1 -0
  84. package/dist/{chunk-YW7GHMF4.cjs → chunk-KGC4LY5T.cjs} +18 -17
  85. package/dist/chunk-KGC4LY5T.cjs.map +1 -0
  86. package/dist/{chunk-SST7XDY6.cjs → chunk-KNHYNQQ3.cjs} +111 -72
  87. package/dist/chunk-KNHYNQQ3.cjs.map +1 -0
  88. package/dist/{chunk-C4C4Q7A6.js → chunk-KUTNI6SI.js} +6 -21
  89. package/dist/chunk-KUTNI6SI.js.map +1 -0
  90. package/dist/{chunk-OS6KS3HV.js → chunk-LANHCOXB.js} +8 -7
  91. package/dist/chunk-LANHCOXB.js.map +1 -0
  92. package/dist/chunk-N6WTUSBV.cjs +23 -0
  93. package/dist/chunk-N6WTUSBV.cjs.map +1 -0
  94. package/dist/{chunk-73KASJGO.cjs → chunk-NAUA4PW5.cjs} +4 -28
  95. package/dist/chunk-NAUA4PW5.cjs.map +1 -0
  96. package/dist/chunk-QV245VMN.js +145 -0
  97. package/dist/chunk-QV245VMN.js.map +1 -0
  98. package/dist/{chunk-CEF2QOTO.js → chunk-RBV7YCQD.js} +4 -3
  99. package/dist/chunk-RBV7YCQD.js.map +1 -0
  100. package/dist/{chunk-OIE2UPVG.cjs → chunk-RHZWOJVA.cjs} +2 -19
  101. package/dist/chunk-RHZWOJVA.cjs.map +1 -0
  102. package/dist/{chunk-3IR2GEMJ.cjs → chunk-RRKQAKD6.cjs} +10 -9
  103. package/dist/chunk-RRKQAKD6.cjs.map +1 -0
  104. package/dist/{chunk-UPDMJEW6.js → chunk-RY2VIWAM.js} +11 -8
  105. package/dist/chunk-RY2VIWAM.js.map +1 -0
  106. package/dist/{chunk-PIHXFF73.js → chunk-SHLY4MCM.js} +3 -3
  107. package/dist/{chunk-PIHXFF73.js.map → chunk-SHLY4MCM.js.map} +1 -1
  108. package/dist/{chunk-SPT5JMME.js → chunk-T2DWPQNE.js} +103 -64
  109. package/dist/chunk-T2DWPQNE.js.map +1 -0
  110. package/dist/{chunk-WYTUF3QO.js → chunk-T46GR2VY.js} +3 -3
  111. package/dist/{chunk-WYTUF3QO.js.map → chunk-T46GR2VY.js.map} +1 -1
  112. package/dist/{chunk-MBLXCV2Y.cjs → chunk-T6SPUYLX.cjs} +5 -43
  113. package/dist/chunk-T6SPUYLX.cjs.map +1 -0
  114. package/dist/{chunk-3QRBXYT5.cjs → chunk-TGJE22RM.cjs} +6 -6
  115. package/dist/{chunk-3QRBXYT5.cjs.map → chunk-TGJE22RM.cjs.map} +1 -1
  116. package/dist/{chunk-BF3ZDEUE.cjs → chunk-TOTPVGOG.cjs} +70 -69
  117. package/dist/chunk-TOTPVGOG.cjs.map +1 -0
  118. package/dist/{chunk-KY5SDVA7.cjs → chunk-UJLOZYKT.cjs} +90 -87
  119. package/dist/chunk-UJLOZYKT.cjs.map +1 -0
  120. package/dist/{chunk-I4W7MKVG.cjs → chunk-UNNPKQUG.cjs} +19 -155
  121. package/dist/chunk-UNNPKQUG.cjs.map +1 -0
  122. package/dist/chunk-UR7W5YQK.js +18 -0
  123. package/dist/chunk-UR7W5YQK.js.map +1 -0
  124. package/dist/{chunk-PYD3UCDU.js → chunk-V3QNTB7Z.js} +19 -148
  125. package/dist/chunk-V3QNTB7Z.js.map +1 -0
  126. package/dist/{chunk-XKNAK27R.js → chunk-VCGO4V26.js} +4 -3
  127. package/dist/chunk-VCGO4V26.js.map +1 -0
  128. package/dist/{chunk-EF3Z645U.cjs → chunk-WL2SG7ZV.cjs} +6 -72
  129. package/dist/chunk-WL2SG7ZV.cjs.map +1 -0
  130. package/dist/{chunk-WLP6TKFB.js → chunk-WLRIWYHQ.js} +640 -2307
  131. package/dist/chunk-WLRIWYHQ.js.map +1 -0
  132. package/dist/{chunk-4RBAJVEC.cjs → chunk-WVC2Q2FD.cjs} +5 -5
  133. package/dist/{chunk-4RBAJVEC.cjs.map → chunk-WVC2Q2FD.cjs.map} +1 -1
  134. package/dist/chunk-XXVEULWX.js +39 -0
  135. package/dist/chunk-XXVEULWX.js.map +1 -0
  136. package/dist/chunk-YAZE7QZR.cjs +32 -0
  137. package/dist/chunk-YAZE7QZR.cjs.map +1 -0
  138. package/dist/chunk-YC6PWTHY.cjs +44 -0
  139. package/dist/chunk-YC6PWTHY.cjs.map +1 -0
  140. package/dist/chunk-Z5HBYM7U.cjs +11 -0
  141. package/dist/chunk-Z5HBYM7U.cjs.map +1 -0
  142. package/dist/{chunk-454I6GDF.js → chunk-Z5XBMDXU.js} +63 -3
  143. package/dist/chunk-Z5XBMDXU.js.map +1 -0
  144. package/dist/{chunk-3642VBVC.cjs → chunk-ZP5WHI4C.cjs} +106 -80
  145. package/dist/chunk-ZP5WHI4C.cjs.map +1 -0
  146. package/dist/{chunk-YCV72E6L.js → chunk-ZURTTSCM.js} +4 -25
  147. package/dist/chunk-ZURTTSCM.js.map +1 -0
  148. package/dist/{chunk-JHOBXD7O.js → chunk-ZV5N4DBG.js} +46 -20
  149. package/dist/chunk-ZV5N4DBG.js.map +1 -0
  150. package/dist/chunk-ZY4GXIVN.cjs +32 -0
  151. package/dist/chunk-ZY4GXIVN.cjs.map +1 -0
  152. package/dist/{ddl-CVnHJcar.d.ts → ddl-BrmPg61z.d.ts} +3 -3
  153. package/dist/{ddl-Dxt_fBHr.d.cts → ddl-j1-sH6lE.d.cts} +3 -3
  154. package/dist/graph-extension/index.cjs +18 -17
  155. package/dist/graph-extension/index.js +3 -2
  156. package/dist/graph-merge/index.cjs +294 -146
  157. package/dist/graph-merge/index.cjs.map +1 -1
  158. package/dist/graph-merge/index.d.cts +3 -3
  159. package/dist/graph-merge/index.d.ts +3 -3
  160. package/dist/graph-merge/index.js +172 -24
  161. package/dist/graph-merge/index.js.map +1 -1
  162. package/dist/index.cjs +181 -172
  163. package/dist/index.cjs.map +1 -1
  164. package/dist/index.d.cts +7 -7
  165. package/dist/index.d.ts +7 -7
  166. package/dist/index.js +30 -22
  167. package/dist/index.js.map +1 -1
  168. package/dist/indexes/index.cjs +27 -25
  169. package/dist/indexes/index.d.cts +4 -4
  170. package/dist/indexes/index.d.ts +4 -4
  171. package/dist/indexes/index.js +9 -7
  172. package/dist/interchange/index.cjs +25 -16
  173. package/dist/interchange/index.d.cts +3 -3
  174. package/dist/interchange/index.d.ts +3 -3
  175. package/dist/interchange/index.js +12 -3
  176. package/dist/{manager-C0_r0ALf.d.ts → manager-BZUeN_BU.d.ts} +1 -1
  177. package/dist/{manager-BYl_zyZR.d.cts → manager-ms9cKdc6.d.cts} +1 -1
  178. package/dist/{postgres-MzBPkYzq.d.ts → postgres-BhpxGMC5.d.cts} +1 -1
  179. package/dist/{postgres-_9psmVGm.d.cts → postgres-CWHLwNl1.d.ts} +1 -1
  180. package/dist/profiler/index.cjs +3 -3
  181. package/dist/profiler/index.d.cts +5 -5
  182. package/dist/profiler/index.d.ts +5 -5
  183. package/dist/profiler/index.js +2 -2
  184. package/dist/provenance/index.cjs +591 -0
  185. package/dist/provenance/index.cjs.map +1 -0
  186. package/dist/provenance/index.d.cts +73 -0
  187. package/dist/provenance/index.d.ts +73 -0
  188. package/dist/provenance/index.js +589 -0
  189. package/dist/provenance/index.js.map +1 -0
  190. package/dist/schema/index.cjs +36 -32
  191. package/dist/schema/index.cjs.map +1 -1
  192. package/dist/schema/index.d.cts +4 -4
  193. package/dist/schema/index.d.ts +4 -4
  194. package/dist/schema/index.js +13 -9
  195. package/dist/schema/index.js.map +1 -1
  196. package/dist/{sqlite-gm44dShb.d.ts → sqlite-CGu5SLsw.d.ts} +1 -1
  197. package/dist/{sqlite-BfksSb45.d.cts → sqlite-XrDxNaa7.d.cts} +1 -1
  198. package/dist/{store-view-FfE5_7eo.d.ts → store-view-BlgnhEYf.d.ts} +33 -5
  199. package/dist/{store-view-9jQ2rPum.d.cts → store-view-D09po4H6.d.cts} +33 -5
  200. package/dist/{types-CdWxK-nD.d.ts → types-B1TbZJYS.d.ts} +1 -1
  201. package/dist/{types-DGylBhWo.d.ts → types-D1Sqeyxy.d.ts} +7 -3
  202. package/dist/{types-B6mhrcLv.d.cts → types-DiE1AO7p.d.cts} +1 -1
  203. package/dist/{types-C_UnQOQp.d.cts → types-DkNnF-7K.d.cts} +7 -3
  204. package/dist/{where-Bpp2ul_z.d.cts → where-DKjuofPr.d.cts} +1 -1
  205. package/dist/{where-BsEXraKW.d.ts → where-DrUIIWHb.d.ts} +1 -1
  206. package/package.json +8 -2
  207. package/dist/chunk-2YMGNYXY.js +0 -40
  208. package/dist/chunk-2YMGNYXY.js.map +0 -1
  209. package/dist/chunk-3642VBVC.cjs.map +0 -1
  210. package/dist/chunk-3IR2GEMJ.cjs.map +0 -1
  211. package/dist/chunk-454I6GDF.js.map +0 -1
  212. package/dist/chunk-6NRFUHMS.js.map +0 -1
  213. package/dist/chunk-6ZR4QC3O.cjs +0 -12
  214. package/dist/chunk-73KASJGO.cjs.map +0 -1
  215. package/dist/chunk-BF3ZDEUE.cjs.map +0 -1
  216. package/dist/chunk-C4C4Q7A6.js.map +0 -1
  217. package/dist/chunk-CEF2QOTO.js.map +0 -1
  218. package/dist/chunk-CFNT3ITG.cjs.map +0 -1
  219. package/dist/chunk-D3EWZ67S.cjs.map +0 -1
  220. package/dist/chunk-EF3Z645U.cjs.map +0 -1
  221. package/dist/chunk-FDN43KXV.cjs.map +0 -1
  222. package/dist/chunk-GYVBEZAO.js.map +0 -1
  223. package/dist/chunk-I4W7MKVG.cjs.map +0 -1
  224. package/dist/chunk-IZ4PCL47.js.map +0 -1
  225. package/dist/chunk-JHOBXD7O.js.map +0 -1
  226. package/dist/chunk-KTIEB7VH.cjs.map +0 -1
  227. package/dist/chunk-KY5SDVA7.cjs.map +0 -1
  228. package/dist/chunk-LM2IC4ZJ.cjs.map +0 -1
  229. package/dist/chunk-MBLXCV2Y.cjs.map +0 -1
  230. package/dist/chunk-NG5N7R45.cjs.map +0 -1
  231. package/dist/chunk-OIE2UPVG.cjs.map +0 -1
  232. package/dist/chunk-OS6KS3HV.js.map +0 -1
  233. package/dist/chunk-PRMKPFN5.js.map +0 -1
  234. package/dist/chunk-PYD3UCDU.js.map +0 -1
  235. package/dist/chunk-QBYTJSAY.js.map +0 -1
  236. package/dist/chunk-SPT5JMME.js.map +0 -1
  237. package/dist/chunk-SST7XDY6.cjs.map +0 -1
  238. package/dist/chunk-UPDMJEW6.js.map +0 -1
  239. package/dist/chunk-WLP6TKFB.js.map +0 -1
  240. package/dist/chunk-XKNAK27R.js.map +0 -1
  241. package/dist/chunk-XVUJY72M.js.map +0 -1
  242. package/dist/chunk-YCV72E6L.js.map +0 -1
  243. package/dist/chunk-YW7GHMF4.cjs.map +0 -1
  244. package/dist/chunk-ZFWNO3GE.cjs.map +0 -1
@@ -1,5 +1,6 @@
1
+ import { likeEscapeClause, LIKE_ESCAPE_CHARACTER } from './chunk-GZCNZ7QW.js';
1
2
  import { resolveFieldTypeInfoAtJsonPointer } from './chunk-XLUNB2TZ.js';
2
- import { UnsupportedPredicateError, CompilerInvariantError, DatabaseOperationError } from './chunk-TQOYM4LN.js';
3
+ import { UnsupportedPredicateError, CompilerInvariantError } from './chunk-TQOYM4LN.js';
3
4
  import { normalizeJsonPointer, joinJsonPointers, jsonPointer } from './chunk-K5P5OZXS.js';
4
5
  import { sql } from 'drizzle-orm';
5
6
 
@@ -540,6 +541,12 @@ function assertCompatibleSubqueryValueTypes(field, subquery) {
540
541
  }
541
542
 
542
543
  // src/backend/types.ts
544
+ function isLiveNodeRow(row) {
545
+ return row.deleted_at === void 0;
546
+ }
547
+ function isTombstonedNodeRow(row) {
548
+ return row.deleted_at !== void 0;
549
+ }
543
550
  function createBackendOverlay(target, overlay) {
544
551
  const boundTargetMethods = /* @__PURE__ */ new Map();
545
552
  function hasOverlayProperty(property) {
@@ -787,7 +794,10 @@ function convertValueForSql(value, dialect) {
787
794
  return dialect.bindValue(value);
788
795
  }
789
796
  function compileStringPattern(op, pattern) {
790
- const escaped = pattern.replaceAll("%", String.raw`\%`).replaceAll("_", String.raw`\_`);
797
+ const escaped = pattern.replaceAll(
798
+ LIKE_ESCAPE_CHARACTER,
799
+ `${LIKE_ESCAPE_CHARACTER}${LIKE_ESCAPE_CHARACTER}`
800
+ ).replaceAll("%", `${LIKE_ESCAPE_CHARACTER}%`).replaceAll("_", `${LIKE_ESCAPE_CHARACTER}_`);
791
801
  switch (op) {
792
802
  case "contains": {
793
803
  return `%${escaped}%`;
@@ -808,7 +818,8 @@ function compileStringPattern(op, pattern) {
808
818
  }
809
819
  }
810
820
  function escapeLikePatternParameter(parameter) {
811
- return sql`REPLACE(REPLACE(REPLACE(${parameter}, '\\', '\\\\'), '%', '\\%'), '_', '\\_')`;
821
+ const doubledEscape = `${LIKE_ESCAPE_CHARACTER}${LIKE_ESCAPE_CHARACTER}`;
822
+ return sql`REPLACE(REPLACE(REPLACE(${parameter}, ${LIKE_ESCAPE_CHARACTER}, ${doubledEscape}), '%', ${`${LIKE_ESCAPE_CHARACTER}%`}), '_', ${`${LIKE_ESCAPE_CHARACTER}_`})`;
812
823
  }
813
824
  function compileParameterizedStringPattern(op, parameter) {
814
825
  switch (op) {
@@ -854,13 +865,13 @@ function compilePredicateExpression(expr, ctx) {
854
865
  if (expr.op === "ilike" || expr.op === "contains" || expr.op === "startsWith" || expr.op === "endsWith") {
855
866
  return dialect.ilike(field, pattern2);
856
867
  }
857
- return sql`${field} LIKE ${pattern2}`;
868
+ return sql`${field} LIKE ${pattern2} ${likeEscapeClause}`;
858
869
  }
859
870
  const pattern = compileStringPattern(expr.op, expr.pattern);
860
871
  if (expr.op === "ilike" || expr.op === "contains" || expr.op === "startsWith" || expr.op === "endsWith") {
861
872
  return dialect.ilike(field, pattern);
862
873
  }
863
- return sql`${field} LIKE ${pattern}`;
874
+ return sql`${field} LIKE ${pattern} ${likeEscapeClause}`;
864
875
  }
865
876
  case "null_check": {
866
877
  const field = compileFieldTextValue(
@@ -1306,146 +1317,6 @@ function getHybridTargetAlias(vectorPredicate, fulltextPredicate) {
1306
1317
  return vectorPredicate.field.alias === fulltextPredicate.field.alias ? vectorPredicate.field.alias : void 0;
1307
1318
  }
1308
1319
 
1309
- // src/backend/drizzle/row-mappers.ts
1310
- function requireTimestamp(value, field) {
1311
- if (value === void 0) {
1312
- throw new DatabaseOperationError(
1313
- `Expected non-null ${field} timestamp`,
1314
- { operation: "select", entity: "row" }
1315
- );
1316
- }
1317
- return value;
1318
- }
1319
- function asString(value, field) {
1320
- if (typeof value !== "string") {
1321
- throw new DatabaseOperationError(
1322
- `Expected ${field} to be string, got ${typeof value}`,
1323
- { operation: "select", entity: "row" }
1324
- );
1325
- }
1326
- return value;
1327
- }
1328
- function asNumber(value, field) {
1329
- if (typeof value !== "number") {
1330
- throw new DatabaseOperationError(
1331
- `Expected ${field} to be number, got ${typeof value}`,
1332
- { operation: "select", entity: "row" }
1333
- );
1334
- }
1335
- return value;
1336
- }
1337
- function nowIso() {
1338
- return (/* @__PURE__ */ new Date()).toISOString();
1339
- }
1340
- function nullToUndefined(value) {
1341
- return value ?? void 0;
1342
- }
1343
- function formatPostgresTimestamp(value) {
1344
- if (value === null || value === void 0) return void 0;
1345
- if (value instanceof Date) return value.toISOString();
1346
- if (typeof value === "string") {
1347
- if (value.includes("T")) return value;
1348
- const date = new Date(value);
1349
- if (!Number.isNaN(date.getTime())) return date.toISOString();
1350
- return value;
1351
- }
1352
- return void 0;
1353
- }
1354
- function coerceNumericScore(value) {
1355
- if (typeof value === "number") return value;
1356
- const parsed = Number.parseFloat(value);
1357
- if (Number.isNaN(parsed)) {
1358
- throw new TypeError(
1359
- `Backend returned non-numeric fulltext score: ${JSON.stringify(value)}`
1360
- );
1361
- }
1362
- return parsed;
1363
- }
1364
- function normalizeJsonColumn(value) {
1365
- return typeof value === "string" ? value : JSON.stringify(value ?? {});
1366
- }
1367
- var SQLITE_ROW_MAPPER_CONFIG = {
1368
- formatTimestamp: (value) => {
1369
- if (value === null || value === void 0) return;
1370
- if (typeof value !== "string") {
1371
- throw new DatabaseOperationError(
1372
- `Expected timestamp to be string, got ${typeof value}`,
1373
- { operation: "select", entity: "row" }
1374
- );
1375
- }
1376
- return value;
1377
- },
1378
- normalizeJson: (value) => {
1379
- if (typeof value !== "string") {
1380
- throw new DatabaseOperationError(
1381
- `Expected JSON column to be string, got ${typeof value}`,
1382
- { operation: "select", entity: "row" }
1383
- );
1384
- }
1385
- return value;
1386
- }
1387
- };
1388
- var POSTGRES_ROW_MAPPER_CONFIG = {
1389
- formatTimestamp: formatPostgresTimestamp,
1390
- normalizeJson: normalizeJsonColumn
1391
- };
1392
- function createNodeRowMapper(config) {
1393
- return (row) => ({
1394
- graph_id: asString(row.graph_id, "graph_id"),
1395
- kind: asString(row.kind, "kind"),
1396
- id: asString(row.id, "id"),
1397
- props: config.normalizeJson(row.props),
1398
- version: asNumber(row.version, "version"),
1399
- valid_from: nullToUndefined(config.formatTimestamp(row.valid_from)),
1400
- valid_to: nullToUndefined(config.formatTimestamp(row.valid_to)),
1401
- created_at: requireTimestamp(config.formatTimestamp(row.created_at), "created_at"),
1402
- updated_at: requireTimestamp(config.formatTimestamp(row.updated_at), "updated_at"),
1403
- deleted_at: nullToUndefined(config.formatTimestamp(row.deleted_at))
1404
- });
1405
- }
1406
- function createEdgeRowMapper(config) {
1407
- return (row) => ({
1408
- graph_id: asString(row.graph_id, "graph_id"),
1409
- id: asString(row.id, "id"),
1410
- kind: asString(row.kind, "kind"),
1411
- from_kind: asString(row.from_kind, "from_kind"),
1412
- from_id: asString(row.from_id, "from_id"),
1413
- to_kind: asString(row.to_kind, "to_kind"),
1414
- to_id: asString(row.to_id, "to_id"),
1415
- props: config.normalizeJson(row.props),
1416
- valid_from: nullToUndefined(config.formatTimestamp(row.valid_from)),
1417
- valid_to: nullToUndefined(config.formatTimestamp(row.valid_to)),
1418
- created_at: requireTimestamp(config.formatTimestamp(row.created_at), "created_at"),
1419
- updated_at: requireTimestamp(config.formatTimestamp(row.updated_at), "updated_at"),
1420
- deleted_at: nullToUndefined(config.formatTimestamp(row.deleted_at))
1421
- });
1422
- }
1423
- function createUniqueRowMapper(config) {
1424
- return (row) => ({
1425
- graph_id: asString(row.graph_id, "graph_id"),
1426
- node_kind: asString(row.node_kind, "node_kind"),
1427
- constraint_name: asString(row.constraint_name, "constraint_name"),
1428
- key: asString(row.key, "key"),
1429
- node_id: asString(row.node_id, "node_id"),
1430
- concrete_kind: asString(row.concrete_kind, "concrete_kind"),
1431
- deleted_at: nullToUndefined(config.formatTimestamp(row.deleted_at))
1432
- });
1433
- }
1434
- function createSchemaVersionRowMapper(config) {
1435
- return (row) => {
1436
- const isActiveValue = row.is_active;
1437
- const isActive = isActiveValue === true || isActiveValue === 1 || isActiveValue === "1";
1438
- return {
1439
- graph_id: asString(row.graph_id, "graph_id"),
1440
- version: asNumber(row.version, "version"),
1441
- schema_hash: asString(row.schema_hash, "schema_hash"),
1442
- schema_doc: config.normalizeJson(row.schema_doc),
1443
- created_at: requireTimestamp(config.formatTimestamp(row.created_at), "created_at"),
1444
- is_active: isActive
1445
- };
1446
- };
1447
- }
1448
-
1449
1320
  // src/utils/array.ts
1450
1321
  function chunk(items, size) {
1451
1322
  if (!Number.isSafeInteger(size) || size < 1) {
@@ -1475,6 +1346,6 @@ function isPresent(value) {
1475
1346
  return value !== null && value !== void 0;
1476
1347
  }
1477
1348
 
1478
- export { POSTGRES_CAPABILITIES, POSTGRES_MAX_BIND_PARAMETERS, POSTGRES_ROW_MAPPER_CONFIG, SQLITE_CAPABILITIES, SQLITE_MAX_BIND_PARAMETERS, SQLITE_ROW_MAPPER_CONFIG, arrayField, baseField, buildFieldBuilderForTypeInfo, buildPredicateIndex, chunk, coerceNumericScore, compileFieldValue, compileKindFilter, compilePredicateClauses, compilePredicateExpression, createBackendOverlay, createEdgeRowMapper, createFulltextAccessor, createNodeRowMapper, createSchemaVersionRowMapper, createUniqueRowMapper, dateField, exists, extractFulltextMatchPredicates, extractVectorSimilarityPredicates, fieldRef, formatPostgresTimestamp, getHybridTargetAlias, getNodeKindsForAlias, getPredicatesForAlias, groupBy, inSubquery, isParameterRef, isPresent, notExists, notInSubquery, nowIso, numberField, objectField, param, runOptionallyInTransaction, sqlValueList, stringField, wrapWithManagedClose };
1479
- //# sourceMappingURL=chunk-PYD3UCDU.js.map
1480
- //# sourceMappingURL=chunk-PYD3UCDU.js.map
1349
+ export { POSTGRES_CAPABILITIES, POSTGRES_MAX_BIND_PARAMETERS, SQLITE_CAPABILITIES, SQLITE_MAX_BIND_PARAMETERS, arrayField, baseField, buildFieldBuilderForTypeInfo, buildPredicateIndex, chunk, compileFieldValue, compileKindFilter, compilePredicateClauses, compilePredicateExpression, createBackendOverlay, createFulltextAccessor, dateField, exists, extractFulltextMatchPredicates, extractVectorSimilarityPredicates, fieldRef, getHybridTargetAlias, getNodeKindsForAlias, getPredicatesForAlias, groupBy, inSubquery, isLiveNodeRow, isParameterRef, isPresent, isTombstonedNodeRow, notExists, notInSubquery, numberField, objectField, param, runOptionallyInTransaction, sqlValueList, stringField, wrapWithManagedClose };
1350
+ //# sourceMappingURL=chunk-V3QNTB7Z.js.map
1351
+ //# sourceMappingURL=chunk-V3QNTB7Z.js.map