@nicia-ai/typegraph 0.37.1 → 0.38.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 (372) hide show
  1. package/README.md +12 -10
  2. package/dist/backend/drizzle/indexes.cjs +32 -0
  3. package/dist/backend/drizzle/indexes.cjs.map +1 -0
  4. package/dist/backend/drizzle/indexes.d.cts +43 -0
  5. package/dist/backend/drizzle/indexes.d.ts +43 -0
  6. package/dist/backend/drizzle/indexes.js +11 -0
  7. package/dist/backend/drizzle/indexes.js.map +1 -0
  8. package/dist/backend/index.cjs +161 -0
  9. package/dist/backend/index.cjs.map +1 -0
  10. package/dist/backend/index.d.cts +3 -0
  11. package/dist/backend/index.d.ts +3 -0
  12. package/dist/backend/index.js +8 -0
  13. package/dist/backend/index.js.map +1 -0
  14. package/dist/backend/postgres/index.cjs +32 -28
  15. package/dist/backend/postgres/index.d.cts +13 -12
  16. package/dist/backend/postgres/index.d.ts +13 -12
  17. package/dist/backend/postgres/index.js +19 -15
  18. package/dist/backend/postgres/pglite-store.cjs +67 -0
  19. package/dist/backend/postgres/pglite-store.cjs.map +1 -0
  20. package/dist/backend/postgres/pglite-store.d.cts +38 -0
  21. package/dist/backend/postgres/pglite-store.d.ts +38 -0
  22. package/dist/backend/postgres/pglite-store.js +65 -0
  23. package/dist/backend/postgres/pglite-store.js.map +1 -0
  24. package/dist/backend/postgres/pglite.cjs +25 -50
  25. package/dist/backend/postgres/pglite.cjs.map +1 -1
  26. package/dist/backend/postgres/pglite.d.cts +10 -9
  27. package/dist/backend/postgres/pglite.d.ts +10 -9
  28. package/dist/backend/postgres/pglite.js +20 -52
  29. package/dist/backend/postgres/pglite.js.map +1 -1
  30. package/dist/backend/sqlite/index.cjs +29 -25
  31. package/dist/backend/sqlite/index.d.cts +11 -11
  32. package/dist/backend/sqlite/index.d.ts +11 -11
  33. package/dist/backend/sqlite/index.js +17 -13
  34. package/dist/backend/sqlite/libsql.cjs +23 -19
  35. package/dist/backend/sqlite/libsql.cjs.map +1 -1
  36. package/dist/backend/sqlite/libsql.d.cts +9 -10
  37. package/dist/backend/sqlite/libsql.d.ts +9 -10
  38. package/dist/backend/sqlite/libsql.js +19 -15
  39. package/dist/backend/sqlite/libsql.js.map +1 -1
  40. package/dist/backend/sqlite/local-store.cjs +72 -0
  41. package/dist/backend/sqlite/local-store.cjs.map +1 -0
  42. package/dist/backend/sqlite/local-store.d.cts +42 -0
  43. package/dist/backend/sqlite/local-store.d.ts +42 -0
  44. package/dist/backend/sqlite/local-store.js +67 -0
  45. package/dist/backend/sqlite/local-store.js.map +1 -0
  46. package/dist/backend/sqlite/local.cjs +28 -183
  47. package/dist/backend/sqlite/local.cjs.map +1 -1
  48. package/dist/backend/sqlite/local.d.cts +8 -81
  49. package/dist/backend/sqlite/local.d.ts +8 -81
  50. package/dist/backend/sqlite/local.js +20 -180
  51. package/dist/backend/sqlite/local.js.map +1 -1
  52. package/dist/chunk-2EBMPJBO.js +16 -0
  53. package/dist/chunk-2EBMPJBO.js.map +1 -0
  54. package/dist/{chunk-5AVRFNP4.cjs → chunk-2SL7OGPR.cjs} +2866 -1507
  55. package/dist/chunk-2SL7OGPR.cjs.map +1 -0
  56. package/dist/chunk-35S6P5ZU.js +27 -0
  57. package/dist/chunk-35S6P5ZU.js.map +1 -0
  58. package/dist/chunk-3LKL3S6X.js +50 -0
  59. package/dist/chunk-3LKL3S6X.js.map +1 -0
  60. package/dist/chunk-6G5CQ6JX.js +47 -0
  61. package/dist/chunk-6G5CQ6JX.js.map +1 -0
  62. package/dist/chunk-6XDBRDZE.js +312 -0
  63. package/dist/chunk-6XDBRDZE.js.map +1 -0
  64. package/dist/chunk-764JHTLT.cjs +15 -0
  65. package/dist/chunk-764JHTLT.cjs.map +1 -0
  66. package/dist/chunk-76HE7DJP.js +68 -0
  67. package/dist/chunk-76HE7DJP.js.map +1 -0
  68. package/dist/{chunk-VGDDG3XJ.cjs → chunk-7M3NACL3.cjs} +12 -12
  69. package/dist/{chunk-VGDDG3XJ.cjs.map → chunk-7M3NACL3.cjs.map} +1 -1
  70. package/dist/{chunk-NXQFATMF.cjs → chunk-7VLCN3JB.cjs} +153 -123
  71. package/dist/chunk-7VLCN3JB.cjs.map +1 -0
  72. package/dist/{chunk-GA4TT3DH.js → chunk-A2FGSWMQ.js} +1845 -489
  73. package/dist/chunk-A2FGSWMQ.js.map +1 -0
  74. package/dist/chunk-AOL64O4Z.js +165 -0
  75. package/dist/chunk-AOL64O4Z.js.map +1 -0
  76. package/dist/{chunk-27SSDCEP.cjs → chunk-B63IFHXR.cjs} +53 -74
  77. package/dist/chunk-B63IFHXR.cjs.map +1 -0
  78. package/dist/{chunk-3XXGYU62.cjs → chunk-BKAKAVRW.cjs} +56 -53
  79. package/dist/chunk-BKAKAVRW.cjs.map +1 -0
  80. package/dist/{chunk-YTSN73ND.js → chunk-BQITNFQJ.js} +3 -3
  81. package/dist/{chunk-YTSN73ND.js.map → chunk-BQITNFQJ.js.map} +1 -1
  82. package/dist/{chunk-NUIG3BCV.cjs → chunk-CQC6VBAF.cjs} +93 -155
  83. package/dist/chunk-CQC6VBAF.cjs.map +1 -0
  84. package/dist/{chunk-6EEO3OVU.cjs → chunk-CWX77JB4.cjs} +22 -59
  85. package/dist/chunk-CWX77JB4.cjs.map +1 -0
  86. package/dist/{chunk-UGZUAYAR.js → chunk-D7PG5D5K.js} +4 -3
  87. package/dist/chunk-D7PG5D5K.js.map +1 -0
  88. package/dist/chunk-DDCIXXOO.js +9 -0
  89. package/dist/chunk-DDCIXXOO.js.map +1 -0
  90. package/dist/chunk-DDCYVIVV.cjs +44 -0
  91. package/dist/chunk-DDCYVIVV.cjs.map +1 -0
  92. package/dist/{chunk-XPCZADMT.cjs → chunk-DOVMTPKE.cjs} +89 -27
  93. package/dist/chunk-DOVMTPKE.cjs.map +1 -0
  94. package/dist/{chunk-5PNMDJ7J.js → chunk-DPNA466P.js} +14 -9
  95. package/dist/chunk-DPNA466P.js.map +1 -0
  96. package/dist/{chunk-BYPOGQWK.js → chunk-DRACN6XG.js} +6 -4
  97. package/dist/chunk-DRACN6XG.js.map +1 -0
  98. package/dist/chunk-E6TXEISH.cjs +175 -0
  99. package/dist/chunk-E6TXEISH.cjs.map +1 -0
  100. package/dist/{chunk-TKT2XHED.js → chunk-E6YZRKMM.js} +13 -12
  101. package/dist/chunk-E6YZRKMM.js.map +1 -0
  102. package/dist/{chunk-3C2RYI6L.cjs → chunk-EOJFGECD.cjs} +11 -11
  103. package/dist/chunk-EOJFGECD.cjs.map +1 -0
  104. package/dist/{chunk-XWV4JT34.js → chunk-ERZ4QPQX.js} +27 -22
  105. package/dist/chunk-ERZ4QPQX.js.map +1 -0
  106. package/dist/{chunk-DFVLCOP6.js → chunk-EZH7FNUS.js} +3 -3
  107. package/dist/{chunk-DFVLCOP6.js.map → chunk-EZH7FNUS.js.map} +1 -1
  108. package/dist/{chunk-WWFHO375.cjs → chunk-FJMPR3OH.cjs} +4 -3
  109. package/dist/chunk-FJMPR3OH.cjs.map +1 -0
  110. package/dist/chunk-FMNUSGZ4.cjs +12 -0
  111. package/dist/chunk-FMNUSGZ4.cjs.map +1 -0
  112. package/dist/{chunk-K3Q3LJY3.js → chunk-G32AO634.js} +201 -100
  113. package/dist/chunk-G32AO634.js.map +1 -0
  114. package/dist/{chunk-EXU3RASM.js → chunk-G3CSQLLT.js} +20 -474
  115. package/dist/chunk-G3CSQLLT.js.map +1 -0
  116. package/dist/chunk-GNPGGLAE.cjs +212 -0
  117. package/dist/chunk-GNPGGLAE.cjs.map +1 -0
  118. package/dist/{chunk-QARBLBXT.cjs → chunk-GUUWKPTK.cjs} +7 -7
  119. package/dist/{chunk-QARBLBXT.cjs.map → chunk-GUUWKPTK.cjs.map} +1 -1
  120. package/dist/chunk-GYA4JRP5.js +31 -0
  121. package/dist/chunk-GYA4JRP5.js.map +1 -0
  122. package/dist/chunk-I6FX7AAG.js +39 -0
  123. package/dist/chunk-I6FX7AAG.js.map +1 -0
  124. package/dist/chunk-IMQKXL4E.cjs +12 -0
  125. package/dist/{chunk-QSXTWU4U.cjs.map → chunk-IMQKXL4E.cjs.map} +1 -1
  126. package/dist/chunk-J6IJARLG.js +94 -0
  127. package/dist/chunk-J6IJARLG.js.map +1 -0
  128. package/dist/{chunk-W63OVYY4.js → chunk-K34OPSJK.js} +3 -3
  129. package/dist/{chunk-W63OVYY4.js.map → chunk-K34OPSJK.js.map} +1 -1
  130. package/dist/{chunk-TGOMW4MB.cjs → chunk-KCLZHYPU.cjs} +110 -109
  131. package/dist/chunk-KCLZHYPU.cjs.map +1 -0
  132. package/dist/{chunk-XGPUQ56G.js → chunk-KFLXWVUJ.js} +4 -38
  133. package/dist/chunk-KFLXWVUJ.js.map +1 -0
  134. package/dist/{chunk-3DS7Z4T4.cjs → chunk-LZ3TVJY4.cjs} +44 -43
  135. package/dist/chunk-LZ3TVJY4.cjs.map +1 -0
  136. package/dist/{chunk-UXLSNRYL.js → chunk-MTNEGGM2.js} +4 -4
  137. package/dist/chunk-MTNEGGM2.js.map +1 -0
  138. package/dist/{chunk-IP3CGGPA.cjs → chunk-N2V3HJFV.cjs} +92 -185
  139. package/dist/chunk-N2V3HJFV.cjs.map +1 -0
  140. package/dist/chunk-NAUA4PW5.cjs +28 -0
  141. package/dist/chunk-NAUA4PW5.cjs.map +1 -0
  142. package/dist/chunk-NMQ6C6TS.cjs +61 -0
  143. package/dist/chunk-NMQ6C6TS.cjs.map +1 -0
  144. package/dist/{chunk-2N6EOBTH.cjs → chunk-NPWACFQJ.cjs} +58 -53
  145. package/dist/chunk-NPWACFQJ.cjs.map +1 -0
  146. package/dist/{chunk-5KEQ74YU.cjs → chunk-NT6ILURI.cjs} +9 -86
  147. package/dist/chunk-NT6ILURI.cjs.map +1 -0
  148. package/dist/chunk-NU23DUSJ.cjs +192 -0
  149. package/dist/chunk-NU23DUSJ.cjs.map +1 -0
  150. package/dist/{chunk-WOJMKB3N.cjs → chunk-NWYCOFEZ.cjs} +1677 -308
  151. package/dist/chunk-NWYCOFEZ.cjs.map +1 -0
  152. package/dist/{chunk-3GH67G4Z.cjs → chunk-O5H62ZWJ.cjs} +4 -42
  153. package/dist/chunk-O5H62ZWJ.cjs.map +1 -0
  154. package/dist/{chunk-3SLPDKHQ.js → chunk-PH4IJ3V5.js} +5 -77
  155. package/dist/chunk-PH4IJ3V5.js.map +1 -0
  156. package/dist/chunk-PWXGB77L.cjs +56 -0
  157. package/dist/chunk-PWXGB77L.cjs.map +1 -0
  158. package/dist/chunk-PZHC5GCD.js +193 -0
  159. package/dist/chunk-PZHC5GCD.js.map +1 -0
  160. package/dist/chunk-QMQLUA66.js +12 -0
  161. package/dist/chunk-QMQLUA66.js.map +1 -0
  162. package/dist/{chunk-5WWVZMVX.js → chunk-QZ7A6HBM.js} +2 -2
  163. package/dist/{chunk-5WWVZMVX.js.map → chunk-QZ7A6HBM.js.map} +1 -1
  164. package/dist/{chunk-VKGKDOKR.js → chunk-RQPRCEIO.js} +1539 -206
  165. package/dist/chunk-RQPRCEIO.js.map +1 -0
  166. package/dist/chunk-RW24SAHI.cjs +74 -0
  167. package/dist/chunk-RW24SAHI.cjs.map +1 -0
  168. package/dist/{chunk-BVRDGYXQ.cjs → chunk-SAFZ6JTI.cjs} +14 -9
  169. package/dist/chunk-SAFZ6JTI.cjs.map +1 -0
  170. package/dist/{chunk-L7HQ2OSI.js → chunk-SCTZRFW5.js} +87 -166
  171. package/dist/chunk-SCTZRFW5.js.map +1 -0
  172. package/dist/{chunk-5KPNWT6X.js → chunk-SDHV2MWU.js} +24 -45
  173. package/dist/chunk-SDHV2MWU.js.map +1 -0
  174. package/dist/chunk-SVJ5GEXW.cjs +45 -0
  175. package/dist/chunk-SVJ5GEXW.cjs.map +1 -0
  176. package/dist/chunk-SVUKGWSN.cjs +102 -0
  177. package/dist/chunk-SVUKGWSN.cjs.map +1 -0
  178. package/dist/chunk-TAUGGLNQ.js +59 -0
  179. package/dist/chunk-TAUGGLNQ.js.map +1 -0
  180. package/dist/{chunk-UV3WP5WZ.js → chunk-TE5ZA4VX.js} +55 -27
  181. package/dist/chunk-TE5ZA4VX.js.map +1 -0
  182. package/dist/{chunk-A42GCBGX.cjs → chunk-TRF4EBJT.cjs} +6 -4
  183. package/dist/chunk-TRF4EBJT.cjs.map +1 -0
  184. package/dist/{chunk-KQJ54OG5.js → chunk-U4JDJKPD.js} +19 -56
  185. package/dist/chunk-U4JDJKPD.js.map +1 -0
  186. package/dist/chunk-UH2USOMG.cjs +627 -0
  187. package/dist/chunk-UH2USOMG.cjs.map +1 -0
  188. package/dist/{chunk-RCVLFTCT.js → chunk-UPXDVI3T.js} +13 -12
  189. package/dist/chunk-UPXDVI3T.js.map +1 -0
  190. package/dist/{chunk-5VQM6VWP.cjs → chunk-UWG5GX6E.cjs} +2 -2
  191. package/dist/{chunk-5VQM6VWP.cjs.map → chunk-UWG5GX6E.cjs.map} +1 -1
  192. package/dist/{chunk-3RWZPJKV.js → chunk-VBH7ZXSZ.js} +21 -78
  193. package/dist/chunk-VBH7ZXSZ.js.map +1 -0
  194. package/dist/{chunk-K5UBVGJN.js → chunk-VDYA2HMS.js} +6 -6
  195. package/dist/{chunk-K5UBVGJN.js.map → chunk-VDYA2HMS.js.map} +1 -1
  196. package/dist/chunk-X4PVHAZ6.cjs +83 -0
  197. package/dist/chunk-X4PVHAZ6.cjs.map +1 -0
  198. package/dist/{chunk-UYQMBBWJ.js → chunk-X6CNEA32.js} +23 -20
  199. package/dist/chunk-X6CNEA32.js.map +1 -0
  200. package/dist/chunk-X6RDQ5NB.cjs +335 -0
  201. package/dist/chunk-X6RDQ5NB.cjs.map +1 -0
  202. package/dist/chunk-XD6X7O5R.js +184 -0
  203. package/dist/chunk-XD6X7O5R.js.map +1 -0
  204. package/dist/{chunk-DIQ3AV5W.cjs → chunk-XFY73JWD.cjs} +324 -224
  205. package/dist/chunk-XFY73JWD.cjs.map +1 -0
  206. package/dist/{chunk-DEFQM7JU.cjs → chunk-XRU7V7FF.cjs} +7 -7
  207. package/dist/{chunk-DEFQM7JU.cjs.map → chunk-XRU7V7FF.cjs.map} +1 -1
  208. package/dist/{chunk-TPF25IG6.js → chunk-XZA3Y4YH.js} +3 -3
  209. package/dist/{chunk-TPF25IG6.js.map → chunk-XZA3Y4YH.js.map} +1 -1
  210. package/dist/chunk-Y7M44XEK.js +462 -0
  211. package/dist/chunk-Y7M44XEK.js.map +1 -0
  212. package/dist/{chunk-RRSNR3TP.js → chunk-YIRLBUNN.js} +3 -3
  213. package/dist/{chunk-RRSNR3TP.js.map → chunk-YIRLBUNN.js.map} +1 -1
  214. package/dist/{chunk-IXGYRP2P.js → chunk-YJDSPA5E.js} +79 -49
  215. package/dist/chunk-YJDSPA5E.js.map +1 -0
  216. package/dist/{chunk-EJYMTO3K.cjs → chunk-YLINFV7Z.cjs} +144 -116
  217. package/dist/chunk-YLINFV7Z.cjs.map +1 -0
  218. package/dist/{chunk-QERAIDRJ.js → chunk-Z2PPIVOO.js} +82 -22
  219. package/dist/chunk-Z2PPIVOO.js.map +1 -0
  220. package/dist/chunk-Z5QHVL5U.cjs +12 -0
  221. package/dist/chunk-Z5QHVL5U.cjs.map +1 -0
  222. package/dist/chunk-ZDH3DX3C.cjs +30 -0
  223. package/dist/chunk-ZDH3DX3C.cjs.map +1 -0
  224. package/dist/chunk-ZE6NVENI.js +77 -0
  225. package/dist/chunk-ZE6NVENI.js.map +1 -0
  226. package/dist/chunk-ZHX4KEM7.cjs +49 -0
  227. package/dist/chunk-ZHX4KEM7.cjs.map +1 -0
  228. package/dist/chunk-ZKZAIX42.cjs +479 -0
  229. package/dist/chunk-ZKZAIX42.cjs.map +1 -0
  230. package/dist/{chunk-TEDRJXOG.cjs → chunk-ZY4GXIVN.cjs} +5 -5
  231. package/dist/{chunk-TEDRJXOG.cjs.map → chunk-ZY4GXIVN.cjs.map} +1 -1
  232. package/dist/core/index.cjs +117 -0
  233. package/dist/core/index.cjs.map +1 -0
  234. package/dist/core/index.d.cts +225 -0
  235. package/dist/core/index.d.ts +225 -0
  236. package/dist/core/index.js +12 -0
  237. package/dist/core/index.js.map +1 -0
  238. package/dist/{ddl-CS0KUVwB.d.ts → ddl-Dx3Z0_WC.d.ts} +3 -3
  239. package/dist/{ddl-BD-ZfKeX.d.cts → ddl-J6sDyABg.d.cts} +3 -3
  240. package/dist/define-graph-CzEvA_8F.d.cts +174 -0
  241. package/dist/define-graph-DRo9xpYN.d.ts +174 -0
  242. package/dist/{extension-types-BM2ACfYO.d.cts → extension-types-BLEVH4SG.d.cts} +1 -1
  243. package/dist/{extension-types-BM2ACfYO.d.ts → extension-types-BLEVH4SG.d.ts} +1 -1
  244. package/dist/graph-extension/index.cjs +21 -19
  245. package/dist/graph-extension/index.d.cts +4 -4
  246. package/dist/graph-extension/index.d.ts +4 -4
  247. package/dist/graph-extension/index.js +6 -4
  248. package/dist/graph-merge/index.cjs +265 -214
  249. package/dist/graph-merge/index.cjs.map +1 -1
  250. package/dist/graph-merge/index.d.cts +8 -89
  251. package/dist/graph-merge/index.d.ts +8 -89
  252. package/dist/graph-merge/index.js +141 -90
  253. package/dist/graph-merge/index.js.map +1 -1
  254. package/dist/{index-BeacbPoe.d.ts → index-BD_3TCgh.d.ts} +6 -4
  255. package/dist/{index-BPM59vsg.d.cts → index-BihFPsPu.d.cts} +6 -4
  256. package/dist/{fulltext-strategy-C27vXaeB.d.cts → index-Bq7vSPHy.d.ts} +3195 -2646
  257. package/dist/{fulltext-strategy-DebsMrqg.d.ts → index-CrFL_ENI.d.cts} +3195 -2646
  258. package/dist/index.cjs +326 -315
  259. package/dist/index.cjs.map +1 -1
  260. package/dist/index.d.cts +59 -240
  261. package/dist/index.d.ts +59 -240
  262. package/dist/index.js +46 -79
  263. package/dist/index.js.map +1 -1
  264. package/dist/indexes/index.cjs +26 -38
  265. package/dist/indexes/index.d.cts +6 -41
  266. package/dist/indexes/index.d.ts +6 -41
  267. package/dist/indexes/index.js +14 -10
  268. package/dist/interchange/index.cjs +48 -39
  269. package/dist/interchange/index.cjs.map +1 -1
  270. package/dist/interchange/index.d.cts +7 -8
  271. package/dist/interchange/index.d.ts +7 -8
  272. package/dist/interchange/index.js +23 -14
  273. package/dist/interchange/index.js.map +1 -1
  274. package/dist/local-options-CZ1BnIoF.d.cts +29 -0
  275. package/dist/local-options-CZ1BnIoF.d.ts +29 -0
  276. package/dist/{manager-D00_NXvT.d.ts → manager-CASfhmzV.d.ts} +4 -173
  277. package/dist/{manager-nU1vTJLy.d.cts → manager-nCEJiYBb.d.cts} +4 -173
  278. package/dist/{materialize-indexes-zK2J_flP.d.ts → materialize-indexes-D4iei4Kp.d.ts} +1 -1
  279. package/dist/{materialize-indexes-CuR3gAZb.d.cts → materialize-indexes-ExQ6OrAh.d.cts} +1 -1
  280. package/dist/{postgres-IaBA4RgE.d.ts → postgres-Cl1ZAN1G.d.ts} +1 -1
  281. package/dist/{postgres-YrYmPlaU.d.cts → postgres-DMgIKQU-.d.cts} +1 -1
  282. package/dist/postgres-execution-fKW0qRiN.d.cts +14 -0
  283. package/dist/postgres-execution-fKW0qRiN.d.ts +14 -0
  284. package/dist/profiler/index.cjs +9 -8
  285. package/dist/profiler/index.cjs.map +1 -1
  286. package/dist/profiler/index.d.cts +9 -17
  287. package/dist/profiler/index.d.ts +9 -17
  288. package/dist/profiler/index.js +8 -7
  289. package/dist/profiler/index.js.map +1 -1
  290. package/dist/provenance/index.cjs +61 -55
  291. package/dist/provenance/index.cjs.map +1 -1
  292. package/dist/provenance/index.d.cts +7 -8
  293. package/dist/provenance/index.d.ts +7 -8
  294. package/dist/provenance/index.js +34 -28
  295. package/dist/provenance/index.js.map +1 -1
  296. package/dist/schema/index.cjs +46 -37
  297. package/dist/schema/index.cjs.map +1 -1
  298. package/dist/schema/index.d.cts +8 -10
  299. package/dist/schema/index.d.ts +8 -10
  300. package/dist/schema/index.js +22 -13
  301. package/dist/schema/index.js.map +1 -1
  302. package/dist/{sqlite-BUOHPx7p.d.ts → sqlite-BDkW39aa.d.cts} +1 -1
  303. package/dist/{sqlite-Pp8O19WE.d.cts → sqlite-CYfhvESj.d.ts} +1 -1
  304. package/dist/sqlite-execution-DwbE2a9y.d.cts +32 -0
  305. package/dist/sqlite-execution-DwbE2a9y.d.ts +32 -0
  306. package/dist/{store-view-X96Rd00T.d.cts → store-view-BoHqdHjB.d.cts} +394 -1393
  307. package/dist/{store-view-ANL6mTph.d.ts → store-view-Ctq-3OHy.d.ts} +394 -1393
  308. package/dist/temporal-BC_NQV5Y.d.cts +281 -0
  309. package/dist/temporal-DqtOEo_B.d.ts +281 -0
  310. package/dist/{types-r-Zyq2Hz.d.cts → types-COq3-vMC.d.cts} +2 -2
  311. package/dist/{types-wsvuBgPK.d.ts → types-CUevi_D1.d.ts} +2 -2
  312. package/dist/{where-CJOpJj3a.d.ts → where-BdE_cYtx.d.ts} +5 -5
  313. package/dist/{where-K3uBP33l.d.cts → where-C92TXCzT.d.cts} +5 -5
  314. package/package.json +37 -6
  315. package/dist/chunk-27SSDCEP.cjs.map +0 -1
  316. package/dist/chunk-2N6EOBTH.cjs.map +0 -1
  317. package/dist/chunk-3C2RYI6L.cjs.map +0 -1
  318. package/dist/chunk-3DS7Z4T4.cjs.map +0 -1
  319. package/dist/chunk-3GH67G4Z.cjs.map +0 -1
  320. package/dist/chunk-3RWZPJKV.js.map +0 -1
  321. package/dist/chunk-3SLPDKHQ.js.map +0 -1
  322. package/dist/chunk-3XXGYU62.cjs.map +0 -1
  323. package/dist/chunk-44TA22QT.js +0 -1478
  324. package/dist/chunk-44TA22QT.js.map +0 -1
  325. package/dist/chunk-5AVRFNP4.cjs.map +0 -1
  326. package/dist/chunk-5KEQ74YU.cjs.map +0 -1
  327. package/dist/chunk-5KPNWT6X.js.map +0 -1
  328. package/dist/chunk-5PNMDJ7J.js.map +0 -1
  329. package/dist/chunk-6EEO3OVU.cjs.map +0 -1
  330. package/dist/chunk-7YSP4V4R.cjs +0 -69
  331. package/dist/chunk-7YSP4V4R.cjs.map +0 -1
  332. package/dist/chunk-A42GCBGX.cjs.map +0 -1
  333. package/dist/chunk-BVRDGYXQ.cjs.map +0 -1
  334. package/dist/chunk-BYPOGQWK.js.map +0 -1
  335. package/dist/chunk-CUHM5CWJ.cjs +0 -12
  336. package/dist/chunk-CUHM5CWJ.cjs.map +0 -1
  337. package/dist/chunk-DIQ3AV5W.cjs.map +0 -1
  338. package/dist/chunk-EJYMTO3K.cjs.map +0 -1
  339. package/dist/chunk-EXU3RASM.js.map +0 -1
  340. package/dist/chunk-GA4TT3DH.js.map +0 -1
  341. package/dist/chunk-IP3CGGPA.cjs.map +0 -1
  342. package/dist/chunk-IPSVVTWT.cjs +0 -1540
  343. package/dist/chunk-IPSVVTWT.cjs.map +0 -1
  344. package/dist/chunk-IXGYRP2P.js.map +0 -1
  345. package/dist/chunk-K3Q3LJY3.js.map +0 -1
  346. package/dist/chunk-KQJ54OG5.js.map +0 -1
  347. package/dist/chunk-L7HQ2OSI.js.map +0 -1
  348. package/dist/chunk-M6VES7V6.js +0 -239
  349. package/dist/chunk-M6VES7V6.js.map +0 -1
  350. package/dist/chunk-NUIG3BCV.cjs.map +0 -1
  351. package/dist/chunk-NXQFATMF.cjs.map +0 -1
  352. package/dist/chunk-OHMP6N2J.js +0 -47
  353. package/dist/chunk-OHMP6N2J.js.map +0 -1
  354. package/dist/chunk-QERAIDRJ.js.map +0 -1
  355. package/dist/chunk-QSXTWU4U.cjs +0 -12
  356. package/dist/chunk-RCVLFTCT.js.map +0 -1
  357. package/dist/chunk-TGOMW4MB.cjs.map +0 -1
  358. package/dist/chunk-TKT2XHED.js.map +0 -1
  359. package/dist/chunk-UGZUAYAR.js.map +0 -1
  360. package/dist/chunk-UV3WP5WZ.js.map +0 -1
  361. package/dist/chunk-UXLSNRYL.js.map +0 -1
  362. package/dist/chunk-UYQMBBWJ.js.map +0 -1
  363. package/dist/chunk-VKGKDOKR.js.map +0 -1
  364. package/dist/chunk-VL2V6PEN.cjs +0 -261
  365. package/dist/chunk-VL2V6PEN.cjs.map +0 -1
  366. package/dist/chunk-WOJMKB3N.cjs.map +0 -1
  367. package/dist/chunk-WWFHO375.cjs.map +0 -1
  368. package/dist/chunk-XGPUQ56G.js.map +0 -1
  369. package/dist/chunk-XGU7DZDA.cjs +0 -1095
  370. package/dist/chunk-XGU7DZDA.cjs.map +0 -1
  371. package/dist/chunk-XPCZADMT.cjs.map +0 -1
  372. package/dist/chunk-XWV4JT34.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/backend/sqlite/local-store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA,eAAsB,sBAAA,CACpB,KAAA,EACA,OAAA,GAAmC,EAAC,EACwB;AAC5D,EAAA,MAAM,MAAA,GACJ,OAAA,CAAQ,KAAA,EAAO,MAAA,KAAW,MAAA,GACxB,SACA,kBAAA,CAAmB,OAAA,CAAQ,KAAA,CAAM,MAAA,CAAO,MAAM,CAAA;AAClD,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,wBAAA,CAAyB;AAAA,IAC3C,GAAI,QAAQ,IAAA,KAAS,MAAA,GAAY,EAAC,GAAI,EAAE,IAAA,EAAM,OAAA,CAAQ,IAAA,EAAK;AAAA,IAC3D,GAAI,QAAQ,OAAA,KAAY,MAAA,GAAY,EAAC,GAAI,EAAE,OAAA,EAAS,OAAA,CAAQ,OAAA,EAAQ;AAAA,IACpE,GAAI,QAAQ,YAAA,KAAiB,MAAA,GAC3B,EAAC,GACD,EAAE,YAAA,EAAc,OAAA,CAAQ,YAAA,EAAa;AAAA,IACvC,GAAI,MAAA,KAAW,MAAA,GAAY,EAAC,GAAI,EAAE,MAAA;AAAO,GAC1C,CAAA;AACD,EAAA,IAAI;AACF,IAAA,MAAM,CAAC,KAAK,CAAA,GAAI,MAAM,qBAAA,CAAsB,OAAO,OAAA,EAAS;AAAA,MAC1D,GAAG,OAAA,CAAQ,KAAA;AAAA,MACX,GAAG,OAAA,CAAQ;AAAA,KACZ,CAAA;AACD,IAAA,OAAO,KAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAO,iBAAA,CAAkB,SAAS,KAAK,CAAA;AAAA,EACzC;AACF","file":"local-store.js","sourcesContent":["/**\n * Batteries-included local SQLite Store for strict TypeScript consumers.\n *\n * This entrypoint owns the connection and intentionally exposes the portable\n * TypeGraph Store surface rather than the adapter-native Drizzle handle.\n */\nimport { type GraphDef } from \"../../core/define-graph\";\nimport { type SchemaManagerOptions } from \"../../schema/manager\";\nimport {\n createStoreWithSchema,\n type HistoryStore,\n type RecordedReadStore,\n type Store,\n} from \"../../store/store\";\nimport {\n type HistoryStoreOptions,\n type LiveStoreOptions,\n type RecordedReadStoreOptions,\n type StoreOptions,\n type UnboundLiveStoreOptions,\n} from \"../../store/types\";\nimport { createSqliteTables } from \"../drizzle/schema/sqlite\";\nimport { type BackendCapabilities, closeAfterFailure } from \"../types\";\nimport { createLocalSqliteBackend } from \"./local\";\nimport { type LocalSqlitePragmaOptions } from \"./local-options\";\n\nexport {\n DEFAULT_LOCAL_SQLITE_PRAGMAS,\n type LocalSqliteJournalMode,\n type LocalSqlitePragmaOptions,\n type LocalSqliteSynchronousMode,\n} from \"./local-options\";\n\nexport type LocalSqliteStoreOptions<\n TStoreOptions extends StoreOptions = StoreOptions,\n> = Readonly<{\n /** SQLite file path. Defaults to an in-memory database. */\n path?: string;\n /** Connection pragmas applied when the owned database is opened. */\n pragmas?: LocalSqlitePragmaOptions | false;\n /** Optional backend capability overrides, primarily for controlled hosts. */\n capabilities?: Partial<BackendCapabilities>;\n /** Store behavior, including hooks, history, and custom table names. */\n store?: TStoreOptions;\n /** Schema initialization and migration policy. */\n schemaManagement?: SchemaManagerOptions;\n}>;\n\n/** Creates, provisions, and returns a full typed local SQLite Store. */\nexport function createLocalSqliteStore<G extends GraphDef>(\n graph: G,\n options?: LocalSqliteStoreOptions<UnboundLiveStoreOptions>,\n): Promise<Store<G>>;\nexport function createLocalSqliteStore<G extends GraphDef>(\n graph: G,\n options: LocalSqliteStoreOptions<HistoryStoreOptions> &\n Readonly<{ store: HistoryStoreOptions }>,\n): Promise<HistoryStore<G>>;\nexport function createLocalSqliteStore<G extends GraphDef>(\n graph: G,\n options: LocalSqliteStoreOptions<RecordedReadStoreOptions> &\n Readonly<{ store: RecordedReadStoreOptions }>,\n): Promise<RecordedReadStore<G>>;\nexport function createLocalSqliteStore<G extends GraphDef>(\n graph: G,\n options: LocalSqliteStoreOptions<LiveStoreOptions>,\n): Promise<Store<G> | RecordedReadStore<G>>;\nexport function createLocalSqliteStore<G extends GraphDef>(\n graph: G,\n options: LocalSqliteStoreOptions,\n): Promise<Store<G> | HistoryStore<G> | RecordedReadStore<G>>;\nexport async function createLocalSqliteStore<G extends GraphDef>(\n graph: G,\n options: LocalSqliteStoreOptions = {},\n): Promise<Store<G> | HistoryStore<G> | RecordedReadStore<G>> {\n const tables =\n options.store?.schema === undefined ?\n undefined\n : createSqliteTables(options.store.schema.tables);\n const { backend } = createLocalSqliteBackend({\n ...(options.path === undefined ? {} : { path: options.path }),\n ...(options.pragmas === undefined ? {} : { pragmas: options.pragmas }),\n ...(options.capabilities === undefined ?\n {}\n : { capabilities: options.capabilities }),\n ...(tables === undefined ? {} : { tables }),\n });\n try {\n const [store] = await createStoreWithSchema(graph, backend, {\n ...options.store,\n ...options.schemaManagement,\n });\n return store;\n } catch (error) {\n return closeAfterFailure(backend, error);\n }\n}\n"]}
