@nicia-ai/typegraph 0.33.0 → 0.35.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 (284) hide show
  1. package/README.md +20 -0
  2. package/dist/backend/postgres/index.cjs +30 -26
  3. package/dist/backend/postgres/index.d.cts +39 -7
  4. package/dist/backend/postgres/index.d.ts +39 -7
  5. package/dist/backend/postgres/index.js +17 -13
  6. package/dist/backend/postgres/pglite.cjs +22 -18
  7. package/dist/backend/postgres/pglite.cjs.map +1 -1
  8. package/dist/backend/postgres/pglite.d.cts +4 -4
  9. package/dist/backend/postgres/pglite.d.ts +4 -4
  10. package/dist/backend/postgres/pglite.js +17 -13
  11. package/dist/backend/postgres/pglite.js.map +1 -1
  12. package/dist/backend/sqlite/index.cjs +26 -23
  13. package/dist/backend/sqlite/index.d.cts +8 -8
  14. package/dist/backend/sqlite/index.d.ts +8 -8
  15. package/dist/backend/sqlite/index.js +14 -11
  16. package/dist/backend/sqlite/libsql.cjs +21 -17
  17. package/dist/backend/sqlite/libsql.cjs.map +1 -1
  18. package/dist/backend/sqlite/libsql.d.cts +13 -6
  19. package/dist/backend/sqlite/libsql.d.ts +13 -6
  20. package/dist/backend/sqlite/libsql.js +17 -13
  21. package/dist/backend/sqlite/libsql.js.map +1 -1
  22. package/dist/backend/sqlite/local.cjs +102 -18
  23. package/dist/backend/sqlite/local.cjs.map +1 -1
  24. package/dist/backend/sqlite/local.d.cts +95 -5
  25. package/dist/backend/sqlite/local.d.ts +95 -5
  26. package/dist/backend/sqlite/local.js +96 -13
  27. package/dist/backend/sqlite/local.js.map +1 -1
  28. package/dist/{chunk-JHOBXD7O.js → chunk-3TWF3SH4.js} +332 -64
  29. package/dist/chunk-3TWF3SH4.js.map +1 -0
  30. package/dist/chunk-4JEZZJ6S.cjs +1271 -0
  31. package/dist/chunk-4JEZZJ6S.cjs.map +1 -0
  32. package/dist/{chunk-I4W7MKVG.cjs → chunk-4TOD4LBZ.cjs} +249 -294
  33. package/dist/chunk-4TOD4LBZ.cjs.map +1 -0
  34. package/dist/chunk-55MZDDZV.js +239 -0
  35. package/dist/chunk-55MZDDZV.js.map +1 -0
  36. package/dist/{chunk-LM2IC4ZJ.cjs → chunk-5A6FNS6N.cjs} +75 -19
  37. package/dist/chunk-5A6FNS6N.cjs.map +1 -0
  38. package/dist/{chunk-FDN43KXV.cjs → chunk-5AQIKK56.cjs} +65 -24
  39. package/dist/chunk-5AQIKK56.cjs.map +1 -0
  40. package/dist/{chunk-IZ4PCL47.js → chunk-5SEGFTZX.js} +4 -66
  41. package/dist/chunk-5SEGFTZX.js.map +1 -0
  42. package/dist/{chunk-CWFPJ3RC.js → chunk-6FR2MMS6.js} +7 -7
  43. package/dist/chunk-6FR2MMS6.js.map +1 -0
  44. package/dist/chunk-7YSP4V4R.cjs +69 -0
  45. package/dist/chunk-7YSP4V4R.cjs.map +1 -0
  46. package/dist/chunk-A42GCBGX.cjs +28 -0
  47. package/dist/chunk-A42GCBGX.cjs.map +1 -0
  48. package/dist/chunk-ACSVZPK7.cjs +21 -0
  49. package/dist/chunk-ACSVZPK7.cjs.map +1 -0
  50. package/dist/{chunk-OIE2UPVG.cjs → chunk-BLZDPRXT.cjs} +52 -21
  51. package/dist/chunk-BLZDPRXT.cjs.map +1 -0
  52. package/dist/chunk-BYPOGQWK.js +25 -0
  53. package/dist/chunk-BYPOGQWK.js.map +1 -0
  54. package/dist/{chunk-NG5N7R45.cjs → chunk-CK5BVQOW.cjs} +325 -213
  55. package/dist/chunk-CK5BVQOW.cjs.map +1 -0
  56. package/dist/chunk-CTTSDJLY.cjs +261 -0
  57. package/dist/chunk-CTTSDJLY.cjs.map +1 -0
  58. package/dist/chunk-CUHM5CWJ.cjs +12 -0
  59. package/dist/chunk-CUHM5CWJ.cjs.map +1 -0
  60. package/dist/chunk-CZQ3FO2Q.js +2320 -0
  61. package/dist/chunk-CZQ3FO2Q.js.map +1 -0
  62. package/dist/{chunk-CFNT3ITG.cjs → chunk-D7ZEOS56.cjs} +25 -52
  63. package/dist/chunk-D7ZEOS56.cjs.map +1 -0
  64. package/dist/chunk-DFVLCOP6.js +10 -0
  65. package/dist/chunk-DFVLCOP6.js.map +1 -0
  66. package/dist/chunk-DI74SMXS.cjs +29 -0
  67. package/dist/chunk-DI74SMXS.cjs.map +1 -0
  68. package/dist/{chunk-KY5SDVA7.cjs → chunk-EM3CWPND.cjs} +442 -113
  69. package/dist/chunk-EM3CWPND.cjs.map +1 -0
  70. package/dist/chunk-EMF62TZG.cjs +1176 -0
  71. package/dist/chunk-EMF62TZG.cjs.map +1 -0
  72. package/dist/chunk-EOLERH7Y.cjs +40 -0
  73. package/dist/chunk-EOLERH7Y.cjs.map +1 -0
  74. package/dist/{chunk-3QRBXYT5.cjs → chunk-FACJJWGF.cjs} +24 -6
  75. package/dist/chunk-FACJJWGF.cjs.map +1 -0
  76. package/dist/{chunk-KTIEB7VH.cjs → chunk-FL472AMI.cjs} +49 -165
  77. package/dist/chunk-FL472AMI.cjs.map +1 -0
  78. package/dist/{chunk-4RBAJVEC.cjs → chunk-FN35DLCN.cjs} +31 -9
  79. package/dist/chunk-FN35DLCN.cjs.map +1 -0
  80. package/dist/{chunk-C4C4Q7A6.js → chunk-FPIZFYHE.js} +12 -35
  81. package/dist/chunk-FPIZFYHE.js.map +1 -0
  82. package/dist/{chunk-XKNAK27R.js → chunk-FRV5Q5IO.js} +64 -8
  83. package/dist/chunk-FRV5Q5IO.js.map +1 -0
  84. package/dist/{chunk-K5P5OZXS.js → chunk-G6Q5UM7U.js} +2 -2
  85. package/dist/{chunk-K5P5OZXS.js.map → chunk-G6Q5UM7U.js.map} +1 -1
  86. package/dist/chunk-GSQ6NPH6.cjs +100 -0
  87. package/dist/chunk-GSQ6NPH6.cjs.map +1 -0
  88. package/dist/chunk-GUR2FNB5.cjs +12 -0
  89. package/dist/{chunk-6ZR4QC3O.cjs.map → chunk-GUR2FNB5.cjs.map} +1 -1
  90. package/dist/{chunk-ZFWNO3GE.cjs → chunk-H7YNSMA7.cjs} +107 -2
  91. package/dist/chunk-H7YNSMA7.cjs.map +1 -0
  92. package/dist/{chunk-GYVBEZAO.js → chunk-I7ZUZKFD.js} +47 -19
  93. package/dist/chunk-I7ZUZKFD.js.map +1 -0
  94. package/dist/chunk-ITE4IXAK.js +25 -0
  95. package/dist/chunk-ITE4IXAK.js.map +1 -0
  96. package/dist/{chunk-D3EWZ67S.cjs → chunk-J7WFGBJR.cjs} +3372 -4970
  97. package/dist/chunk-J7WFGBJR.cjs.map +1 -0
  98. package/dist/{chunk-PYD3UCDU.js → chunk-JBTOYDMN.js} +202 -251
  99. package/dist/chunk-JBTOYDMN.js.map +1 -0
  100. package/dist/{chunk-XVUJY72M.js → chunk-K3PPLHY7.js} +234 -118
  101. package/dist/chunk-K3PPLHY7.js.map +1 -0
  102. package/dist/{chunk-454I6GDF.js → chunk-KBGQIPRQ.js} +102 -3
  103. package/dist/chunk-KBGQIPRQ.js.map +1 -0
  104. package/dist/chunk-KMI7LYAF.js +1252 -0
  105. package/dist/chunk-KMI7LYAF.js.map +1 -0
  106. package/dist/{chunk-JIEJCTDS.cjs → chunk-LGEALRC6.cjs} +21 -4
  107. package/dist/chunk-LGEALRC6.cjs.map +1 -0
  108. package/dist/{chunk-TQOYM4LN.js → chunk-MP2JQKSG.js} +21 -5
  109. package/dist/chunk-MP2JQKSG.js.map +1 -0
  110. package/dist/{chunk-3642VBVC.cjs → chunk-O7UN7OXA.cjs} +389 -121
  111. package/dist/chunk-O7UN7OXA.cjs.map +1 -0
  112. package/dist/chunk-OHMP6N2J.js +47 -0
  113. package/dist/chunk-OHMP6N2J.js.map +1 -0
  114. package/dist/{chunk-6NRFUHMS.js → chunk-OR5ZA5WP.js} +135 -24
  115. package/dist/chunk-OR5ZA5WP.js.map +1 -0
  116. package/dist/{chunk-PRMKPFN5.js → chunk-Q5TEXCTB.js} +61 -6
  117. package/dist/chunk-Q5TEXCTB.js.map +1 -0
  118. package/dist/chunk-QNKSQTKQ.js +1312 -0
  119. package/dist/chunk-QNKSQTKQ.js.map +1 -0
  120. package/dist/{chunk-YCV72E6L.js → chunk-QOTI55H7.js} +7 -116
  121. package/dist/chunk-QOTI55H7.js.map +1 -0
  122. package/dist/{chunk-QBYTJSAY.js → chunk-QWEUYILR.js} +99 -34
  123. package/dist/chunk-QWEUYILR.js.map +1 -0
  124. package/dist/{chunk-OS6KS3HV.js → chunk-RGP33ZJ5.js} +485 -82
  125. package/dist/chunk-RGP33ZJ5.js.map +1 -0
  126. package/dist/chunk-RGPG7EOJ.js +94 -0
  127. package/dist/chunk-RGPG7EOJ.js.map +1 -0
  128. package/dist/{chunk-WWVV44DY.cjs → chunk-S55OV6PW.cjs} +15 -15
  129. package/dist/chunk-S55OV6PW.cjs.map +1 -0
  130. package/dist/{chunk-3E7SNSIA.cjs → chunk-SJDMVITW.cjs} +4 -4
  131. package/dist/{chunk-3E7SNSIA.cjs.map → chunk-SJDMVITW.cjs.map} +1 -1
  132. package/dist/{chunk-XLUNB2TZ.js → chunk-SNXVDZAJ.js} +3 -3
  133. package/dist/{chunk-XLUNB2TZ.js.map → chunk-SNXVDZAJ.js.map} +1 -1
  134. package/dist/{chunk-CEF2QOTO.js → chunk-T2WUSPDA.js} +49 -8
  135. package/dist/chunk-T2WUSPDA.js.map +1 -0
  136. package/dist/{chunk-YW7GHMF4.cjs → chunk-TCOCYN2P.cjs} +75 -20
  137. package/dist/chunk-TCOCYN2P.cjs.map +1 -0
  138. package/dist/{chunk-FLRCVI2G.cjs → chunk-TDXIBCGY.cjs} +2 -2
  139. package/dist/{chunk-FLRCVI2G.cjs.map → chunk-TDXIBCGY.cjs.map} +1 -1
  140. package/dist/chunk-TEDRJXOG.cjs +32 -0
  141. package/dist/chunk-TEDRJXOG.cjs.map +1 -0
  142. package/dist/{chunk-WLP6TKFB.js → chunk-UES55P7G.js} +2809 -4398
  143. package/dist/chunk-UES55P7G.js.map +1 -0
  144. package/dist/{chunk-EF3Z645U.cjs → chunk-UMDVATGY.cjs} +6 -72
  145. package/dist/chunk-UMDVATGY.cjs.map +1 -0
  146. package/dist/chunk-UR7W5YQK.js +18 -0
  147. package/dist/chunk-UR7W5YQK.js.map +1 -0
  148. package/dist/chunk-UT3S4SEN.js +31 -0
  149. package/dist/chunk-UT3S4SEN.js.map +1 -0
  150. package/dist/{chunk-3IR2GEMJ.cjs → chunk-UUT7UN2N.cjs} +149 -38
  151. package/dist/chunk-UUT7UN2N.cjs.map +1 -0
  152. package/dist/{chunk-PIHXFF73.js → chunk-UZV3AZKF.js} +21 -3
  153. package/dist/chunk-UZV3AZKF.js.map +1 -0
  154. package/dist/{chunk-DJYRRDHA.js → chunk-VHMPG6UL.js} +29 -7
  155. package/dist/chunk-VHMPG6UL.js.map +1 -0
  156. package/dist/{chunk-MBLXCV2Y.cjs → chunk-VPYHY3LJ.cjs} +111 -43
  157. package/dist/chunk-VPYHY3LJ.cjs.map +1 -0
  158. package/dist/{chunk-WYTUF3QO.js → chunk-VSPCZAXF.js} +3 -3
  159. package/dist/{chunk-WYTUF3QO.js.map → chunk-VSPCZAXF.js.map} +1 -1
  160. package/dist/chunk-W63OVYY4.js +29 -0
  161. package/dist/chunk-W63OVYY4.js.map +1 -0
  162. package/dist/{chunk-UPDMJEW6.js → chunk-WDBCBWC4.js} +356 -30
  163. package/dist/chunk-WDBCBWC4.js.map +1 -0
  164. package/dist/chunk-WJT7OU7E.cjs +1334 -0
  165. package/dist/chunk-WJT7OU7E.cjs.map +1 -0
  166. package/dist/chunk-XOX22WHL.cjs +2383 -0
  167. package/dist/chunk-XOX22WHL.cjs.map +1 -0
  168. package/dist/{ddl-CVnHJcar.d.ts → ddl-C2rZ-Aen.d.ts} +4 -4
  169. package/dist/{ddl-Dxt_fBHr.d.cts → ddl-CZz7a0E8.d.cts} +4 -4
  170. package/dist/{extension-types-YGFJPrzK.d.cts → extension-types-ixRpJVUp.d.cts} +24 -1
  171. package/dist/{extension-types-YGFJPrzK.d.ts → extension-types-ixRpJVUp.d.ts} +24 -1
  172. package/dist/{types-DGylBhWo.d.ts → fulltext-strategy-B57yvC5Q.d.ts} +2558 -2125
  173. package/dist/{types-C_UnQOQp.d.cts → fulltext-strategy-CDkSSYhq.d.cts} +2558 -2125
  174. package/dist/graph-extension/index.cjs +21 -19
  175. package/dist/graph-extension/index.d.cts +4 -4
  176. package/dist/graph-extension/index.d.ts +4 -4
  177. package/dist/graph-extension/index.js +6 -4
  178. package/dist/graph-merge/index.cjs +408 -169
  179. package/dist/graph-merge/index.cjs.map +1 -1
  180. package/dist/graph-merge/index.d.cts +63 -33
  181. package/dist/graph-merge/index.d.ts +63 -33
  182. package/dist/graph-merge/index.js +286 -47
  183. package/dist/graph-merge/index.js.map +1 -1
  184. package/dist/{index-DGX6D9j1.d.ts → index-6CSUAq-x.d.ts} +234 -93
  185. package/dist/{index-SEvUHDA6.d.cts → index-Bks_3HHK.d.cts} +234 -93
  186. package/dist/index.cjs +240 -211
  187. package/dist/index.cjs.map +1 -1
  188. package/dist/index.d.cts +11 -11
  189. package/dist/index.d.ts +11 -11
  190. package/dist/index.js +35 -27
  191. package/dist/index.js.map +1 -1
  192. package/dist/indexes/index.cjs +28 -27
  193. package/dist/indexes/index.d.cts +5 -5
  194. package/dist/indexes/index.d.ts +5 -5
  195. package/dist/indexes/index.js +10 -9
  196. package/dist/interchange/index.cjs +47 -17
  197. package/dist/interchange/index.d.cts +126 -12
  198. package/dist/interchange/index.d.ts +126 -12
  199. package/dist/interchange/index.js +14 -4
  200. package/dist/{manager-BYl_zyZR.d.cts → manager-DwQi8eV0.d.cts} +9 -2
  201. package/dist/{manager-C0_r0ALf.d.ts → manager-ejUCB52T.d.ts} +9 -2
  202. package/dist/{materialize-indexes-D20xNluI.d.cts → materialize-indexes-B4e9360H.d.cts} +20 -4
  203. package/dist/{materialize-indexes-CAkIYFV-.d.ts → materialize-indexes-te9TPMMJ.d.ts} +20 -4
  204. package/dist/{postgres-_9psmVGm.d.cts → postgres-CfEqsRMp.d.cts} +152 -1
  205. package/dist/{postgres-MzBPkYzq.d.ts → postgres-DQ5R6rzV.d.ts} +152 -1
  206. package/dist/profiler/index.cjs +11 -11
  207. package/dist/profiler/index.d.cts +7 -7
  208. package/dist/profiler/index.d.ts +7 -7
  209. package/dist/profiler/index.js +4 -4
  210. package/dist/provenance/index.cjs +590 -0
  211. package/dist/provenance/index.cjs.map +1 -0
  212. package/dist/provenance/index.d.cts +73 -0
  213. package/dist/provenance/index.d.ts +73 -0
  214. package/dist/provenance/index.js +588 -0
  215. package/dist/provenance/index.js.map +1 -0
  216. package/dist/schema/index.cjs +55 -38
  217. package/dist/schema/index.cjs.map +1 -1
  218. package/dist/schema/index.d.cts +57 -57
  219. package/dist/schema/index.d.ts +57 -57
  220. package/dist/schema/index.js +30 -13
  221. package/dist/schema/index.js.map +1 -1
  222. package/dist/{sqlite-gm44dShb.d.ts → sqlite-D7zBinNR.d.cts} +92 -1
  223. package/dist/{sqlite-BfksSb45.d.cts → sqlite-DvQndLky.d.ts} +92 -1
  224. package/dist/{store-view-FfE5_7eo.d.ts → store-view-BSpqvAxK.d.cts} +445 -46
  225. package/dist/{store-view-9jQ2rPum.d.cts → store-view-CKbHFRnn.d.ts} +445 -46
  226. package/dist/{types-B6mhrcLv.d.cts → types-Bv9DcS_E.d.cts} +2 -2
  227. package/dist/{types-CdWxK-nD.d.ts → types-CoxuV7EJ.d.ts} +2 -2
  228. package/dist/{where-Bpp2ul_z.d.cts → where-7RKFOsXt.d.ts} +2 -2
  229. package/dist/{where-BsEXraKW.d.ts → where-DdMIXOtH.d.cts} +2 -2
  230. package/package.json +21 -14
  231. package/dist/chunk-2YMGNYXY.js +0 -40
  232. package/dist/chunk-2YMGNYXY.js.map +0 -1
  233. package/dist/chunk-3642VBVC.cjs.map +0 -1
  234. package/dist/chunk-3EUKJEQ3.js +0 -77
  235. package/dist/chunk-3EUKJEQ3.js.map +0 -1
  236. package/dist/chunk-3IR2GEMJ.cjs.map +0 -1
  237. package/dist/chunk-3QRBXYT5.cjs.map +0 -1
  238. package/dist/chunk-454I6GDF.js.map +0 -1
  239. package/dist/chunk-4RBAJVEC.cjs.map +0 -1
  240. package/dist/chunk-6NRFUHMS.js.map +0 -1
  241. package/dist/chunk-6ZR4QC3O.cjs +0 -12
  242. package/dist/chunk-73KASJGO.cjs +0 -52
  243. package/dist/chunk-73KASJGO.cjs.map +0 -1
  244. package/dist/chunk-BF3ZDEUE.cjs +0 -773
  245. package/dist/chunk-BF3ZDEUE.cjs.map +0 -1
  246. package/dist/chunk-C4C4Q7A6.js.map +0 -1
  247. package/dist/chunk-CEF2QOTO.js.map +0 -1
  248. package/dist/chunk-CFNT3ITG.cjs.map +0 -1
  249. package/dist/chunk-CWFPJ3RC.js.map +0 -1
  250. package/dist/chunk-D3EWZ67S.cjs.map +0 -1
  251. package/dist/chunk-DJYRRDHA.js.map +0 -1
  252. package/dist/chunk-EF3Z645U.cjs.map +0 -1
  253. package/dist/chunk-FDN43KXV.cjs.map +0 -1
  254. package/dist/chunk-GYVBEZAO.js.map +0 -1
  255. package/dist/chunk-HTGDWIDE.cjs +0 -89
  256. package/dist/chunk-HTGDWIDE.cjs.map +0 -1
  257. package/dist/chunk-I4W7MKVG.cjs.map +0 -1
  258. package/dist/chunk-IZ4PCL47.js.map +0 -1
  259. package/dist/chunk-JHOBXD7O.js.map +0 -1
  260. package/dist/chunk-JIEJCTDS.cjs.map +0 -1
  261. package/dist/chunk-KTIEB7VH.cjs.map +0 -1
  262. package/dist/chunk-KY5SDVA7.cjs.map +0 -1
  263. package/dist/chunk-LM2IC4ZJ.cjs.map +0 -1
  264. package/dist/chunk-MBLXCV2Y.cjs.map +0 -1
  265. package/dist/chunk-NG5N7R45.cjs.map +0 -1
  266. package/dist/chunk-OIE2UPVG.cjs.map +0 -1
  267. package/dist/chunk-OS6KS3HV.js.map +0 -1
  268. package/dist/chunk-PIHXFF73.js.map +0 -1
  269. package/dist/chunk-PRMKPFN5.js.map +0 -1
  270. package/dist/chunk-PYD3UCDU.js.map +0 -1
  271. package/dist/chunk-QBYTJSAY.js.map +0 -1
  272. package/dist/chunk-SPT5JMME.js +0 -610
  273. package/dist/chunk-SPT5JMME.js.map +0 -1
  274. package/dist/chunk-SST7XDY6.cjs +0 -624
  275. package/dist/chunk-SST7XDY6.cjs.map +0 -1
  276. package/dist/chunk-TQOYM4LN.js.map +0 -1
  277. package/dist/chunk-UPDMJEW6.js.map +0 -1
  278. package/dist/chunk-WLP6TKFB.js.map +0 -1
  279. package/dist/chunk-WWVV44DY.cjs.map +0 -1
  280. package/dist/chunk-XKNAK27R.js.map +0 -1
  281. package/dist/chunk-XVUJY72M.js.map +0 -1
  282. package/dist/chunk-YCV72E6L.js.map +0 -1
  283. package/dist/chunk-YW7GHMF4.cjs.map +0 -1
  284. package/dist/chunk-ZFWNO3GE.cjs.map +0 -1