@@ -1,192 +1,37 @@
1
1
  'use strict';
2
2
 
3
- var chunkEJYMTO3K_cjs = require('../../chunk-EJYMTO3K.cjs');
4
- var chunkDIQ3AV5W_cjs = require('../../chunk-DIQ3AV5W.cjs');
5
- var chunk3XXGYU62_cjs = require('../../chunk-3XXGYU62.cjs');
6
- require('../../chunk-CUHM5CWJ.cjs');
7
- var chunk3C2RYI6L_cjs = require('../../chunk-3C2RYI6L.cjs');
8
- require('../../chunk-XPCZADMT.cjs');
9
- require('../../chunk-VL2V6PEN.cjs');
3
+ var chunkNU23DUSJ_cjs = require('../../chunk-NU23DUSJ.cjs');
4
+ require('../../chunk-YLINFV7Z.cjs');
5
+ require('../../chunk-XFY73JWD.cjs');
6
+ require('../../chunk-BKAKAVRW.cjs');
7
+ require('../../chunk-FMNUSGZ4.cjs');
8
+ require('../../chunk-EOJFGECD.cjs');
9
+ require('../../chunk-E6TXEISH.cjs');
10
+ require('../../chunk-DOVMTPKE.cjs');
11
+ require('../../chunk-ZDH3DX3C.cjs');
12
+ require('../../chunk-GNPGGLAE.cjs');
10
13
  require('../../chunk-ACSVZPK7.cjs');
11
- require('../../chunk-QARBLBXT.cjs');
12
- require('../../chunk-TEDRJXOG.cjs');
13
- require('../../chunk-XGU7DZDA.cjs');
14
- var chunkIPSVVTWT_cjs = require('../../chunk-IPSVVTWT.cjs');
15
- require('../../chunk-3GH67G4Z.cjs');
16
- require('../../chunk-7YSP4V4R.cjs');
17
- require('../../chunk-SJDMVITW.cjs');
18
- var chunkBVRDGYXQ_cjs = require('../../chunk-BVRDGYXQ.cjs');
14
+ require('../../chunk-O5H62ZWJ.cjs');
15
+ require('../../chunk-GUUWKPTK.cjs');
16
+ require('../../chunk-ZY4GXIVN.cjs');
17
+ require('../../chunk-NAUA4PW5.cjs');
18
+ require('../../chunk-UH2USOMG.cjs');
19
+ require('../../chunk-Z5QHVL5U.cjs');
20
+ require('../../chunk-ZKZAIX42.cjs');
21
+ require('../../chunk-X6RDQ5NB.cjs');
22
+ require('../../chunk-764JHTLT.cjs');
23
+ require('../../chunk-SAFZ6JTI.cjs');
19
24
  require('../../chunk-TDXIBCGY.cjs');