@@ -1,10 +1,188 @@
1
1
  'use strict';
2
2
 
3
- var chunk3E7SNSIA_cjs = require('./chunk-3E7SNSIA.cjs');
4
- var chunkJIEJCTDS_cjs = require('./chunk-JIEJCTDS.cjs');
5
- var chunkFLRCVI2G_cjs = require('./chunk-FLRCVI2G.cjs');
3
+ var chunkBLZDPRXT_cjs = require('./chunk-BLZDPRXT.cjs');
4
+ var chunk7YSP4V4R_cjs = require('./chunk-7YSP4V4R.cjs');
5
+ var chunkSJDMVITW_cjs = require('./chunk-SJDMVITW.cjs');
6
+ var chunkLGEALRC6_cjs = require('./chunk-LGEALRC6.cjs');
7
+ var chunkTDXIBCGY_cjs = require('./chunk-TDXIBCGY.cjs');
6
8
  var drizzleOrm = require('drizzle-orm');
7
9
 
10
+ // src/backend/types.ts
11
+ function rowPropsToObject(props) {
12
+ return typeof props === "string" ? JSON.parse(props) : props;
13
+ }
14
+ function rowPropsToJsonText(props) {
15
+ return typeof props === "string" ? props : JSON.stringify(props);
16
+ }
17
+ function isLiveNodeRow(row) {
18
+ return row.deleted_at === void 0;
19
+ }
20
+ function isTombstonedNodeRow(row) {
21
+ return row.deleted_at !== void 0;
22
+ }
23
+ function createBackendOverlay(target, overlay) {
24
+ const boundTargetMethods = /* @__PURE__ */ new Map();
25
+ function hasOverlayProperty(property) {
26
+ return Object.hasOwn(overlay, property);
27
+ }
28
+ function targetValue(targetObject, property) {
29
+ const value = Reflect.get(targetObject, property, targetObject);
30
+ if (typeof value !== "function") return value;
31
+ const cached = boundTargetMethods.get(property);
32
+ if (cached !== void 0) return cached;
33
+ const method = value;
34
+ const bound = method.bind(targetObject);
35
+ boundTargetMethods.set(property, bound);
36
+ return bound;
37
+ }
38
+ return new Proxy(target, {
39
+ get(targetObject, property) {
40
+ if (hasOverlayProperty(property)) {
41
+ return Reflect.get(overlay, property, overlay);
42
+ }
43
+ return targetValue(targetObject, property);
44
+ },
45
+ has(targetObject, property) {
46
+ return hasOverlayProperty(property) || Reflect.has(targetObject, property);
47
+ },
48
+ ownKeys(targetObject) {
49
+ return [
50
+ .../* @__PURE__ */ new Set([
51
+ ...Reflect.ownKeys(targetObject),
52
+ ...Reflect.ownKeys(overlay)
53
+ ])
54
+ ];
55
+ },
56
+ getOwnPropertyDescriptor(targetObject, property) {
57
+ if (hasOverlayProperty(property)) {
58
+ const descriptor = Reflect.getOwnPropertyDescriptor(overlay, property);
59
+ if (descriptor === void 0) return;
60
+ return { ...descriptor, configurable: true };
61
+ }
62
+ return Reflect.getOwnPropertyDescriptor(targetObject, property);
63
+ },
64
+ set(targetObject, property, value) {
65
+ if (hasOverlayProperty(property)) {
66
+ return Reflect.set(overlay, property, value, overlay);
67
+ }
68
+ return Reflect.set(targetObject, property, value, targetObject);
69
+ },
70
+ defineProperty(targetObject, property, attributes) {
71
+ if (hasOverlayProperty(property)) {
72
+ return Reflect.defineProperty(overlay, property, attributes);
73
+ }
74
+ return Reflect.defineProperty(targetObject, property, attributes);
75
+ },
76
+ deleteProperty(targetObject, property) {
77
+ if (hasOverlayProperty(property)) {
78
+ return Reflect.deleteProperty(overlay, property);
79
+ }
80
+ return Reflect.deleteProperty(targetObject, property);
81
+ }
82
+ });
83
+ }
84
+ function wrapWithManagedClose(backend, teardown) {
85
+ let isClosed = false;
86
+ return createBackendOverlay(backend, {
87
+ async close() {
88
+ if (isClosed) return;
89
+ isClosed = true;
90
+ await backend.close();
91
+ await teardown();
92
+ }
93
+ });
94
+ }
95
+ async function runOptionallyInTransaction(backend, fn, fallback) {
96
+ if ("transaction" in backend && backend.capabilities.transactions) {
97
+ return backend.transaction((tx) => fn(tx));
98
+ }
99
+ return fn(fallback ?? backend);
100
+ }
101
+ var SQLITE_MAX_BIND_PARAMETERS = 999;
102
+ var MODERN_SQLITE_MAX_BIND_PARAMETERS = 32766;
103
+ var D1_MAX_BIND_PARAMETERS = 100;
104
+ var POSTGRES_MAX_BIND_PARAMETERS = 65535;
105
+ var SQLITE_CAPABILITIES = {
106
+ transactions: true,
107
+ // SQLite supports transactions
108
+ windowFunctions: true,
109
+ // SQLite has supported window functions since 3.25.0
110
+ returning: true,
111
+ // SQLite has supported RETURNING since 3.35.0
112
+ maxBindParameters: SQLITE_MAX_BIND_PARAMETERS
113
+ };
114
+ var POSTGRES_CAPABILITIES = {
115
+ transactions: true,
116
+ // PostgreSQL supports transactions
117
+ windowFunctions: true,
118
+ // PostgreSQL supports ROW_NUMBER() and related windows
119
+ returning: true,
120
+ // PostgreSQL has supported RETURNING since 8.2
121
+ maxBindParameters: POSTGRES_MAX_BIND_PARAMETERS
122
+ };
123
+ var pinnedReadInstant;
124
+ function withPinnedReadInstant(emit) {
125
+ if (pinnedReadInstant !== void 0) return emit();
126
+ pinnedReadInstant = chunkBLZDPRXT_cjs.nowIso();
127
+ try {
128
+ return emit();
129
+ } finally {
130
+ pinnedReadInstant = void 0;
131
+ }
132
+ }
133
+ function currentReadInstant() {
134
+ return drizzleOrm.sql`${pinnedReadInstant ?? chunkBLZDPRXT_cjs.nowIso()}`;
135
+ }
136
+ var CURRENT_READ_INSTANT_PLACEHOLDER = "__typegraph_current_read_instant__";
137
+ function currentReadInstantPlaceholder() {
138
+ return drizzleOrm.sql`${drizzleOrm.sql.placeholder(CURRENT_READ_INSTANT_PLACEHOLDER)}`;
139
+ }
140
+ function currentReadInstantFor(mode) {
141
+ return mode === "placeholder" ? currentReadInstantPlaceholder() : currentReadInstant();
142
+ }
143
+ function compileTemporalFilter(options) {
144
+ const { mode, asOf, tableAlias, currentTimestamp, recordedAsOf } = options;
145
+ const prefix = tableAlias ? drizzleOrm.sql.raw(`${tableAlias}.`) : drizzleOrm.sql.raw("");
146
+ const deletedAt = drizzleOrm.sql`${prefix}deleted_at`;
147
+ const validFrom = drizzleOrm.sql`${prefix}valid_from`;
148
+ const validTo = drizzleOrm.sql`${prefix}valid_to`;
149
+ const validFilter = (() => {
150
+ switch (mode) {
151
+ case "current": {
152
+ const now = recordedAsOf === void 0 ? currentTimestamp ?? currentReadInstant() : drizzleOrm.sql`${recordedAsOf}`;
153
+ return drizzleOrm.sql`${deletedAt} IS NULL AND (${validFrom} IS NULL OR ${validFrom} <= ${now}) AND (${validTo} IS NULL OR ${validTo} > ${now})`;
154
+ }
155
+ case "asOf": {
156
+ if (asOf === void 0) {
157
+ throw new Error(
158
+ `asOf timestamp is required for temporal mode "asOf"`
159
+ );
160
+ }
161
+ const timestamp = asOf;
162
+ return drizzleOrm.sql`${deletedAt} IS NULL AND (${validFrom} IS NULL OR ${validFrom} <= ${timestamp}) AND (${validTo} IS NULL OR ${validTo} > ${timestamp})`;
163
+ }
164
+ case "includeEnded": {
165
+ return drizzleOrm.sql`${deletedAt} IS NULL`;
166
+ }
167
+ case "includeTombstones": {
168
+ return drizzleOrm.sql.raw("1=1");
169
+ }
170
+ }
171
+ })();
172
+ if (recordedAsOf === void 0) return validFilter;
173
+ const recordedFrom = drizzleOrm.sql`${prefix}recorded_from`;
174
+ const recordedTo = drizzleOrm.sql`${prefix}recorded_to`;
175
+ return drizzleOrm.sql`(${validFilter}) AND ${recordedFrom} <= ${recordedAsOf} AND ${recordedAsOf} < ${recordedTo}`;
176
+ }
177
+ function extractTemporalOptions(ast, tableAlias) {
178
+ return {
179
+ mode: ast.temporalMode.mode,
180
+ asOf: ast.temporalMode.asOf,
181
+ recordedAsOf: ast.recordedAsOf,
182
+ tableAlias
183
+ };
184
+ }
185
+
8
186
  // src/query/subquery-utils.ts