20
- var module$1 = require('module');
21
- var Database = require('better-sqlite3');
22
- var betterSqlite3 = require('drizzle-orm/better-sqlite3');
23
25
 
24
- var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
25
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
26
26
 
27
- var Database__default = /*#__PURE__*/_interopDefault(Database);
28
27
 
29
- var nodeRequire = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('local.cjs', document.baseURI).href)));
30
- function getUnknownErrorMessage(error) {
31
- if (error instanceof Error) return error.message;
32
- return String(error);
33
- }
34
- function parseNodeModuleVersionMismatchMessage(message) {
35
- const regexp = /NODE_MODULE_VERSION (?<compiled>\d+)[\s\S]*?NODE_MODULE_VERSION (?<required>\d+)/;
36
- const match = regexp.exec(message);
37
- if (!match?.groups) return void 0;
38
- const compiled = Number(match.groups.compiled);
39
- const required = Number(match.groups.required);
40
- if (!Number.isFinite(compiled) || !Number.isFinite(required))
41
- return void 0;
42
- return { compiled, required };
43
- }
44
- function createDatabase(path) {
45
- try {
46
- return new Database__default.default(path);
47
- } catch (error) {
48
- const message = getUnknownErrorMessage(error);
49
- const mismatch = parseNodeModuleVersionMismatchMessage(message);
50
- if (!mismatch) throw error;
51
- throw new chunkBVRDGYXQ_cjs.ConfigurationError(
52
- [
53
- "Failed to load better-sqlite3 native addon.",
54
- `It was compiled for NODE_MODULE_VERSION ${mismatch.compiled}, but this Node.js runtime requires ${mismatch.required}.`,
55
- "This usually happens after switching Node versions without rebuilding native dependencies.",
56
- "Rebuild with: pnpm rebuild better-sqlite3 (or npm rebuild better-sqlite3)."
57
- ].join(" "),
58
- {
59
- nodeVersion: process.version,
60
- nodeModuleVersion: process.versions.modules,
61
- compiledNodeModuleVersion: mismatch.compiled,
62
- requiredNodeModuleVersion: mismatch.required
63
- },
64
- { cause: error }
65
- );
66
- }
67
- }
68
- var DEFAULT_LOCAL_SQLITE_PRAGMAS = {
69
- journalMode: "wal",
70
- synchronous: "normal",
71
- busyTimeoutMs: 5e3,
72
- cacheSizeKib: void 0,
73
- mmapSizeBytes: void 0,
74
- walAutocheckpointPages: void 0
75
- };
76
- var LOCAL_SQLITE_JOURNAL_MODES = [
77
- "wal",
78
- "delete",
79
- "truncate",
80
- "persist",
81
- "memory",
82
- "off"
83
- ];
84
- var LOCAL_SQLITE_SYNCHRONOUS_MODES = [
85
- "off",
86
- "normal",
87
- "full",
88
- "extra"
89
- ];
90
- var SQLITE_MAX_WAL_AUTOCHECKPOINT_PAGES = 2147483647;
91
- function applyConnectionPragmas(sqlite, pragmas) {
92
- if (pragmas === false) return;
93
- const resolved = {
94
- ...DEFAULT_LOCAL_SQLITE_PRAGMAS,
95
- ...pragmas
96
- };
97
- if (!LOCAL_SQLITE_JOURNAL_MODES.includes(resolved.journalMode)) {
98
- throw new chunkBVRDGYXQ_cjs.ConfigurationError(
99
- `Invalid journalMode pragma: ${resolved.journalMode}. Expected one of: ${LOCAL_SQLITE_JOURNAL_MODES.join(", ")}.`,
100
- { journalMode: resolved.journalMode }
101
- );
102
- }
103
- if (!LOCAL_SQLITE_SYNCHRONOUS_MODES.includes(resolved.synchronous)) {
104
- throw new chunkBVRDGYXQ_cjs.ConfigurationError(
105
- `Invalid synchronous pragma: ${resolved.synchronous}. Expected one of: ${LOCAL_SQLITE_SYNCHRONOUS_MODES.join(", ")}.`,
106
- { synchronous: resolved.synchronous }
107
- );
108
- }
109
- if (!Number.isSafeInteger(resolved.busyTimeoutMs) || resolved.busyTimeoutMs < 0) {
110
- throw new chunkBVRDGYXQ_cjs.ConfigurationError(
111
- `Invalid busyTimeoutMs pragma: ${String(resolved.busyTimeoutMs)}. Expected a non-negative integer number of milliseconds.`,
112
- { busyTimeoutMs: resolved.busyTimeoutMs }
113
- );
114
- }
115
- if (resolved.cacheSizeKib !== void 0 && (!Number.isSafeInteger(resolved.cacheSizeKib) || resolved.cacheSizeKib >= 0)) {
116
- throw new chunkBVRDGYXQ_cjs.ConfigurationError(
117
- `Invalid cacheSizeKib pragma: ${String(resolved.cacheSizeKib)}. Expected a negative safe integer \u2014 SQLite's own cache_size pragma interprets a positive value as a page count, not KiB, so a caller who passes e.g. 131072 meaning "131072 KiB" silently gets 131072 pages (~512MiB at the default 4KiB page size) instead.`,
118
- { cacheSizeKib: resolved.cacheSizeKib }
119
- );
120
- }
121
- if (resolved.mmapSizeBytes !== void 0 && (!Number.isSafeInteger(resolved.mmapSizeBytes) || resolved.mmapSizeBytes < 0)) {
122
- throw new chunkBVRDGYXQ_cjs.ConfigurationError(
123
- `Invalid mmapSizeBytes pragma: ${String(resolved.mmapSizeBytes)}. Expected a non-negative safe integer number of bytes.`,
124
- { mmapSizeBytes: resolved.mmapSizeBytes }
125
- );
126
- }
127
- if (resolved.walAutocheckpointPages !== void 0 && (!Number.isSafeInteger(resolved.walAutocheckpointPages) || resolved.walAutocheckpointPages < 0 || resolved.walAutocheckpointPages > SQLITE_MAX_WAL_AUTOCHECKPOINT_PAGES)) {
128
- throw new chunkBVRDGYXQ_cjs.ConfigurationError(
129
- `Invalid walAutocheckpointPages pragma: ${String(resolved.walAutocheckpointPages)}. Expected an integer between 0 and ${SQLITE_MAX_WAL_AUTOCHECKPOINT_PAGES} WAL pages (0 disables automatic checkpointing entirely).`,
130
- { walAutocheckpointPages: resolved.walAutocheckpointPages }
131
- );
132
- }
133
- sqlite.pragma(`journal_mode = ${resolved.journalMode}`);
134
- sqlite.pragma(`synchronous = ${resolved.synchronous}`);
135
- sqlite.pragma(`busy_timeout = ${resolved.busyTimeoutMs}`);
136
- if (resolved.cacheSizeKib !== void 0) {
137
- sqlite.pragma(`cache_size = ${resolved.cacheSizeKib}`);
138
- }
139
- if (resolved.mmapSizeBytes !== void 0) {
140
- sqlite.pragma(`mmap_size = ${resolved.mmapSizeBytes}`);
141
- }
142
- if (resolved.walAutocheckpointPages !== void 0) {
143
- sqlite.pragma(`wal_autocheckpoint = ${resolved.walAutocheckpointPages}`);
144
- }
145
- }
146
- function createLocalSqliteBackend(options = {}) {
147
- const path = options.path ?? ":memory:";
148
- const tables2 = options.tables ?? chunk3C2RYI6L_cjs.tables;
149
- const sqlite = createDatabase(path);
150
- applyConnectionPragmas(sqlite, options.pragmas);
151
- const hasSqliteVec = tryLoadSqliteVec(sqlite);
152
- const db = betterSqlite3.drizzle(sqlite);
153
- const ddlStatements = chunkDIQ3AV5W_cjs.generateSqliteDDL(tables2);
154
- for (const statement of ddlStatements) {
155
- sqlite.exec(statement);
156
- }
157
- const backend = chunkEJYMTO3K_cjs.createSqliteBackend(db, {
158
- executionProfile: {
159
- isSync: true
160
- },
161
- tables: tables2,
162
- ...hasSqliteVec ? { vector: chunk3XXGYU62_cjs.sqliteVecStrategy } : {},
163
- capabilities: {
164
- ...options.capabilities,
165
- graphAnalytics: {
166
- supported: options.capabilities?.graphAnalytics?.supported ?? options.capabilities?.transactions !== false,
167
- mathFunctions: options.capabilities?.graphAnalytics?.mathFunctions ?? true
168
- }
169
- }
170
- });
171
- const managedBackend = chunkIPSVVTWT_cjs.wrapWithManagedClose(backend, () => {
172
- sqlite.close();
173
- });
174
- return { backend: managedBackend, db };
175
- }
176
- function tryLoadSqliteVec(sqlite) {
177
- try {
178
- const module_ = nodeRequire("sqlite-vec");
179
- if (typeof module_ === "object" && module_ !== null && "load" in module_ && typeof module_.load === "function") {
180
- module_.load(sqlite);
181
- return true;
182
- }
183
- return false;
184
- } catch {
185
- return false;
186
- }
187
- }
188
-
189
- exports.DEFAULT_LOCAL_SQLITE_PRAGMAS = DEFAULT_LOCAL_SQLITE_PRAGMAS;
190
- exports.createLocalSqliteBackend = createLocalSqliteBackend;
28
+ Object.defineProperty(exports, "DEFAULT_LOCAL_SQLITE_PRAGMAS", {
29
+ enumerable: true,
30
+ get: function () { return chunkNU23DUSJ_cjs.DEFAULT_LOCAL_SQLITE_PRAGMAS; }
31
+ });
32
+ Object.defineProperty(exports, "createLocalSqliteBackend", {
33
+ enumerable: true,
34
+ get: function () { return chunkNU23DUSJ_cjs.createLocalSqliteBackend; }
35
+ });
191
36
  //# sourceMappingURL=local.cjs.map
192
37
  //# sourceMappingURL=local.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/backend/sqlite/local.ts"],"names":["createRequire","Database","ConfigurationError","tables","drizzle","generateSqliteDDL","createSqliteBackend","sqliteVecStrategy","wrapWithManagedClose"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,IAAM,WAAA,GAAcA,sBAAA,CAAc,2PAAe,CAAA;AAWjD,SAAS,uBAAuB,KAAA,EAAwB;AACtD,EAAA,IAAI,KAAA,YAAiB,KAAA,EAAO,OAAO,KAAA,CAAM,OAAA;AACzC,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AAEA,SAAS,sCACP,OAAA,EACuC;AACvC,EAAA,MAAM,MAAA,GACJ,kFAAA;AACF,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA;AACjC,EAAA,IAAI,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAO,MAAA;AAE3B,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,QAAQ,CAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,QAAQ,CAAA;AAE7C,EAAA,IAAI,CAAC,OAAO,QAAA,CAAS,QAAQ,KAAK,CAAC,MAAA,CAAO,SAAS,QAAQ,CAAA;AACzD,IAAA,OAAO,MAAA;AAET,EAAA,OAAO,EAAE,UAAU,QAAA,EAAS;AAC9B;AAEA,SAAS,eAAe,IAAA,EAAiC;AACvD,EAAA,IAAI;AACF,IAAA,OAAO,IAAIC,0BAAS,IAAI,CAAA;AAAA,EAC1B,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,OAAA,GAAU,uBAAuB,KAAK,CAAA;AAC5C,IAAA,MAAM,QAAA,GAAW,sCAAsC,OAAO,CAAA;AAC9D,IAAA,IAAI,CAAC,UAAU,MAAM,KAAA;AAErB,IAAA,MAAM,IAAIC,oCAAA;AAAA,MACR;AAAA,QACE,6CAAA;AAAA,QACA,CAAA,wCAAA,EAA2C,QAAA,CAAS,QAAQ,CAAA,oCAAA,EAAuC,SAAS,QAAQ,CAAA,CAAA,CAAA;AAAA,QACpH,4FAAA;AAAA,QACA;AAAA,OACF,CAAE,KAAK,GAAG,CAAA;AAAA,MACV;AAAA,QACE,aAAa,OAAA,CAAQ,OAAA;AAAA,QACrB,iBAAA,EAAmB,QAAQ,QAAA,CAAS,OAAA;AAAA,QACpC,2BAA2B,QAAA,CAAS,QAAA;AAAA,QACpC,2BAA2B,QAAA,CAAS;AAAA,OACtC;AAAA,MACA,EAAE,OAAO,KAAA;AAAM,KACjB;AAAA,EACF;AACF;AAmFO,IAAM,4BAAA,GACX;AAAA,EACE,WAAA,EAAa,KAAA;AAAA,EACb,WAAA,EAAa,QAAA;AAAA,EACb,aAAA,EAAe,GAAA;AAAA,EACf,YAAA,EAAc,MAAA;AAAA,EACd,aAAA,EAAe,MAAA;AAAA,EACf,sBAAA,EAAwB;AAC1B;AAEF,IAAM,0BAAA,GAAgE;AAAA,EACpE,KAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,8BAAA,GAAwE;AAAA,EAC5E,KAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,mCAAA,GAAsC,UAAA;AAE5C,SAAS,sBAAA,CACP,QACA,OAAA,EACM;AACN,EAAA,IAAI,YAAY,KAAA,EAAO;AACvB,EAAA,MAAM,QAAA,GAA+C;AAAA,IACnD,GAAG,4BAAA;AAAA,IACH,GAAG;AAAA,GACL;AAKA,EAAA,IAAI,CAAC,0BAAA,CAA2B,QAAA,CAAS,QAAA,CAAS,WAAW,CAAA,EAAG;AAC9D,IAAA,MAAM,IAAIA,oCAAA;AAAA,MACR,+BAA+B,QAAA,CAAS,WAAW,sBAC7B,0BAAA,CAA2B,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,CAAA;AAAA,MAC3D,EAAE,WAAA,EAAa,QAAA,CAAS,WAAA;AAAY,KACtC;AAAA,EACF;AACA,EAAA,IAAI,CAAC,8BAAA,CAA+B,QAAA,CAAS,QAAA,CAAS,WAAW,CAAA,EAAG;AAClE,IAAA,MAAM,IAAIA,oCAAA;AAAA,MACR,+BAA+B,QAAA,CAAS,WAAW,sBAC7B,8BAAA,CAA+B,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,CAAA;AAAA,MAC/D,EAAE,WAAA,EAAa,QAAA,CAAS,WAAA;AAAY,KACtC;AAAA,EACF;AACA,EAAA,IACE,CAAC,OAAO,aAAA,CAAc,QAAA,CAAS,aAAa,CAAA,IAC5C,QAAA,CAAS,gBAAgB,CAAA,EACzB;AACA,IAAA,MAAM,IAAIA,oCAAA;AAAA,MACR,CAAA,8BAAA,EAAiC,MAAA,CAAO,QAAA,CAAS,aAAa,CAAC,CAAA,yDAAA,CAAA;AAAA,MAE/D,EAAE,aAAA,EAAe,QAAA,CAAS,aAAA;AAAc,KAC1C;AAAA,EACF;AACA,EAAA,IACE,QAAA,CAAS,YAAA,KAAiB,MAAA,KACzB,CAAC,MAAA,CAAO,aAAA,CAAc,QAAA,CAAS,YAAY,CAAA,IAAK,QAAA,CAAS,YAAA,IAAgB,CAAA,CAAA,EAC1E;AACA,IAAA,MAAM,IAAIA,oCAAA;AAAA,MACR,CAAA,6BAAA,EAAgC,MAAA,CAAO,QAAA,CAAS,YAAY,CAAC,CAAA,kQAAA,CAAA;AAAA,MAK7D,EAAE,YAAA,EAAc,QAAA,CAAS,YAAA;AAAa,KACxC;AAAA,EACF;AACA,EAAA,IACE,QAAA,CAAS,aAAA,KAAkB,MAAA,KAC1B,CAAC,MAAA,CAAO,aAAA,CAAc,QAAA,CAAS,aAAa,CAAA,IAC3C,QAAA,CAAS,aAAA,GAAgB,CAAA,CAAA,EAC3B;AACA,IAAA,MAAM,IAAIA,oCAAA;AAAA,MACR,CAAA,8BAAA,EAAiC,MAAA,CAAO,QAAA,CAAS,aAAa,CAAC,CAAA,uDAAA,CAAA;AAAA,MAE/D,EAAE,aAAA,EAAe,QAAA,CAAS,aAAA;AAAc,KAC1C;AAAA,EACF;AACA,EAAA,IACE,QAAA,CAAS,sBAAA,KAA2B,MAAA,KACnC,CAAC,OAAO,aAAA,CAAc,QAAA,CAAS,sBAAsB,CAAA,IACpD,QAAA,CAAS,sBAAA,GAAyB,CAAA,IAClC,QAAA,CAAS,yBAAyB,mCAAA,CAAA,EACpC;AACA,IAAA,MAAM,IAAIA,oCAAA;AAAA,MACR,0CAA0C,MAAA,CAAO,QAAA,CAAS,sBAAsB,CAAC,uCAC1C,mCAAmC,CAAA,yDAAA,CAAA;AAAA,MAE1E,EAAE,sBAAA,EAAwB,QAAA,CAAS,sBAAA;AAAuB,KAC5D;AAAA,EACF;AAIA,EAAA,MAAA,CAAO,MAAA,CAAO,CAAA,eAAA,EAAkB,QAAA,CAAS,WAAW,CAAA,CAAE,CAAA;AACtD,EAAA,MAAA,CAAO,MAAA,CAAO,CAAA,cAAA,EAAiB,QAAA,CAAS,WAAW,CAAA,CAAE,CAAA;AACrD,EAAA,MAAA,CAAO,MAAA,CAAO,CAAA,eAAA,EAAkB,QAAA,CAAS,aAAa,CAAA,CAAE,CAAA;AACxD,EAAA,IAAI,QAAA,CAAS,iBAAiB,MAAA,EAAW;AACvC,IAAA,MAAA,CAAO,MAAA,CAAO,CAAA,aAAA,EAAgB,QAAA,CAAS,YAAY,CAAA,CAAE,CAAA;AAAA,EACvD;AACA,EAAA,IAAI,QAAA,CAAS,kBAAkB,MAAA,EAAW;AACxC,IAAA,MAAA,CAAO,MAAA,CAAO,CAAA,YAAA,EAAe,QAAA,CAAS,aAAa,CAAA,CAAE,CAAA;AAAA,EACvD;AACA,EAAA,IAAI,QAAA,CAAS,2BAA2B,MAAA,EAAW;AACjD,IAAA,MAAA,CAAO,MAAA,CAAO,CAAA,qBAAA,EAAwB,QAAA,CAAS,sBAAsB,CAAA,CAAE,CAAA;AAAA,EACzE;AACF;AAuFO,SAAS,wBAAA,CACd,OAAA,GAAqC,EAAC,EACZ;AAC1B,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAA,IAAQ,UAAA;AAC7B,EAAA,MAAMC,OAAAA,GAAS,QAAQ,MAAA,IAAUA,wBAAA;AAEjC,EAAA,MAAM,MAAA,GAAS,eAAe,IAAI,CAAA;AAClC,EAAA,sBAAA,CAAuB,MAAA,EAAQ,QAAQ,OAAO,CAAA;AAO9C,EAAA,MAAM,YAAA,GAAe,iBAAiB,MAAM,CAAA;AAE5C,EAAA,MAAM,EAAA,GAAKC,sBAAQ,MAAM,CAAA;AAGzB,EAAA,MAAM,aAAA,GAAgBC,oCAAkBF,OAAM,CAAA;AAC9C,EAAA,KAAA,MAAW,aAAa,aAAA,EAAe;AACrC,IAAA,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,EACvB;AAEA,EAAA,MAAM,OAAA,GAAUG,sCAAoB,EAAA,EAAI;AAAA,IACtC,gBAAA,EAAkB;AAAA,MAChB,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,MAAA,EAAAH,OAAAA;AAAA,IACA,GAAI,YAAA,GAAe,EAAE,MAAA,EAAQI,mCAAA,KAAsB,EAAC;AAAA,IACpD,YAAA,EAAc;AAAA,MACZ,GAAG,OAAA,CAAQ,YAAA;AAAA,MACX,cAAA,EAAgB;AAAA,QACd,WACE,OAAA,CAAQ,YAAA,EAAc,gBAAgB,SAAA,IACtC,OAAA,CAAQ,cAAc,YAAA,KAAiB,KAAA;AAAA,QACzC,aAAA,EACE,OAAA,CAAQ,YAAA,EAAc,cAAA,EAAgB,aAAA,IAAiB;AAAA;AAC3D;AACF,GACD,CAAA;AACD,EAAA,MAAM,cAAA,GAAiBC,sCAAA,CAAqB,OAAA,EAAS,MAAM;AACzD,IAAA,MAAA,CAAO,KAAA,EAAM;AAAA,EACf,CAAC,CAAA;AAED,EAAA,OAAO,EAAE,OAAA,EAAS,cAAA,EAAgB,EAAA,EAAG;AACvC;AAEA,SAAS,iBAAiB,MAAA,EAAoC;AAC5D,EAAA,IAAI;AAIF,IAAA,MAAM,OAAA,GAAmB,YAAY,YAAY,CAAA;AACjD,IAAA,IACE,OAAO,OAAA,KAAY,QAAA,IACnB,OAAA,KAAY,IAAA,IACZ,UAAU,OAAA,IACV,OAAO,OAAA,CAAQ,IAAA,KAAS,UAAA,EACxB;AACA,MAAC,OAAA,CAAsD,KAAK,MAAM,CAAA;AAClE,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,OAAO,KAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF","file":"local.cjs","sourcesContent":["/**\n * Local SQLite backend using better-sqlite3.\n *\n * This module depends on the `better-sqlite3` native addon and should only\n * be imported in Node.js environments. For bundler-friendly SQLite DDL\n * generation and Drizzle backend creation, import from `@nicia-ai/typegraph/sqlite`.\n *\n * @example In-memory database (default)\n * ```typescript\n * import { createLocalSqliteBackend } from \"@nicia-ai/typegraph/sqlite/local\";\n *\n * const { backend, db } = createLocalSqliteBackend();\n * const store = createStore(graph, backend);\n * ```\n *\n * @example File-based database for persistent local development\n * ```typescript\n * import { createLocalSqliteBackend } from \"@nicia-ai/typegraph/sqlite/local\";\n *\n * const { backend, db } = createLocalSqliteBackend({ path: \"./dev.db\" });\n * const store = createStore(graph, backend);\n * ```\n */\nimport { createRequire } from \"node:module\";\n\nimport Database from \"better-sqlite3\";\nimport {\n type BetterSQLite3Database,\n drizzle,\n} from \"drizzle-orm/better-sqlite3\";\n\nimport { ConfigurationError } from \"../../errors\";\nimport { sqliteVecStrategy } from \"../../query/dialect/vector/sqlite-vec-strategy\";\nimport { generateSqliteDDL } from \"../drizzle/ddl\";\nimport {\n createSqliteBackend,\n type SqliteTables,\n tables as defaultTables,\n} from \"../drizzle/sqlite\";\nimport {\n type BackendCapabilities,\n type GraphBackend,\n wrapWithManagedClose,\n} from \"../types\";\n\nconst nodeRequire = createRequire(import.meta.url);\n\n// ============================================================\n// Native Addon Helpers\n// ============================================================\n\ntype NodeModuleVersionMismatch = Readonly<{\n compiled: number;\n required: number;\n}>;\n\nfunction getUnknownErrorMessage(error: unknown): string {\n if (error instanceof Error) return error.message;\n return String(error);\n}\n\nfunction parseNodeModuleVersionMismatchMessage(\n message: string,\n): NodeModuleVersionMismatch | undefined {\n const regexp =\n /NODE_MODULE_VERSION (?<compiled>\\d+)[\\s\\S]*?NODE_MODULE_VERSION (?<required>\\d+)/;\n const match = regexp.exec(message);\n if (!match?.groups) return undefined;\n\n const compiled = Number(match.groups.compiled);\n const required = Number(match.groups.required);\n\n if (!Number.isFinite(compiled) || !Number.isFinite(required))\n return undefined;\n\n return { compiled, required };\n}\n\nfunction createDatabase(path: string): Database.Database {\n try {\n return new Database(path);\n } catch (error) {\n const message = getUnknownErrorMessage(error);\n const mismatch = parseNodeModuleVersionMismatchMessage(message);\n if (!mismatch) throw error;\n\n throw new ConfigurationError(\n [\n \"Failed to load better-sqlite3 native addon.\",\n `It was compiled for NODE_MODULE_VERSION ${mismatch.compiled}, but this Node.js runtime requires ${mismatch.required}.`,\n \"This usually happens after switching Node versions without rebuilding native dependencies.\",\n \"Rebuild with: pnpm rebuild better-sqlite3 (or npm rebuild better-sqlite3).\",\n ].join(\" \"),\n {\n nodeVersion: process.version,\n nodeModuleVersion: process.versions.modules,\n compiledNodeModuleVersion: mismatch.compiled,\n requiredNodeModuleVersion: mismatch.required,\n },\n { cause: error },\n );\n }\n}\n\n// ============================================================\n// Types\n// ============================================================\n\n/**\n * Journal modes accepted by {@link LocalSqlitePragmaOptions.journalMode}.\n */\nexport type LocalSqliteJournalMode =\n \"wal\" | \"delete\" | \"truncate\" | \"persist\" | \"memory\" | \"off\";\n\n/**\n * Synchronous levels accepted by {@link LocalSqlitePragmaOptions.synchronous}.\n */\nexport type LocalSqliteSynchronousMode = \"off\" | \"normal\" | \"full\" | \"extra\";\n\n/**\n * Connection pragmas the local backend applies when it opens the database.\n *\n * Values merge over {@link DEFAULT_LOCAL_SQLITE_PRAGMAS}; pass\n * `pragmas: false` on {@link LocalSqliteBackendOptions} to leave the\n * better-sqlite3 driver defaults untouched.\n */\nexport type LocalSqlitePragmaOptions = Readonly<{\n /** `PRAGMA journal_mode`. Default: `\"wal\"` (no-op on `\":memory:\"`). */\n journalMode?: LocalSqliteJournalMode;\n /** `PRAGMA synchronous`. Default: `\"normal\"`. */\n synchronous?: LocalSqliteSynchronousMode;\n /** `PRAGMA busy_timeout`, in milliseconds. Default: `5000`. */\n busyTimeoutMs?: number;\n /**\n * `PRAGMA cache_size`, in KiB of page cache — must be negative, per\n * SQLite's own convention (e.g. `-131072` for 128MiB); a positive value\n * means a page *count* instead, not KiB, so it's rejected outright\n * rather than silently sizing the cache to something the caller didn't\n * intend. Default: `undefined`, meaning SQLite's own built-in default\n * (2MiB) is left untouched. Worth raising for any database whose\n * working set won't fit in 2MiB — SQLite's default is tuned for small\n * embedded use, not for a table that stops fitting in a tiny page\n * cache and starts paying a heap-row disk read per candidate row a\n * query touches.\n */\n cacheSizeKib?: number | undefined;\n /**\n * `PRAGMA mmap_size`, in bytes. Default: `undefined`, meaning SQLite's\n * own built-in default (0, i.e. disabled) is left untouched. Memory-maps\n * let reads bypass SQLite's own page cache entirely for pages already\n * resident in the OS page cache, which helps once the working set\n * exceeds `cacheSizeKib` but still fits in available RAM.\n */\n mmapSizeBytes?: number | undefined;\n /**\n * `PRAGMA wal_autocheckpoint`, in WAL pages (a no-op unless `journalMode`\n * is `\"wal\"`). Default: `undefined`, meaning SQLite's own built-in\n * default (1,000 pages, ~4MiB) is left untouched. Every automatic\n * checkpoint that size has to flush WAL frames back into the main\n * database file's B-tree — cheap while the file is small, but the cost\n * climbs as the file (and the fraction of it *not* resident in the page\n * cache) grows, so a database built by one large bulk load pays\n * increasingly expensive checkpoints as the load progresses. Raising\n * this amortizes checkpoint I/O over far more rows; `0` disables\n * automatic checkpointing entirely (the WAL grows unbounded until a\n * manual `PRAGMA wal_checkpoint` or the connection closes) for callers\n * that would rather run one explicit checkpoint after a bulk load\n * finishes than pay checkpoint cost mid-load at all. Worth raising for\n * any bulk-insert-heavy workload; leave at the default for a\n * normal read/write mix, where a large uncheckpointed WAL just makes\n * every read pay a bigger WAL scan.\n */\n walAutocheckpointPages?: number | undefined;\n}>;\n\n/**\n * Pragma defaults for connections the local backend owns: WAL journaling\n * with `synchronous=NORMAL` (the standard durable-and-fast local-SQLite\n * baseline — WAL survives crashes; at NORMAL a power loss can lose the\n * final commits but never corrupts), a 5s busy timeout so concurrent\n * openers wait for the write lock instead of failing with SQLITE_BUSY, and\n * `cacheSizeKib`/`mmapSizeBytes` left `undefined` (SQLite's own tiny\n * defaults) since the right size is workload- and host-dependent — set\n * them explicitly once the database's working set is known.\n */\nexport const DEFAULT_LOCAL_SQLITE_PRAGMAS: Required<LocalSqlitePragmaOptions> =\n {\n journalMode: \"wal\",\n synchronous: \"normal\",\n busyTimeoutMs: 5000,\n cacheSizeKib: undefined,\n mmapSizeBytes: undefined,\n walAutocheckpointPages: undefined,\n };\n\nconst LOCAL_SQLITE_JOURNAL_MODES: readonly LocalSqliteJournalMode[] = [\n \"wal\",\n \"delete\",\n \"truncate\",\n \"persist\",\n \"memory\",\n \"off\",\n];\n\nconst LOCAL_SQLITE_SYNCHRONOUS_MODES: readonly LocalSqliteSynchronousMode[] = [\n \"off\",\n \"normal\",\n \"full\",\n \"extra\",\n];\n\nconst SQLITE_MAX_WAL_AUTOCHECKPOINT_PAGES = 2_147_483_647;\n\nfunction applyConnectionPragmas(\n sqlite: Database.Database,\n pragmas: LocalSqlitePragmaOptions | false | undefined,\n): void {\n if (pragmas === false) return;\n const resolved: Required<LocalSqlitePragmaOptions> = {\n ...DEFAULT_LOCAL_SQLITE_PRAGMAS,\n ...pragmas,\n };\n\n // Runtime guards mirror the compile-time unions: pragma values are spliced\n // into pragma statements, so reject anything outside the allowlists rather\n // than forwarding it to SQLite.\n if (!LOCAL_SQLITE_JOURNAL_MODES.includes(resolved.journalMode)) {\n throw new ConfigurationError(\n `Invalid journalMode pragma: ${resolved.journalMode}. ` +\n `Expected one of: ${LOCAL_SQLITE_JOURNAL_MODES.join(\", \")}.`,\n { journalMode: resolved.journalMode },\n );\n }\n if (!LOCAL_SQLITE_SYNCHRONOUS_MODES.includes(resolved.synchronous)) {\n throw new ConfigurationError(\n `Invalid synchronous pragma: ${resolved.synchronous}. ` +\n `Expected one of: ${LOCAL_SQLITE_SYNCHRONOUS_MODES.join(\", \")}.`,\n { synchronous: resolved.synchronous },\n );\n }\n if (\n !Number.isSafeInteger(resolved.busyTimeoutMs) ||\n resolved.busyTimeoutMs < 0\n ) {\n throw new ConfigurationError(\n `Invalid busyTimeoutMs pragma: ${String(resolved.busyTimeoutMs)}. ` +\n \"Expected a non-negative integer number of milliseconds.\",\n { busyTimeoutMs: resolved.busyTimeoutMs },\n );\n }\n if (\n resolved.cacheSizeKib !== undefined &&\n (!Number.isSafeInteger(resolved.cacheSizeKib) || resolved.cacheSizeKib >= 0)\n ) {\n throw new ConfigurationError(\n `Invalid cacheSizeKib pragma: ${String(resolved.cacheSizeKib)}. ` +\n \"Expected a negative safe integer — SQLite's own cache_size pragma \" +\n \"interprets a positive value as a page count, not KiB, so a caller \" +\n 'who passes e.g. 131072 meaning \"131072 KiB\" silently gets ' +\n \"131072 pages (~512MiB at the default 4KiB page size) instead.\",\n { cacheSizeKib: resolved.cacheSizeKib },\n );\n }\n if (\n resolved.mmapSizeBytes !== undefined &&\n (!Number.isSafeInteger(resolved.mmapSizeBytes) ||\n resolved.mmapSizeBytes < 0)\n ) {\n throw new ConfigurationError(\n `Invalid mmapSizeBytes pragma: ${String(resolved.mmapSizeBytes)}. ` +\n \"Expected a non-negative safe integer number of bytes.\",\n { mmapSizeBytes: resolved.mmapSizeBytes },\n );\n }\n if (\n resolved.walAutocheckpointPages !== undefined &&\n (!Number.isSafeInteger(resolved.walAutocheckpointPages) ||\n resolved.walAutocheckpointPages < 0 ||\n resolved.walAutocheckpointPages > SQLITE_MAX_WAL_AUTOCHECKPOINT_PAGES)\n ) {\n throw new ConfigurationError(\n `Invalid walAutocheckpointPages pragma: ${String(resolved.walAutocheckpointPages)}. ` +\n `Expected an integer between 0 and ${SQLITE_MAX_WAL_AUTOCHECKPOINT_PAGES} ` +\n \"WAL pages (0 disables automatic checkpointing entirely).\",\n { walAutocheckpointPages: resolved.walAutocheckpointPages },\n );\n }\n\n // \":memory:\" databases always journal in memory; SQLite answers the WAL\n // request with \"memory\" instead of erroring, so no special-casing needed.\n sqlite.pragma(`journal_mode = ${resolved.journalMode}`);\n sqlite.pragma(`synchronous = ${resolved.synchronous}`);\n sqlite.pragma(`busy_timeout = ${resolved.busyTimeoutMs}`);\n if (resolved.cacheSizeKib !== undefined) {\n sqlite.pragma(`cache_size = ${resolved.cacheSizeKib}`);\n }\n if (resolved.mmapSizeBytes !== undefined) {\n sqlite.pragma(`mmap_size = ${resolved.mmapSizeBytes}`);\n }\n if (resolved.walAutocheckpointPages !== undefined) {\n sqlite.pragma(`wal_autocheckpoint = ${resolved.walAutocheckpointPages}`);\n }\n}\n\n/**\n * Options for creating a local SQLite backend.\n */\nexport type LocalSqliteBackendOptions = Readonly<{\n /**\n * Path to the SQLite database file.\n * Defaults to \":memory:\" for an in-memory database.\n */\n path?: string;\n\n /**\n * Connection pragmas applied at open. Defaults to\n * {@link DEFAULT_LOCAL_SQLITE_PRAGMAS} (WAL, `synchronous=NORMAL`, 5s busy\n * timeout, and SQLite's own tiny built-in page cache / disabled mmap\n * left untouched). Individual values merge over the defaults; pass\n * `false` to skip pragma configuration entirely and keep the driver\n * defaults (rollback journal, `synchronous=FULL`, and better-sqlite3's\n * own 5s busy timeout from its `timeout` constructor option). Set\n * `cacheSizeKib`/`mmapSizeBytes` explicitly once a database's working\n * set is known to exceed SQLite's 2MiB default cache — otherwise every\n * query pays a fresh disk read per page past that tiny working set. Set\n * `walAutocheckpointPages` explicitly for a bulk-insert-heavy workload —\n * SQLite's own default checkpoints every ~4MiB of WAL growth, which gets\n * more expensive as the database file grows over a large load.\n */\n pragmas?: LocalSqlitePragmaOptions | false;\n\n /**\n * Custom table definitions.\n * Defaults to standard TypeGraph table names.\n */\n tables?: SqliteTables;\n\n /**\n * Override specific backend capabilities — e.g. to simulate an engine-level\n * gap like missing SQL window functions in tests. Forwarded to\n * createSqliteBackend.\n */\n capabilities?: Partial<BackendCapabilities>;\n}>;\n\n/**\n * Result of creating a local SQLite backend.\n */\nexport type LocalSqliteBackendResult = Readonly<{\n /**\n * The GraphBackend instance for use with createStore.\n */\n backend: GraphBackend;\n\n /**\n * The underlying Drizzle database instance.\n * Useful for direct SQL access or cleanup.\n */\n db: BetterSQLite3Database;\n}>;\n\n// ============================================================\n// Factory Function\n// ============================================================\n\n/**\n * Creates a SQLite backend with minimal configuration.\n *\n * This is a convenience function for local development and testing.\n * It handles database creation, schema migration, and backend setup.\n *\n * For production deployments or custom configurations, use createSqliteBackend\n * directly with your own Drizzle database instance.\n *\n * @param options - Configuration options\n * @returns Backend and database instances\n *\n * @example In-memory database (default)\n * ```typescript\n * const { backend } = createLocalSqliteBackend();\n * const store = createStore(graph, backend);\n * ```\n *\n * @example File-based database\n * ```typescript\n * const { backend, db } = createLocalSqliteBackend({ path: \"./data.db\" });\n * const store = createStore(graph, backend);\n * ```\n */\nexport function createLocalSqliteBackend(\n options: LocalSqliteBackendOptions = {},\n): LocalSqliteBackendResult {\n const path = options.path ?? \":memory:\";\n const tables = options.tables ?? defaultTables;\n\n const sqlite = createDatabase(path);\n applyConnectionPragmas(sqlite, options.pragmas);\n\n // Best-effort: load sqlite-vec so embedding fields are persisted to\n // per-`(kind, field)` `vec0` storage. Without it, nodes with\n // `embedding()` fields validate and insert but their vectors are silently\n // dropped. When the user has installed sqlite-vec as a peer dep we load\n // it and wire the strategy; otherwise we proceed without vector support.\n const hasSqliteVec = tryLoadSqliteVec(sqlite);\n\n const db = drizzle(sqlite);\n\n // Generate and execute DDL from schema\n const ddlStatements = generateSqliteDDL(tables);\n for (const statement of ddlStatements) {\n sqlite.exec(statement);\n }\n\n const backend = createSqliteBackend(db, {\n executionProfile: {\n isSync: true,\n },\n tables,\n ...(hasSqliteVec ? { vector: sqliteVecStrategy } : {}),\n capabilities: {\n ...options.capabilities,\n graphAnalytics: {\n supported:\n options.capabilities?.graphAnalytics?.supported ??\n options.capabilities?.transactions !== false,\n mathFunctions:\n options.capabilities?.graphAnalytics?.mathFunctions ?? true,\n },\n },\n });\n const managedBackend = wrapWithManagedClose(backend, () => {\n sqlite.close();\n });\n\n return { backend: managedBackend, db };\n}\n\nfunction tryLoadSqliteVec(sqlite: Database.Database): boolean {\n try {\n // `sqlite-vec` is an optional peer dep; resolved via createRequire so\n // bundlers don't mark it as a hard import. Node resolves the package\n // only when it's actually installed.\n const module_: unknown = nodeRequire(\"sqlite-vec\");\n if (\n typeof module_ === \"object\" &&\n module_ !== null &&\n \"load\" in module_ &&\n typeof module_.load === \"function\"\n ) {\n (module_ as { load: (db: Database.Database) => void }).load(sqlite);\n return true;\n }\n return false;\n } catch {\n return false;\n }\n}\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"local.cjs"}