9
187
  function normalizeValueType(valueType) {
10
188
  if (valueType === void 0 || valueType === "unknown") {
@@ -81,6 +259,12 @@ function predicate(expr) {
81
259
  };
82
260
  }
83
261
  function param(name) {
262
+ if (name === CURRENT_READ_INSTANT_PLACEHOLDER) {
263
+ throw new chunkLGEALRC6_cjs.ConfigurationError(
264
+ `Parameter name "${name}" is reserved for internal use`,
265
+ { parameterName: name }
266
+ );
267
+ }
84
268
  return { __type: "parameter", name };
85
269
  }
86
270
  function isParameterRef(value) {
@@ -223,7 +407,7 @@ function createFulltextAccessor(alias, hasSearchableField) {
223
407
  return {
224
408
  matches: (query, k, options) => {
225
409
  if (!hasSearchableField()) {
226
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
410
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
227
411
  `Cannot call .$fulltext.matches() on alias "${alias}" \u2014 its node kind has no fields declared with searchable(). Add at least one: \`title: searchable({ language: "english" })\`.`
228
412
  );
229
413
  }
@@ -238,7 +422,7 @@ function createFulltextAccessor(alias, hasSearchableField) {
238
422
  }
239
423
  function fulltextMatch(field, query, limit, options) {
240
424
  if (!Number.isFinite(limit) || limit <= 0) {
241
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
425
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
242
426
  `matches() limit must be a positive finite number, got ${String(limit)}`
243
427
  );
244
428
  }
@@ -313,7 +497,10 @@ function vectorSimilarity(field, queryEmbedding, limit, options) {
313
497
  // here would mis-rank l2/inner_product fields and bypass their ANN index.
314
498
  ...options?.metric !== void 0 && { metric: options.metric },
315
499
  limit,
316
- ...options?.minScore !== void 0 && { minScore: options.minScore }
500
+ ...options?.minScore !== void 0 && { minScore: options.minScore },
501
+ ...options?.approximate !== void 0 && {
502
+ approximate: options.approximate
503
+ }
317
504
  };
318
505
  return predicate(expr);
319
506
  }
@@ -355,7 +542,7 @@ function buildFieldBuilderForTypeInfo(field, typeInfo) {
355
542
  }
356
543
  }
357
544
  function resolvePointerTypeInfo(typeInfo, pointer) {
358
- return chunk3E7SNSIA_cjs.resolveFieldTypeInfoAtJsonPointer(typeInfo, pointer);
545
+ return chunkSJDMVITW_cjs.resolveFieldTypeInfoAtJsonPointer(typeInfo, pointer);
359
546
  }
360
547
  function objectOp(op, field, pointer, value, options) {
361
548
  const expr = {
@@ -378,8 +565,8 @@ function objectField(field, options) {
378
565
  return {
379
566
  ...baseFieldBuilder(field),
380
567
  get: (key) => {
381
- const pointer = chunkFLRCVI2G_cjs.jsonPointer([key]);
382
- const nestedPointer = chunkFLRCVI2G_cjs.joinJsonPointers(basePointer, pointer);
568
+ const pointer = chunkTDXIBCGY_cjs.jsonPointer([key]);
569
+ const nestedPointer = chunkTDXIBCGY_cjs.joinJsonPointers(basePointer, pointer);
383
570
  const resolved = resolvePointerTypeInfo(options?.typeInfo, pointer);
384
571
  const nestedRef = fieldRef(field.alias, field.path, {
385
572
  jsonPointer: nestedPointer,
@@ -393,17 +580,17 @@ function objectField(field, options) {
393
580
  return buildFieldBuilderForTypeInfo(nestedRef, resolved);
394
581
  },
395
582
  hasKey: (key) => {
396
- const pointer = chunkFLRCVI2G_cjs.jsonPointer([key]);
583
+ const pointer = chunkTDXIBCGY_cjs.jsonPointer([key]);
397
584
  resolvePointerTypeInfo(options?.typeInfo, pointer);
398
585
  return objectOp("hasKey", field, pointer);
399
586
  },
400
587
  hasPath: (pointer) => {
401
- const normalized = chunkFLRCVI2G_cjs.normalizeJsonPointer(pointer);
588
+ const normalized = chunkTDXIBCGY_cjs.normalizeJsonPointer(pointer);
402
589
  resolvePointerTypeInfo(options?.typeInfo, normalized);
403
590
  return objectOp("hasPath", field, normalized);
404
591
  },
405
592
  pathEquals: (pointer, value) => {
406
- const normalized = chunkFLRCVI2G_cjs.normalizeJsonPointer(pointer);
593
+ const normalized = chunkTDXIBCGY_cjs.normalizeJsonPointer(pointer);
407
594
  const resolved = resolvePointerTypeInfo(options?.typeInfo, normalized);
408
595
  if (resolved && (resolved.valueType === "array" || resolved.valueType === "object")) {
409
596
  throw new Error("pathEquals is only supported for scalar JSON values");
@@ -412,7 +599,7 @@ function objectField(field, options) {
412
599
  return objectOp("pathEquals", field, normalized, value, predicateOptions);
413
600
  },
414
601
  pathContains: (pointer, value) => {
415
- const normalized = chunkFLRCVI2G_cjs.normalizeJsonPointer(pointer);
602
+ const normalized = chunkTDXIBCGY_cjs.normalizeJsonPointer(pointer);
416
603
  const resolved = resolvePointerTypeInfo(options?.typeInfo, normalized);
417
604
  if (resolved && resolved.valueType !== "array") {
418
605
  throw new Error("pathContains is only supported for JSON array values");
@@ -427,7 +614,7 @@ function objectField(field, options) {
427
614
  );
428
615
  },
429
616
  pathIsNull: (pointer) => {
430
- const normalized = chunkFLRCVI2G_cjs.normalizeJsonPointer(pointer);
617
+ const normalized = chunkTDXIBCGY_cjs.normalizeJsonPointer(pointer);
431
618
  const resolved = resolvePointerTypeInfo(options?.typeInfo, normalized);
432
619
  const predicateOptions = resolved?.valueType === void 0 ? void 0 : { valueType: resolved.valueType };
433
620
  return objectOp(
@@ -439,7 +626,7 @@ function objectField(field, options) {
439
626
  );
440
627
  },
441
628
  pathIsNotNull: (pointer) => {
442
- const normalized = chunkFLRCVI2G_cjs.normalizeJsonPointer(pointer);
629
+ const normalized = chunkTDXIBCGY_cjs.normalizeJsonPointer(pointer);
443
630
  const resolved = resolvePointerTypeInfo(options?.typeInfo, normalized);
444
631
  const predicateOptions = resolved?.valueType === void 0 ? void 0 : { valueType: resolved.valueType };
445
632
  return objectOp(
@@ -451,8 +638,8 @@ function objectField(field, options) {
451
638
  );
452
639
  },
453
640
  field: (pointer) => {
454
- const normalized = chunkFLRCVI2G_cjs.normalizeJsonPointer(pointer);
455
- const nestedPointer = chunkFLRCVI2G_cjs.joinJsonPointers(basePointer, normalized);
641
+ const normalized = chunkTDXIBCGY_cjs.normalizeJsonPointer(pointer);
642
+ const nestedPointer = chunkTDXIBCGY_cjs.joinJsonPointers(basePointer, normalized);
456
643
  const resolved = resolvePointerTypeInfo(options?.typeInfo, normalized);
457
644
  const nestedRef = fieldRef(field.alias, field.path, {
458
645
  jsonPointer: nestedPointer,
@@ -508,7 +695,7 @@ function notInSubquery(field, subquery) {
508
695
  function assertSingleColumnSubquery(subquery) {
509
696
  const columnCount = getSubqueryColumnCount(subquery);
510
697
  if (columnCount === 1) return;
511
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
698
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
512
699
  `IN/NOT IN subquery must project exactly 1 column, but got ${columnCount}`,
513
700
  { subqueryColumnCount: columnCount },
514
701
  {
@@ -521,7 +708,7 @@ function assertCompatibleSubqueryValueTypes(field, subquery) {
521
708
  const subqueryValueType = getSingleSubqueryColumnValueType(subquery);
522
709
  const resolvedValueType = fieldValueType ?? subqueryValueType;
523
710
  if (isUnsupportedInSubqueryValueType(resolvedValueType)) {
524
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
711
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
525
712
  `IN/NOT IN subquery does not support ${String(resolvedValueType)} values`,
526
713
  { valueType: resolvedValueType },
527
714
  {
@@ -532,7 +719,7 @@ function assertCompatibleSubqueryValueTypes(field, subquery) {
532
719
  if (isInSubqueryTypeCompatible(fieldValueType, subqueryValueType)) {
533
720
  return;
534
721
  }
535
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
722
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
536
723
  `IN/NOT IN type mismatch: field type "${String(fieldValueType)}" does not match subquery column type "${String(subqueryValueType)}"`,
537
724
  {
538
725
  fieldValueType,
@@ -540,106 +727,6 @@ function assertCompatibleSubqueryValueTypes(field, subquery) {
540
727
  }
541
728
  );
542
729
  }
543
-
544
- // src/backend/types.ts
545
- function createBackendOverlay(target, overlay) {
546
- const boundTargetMethods = /* @__PURE__ */ new Map();
547
- function hasOverlayProperty(property) {
548
- return Object.hasOwn(overlay, property);
549
- }
550
- function targetValue(targetObject, property) {
551
- const value = Reflect.get(targetObject, property, targetObject);
552
- if (typeof value !== "function") return value;
553
- const cached = boundTargetMethods.get(property);
554
- if (cached !== void 0) return cached;
555
- const method = value;
556
- const bound = method.bind(targetObject);
557
- boundTargetMethods.set(property, bound);
558
- return bound;
559
- }
560
- return new Proxy(target, {
561
- get(targetObject, property) {
562
- if (hasOverlayProperty(property)) {
563
- return Reflect.get(overlay, property, overlay);
564
- }
565
- return targetValue(targetObject, property);
566
- },
567
- has(targetObject, property) {
568
- return hasOverlayProperty(property) || Reflect.has(targetObject, property);
569
- },
570
- ownKeys(targetObject) {
571
- return [
572
- .../* @__PURE__ */ new Set([
573
- ...Reflect.ownKeys(targetObject),
574
- ...Reflect.ownKeys(overlay)
575
- ])
576
- ];
577
- },
578
- getOwnPropertyDescriptor(targetObject, property) {
579
- if (hasOverlayProperty(property)) {
580
- const descriptor = Reflect.getOwnPropertyDescriptor(overlay, property);
581
- if (descriptor === void 0) return;
582
- return { ...descriptor, configurable: true };
583
- }
584
- return Reflect.getOwnPropertyDescriptor(targetObject, property);
585
- },
586
- set(targetObject, property, value) {
587
- if (hasOverlayProperty(property)) {
588
- return Reflect.set(overlay, property, value, overlay);
589
- }
590
- return Reflect.set(targetObject, property, value, targetObject);
591
- },
592
- defineProperty(targetObject, property, attributes) {
593
- if (hasOverlayProperty(property)) {
594
- return Reflect.defineProperty(overlay, property, attributes);
595
- }
596
- return Reflect.defineProperty(targetObject, property, attributes);
597
- },
598
- deleteProperty(targetObject, property) {
599
- if (hasOverlayProperty(property)) {
600
- return Reflect.deleteProperty(overlay, property);
601
- }
602
- return Reflect.deleteProperty(targetObject, property);
603
- }
604
- });
605
- }
606
- function wrapWithManagedClose(backend, teardown) {
607
- let isClosed = false;
608
- return createBackendOverlay(backend, {
609
- async close() {
610
- if (isClosed) return;
611
- isClosed = true;
612
- await backend.close();
613
- await teardown();
614
- }
615
- });
616
- }
617
- async function runOptionallyInTransaction(backend, fn, fallback) {
618
- if ("transaction" in backend && backend.capabilities.transactions) {
619
- return backend.transaction((tx) => fn(tx));
620
- }
621
- return fn(fallback ?? backend);
622
- }
623
- var SQLITE_MAX_BIND_PARAMETERS = 999;
624
- var POSTGRES_MAX_BIND_PARAMETERS = 65535;
625
- var SQLITE_CAPABILITIES = {
626
- transactions: true,
627
- // SQLite supports transactions
628
- windowFunctions: true,
629
- // SQLite has supported window functions since 3.25.0
630
- returning: true,
631
- // SQLite has supported RETURNING since 3.35.0
632
- maxBindParameters: SQLITE_MAX_BIND_PARAMETERS
633
- };
634
- var POSTGRES_CAPABILITIES = {
635
- transactions: true,
636
- // PostgreSQL supports transactions
637
- windowFunctions: true,
638
- // PostgreSQL supports ROW_NUMBER() and related windows
639
- returning: true,
640
- // PostgreSQL has supported RETURNING since 8.2
641
- maxBindParameters: POSTGRES_MAX_BIND_PARAMETERS
642
- };
643
730
  var COMPARISON_OP_SQL = {
644
731
  eq: "=",
645
732
  neq: "!=",
@@ -680,7 +767,7 @@ function getFieldPointer(field) {
680
767
  return field.jsonPointer;
681
768
  }
682
769
  if (field.path.length > 1 && field.path[0] === "props") {
683
- return chunkFLRCVI2G_cjs.jsonPointer(field.path.slice(1));
770
+ return chunkTDXIBCGY_cjs.jsonPointer(field.path.slice(1));
684
771
  }
685
772
  return void 0;
686
773
  }
@@ -756,7 +843,7 @@ function resolveLiteralValueTypes(literals) {
756
843
  }
757
844
  }
758
845
  if (resolved.size > 1) {
759
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
846
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
760
847
  "Mixed literal value types are not supported in predicates",
761
848
  { valueTypes: [...resolved] }
762
849
  );
@@ -789,7 +876,10 @@ function convertValueForSql(value, dialect) {
789
876
  return dialect.bindValue(value);
790
877
  }
791
878
  function compileStringPattern(op, pattern) {
792
- const escaped = pattern.replaceAll("%", String.raw`\%`).replaceAll("_", String.raw`\_`);
879
+ const escaped = pattern.replaceAll(
880
+ chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER,
881
+ `${chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER}${chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER}`
882
+ ).replaceAll("%", `${chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER}%`).replaceAll("_", `${chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER}_`);
793
883
  switch (op) {
794
884
  case "contains": {
795
885
  return `%${escaped}%`;
@@ -810,7 +900,8 @@ function compileStringPattern(op, pattern) {
810
900
  }
811
901
  }
812
902
  function escapeLikePatternParameter(parameter) {
813
- return drizzleOrm.sql`REPLACE(REPLACE(REPLACE(${parameter}, '\\', '\\\\'), '%', '\\%'), '_', '\\_')`;
903
+ const doubledEscape = `${chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER}${chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER}`;
904
+ return drizzleOrm.sql`REPLACE(REPLACE(REPLACE(${parameter}, ${chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER}, ${doubledEscape}), '%', ${`${chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER}%`}), '_', ${`${chunk7YSP4V4R_cjs.LIKE_ESCAPE_CHARACTER}_`})`;
814
905
  }
815
906
  function compileParameterizedStringPattern(op, parameter) {
816
907
  switch (op) {
@@ -856,13 +947,13 @@ function compilePredicateExpression(expr, ctx) {
856
947
  if (expr.op === "ilike" || expr.op === "contains" || expr.op === "startsWith" || expr.op === "endsWith") {
857
948
  return dialect.ilike(field, pattern2);
858
949
  }
859
- return drizzleOrm.sql`${field} LIKE ${pattern2}`;
950
+ return drizzleOrm.sql`${field} LIKE ${pattern2} ${chunk7YSP4V4R_cjs.likeEscapeClause}`;
860
951
  }
861
952
  const pattern = compileStringPattern(expr.op, expr.pattern);
862
953
  if (expr.op === "ilike" || expr.op === "contains" || expr.op === "startsWith" || expr.op === "endsWith") {
863
954
  return dialect.ilike(field, pattern);
864
955
  }
865
- return drizzleOrm.sql`${field} LIKE ${pattern}`;
956
+ return drizzleOrm.sql`${field} LIKE ${pattern} ${chunk7YSP4V4R_cjs.likeEscapeClause}`;
866
957
  }
867
958
  case "null_check": {
868
959
  const field = compileFieldTextValue(
@@ -882,7 +973,7 @@ function compilePredicateExpression(expr, ctx) {
882
973
  if (!upperIsParam) boundsForType.push(expr.upper);
883
974
  const valueType = boundsForType.length > 0 ? resolveComparisonValueType(expr.field, boundsForType) : normalizeValueType2(expr.field.valueType);
884
975
  if (valueType === "array" || valueType === "object") {
885
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
976
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
886
977
  "Between comparisons are not supported for JSON arrays or objects"
887
978
  );
888
979
  }
@@ -949,7 +1040,7 @@ function compileComparisonPredicate(expr, dialect, cteColumnPrefix) {
949
1040
  );
950
1041
  const opSql2 = COMPARISON_OP_SQL[expr.op];
951
1042
  if (!opSql2) {
952
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1043
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
953
1044
  `Comparison operation "${expr.op}" is not supported for parameterized predicates`
954
1045
  );
955
1046
  }
@@ -957,7 +1048,7 @@ function compileComparisonPredicate(expr, dialect, cteColumnPrefix) {
957
1048
  }
958
1049
  const valueType = resolveComparisonValueType(expr.left, expr.right);
959
1050
  if (valueType === "array" || valueType === "object") {
960
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1051
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
961
1052
  `Comparison operation "${expr.op}" is not supported for ${valueType} values`
962
1053
  );
963
1054
  }
@@ -985,7 +1076,7 @@ function compileComparisonPredicate(expr, dialect, cteColumnPrefix) {
985
1076
  const convertedRight = convertValueForSql(rightValue.value, dialect);
986
1077
  const opSql = COMPARISON_OP_SQL[expr.op];
987
1078
  if (!opSql) {
988
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1079
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
989
1080
  `Comparison operation "${expr.op}" is not supported`
990
1081
  );
991
1082
  }
@@ -1039,7 +1130,7 @@ function compileArrayPredicate(expr, dialect, cteColumnPrefix) {
1039
1130
  }
1040
1131
  function compileObjectPredicate(expr, dialect, cteColumnPrefix) {
1041
1132
  const basePointer = getFieldPointer(expr.field);
1042
- const pointer = chunkFLRCVI2G_cjs.joinJsonPointers(basePointer, expr.pointer);
1133
+ const pointer = chunkTDXIBCGY_cjs.joinJsonPointers(basePointer, expr.pointer);
1043
1134
  const column = compileFieldColumn(expr.field, void 0, cteColumnPrefix);
1044
1135
  switch (expr.op) {
1045
1136
  case "hasKey":
@@ -1048,13 +1139,13 @@ function compileObjectPredicate(expr, dialect, cteColumnPrefix) {
1048
1139
  }
1049
1140
  case "pathEquals": {
1050
1141
  if (!expr.value) {
1051
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1142
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
1052
1143
  "pathEquals requires a comparison value"
1053
1144
  );
1054
1145
  }
1055
1146
  const valueType = resolvePredicateValueType(expr.valueType, expr.value);
1056
1147
  if (valueType === "array" || valueType === "object") {
1057
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1148
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
1058
1149
  "pathEquals is not supported for JSON arrays or objects"
1059
1150
  );
1060
1151
  }
@@ -1070,7 +1161,7 @@ function compileObjectPredicate(expr, dialect, cteColumnPrefix) {
1070
1161
  }
1071
1162
  case "pathContains": {
1072
1163
  if (!expr.value) {
1073
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1164
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
1074
1165
  "pathContains requires a comparison value"
1075
1166
  );
1076
1167
  }
@@ -1098,7 +1189,7 @@ function compileAggregatePredicate(expr, dialect) {
1098
1189
  const aggregate = compileAggregateExpr(expr.aggregate, dialect);
1099
1190
  const op = COMPARISON_OP_SQL[expr.op];
1100
1191
  if (!op) {
1101
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1192
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
1102
1193
  `Comparison operation "${expr.op}" is not supported for aggregate predicates`
1103
1194
  );
1104
1195
  }
@@ -1133,7 +1224,7 @@ function compileAggregateExpr(expr, dialect) {
1133
1224
  return drizzleOrm.sql`MAX(${field})`;
1134
1225
  }
1135
1226
  default: {
1136
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1227
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
1137
1228
  `Unknown aggregate function: ${expr.function}`
1138
1229
  );
1139
1230
  }
@@ -1141,7 +1232,7 @@ function compileAggregateExpr(expr, dialect) {
1141
1232
  }
1142
1233
  function compileExistsSubquery(expr, ctx) {
1143
1234
  if (expr.subquery.graphId === void 0) {
1144
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError("EXISTS subquery must have a graphId");
1235
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError("EXISTS subquery must have a graphId");
1145
1236
  }
1146
1237
  const subSql = ctx.compileQuery(expr.subquery, expr.subquery.graphId);
1147
1238
  return expr.negated ? drizzleOrm.sql`NOT EXISTS (${subSql})` : drizzleOrm.sql`EXISTS (${subSql})`;
@@ -1149,7 +1240,7 @@ function compileExistsSubquery(expr, ctx) {
1149
1240
  function compileInSubquery(expr, ctx) {
1150
1241
  const subqueryColumnCount = getSubqueryColumnCount(expr.subquery);
1151
1242
  if (subqueryColumnCount !== 1) {
1152
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1243
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
1153
1244
  `IN/NOT IN subquery must project exactly 1 column, but got ${subqueryColumnCount}`,
1154
1245
  { subqueryColumnCount }
1155
1246
  );
@@ -1158,13 +1249,13 @@ function compileInSubquery(expr, ctx) {
1158
1249
  const subqueryValueType = getSingleSubqueryColumnValueType(expr.subquery);
1159
1250
  const resolvedValueType = fieldValueType ?? subqueryValueType;
1160
1251
  if (isUnsupportedInSubqueryValueType(resolvedValueType)) {
1161
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1252
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
1162
1253
  `IN/NOT IN subquery does not support ${String(resolvedValueType)} values`,
1163
1254
  { valueType: resolvedValueType }
1164
1255
  );
1165
1256
  }
1166
1257
  if (!isInSubqueryTypeCompatible(fieldValueType, subqueryValueType)) {
1167
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1258
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
1168
1259
  `IN/NOT IN type mismatch: field type "${String(fieldValueType)}" does not match subquery column type "${String(subqueryValueType)}"`,
1169
1260
  {
1170
1261
  fieldValueType,
@@ -1174,7 +1265,7 @@ function compileInSubquery(expr, ctx) {
1174
1265
  }
1175
1266
  const valueType = fieldValueType ?? subqueryValueType;
1176
1267
  if (expr.subquery.graphId === void 0) {
1177
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(
1268
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(
1178
1269
  "IN/NOT IN subquery must have a graphId"
1179
1270
  );
1180
1271
  }
@@ -1194,7 +1285,7 @@ function extractStructuralPredicates(predicates, isMatch, rejectionMessage) {
1194
1285
  function visit(expr, inDisallowedBranch) {
1195
1286
  if (isMatch(expr)) {
1196
1287
  if (inDisallowedBranch) {
1197
- throw new chunkJIEJCTDS_cjs.UnsupportedPredicateError(rejectionMessage);
1288
+ throw new chunkLGEALRC6_cjs.UnsupportedPredicateError(rejectionMessage);
1198
1289
  }
1199
1290
  results.push(expr);
1200
1291
  return;
@@ -1301,153 +1392,13 @@ function getNodeKindsForAlias(ast, alias) {
1301
1392
  return traversal.nodeKinds;
1302
1393
  }
1303
1394
  }
1304
- throw new chunkJIEJCTDS_cjs.CompilerInvariantError(`Unknown traversal source alias: ${alias}`);
1395
+ throw new chunkLGEALRC6_cjs.CompilerInvariantError(`Unknown traversal source alias: ${alias}`);
1305
1396
  }
1306
1397
  function getHybridTargetAlias(vectorPredicate, fulltextPredicate) {
1307
1398
  if (!vectorPredicate || !fulltextPredicate) return void 0;
1308
1399
  return vectorPredicate.field.alias === fulltextPredicate.field.alias ? vectorPredicate.field.alias : void 0;
1309
1400
  }
1310
1401
 
1311
- // src/backend/drizzle/row-mappers.ts
1312
- function requireTimestamp(value, field) {
1313
- if (value === void 0) {
1314
- throw new chunkJIEJCTDS_cjs.DatabaseOperationError(
1315
- `Expected non-null ${field} timestamp`,
1316
- { operation: "select", entity: "row" }
1317
- );
1318
- }
1319
- return value;
1320
- }
1321
- function asString(value, field) {
1322
- if (typeof value !== "string") {
1323
- throw new chunkJIEJCTDS_cjs.DatabaseOperationError(
1324
- `Expected ${field} to be string, got ${typeof value}`,
1325
- { operation: "select", entity: "row" }
1326
- );
1327
- }
1328
- return value;
1329
- }
1330
- function asNumber(value, field) {
1331
- if (typeof value !== "number") {
1332
- throw new chunkJIEJCTDS_cjs.DatabaseOperationError(
1333
- `Expected ${field} to be number, got ${typeof value}`,
1334
- { operation: "select", entity: "row" }
1335
- );
1336
- }
1337
- return value;
1338
- }
1339
- function nowIso() {
1340
- return (/* @__PURE__ */ new Date()).toISOString();
1341
- }
1342
- function nullToUndefined(value) {
1343
- return value ?? void 0;
1344
- }
1345
- function formatPostgresTimestamp(value) {
1346
- if (value === null || value === void 0) return void 0;
1347
- if (value instanceof Date) return value.toISOString();
1348
- if (typeof value === "string") {
1349
- if (value.includes("T")) return value;
1350
- const date = new Date(value);
1351
- if (!Number.isNaN(date.getTime())) return date.toISOString();
1352
- return value;
1353
- }
1354
- return void 0;
1355
- }
1356
- function coerceNumericScore(value) {
1357
- if (typeof value === "number") return value;
1358
- const parsed = Number.parseFloat(value);
1359
- if (Number.isNaN(parsed)) {
1360
- throw new TypeError(
1361
- `Backend returned non-numeric fulltext score: ${JSON.stringify(value)}`
1362
- );
1363
- }
1364
- return parsed;
1365
- }
1366
- function normalizeJsonColumn(value) {
1367
- return typeof value === "string" ? value : JSON.stringify(value ?? {});
1368
- }
1369
- var SQLITE_ROW_MAPPER_CONFIG = {
1370
- formatTimestamp: (value) => {
1371
- if (value === null || value === void 0) return;
1372
- if (typeof value !== "string") {
1373
- throw new chunkJIEJCTDS_cjs.DatabaseOperationError(
1374
- `Expected timestamp to be string, got ${typeof value}`,
1375
- { operation: "select", entity: "row" }
1376
- );
1377
- }
1378
- return value;
1379
- },
1380
- normalizeJson: (value) => {
1381
- if (typeof value !== "string") {
1382
- throw new chunkJIEJCTDS_cjs.DatabaseOperationError(
1383
- `Expected JSON column to be string, got ${typeof value}`,
1384
- { operation: "select", entity: "row" }
1385
- );
1386
- }
1387
- return value;
1388
- }
1389
- };
1390
- var POSTGRES_ROW_MAPPER_CONFIG = {
1391
- formatTimestamp: formatPostgresTimestamp,
1392
- normalizeJson: normalizeJsonColumn
1393
- };
1394
- function createNodeRowMapper(config) {
1395
- return (row) => ({
1396
- graph_id: asString(row.graph_id, "graph_id"),
1397
- kind: asString(row.kind, "kind"),
1398
- id: asString(row.id, "id"),
1399
- props: config.normalizeJson(row.props),
1400
- version: asNumber(row.version, "version"),
1401
- valid_from: nullToUndefined(config.formatTimestamp(row.valid_from)),
1402
- valid_to: nullToUndefined(config.formatTimestamp(row.valid_to)),
1403
- created_at: requireTimestamp(config.formatTimestamp(row.created_at), "created_at"),
1404
- updated_at: requireTimestamp(config.formatTimestamp(row.updated_at), "updated_at"),
1405
- deleted_at: nullToUndefined(config.formatTimestamp(row.deleted_at))
1406
- });
1407
- }
1408
- function createEdgeRowMapper(config) {
1409
- return (row) => ({
1410
- graph_id: asString(row.graph_id, "graph_id"),
1411
- id: asString(row.id, "id"),
1412
- kind: asString(row.kind, "kind"),
1413
- from_kind: asString(row.from_kind, "from_kind"),
1414
- from_id: asString(row.from_id, "from_id"),
1415
- to_kind: asString(row.to_kind, "to_kind"),
1416
- to_id: asString(row.to_id, "to_id"),
1417
- props: config.normalizeJson(row.props),
1418
- valid_from: nullToUndefined(config.formatTimestamp(row.valid_from)),
1419
- valid_to: nullToUndefined(config.formatTimestamp(row.valid_to)),
1420
- created_at: requireTimestamp(config.formatTimestamp(row.created_at), "created_at"),
1421
- updated_at: requireTimestamp(config.formatTimestamp(row.updated_at), "updated_at"),
1422
- deleted_at: nullToUndefined(config.formatTimestamp(row.deleted_at))
1423
- });
1424
- }
1425
- function createUniqueRowMapper(config) {
1426
- return (row) => ({
1427
- graph_id: asString(row.graph_id, "graph_id"),
1428
- node_kind: asString(row.node_kind, "node_kind"),
1429
- constraint_name: asString(row.constraint_name, "constraint_name"),
1430
- key: asString(row.key, "key"),
1431
- node_id: asString(row.node_id, "node_id"),
1432
- concrete_kind: asString(row.concrete_kind, "concrete_kind"),
1433
- deleted_at: nullToUndefined(config.formatTimestamp(row.deleted_at))
1434
- });
1435
- }
1436
- function createSchemaVersionRowMapper(config) {
1437
- return (row) => {
1438
- const isActiveValue = row.is_active;
1439
- const isActive = isActiveValue === true || isActiveValue === 1 || isActiveValue === "1";
1440
- return {
1441
- graph_id: asString(row.graph_id, "graph_id"),
1442
- version: asNumber(row.version, "version"),
1443
- schema_hash: asString(row.schema_hash, "schema_hash"),
1444
- schema_doc: config.normalizeJson(row.schema_doc),
1445
- created_at: requireTimestamp(config.formatTimestamp(row.created_at), "created_at"),
1446
- is_active: isActive
1447
- };
1448
- };
1449
- }
1450
-
1451
1402
  // src/utils/array.ts
1452
1403
  function chunk(items, size) {
1453
1404
  if (!Number.isSafeInteger(size) || size < 1) {
@@ -1477,50 +1428,54 @@ function isPresent(value) {
1477
1428
  return value !== null && value !== void 0;
1478
1429
  }
1479
1430
 
1431
+ exports.CURRENT_READ_INSTANT_PLACEHOLDER = CURRENT_READ_INSTANT_PLACEHOLDER;
1432
+ exports.D1_MAX_BIND_PARAMETERS = D1_MAX_BIND_PARAMETERS;
1433
+ exports.MODERN_SQLITE_MAX_BIND_PARAMETERS = MODERN_SQLITE_MAX_BIND_PARAMETERS;
1480
1434
  exports.POSTGRES_CAPABILITIES = POSTGRES_CAPABILITIES;
1481
1435
  exports.POSTGRES_MAX_BIND_PARAMETERS = POSTGRES_MAX_BIND_PARAMETERS;
1482
- exports.POSTGRES_ROW_MAPPER_CONFIG = POSTGRES_ROW_MAPPER_CONFIG;
1483
1436
  exports.SQLITE_CAPABILITIES = SQLITE_CAPABILITIES;
1484
1437
  exports.SQLITE_MAX_BIND_PARAMETERS = SQLITE_MAX_BIND_PARAMETERS;
1485
- exports.SQLITE_ROW_MAPPER_CONFIG = SQLITE_ROW_MAPPER_CONFIG;
1486
1438
  exports.arrayField = arrayField;
1487
1439
  exports.baseField = baseField;
1488
1440
  exports.buildFieldBuilderForTypeInfo = buildFieldBuilderForTypeInfo;
1489
1441
  exports.buildPredicateIndex = buildPredicateIndex;
1490
1442
  exports.chunk = chunk;
1491
- exports.coerceNumericScore = coerceNumericScore;
1492
1443
  exports.compileFieldValue = compileFieldValue;
1493
1444
  exports.compileKindFilter = compileKindFilter;
1494
1445
  exports.compilePredicateClauses = compilePredicateClauses;
1495
1446
  exports.compilePredicateExpression = compilePredicateExpression;
1447
+ exports.compileTemporalFilter = compileTemporalFilter;
1496
1448
  exports.createBackendOverlay = createBackendOverlay;
1497
- exports.createEdgeRowMapper = createEdgeRowMapper;
1498
1449
  exports.createFulltextAccessor = createFulltextAccessor;
1499
- exports.createNodeRowMapper = createNodeRowMapper;
1500
- exports.createSchemaVersionRowMapper = createSchemaVersionRowMapper;
1501
- exports.createUniqueRowMapper = createUniqueRowMapper;
1450
+ exports.currentReadInstant = currentReadInstant;
1451
+ exports.currentReadInstantFor = currentReadInstantFor;
1502
1452
  exports.dateField = dateField;
1503
1453
  exports.exists = exists;
1504
1454
  exports.extractFulltextMatchPredicates = extractFulltextMatchPredicates;
1455
+ exports.extractTemporalOptions = extractTemporalOptions;
1505
1456
  exports.extractVectorSimilarityPredicates = extractVectorSimilarityPredicates;
1506
1457
  exports.fieldRef = fieldRef;
1507
- exports.formatPostgresTimestamp = formatPostgresTimestamp;
1458
+ exports.getFieldPointer = getFieldPointer;
1508
1459
  exports.getHybridTargetAlias = getHybridTargetAlias;
1509
1460
  exports.getNodeKindsForAlias = getNodeKindsForAlias;
1510
1461
  exports.getPredicatesForAlias = getPredicatesForAlias;
1511
1462
  exports.groupBy = groupBy;
1512
1463
  exports.inSubquery = inSubquery;
1464
+ exports.isLiveNodeRow = isLiveNodeRow;
1513
1465
  exports.isParameterRef = isParameterRef;
1514
1466
  exports.isPresent = isPresent;
1467
+ exports.isTombstonedNodeRow = isTombstonedNodeRow;
1515
1468
  exports.notExists = notExists;
1516
1469
  exports.notInSubquery = notInSubquery;
1517
- exports.nowIso = nowIso;
1518
1470
  exports.numberField = numberField;
1519
1471
  exports.objectField = objectField;
1520
1472
  exports.param = param;
1473
+ exports.rowPropsToJsonText = rowPropsToJsonText;
1474
+ exports.rowPropsToObject = rowPropsToObject;
1521
1475
  exports.runOptionallyInTransaction = runOptionallyInTransaction;
1522
1476
  exports.sqlValueList = sqlValueList;
1523
1477
  exports.stringField = stringField;
1478
+ exports.withPinnedReadInstant = withPinnedReadInstant;
1524
1479
  exports.wrapWithManagedClose = wrapWithManagedClose;
1525
- //# sourceMappingURL=chunk-I4W7MKVG.cjs.map
1526
- //# sourceMappingURL=chunk-I4W7MKVG.cjs.map
1480
+ //# sourceMappingURL=chunk-4TOD4LBZ.cjs.map
1481
+ //# sourceMappingURL=chunk-4TOD4LBZ.cjs.map