@@ -1,86 +1,13 @@
1
1
  import { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
2
- import { B as BackendCapabilities, G as GraphBackend } from '../../fulltext-strategy-C27vXaeB.cjs';
3
- import { S as SqliteTables } from '../../sqlite-Pp8O19WE.cjs';
4
- import 'drizzle-orm';
5
- import '../../extension-types-BM2ACfYO.cjs';
2
+ import { B as BackendCapabilities, A as AdapterBackend } from '../../index-CrFL_ENI.cjs';
3
+ import { A as AnySqliteDatabase } from '../../sqlite-execution-DwbE2a9y.cjs';
4
+ import { S as SqliteTables } from '../../sqlite-BDkW39aa.cjs';
5
+ import { L as LocalSqlitePragmaOptions } from '../../local-options-CZ1BnIoF.cjs';
6
+ export { D as DEFAULT_LOCAL_SQLITE_PRAGMAS, a as LocalSqliteJournalMode, b as LocalSqliteSynchronousMode } from '../../local-options-CZ1BnIoF.cjs';
7
+ import '../../extension-types-BLEVH4SG.cjs';
6
8
  import 'zod';
7
- import 'drizzle-orm/pg-core';
8
9
  import 'drizzle-orm/sqlite-core';
9
10
 
10
- /**
11
- * Journal modes accepted by {@link LocalSqlitePragmaOptions.journalMode}.
12
- */
13
- type LocalSqliteJournalMode = "wal" | "delete" | "truncate" | "persist" | "memory" | "off";
14
- /**
15
- * Synchronous levels accepted by {@link LocalSqlitePragmaOptions.synchronous}.
16
- */
17
- type LocalSqliteSynchronousMode = "off" | "normal" | "full" | "extra";
18
- /**
19
- * Connection pragmas the local backend applies when it opens the database.
20
- *
21
- * Values merge over {@link DEFAULT_LOCAL_SQLITE_PRAGMAS}; pass
22
- * `pragmas: false` on {@link LocalSqliteBackendOptions} to leave the
23
- * better-sqlite3 driver defaults untouched.
24
- */
25
- type LocalSqlitePragmaOptions = Readonly<{
26
- /** `PRAGMA journal_mode`. Default: `"wal"` (no-op on `":memory:"`). */
27
- journalMode?: LocalSqliteJournalMode;
28
- /** `PRAGMA synchronous`. Default: `"normal"`. */
29
- synchronous?: LocalSqliteSynchronousMode;
30
- /** `PRAGMA busy_timeout`, in milliseconds. Default: `5000`. */
31
- busyTimeoutMs?: number;
32
- /**
33
- * `PRAGMA cache_size`, in KiB of page cache — must be negative, per
34
- * SQLite's own convention (e.g. `-131072` for 128MiB); a positive value
35
- * means a page *count* instead, not KiB, so it's rejected outright
36
- * rather than silently sizing the cache to something the caller didn't
37
- * intend. Default: `undefined`, meaning SQLite's own built-in default
38
- * (2MiB) is left untouched. Worth raising for any database whose
39
- * working set won't fit in 2MiB — SQLite's default is tuned for small
40
- * embedded use, not for a table that stops fitting in a tiny page
41
- * cache and starts paying a heap-row disk read per candidate row a
42
- * query touches.
43
- */
44
- cacheSizeKib?: number | undefined;
45
- /**
46
- * `PRAGMA mmap_size`, in bytes. Default: `undefined`, meaning SQLite's
47
- * own built-in default (0, i.e. disabled) is left untouched. Memory-maps
48
- * let reads bypass SQLite's own page cache entirely for pages already
49
- * resident in the OS page cache, which helps once the working set
50
- * exceeds `cacheSizeKib` but still fits in available RAM.
51
- */
52
- mmapSizeBytes?: number | undefined;
53
- /**
54
- * `PRAGMA wal_autocheckpoint`, in WAL pages (a no-op unless `journalMode`
55
- * is `"wal"`). Default: `undefined`, meaning SQLite's own built-in
56
- * default (1,000 pages, ~4MiB) is left untouched. Every automatic
57
- * checkpoint that size has to flush WAL frames back into the main
58
- * database file's B-tree — cheap while the file is small, but the cost
59
- * climbs as the file (and the fraction of it *not* resident in the page
60
- * cache) grows, so a database built by one large bulk load pays
61
- * increasingly expensive checkpoints as the load progresses. Raising
62
- * this amortizes checkpoint I/O over far more rows; `0` disables
63
- * automatic checkpointing entirely (the WAL grows unbounded until a
64
- * manual `PRAGMA wal_checkpoint` or the connection closes) for callers
65
- * that would rather run one explicit checkpoint after a bulk load
66
- * finishes than pay checkpoint cost mid-load at all. Worth raising for
67
- * any bulk-insert-heavy workload; leave at the default for a
68
- * normal read/write mix, where a large uncheckpointed WAL just makes
69
- * every read pay a bigger WAL scan.
70
- */
71
- walAutocheckpointPages?: number | undefined;
72
- }>;
73
- /**
74
- * Pragma defaults for connections the local backend owns: WAL journaling
75
- * with `synchronous=NORMAL` (the standard durable-and-fast local-SQLite
76
- * baseline — WAL survives crashes; at NORMAL a power loss can lose the
77
- * final commits but never corrupts), a 5s busy timeout so concurrent
78
- * openers wait for the write lock instead of failing with SQLITE_BUSY, and
79
- * `cacheSizeKib`/`mmapSizeBytes` left `undefined` (SQLite's own tiny
80
- * defaults) since the right size is workload- and host-dependent — set
81
- * them explicitly once the database's working set is known.
82
- */
83
- declare const DEFAULT_LOCAL_SQLITE_PRAGMAS: Required<LocalSqlitePragmaOptions>;
84
11
  /**
85
12
  * Options for creating a local SQLite backend.
86
13
  */
@@ -125,7 +52,7 @@ type LocalSqliteBackendResult = Readonly<{
125
52
  /**
126
53
  * The GraphBackend instance for use with createStore.
127
54
  */
128
- backend: GraphBackend;
55
+ backend: AdapterBackend<AnySqliteDatabase>;
129
56
  /**
130
57
  * The underlying Drizzle database instance.
131
58
  * Useful for direct SQL access or cleanup.
@@ -158,4 +85,4 @@ type LocalSqliteBackendResult = Readonly<{
158
85
  */
159
86
  declare function createLocalSqliteBackend(options?: LocalSqliteBackendOptions): LocalSqliteBackendResult;
160
87
 
161
- export { DEFAULT_LOCAL_SQLITE_PRAGMAS, type LocalSqliteBackendOptions, type LocalSqliteBackendResult, type LocalSqliteJournalMode, type LocalSqlitePragmaOptions, type LocalSqliteSynchronousMode, createLocalSqliteBackend };
88
+ export { AnySqliteDatabase, type LocalSqliteBackendOptions, type LocalSqliteBackendResult, LocalSqlitePragmaOptions, createLocalSqliteBackend };
@@ -1,86 +1,13 @@
1
1
  import { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
2
- import { B as BackendCapabilities, G as GraphBackend } from '../../fulltext-strategy-DebsMrqg.js';
3
- import { S as SqliteTables } from '../../sqlite-BUOHPx7p.js';
4
- import 'drizzle-orm';
5
- import '../../extension-types-BM2ACfYO.js';
2
+ import { B as BackendCapabilities, A as AdapterBackend } from '../../index-Bq7vSPHy.js';
3
+ import { A as AnySqliteDatabase } from '../../sqlite-execution-DwbE2a9y.js';
4
+ import { S as SqliteTables } from '../../sqlite-CYfhvESj.js';
5
+ import { L as LocalSqlitePragmaOptions } from '../../local-options-CZ1BnIoF.js';
6
+ export { D as DEFAULT_LOCAL_SQLITE_PRAGMAS, a as LocalSqliteJournalMode, b as LocalSqliteSynchronousMode } from '../../local-options-CZ1BnIoF.js';
7
+ import '../../extension-types-BLEVH4SG.js';
6
8
  import 'zod';
7
- import 'drizzle-orm/pg-core';
8
9
  import 'drizzle-orm/sqlite-core';
9
10
 
10
- /**
11
- * Journal modes accepted by {@link LocalSqlitePragmaOptions.journalMode}.
12
- */
13
- type LocalSqliteJournalMode = "wal" | "delete" | "truncate" | "persist" | "memory" | "off";
14
- /**
15
- * Synchronous levels accepted by {@link LocalSqlitePragmaOptions.synchronous}.
16
- */
17
- type LocalSqliteSynchronousMode = "off" | "normal" | "full" | "extra";
18
- /**
19
- * Connection pragmas the local backend applies when it opens the database.
20
- *
21
- * Values merge over {@link DEFAULT_LOCAL_SQLITE_PRAGMAS}; pass
22
- * `pragmas: false` on {@link LocalSqliteBackendOptions} to leave the
23
- * better-sqlite3 driver defaults untouched.
24
- */
25
- type LocalSqlitePragmaOptions = Readonly<{
26
- /** `PRAGMA journal_mode`. Default: `"wal"` (no-op on `":memory:"`). */
27
- journalMode?: LocalSqliteJournalMode;
28
- /** `PRAGMA synchronous`. Default: `"normal"`. */
29
- synchronous?: LocalSqliteSynchronousMode;
30
- /** `PRAGMA busy_timeout`, in milliseconds. Default: `5000`. */
31
- busyTimeoutMs?: number;
32
- /**
33
- * `PRAGMA cache_size`, in KiB of page cache — must be negative, per
34
- * SQLite's own convention (e.g. `-131072` for 128MiB); a positive value
35
- * means a page *count* instead, not KiB, so it's rejected outright
36
- * rather than silently sizing the cache to something the caller didn't
37
- * intend. Default: `undefined`, meaning SQLite's own built-in default
38
- * (2MiB) is left untouched. Worth raising for any database whose
39
- * working set won't fit in 2MiB — SQLite's default is tuned for small
40
- * embedded use, not for a table that stops fitting in a tiny page
41
- * cache and starts paying a heap-row disk read per candidate row a
42
- * query touches.
43
- */
44
- cacheSizeKib?: number | undefined;
45
- /**
46
- * `PRAGMA mmap_size`, in bytes. Default: `undefined`, meaning SQLite's
47
- * own built-in default (0, i.e. disabled) is left untouched. Memory-maps
48
- * let reads bypass SQLite's own page cache entirely for pages already
49
- * resident in the OS page cache, which helps once the working set
50
- * exceeds `cacheSizeKib` but still fits in available RAM.
51
- */
52
- mmapSizeBytes?: number | undefined;
53
- /**
54
- * `PRAGMA wal_autocheckpoint`, in WAL pages (a no-op unless `journalMode`
55
- * is `"wal"`). Default: `undefined`, meaning SQLite's own built-in
56
- * default (1,000 pages, ~4MiB) is left untouched. Every automatic
57
- * checkpoint that size has to flush WAL frames back into the main
58
- * database file's B-tree — cheap while the file is small, but the cost
59
- * climbs as the file (and the fraction of it *not* resident in the page
60
- * cache) grows, so a database built by one large bulk load pays
61
- * increasingly expensive checkpoints as the load progresses. Raising
62
- * this amortizes checkpoint I/O over far more rows; `0` disables
63
- * automatic checkpointing entirely (the WAL grows unbounded until a
64
- * manual `PRAGMA wal_checkpoint` or the connection closes) for callers
65
- * that would rather run one explicit checkpoint after a bulk load
66
- * finishes than pay checkpoint cost mid-load at all. Worth raising for
67
- * any bulk-insert-heavy workload; leave at the default for a
68
- * normal read/write mix, where a large uncheckpointed WAL just makes
69
- * every read pay a bigger WAL scan.
70
- */
71
- walAutocheckpointPages?: number | undefined;
72
- }>;
73
- /**
74
- * Pragma defaults for connections the local backend owns: WAL journaling
75
- * with `synchronous=NORMAL` (the standard durable-and-fast local-SQLite
76
- * baseline — WAL survives crashes; at NORMAL a power loss can lose the
77
- * final commits but never corrupts), a 5s busy timeout so concurrent
78
- * openers wait for the write lock instead of failing with SQLITE_BUSY, and
79
- * `cacheSizeKib`/`mmapSizeBytes` left `undefined` (SQLite's own tiny
80
- * defaults) since the right size is workload- and host-dependent — set
81
- * them explicitly once the database's working set is known.
82
- */
83
- declare const DEFAULT_LOCAL_SQLITE_PRAGMAS: Required<LocalSqlitePragmaOptions>;
84
11
  /**
85
12
  * Options for creating a local SQLite backend.
86
13
  */
@@ -125,7 +52,7 @@ type LocalSqliteBackendResult = Readonly<{
125
52
  /**
126
53
  * The GraphBackend instance for use with createStore.
127
54
  */
128
- backend: GraphBackend;
55
+ backend: AdapterBackend<AnySqliteDatabase>;
129
56
  /**
130
57
  * The underlying Drizzle database instance.
131
58
  * Useful for direct SQL access or cleanup.
@@ -158,4 +85,4 @@ type LocalSqliteBackendResult = Readonly<{
158
85
  */
159
86
  declare function createLocalSqliteBackend(options?: LocalSqliteBackendOptions): LocalSqliteBackendResult;
160
87
 
161
- export { DEFAULT_LOCAL_SQLITE_PRAGMAS, type LocalSqliteBackendOptions, type LocalSqliteBackendResult, type LocalSqliteJournalMode, type LocalSqlitePragmaOptions, type LocalSqliteSynchronousMode, createLocalSqliteBackend };
88
+ export { AnySqliteDatabase, type LocalSqliteBackendOptions, type LocalSqliteBackendResult, LocalSqlitePragmaOptions, createLocalSqliteBackend };