@nicia-ai/typegraph 0.65.0 → 0.66.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 (196) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{atomic-mutation-program-BznZQ06C.d.ts → atomic-mutation-program-BhP75Qn0.d.ts} +1 -1
  3. package/dist/{atomic-mutation-program-Bfu5z-je.d.cts → atomic-mutation-program-DMdmc4s0.d.cts} +1 -1
  4. package/dist/backend/drizzle/engine/index.cjs +13 -13
  5. package/dist/backend/drizzle/engine/index.d.cts +9 -9
  6. package/dist/backend/drizzle/engine/index.d.ts +9 -9
  7. package/dist/backend/drizzle/engine/index.js +8 -8
  8. package/dist/backend/drizzle/indexes.d.cts +1 -1
  9. package/dist/backend/drizzle/indexes.d.ts +1 -1
  10. package/dist/backend/index.cjs +91 -91
  11. package/dist/backend/index.d.cts +7 -7
  12. package/dist/backend/index.d.ts +7 -7
  13. package/dist/backend/index.js +8 -8
  14. package/dist/backend/postgres/index.cjs +23 -23
  15. package/dist/backend/postgres/index.d.cts +8 -8
  16. package/dist/backend/postgres/index.d.ts +8 -8
  17. package/dist/backend/postgres/index.js +8 -8
  18. package/dist/backend/postgres/pglite-store.cjs +1 -1
  19. package/dist/backend/postgres/pglite-store.d.cts +6 -6
  20. package/dist/backend/postgres/pglite-store.d.ts +6 -6
  21. package/dist/backend/postgres/pglite-store.js +1 -1
  22. package/dist/backend/postgres/pglite.cjs +10 -10
  23. package/dist/backend/postgres/pglite.d.cts +3 -3
  24. package/dist/backend/postgres/pglite.d.ts +3 -3
  25. package/dist/backend/postgres/pglite.js +9 -9
  26. package/dist/backend/sqlite/index.cjs +21 -21
  27. package/dist/backend/sqlite/index.d.cts +7 -7
  28. package/dist/backend/sqlite/index.d.ts +7 -7
  29. package/dist/backend/sqlite/index.js +8 -8
  30. package/dist/backend/sqlite/libsql.cjs +14 -14
  31. package/dist/backend/sqlite/libsql.d.cts +3 -3
  32. package/dist/backend/sqlite/libsql.d.ts +3 -3
  33. package/dist/backend/sqlite/libsql.js +8 -8
  34. package/dist/backend/sqlite/local-store.cjs +1 -1
  35. package/dist/backend/sqlite/local-store.d.cts +6 -6
  36. package/dist/backend/sqlite/local-store.d.ts +6 -6
  37. package/dist/backend/sqlite/local-store.js +1 -1
  38. package/dist/backend/sqlite/local.cjs +10 -10
  39. package/dist/backend/sqlite/local.d.cts +3 -3
  40. package/dist/backend/sqlite/local.d.ts +3 -3
  41. package/dist/backend/sqlite/local.js +9 -9
  42. package/dist/{chunk-337ONI2I.js → chunk-3SUZXB5X.js} +146 -80
  43. package/dist/chunk-3SUZXB5X.js.map +1 -0
  44. package/dist/{chunk-4VTCIEK3.js → chunk-4TQOIBWH.js} +3 -3
  45. package/dist/{chunk-4VTCIEK3.js.map → chunk-4TQOIBWH.js.map} +1 -1
  46. package/dist/{chunk-JRWKRBI5.cjs → chunk-5JOCIMQ3.cjs} +6 -6
  47. package/dist/{chunk-JRWKRBI5.cjs.map → chunk-5JOCIMQ3.cjs.map} +1 -1
  48. package/dist/{chunk-BWQA3POT.cjs → chunk-6B3LQUYG.cjs} +206 -138
  49. package/dist/chunk-6B3LQUYG.cjs.map +1 -0
  50. package/dist/{chunk-RQPCUHIH.js → chunk-6ECNYQDW.js} +3 -3
  51. package/dist/{chunk-RQPCUHIH.js.map → chunk-6ECNYQDW.js.map} +1 -1
  52. package/dist/{chunk-OLB75LRQ.js → chunk-6GKKAQMW.js} +5 -5
  53. package/dist/{chunk-OLB75LRQ.js.map → chunk-6GKKAQMW.js.map} +1 -1
  54. package/dist/{chunk-OC5ROP7V.cjs → chunk-6JRVV2SS.cjs} +8 -2
  55. package/dist/chunk-6JRVV2SS.cjs.map +1 -0
  56. package/dist/{chunk-JERQGJKG.cjs → chunk-732VS5PW.cjs} +18 -18
  57. package/dist/{chunk-JERQGJKG.cjs.map → chunk-732VS5PW.cjs.map} +1 -1
  58. package/dist/{chunk-DSX3P4S5.cjs → chunk-76OB5RSH.cjs} +6 -6
  59. package/dist/{chunk-DSX3P4S5.cjs.map → chunk-76OB5RSH.cjs.map} +1 -1
  60. package/dist/{chunk-DHRLOQLQ.cjs → chunk-7LQTDGV5.cjs} +11 -11
  61. package/dist/{chunk-DHRLOQLQ.cjs.map → chunk-7LQTDGV5.cjs.map} +1 -1
  62. package/dist/{chunk-Q25QYSOH.js → chunk-7YJHUY4T.js} +9 -9
  63. package/dist/{chunk-Q25QYSOH.js.map → chunk-7YJHUY4T.js.map} +1 -1
  64. package/dist/{chunk-BBOMNH44.js → chunk-BABP4D5B.js} +3 -3
  65. package/dist/{chunk-BBOMNH44.js.map → chunk-BABP4D5B.js.map} +1 -1
  66. package/dist/{chunk-EVGZ2TRQ.js → chunk-BE75G3M5.js} +3 -3
  67. package/dist/{chunk-EVGZ2TRQ.js.map → chunk-BE75G3M5.js.map} +1 -1
  68. package/dist/{chunk-FXGZT3WO.cjs → chunk-BX42F7IJ.cjs} +41 -41
  69. package/dist/{chunk-FXGZT3WO.cjs.map → chunk-BX42F7IJ.cjs.map} +1 -1
  70. package/dist/{chunk-VROJKWZ7.js → chunk-C3HNC3S6.js} +5 -5
  71. package/dist/{chunk-VROJKWZ7.js.map → chunk-C3HNC3S6.js.map} +1 -1
  72. package/dist/{chunk-G6T23JU7.js → chunk-CDKNGCE7.js} +3 -3
  73. package/dist/{chunk-G6T23JU7.js.map → chunk-CDKNGCE7.js.map} +1 -1
  74. package/dist/{chunk-BNTJ5YFO.cjs → chunk-EACDHXJL.cjs} +4 -4
  75. package/dist/{chunk-BNTJ5YFO.cjs.map → chunk-EACDHXJL.cjs.map} +1 -1
  76. package/dist/{chunk-SNDJUTMB.cjs → chunk-EBQX7MYL.cjs} +72 -72
  77. package/dist/{chunk-SNDJUTMB.cjs.map → chunk-EBQX7MYL.cjs.map} +1 -1
  78. package/dist/{chunk-GKSAEUX6.js → chunk-FXOFJ4FS.js} +7 -7
  79. package/dist/{chunk-GKSAEUX6.js.map → chunk-FXOFJ4FS.js.map} +1 -1
  80. package/dist/{chunk-ZOWRACZQ.cjs → chunk-G7OKJDMG.cjs} +5 -5
  81. package/dist/{chunk-ZOWRACZQ.cjs.map → chunk-G7OKJDMG.cjs.map} +1 -1
  82. package/dist/{chunk-VZRXXABW.js → chunk-HSLP6CVG.js} +5 -5
  83. package/dist/{chunk-VZRXXABW.js.map → chunk-HSLP6CVG.js.map} +1 -1
  84. package/dist/{chunk-MKJPBSID.cjs → chunk-I7SBZJI2.cjs} +4 -4
  85. package/dist/{chunk-MKJPBSID.cjs.map → chunk-I7SBZJI2.cjs.map} +1 -1
  86. package/dist/{chunk-H346QK3V.cjs → chunk-K7YACILO.cjs} +9 -9
  87. package/dist/{chunk-H346QK3V.cjs.map → chunk-K7YACILO.cjs.map} +1 -1
  88. package/dist/{chunk-L2GBVYRU.cjs → chunk-MGCPSR4C.cjs} +11 -11
  89. package/dist/{chunk-L2GBVYRU.cjs.map → chunk-MGCPSR4C.cjs.map} +1 -1
  90. package/dist/{chunk-KDNRACRG.cjs → chunk-MRUOOAIQ.cjs} +4 -4
  91. package/dist/{chunk-KDNRACRG.cjs.map → chunk-MRUOOAIQ.cjs.map} +1 -1
  92. package/dist/{chunk-PFXNQFFY.js → chunk-MUEPEWMQ.js} +67 -8
  93. package/dist/chunk-MUEPEWMQ.js.map +1 -0
  94. package/dist/{chunk-HTSJTWUT.js → chunk-OF63ZHSD.js} +4 -4
  95. package/dist/{chunk-HTSJTWUT.js.map → chunk-OF63ZHSD.js.map} +1 -1
  96. package/dist/{chunk-NGA3THGU.cjs → chunk-QR7W37HG.cjs} +14 -14
  97. package/dist/{chunk-NGA3THGU.cjs.map → chunk-QR7W37HG.cjs.map} +1 -1
  98. package/dist/{chunk-QFEO4M5W.js → chunk-RTPMG6LQ.js} +11 -11
  99. package/dist/{chunk-QFEO4M5W.js.map → chunk-RTPMG6LQ.js.map} +1 -1
  100. package/dist/{chunk-PFD4NUYV.js → chunk-SSDHR2C2.js} +3 -3
  101. package/dist/{chunk-PFD4NUYV.js.map → chunk-SSDHR2C2.js.map} +1 -1
  102. package/dist/{chunk-THK3SCQA.js → chunk-SYXTWPX6.js} +5 -5
  103. package/dist/{chunk-THK3SCQA.js.map → chunk-SYXTWPX6.js.map} +1 -1
  104. package/dist/{chunk-XSLQYGNR.cjs → chunk-T3VU3YRQ.cjs} +69 -69
  105. package/dist/{chunk-XSLQYGNR.cjs.map → chunk-T3VU3YRQ.cjs.map} +1 -1
  106. package/dist/{chunk-MIBWA6HX.js → chunk-TR7QTODF.js} +213 -33
  107. package/dist/chunk-TR7QTODF.js.map +1 -0
  108. package/dist/{chunk-AD3NLSV5.js → chunk-TU22BFMP.js} +8 -2
  109. package/dist/chunk-TU22BFMP.js.map +1 -0
  110. package/dist/{chunk-WTMSUIRO.js → chunk-UFKYMQJ5.js} +3 -3
  111. package/dist/{chunk-WTMSUIRO.js.map → chunk-UFKYMQJ5.js.map} +1 -1
  112. package/dist/{chunk-35LDKSMM.cjs → chunk-VNJMM2QQ.cjs} +30 -30
  113. package/dist/{chunk-35LDKSMM.cjs.map → chunk-VNJMM2QQ.cjs.map} +1 -1
  114. package/dist/{chunk-53ZEBIMD.js → chunk-WB55URNM.js} +6 -6
  115. package/dist/{chunk-53ZEBIMD.js.map → chunk-WB55URNM.js.map} +1 -1
  116. package/dist/{chunk-D2JPOFRZ.cjs → chunk-WY3IFEKV.cjs} +191 -191
  117. package/dist/{chunk-D2JPOFRZ.cjs.map → chunk-WY3IFEKV.cjs.map} +1 -1
  118. package/dist/{chunk-3KWF25MF.cjs → chunk-XQNKN3UF.cjs} +305 -246
  119. package/dist/chunk-XQNKN3UF.cjs.map +1 -0
  120. package/dist/{chunk-3RSFLZ7A.cjs → chunk-Y4X6ODVY.cjs} +943 -763
  121. package/dist/chunk-Y4X6ODVY.cjs.map +1 -0
  122. package/dist/core/index.d.cts +3 -3
  123. package/dist/core/index.d.ts +3 -3
  124. package/dist/{ddl-DvW9aobX.d.ts → ddl-2q7xLM1X.d.ts} +3 -3
  125. package/dist/{ddl-BjuXbPfw.d.cts → ddl-D_09BfbN.d.cts} +3 -3
  126. package/dist/graph-extension/index.d.cts +2 -2
  127. package/dist/graph-extension/index.d.ts +2 -2
  128. package/dist/graph-merge/index.cjs +156 -156
  129. package/dist/graph-merge/index.d.cts +7 -7
  130. package/dist/graph-merge/index.d.ts +7 -7
  131. package/dist/graph-merge/index.js +14 -14
  132. package/dist/{graph-templates-1vMqlPsu.d.cts → graph-templates-B5Q7oYAA.d.cts} +2 -2
  133. package/dist/{graph-templates-Y52w16dH.d.ts → graph-templates-D9N-Z9kw.d.ts} +2 -2
  134. package/dist/index.cjs +99 -99
  135. package/dist/index.d.cts +10 -10
  136. package/dist/index.d.ts +10 -10
  137. package/dist/index.js +18 -18
  138. package/dist/indexes/index.d.cts +4 -4
  139. package/dist/indexes/index.d.ts +4 -4
  140. package/dist/{ingestion-import-target-CCKeXZbW.d.ts → ingestion-import-target-B8EU6ug2.d.ts} +1 -1
  141. package/dist/{ingestion-import-target-774QRgkF.d.cts → ingestion-import-target-C5sHNFJF.d.cts} +1 -1
  142. package/dist/interchange/index.cjs +34 -34
  143. package/dist/interchange/index.d.cts +7 -7
  144. package/dist/interchange/index.d.ts +7 -7
  145. package/dist/interchange/index.js +11 -11
  146. package/dist/{local-store-impl-3E4VLFCI.cjs → local-store-impl-J6TJG45N.cjs} +22 -22
  147. package/dist/{local-store-impl-3E4VLFCI.cjs.map → local-store-impl-J6TJG45N.cjs.map} +1 -1
  148. package/dist/{local-store-impl-DFKS7QTV.js → local-store-impl-XKWR46WQ.js} +18 -18
  149. package/dist/{local-store-impl-DFKS7QTV.js.map → local-store-impl-XKWR46WQ.js.map} +1 -1
  150. package/dist/{pglite-store-impl-T75O3LVQ.cjs → pglite-store-impl-KXD5VWC5.cjs} +22 -22
  151. package/dist/{pglite-store-impl-T75O3LVQ.cjs.map → pglite-store-impl-KXD5VWC5.cjs.map} +1 -1
  152. package/dist/{pglite-store-impl-N63GGBU2.js → pglite-store-impl-LRZ4TO3H.js} +18 -18
  153. package/dist/{pglite-store-impl-N63GGBU2.js.map → pglite-store-impl-LRZ4TO3H.js.map} +1 -1
  154. package/dist/{postgres-2FYdVYCm.d.cts → postgres-BIm6TDfF.d.cts} +3 -3
  155. package/dist/{postgres-C9gitL71.d.ts → postgres-CRRB2qzy.d.ts} +3 -3
  156. package/dist/{postgres-BONrXHb4.d.cts → postgres-DOBXcZVg.d.cts} +1 -1
  157. package/dist/{postgres-DAFRdnTr.d.ts → postgres-DhZixg92.d.ts} +1 -1
  158. package/dist/{profile-Bmcg07Ki.d.cts → profile-CjAffcQt.d.cts} +2 -2
  159. package/dist/{profile-CAD65CqS.d.ts → profile-DVd70NA-.d.ts} +2 -2
  160. package/dist/profiler/index.d.cts +8 -8
  161. package/dist/profiler/index.d.ts +8 -8
  162. package/dist/provenance/index.cjs +22 -22
  163. package/dist/provenance/index.d.cts +6 -6
  164. package/dist/provenance/index.d.ts +6 -6
  165. package/dist/provenance/index.js +6 -6
  166. package/dist/{repair-validity-windows-CinP91t7.d.cts → repair-validity-windows-CpP_GpIx.d.cts} +1 -1
  167. package/dist/{repair-validity-windows-BJz4nffP.d.ts → repair-validity-windows-lfe275bY.d.ts} +1 -1
  168. package/dist/{resolve-DgOSlXx_.d.ts → resolve-CoYqHqno.d.cts} +7 -2
  169. package/dist/{resolve-DQXSEN_A.d.cts → resolve-DV0Iposp.d.ts} +7 -2
  170. package/dist/schema/index.cjs +37 -37
  171. package/dist/schema/index.d.cts +7 -7
  172. package/dist/schema/index.d.ts +7 -7
  173. package/dist/schema/index.js +7 -7
  174. package/dist/{searchable-DMdCwkXO.d.cts → searchable-C7Xt6g45.d.cts} +1 -1
  175. package/dist/{searchable-BPRF0Bah.d.ts → searchable-KKXrPet3.d.ts} +1 -1
  176. package/dist/{sqlite-DcDAAYow.d.ts → sqlite-BNwQ5pd7.d.ts} +3 -3
  177. package/dist/{sqlite-DgbYa-1Y.d.cts → sqlite-BkQM9ZeI.d.cts} +1 -1
  178. package/dist/{sqlite-UlG5prJQ.d.ts → sqlite-CcCSeXGg.d.ts} +1 -1
  179. package/dist/{sqlite-Co_uIpfs.d.cts → sqlite-DX9H3L7z.d.cts} +3 -3
  180. package/dist/{store-HxoFyQMu.d.cts → store-3nfPQK5j.d.cts} +30 -7
  181. package/dist/{store-C9T1c9Az.d.ts → store-C8ZPl7OW.d.ts} +30 -7
  182. package/dist/{types-CRCyg1fJ.d.cts → types-BynPp5kU.d.cts} +18 -2
  183. package/dist/{types-CRCyg1fJ.d.ts → types-BynPp5kU.d.ts} +18 -2
  184. package/dist/{types-Dg_prBqC.d.ts → types-C9YwrkSe.d.ts} +1 -1
  185. package/dist/{types-B5AUesS1.d.cts → types-JG-4CG6P.d.cts} +1 -1
  186. package/dist/{where-gRyc3jj_.d.cts → where-D1gBDqQ_.d.cts} +1 -1
  187. package/dist/{where-D-NDKMPw.d.ts → where-D2GqMFp-.d.ts} +1 -1
  188. package/package.json +1 -1
  189. package/dist/chunk-337ONI2I.js.map +0 -1
  190. package/dist/chunk-3KWF25MF.cjs.map +0 -1
  191. package/dist/chunk-3RSFLZ7A.cjs.map +0 -1
  192. package/dist/chunk-AD3NLSV5.js.map +0 -1
  193. package/dist/chunk-BWQA3POT.cjs.map +0 -1
  194. package/dist/chunk-MIBWA6HX.js.map +0 -1
  195. package/dist/chunk-OC5ROP7V.cjs.map +0 -1
  196. package/dist/chunk-PFXNQFFY.js.map +0 -1
@@ -1,14 +1,14 @@
1
- export { createSqliteBackend, createSqliteTables, edgeClaims2 as edgeClaims, edges2 as edges, generateSqliteDDL, generateSqliteMigrationSQL, nodes2 as nodes, recordedClock2 as recordedClock, recordedEdges2 as recordedEdges, recordedNodes2 as recordedNodes, schemaVersions2 as schemaVersions, tables2 as tables, uniques2 as uniques } from '../../chunk-PFXNQFFY.js';
1
+ export { createSqliteBackend, createSqliteTables, edgeClaims2 as edgeClaims, edges2 as edges, generateSqliteDDL, generateSqliteMigrationSQL, nodes2 as nodes, recordedClock2 as recordedClock, recordedEdges2 as recordedEdges, recordedNodes2 as recordedNodes, schemaVersions2 as schemaVersions, tables2 as tables, uniques2 as uniques } from '../../chunk-MUEPEWMQ.js';
2
2
  import '../../chunk-DX6DIU2S.js';
3
3
  import '../../chunk-D2DMFIH2.js';
4
- import '../../chunk-HTSJTWUT.js';
5
- import '../../chunk-BBOMNH44.js';
6
- import '../../chunk-RQPCUHIH.js';
7
- import '../../chunk-G6T23JU7.js';
8
- import '../../chunk-WTMSUIRO.js';
4
+ import '../../chunk-OF63ZHSD.js';
5
+ import '../../chunk-BABP4D5B.js';
6
+ import '../../chunk-6ECNYQDW.js';
7
+ import '../../chunk-CDKNGCE7.js';
8
+ import '../../chunk-UFKYMQJ5.js';
9
9
  import '../../chunk-RFMSZ7CF.js';
10
- import '../../chunk-4VTCIEK3.js';
11
- import '../../chunk-AD3NLSV5.js';
10
+ import '../../chunk-4TQOIBWH.js';
11
+ import '../../chunk-TU22BFMP.js';
12
12
  import '../../chunk-OXJNL2PW.js';
13
13
  import '../../chunk-CY657YYY.js';
14
14
  import '../../chunk-5PP537D7.js';
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunk3KWF25MF_cjs = require('../../chunk-3KWF25MF.cjs');
3
+ var chunkXQNKN3UF_cjs = require('../../chunk-XQNKN3UF.cjs');
4
4
  require('../../chunk-DCYIUKIM.cjs');
5
5
  var chunkCBH7KZOS_cjs = require('../../chunk-CBH7KZOS.cjs');
6
6
  require('../../chunk-FZKXBPTS.cjs');
7
- require('../../chunk-DSX3P4S5.cjs');
8
- require('../../chunk-BNTJ5YFO.cjs');
9
- require('../../chunk-MKJPBSID.cjs');
10
- require('../../chunk-ZOWRACZQ.cjs');
11
- require('../../chunk-KDNRACRG.cjs');
7
+ require('../../chunk-76OB5RSH.cjs');
8
+ require('../../chunk-EACDHXJL.cjs');
9
+ require('../../chunk-I7SBZJI2.cjs');
10
+ require('../../chunk-G7OKJDMG.cjs');
11
+ require('../../chunk-MRUOOAIQ.cjs');
12
12
  require('../../chunk-6YKISECL.cjs');
13
- require('../../chunk-JRWKRBI5.cjs');
14
- var chunkOC5ROP7V_cjs = require('../../chunk-OC5ROP7V.cjs');
13
+ require('../../chunk-5JOCIMQ3.cjs');
14
+ var chunk6JRVV2SS_cjs = require('../../chunk-6JRVV2SS.cjs');
15
15
  require('../../chunk-5ICDVLI3.cjs');
16
16
  require('../../chunk-L4L4AV6F.cjs');
17
17
  require('../../chunk-AHUN2DLL.cjs');
@@ -33,34 +33,34 @@ var chunk7XYPLAPL_cjs = require('../../chunk-7XYPLAPL.cjs');
33
33
  var libsql = require('drizzle-orm/libsql');
34
34
 
35
35
  async function installLibsqlBaseSchema(client, tables2, backend) {
36
- const installationSql = chunk3KWF25MF_cjs.generateSqliteMigrationSQL(tables2);
36
+ const installationSql = chunkXQNKN3UF_cjs.generateSqliteMigrationSQL(tables2);
37
37
  try {
38
38
  await client.executeMultiple(installationSql);
39
39
  await chunkBXHAPCQG_cjs.requireDefined(backend.assertBaseSchemaCurrent)();
40
40
  } catch (error) {
41
- const requiresLifecycleAdoption = chunkOC5ROP7V_cjs.isSqliteMissingEdgeMatchIdentityColumnError(error) || error instanceof chunk7XYPLAPL_cjs.BaseSchemaMigrationError && error.details.reason !== "newer";
41
+ const requiresLifecycleAdoption = chunk6JRVV2SS_cjs.isSqliteMissingEdgeMatchIdentityColumnError(error) || error instanceof chunk7XYPLAPL_cjs.BaseSchemaMigrationError && error.details.reason !== "newer";
42
42
  if (!requiresLifecycleAdoption) throw error;
43
43
  await chunkBXHAPCQG_cjs.requireDefined(backend.bootstrapTables)();
44
44
  }
45
45
  }
46
46
  async function detectOrderedAggregates(client) {
47
47
  try {
48
- await client.execute(chunk3KWF25MF_cjs.ORDERED_AGGREGATE_PROBE_SQL);
48
+ await client.execute(chunkXQNKN3UF_cjs.ORDERED_AGGREGATE_PROBE_SQL);
49
49
  return true;
50
50
  } catch {
51
51
  return false;
52
52
  }
53
53
  }
54
54
  async function createLibsqlBackend(client, options = {}) {
55
- const tables2 = options.tables ?? chunk3KWF25MF_cjs.tables2;
55
+ const tables2 = options.tables ?? chunkXQNKN3UF_cjs.tables2;
56
56
  const db = libsql.drizzle(client);
57
57
  const orderedAggregates = await detectOrderedAggregates(client);
58
- const backend = chunk3KWF25MF_cjs.createSqliteBackend(db, {
58
+ const backend = chunkXQNKN3UF_cjs.createSqliteBackend(db, {
59
59
  ...options.schemaProvisioning === void 0 ? {} : { schemaProvisioning: options.schemaProvisioning },
60
60
  capabilities: { orderedAggregates },
61
61
  executionProfile: {
62
62
  isSync: false,
63
- transactionMode: chunk3KWF25MF_cjs.isLocalLibsqlClient(client) ? "sql" : "drizzle"
63
+ transactionMode: chunkXQNKN3UF_cjs.isLocalLibsqlClient(client) ? "sql" : "drizzle"
64
64
  },
65
65
  tables: tables2,
66
66
  // libSQL ships native vector search in core — no extension to load —
@@ -1,9 +1,9 @@
1
1
  import { Client } from '@libsql/client';
2
2
  import { LibSQLDatabase } from 'drizzle-orm/libsql';
3
- import { S as SchemaProvisioning, A as AdapterBackend } from '../../types-CRCyg1fJ.cjs';
4
- export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-CRCyg1fJ.cjs';
3
+ import { S as SchemaProvisioning, A as AdapterBackend } from '../../types-BynPp5kU.cjs';
4
+ export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-BynPp5kU.cjs';
5
5
  import { A as AnySqliteDatabase } from '../../sqlite-execution-DHenxnsc.cjs';
6
- import { a as SqliteTables } from '../../sqlite-DgbYa-1Y.cjs';
6
+ import { a as SqliteTables } from '../../sqlite-BkQM9ZeI.cjs';
7
7
  import 'zod';
8
8
  import 'drizzle-orm/sqlite-core';
9
9
 
@@ -1,9 +1,9 @@
1
1
  import { Client } from '@libsql/client';
2
2
  import { LibSQLDatabase } from 'drizzle-orm/libsql';
3
- import { S as SchemaProvisioning, A as AdapterBackend } from '../../types-CRCyg1fJ.js';
4
- export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-CRCyg1fJ.js';
3
+ import { S as SchemaProvisioning, A as AdapterBackend } from '../../types-BynPp5kU.js';
4
+ export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-BynPp5kU.js';
5
5
  import { A as AnySqliteDatabase } from '../../sqlite-execution-DHenxnsc.js';
6
- import { a as SqliteTables } from '../../sqlite-UlG5prJQ.js';
6
+ import { a as SqliteTables } from '../../sqlite-CcCSeXGg.js';
7
7
  import 'zod';
8
8
  import 'drizzle-orm/sqlite-core';
9
9
 
@@ -1,15 +1,15 @@
1
- import { tables2, createSqliteBackend, isLocalLibsqlClient, ORDERED_AGGREGATE_PROBE_SQL, generateSqliteMigrationSQL } from '../../chunk-PFXNQFFY.js';
1
+ import { tables2, createSqliteBackend, isLocalLibsqlClient, ORDERED_AGGREGATE_PROBE_SQL, generateSqliteMigrationSQL } from '../../chunk-MUEPEWMQ.js';
2
2
  import '../../chunk-DX6DIU2S.js';
3
3
  import { libsqlVectorStrategy } from '../../chunk-ZL67ENQW.js';
4
4
  import '../../chunk-D2DMFIH2.js';
5
- import '../../chunk-HTSJTWUT.js';
6
- import '../../chunk-BBOMNH44.js';
7
- import '../../chunk-RQPCUHIH.js';
8
- import '../../chunk-G6T23JU7.js';
9
- import '../../chunk-WTMSUIRO.js';
5
+ import '../../chunk-OF63ZHSD.js';
6
+ import '../../chunk-BABP4D5B.js';
7
+ import '../../chunk-6ECNYQDW.js';
8
+ import '../../chunk-CDKNGCE7.js';
9
+ import '../../chunk-UFKYMQJ5.js';
10
10
  import '../../chunk-RFMSZ7CF.js';
11
- import '../../chunk-4VTCIEK3.js';
12
- import { isSqliteMissingEdgeMatchIdentityColumnError } from '../../chunk-AD3NLSV5.js';
11
+ import '../../chunk-4TQOIBWH.js';
12
+ import { isSqliteMissingEdgeMatchIdentityColumnError } from '../../chunk-TU22BFMP.js';
13
13
  import '../../chunk-OXJNL2PW.js';
14
14
  import '../../chunk-CY657YYY.js';
15
15
  import '../../chunk-5PP537D7.js';
@@ -8,7 +8,7 @@ require('../../chunk-7XYPLAPL.cjs');
8
8
  async function createLocalSqliteStore(graph, options = {}) {
9
9
  const impl = await chunkMUKIEXH5_cjs.loadDrizzleBackedModule(
10
10
  "./sqlite/local",
11
- () => import('../../local-store-impl-3E4VLFCI.cjs')
11
+ () => import('../../local-store-impl-J6TJG45N.cjs')
12
12
  );
13
13
  return impl.createLocalSqliteStoreImpl(graph, options);
14
14
  }
@@ -1,12 +1,12 @@
1
- import { B as BundledBackendCapabilityOverrides, d as FulltextStrategy, e as GraphDef } from '../../types-CRCyg1fJ.cjs';
2
- export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-CRCyg1fJ.cjs';
3
- import { S as StoreOptions, a as SchemaManagerOptions, U as UnboundLiveStoreOptions, b as Store, H as HistoryStoreOptions, c as HistoryStore, R as RecordedReadStoreOptions, d as RecordedReadStore, L as LiveStoreOptions } from '../../store-HxoFyQMu.cjs';
4
- export { I as IdentityAssertion, e as IdentityAssertionId, f as IdentityAssertionResult, g as IdentityFacade, h as IdentityNode, i as IdentityNodeRefInput, j as IdentityPair, k as IdentityReadFacade, l as IdentityRelation, m as IdentityWriteSummary } from '../../store-HxoFyQMu.cjs';
1
+ import { B as BundledBackendCapabilityOverrides, d as FulltextStrategy, e as GraphDef } from '../../types-BynPp5kU.cjs';
2
+ export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-BynPp5kU.cjs';
3
+ import { S as StoreOptions, a as SchemaManagerOptions, U as UnboundLiveStoreOptions, b as Store, H as HistoryStoreOptions, c as HistoryStore, R as RecordedReadStoreOptions, d as RecordedReadStore, L as LiveStoreOptions } from '../../store-3nfPQK5j.cjs';
4
+ export { I as IdentityAssertion, e as IdentityAssertionId, f as IdentityAssertionResult, g as IdentityFacade, h as IdentityNode, i as IdentityNodeRefInput, j as IdentityPair, k as IdentityReadFacade, l as IdentityRelation, m as IdentityWriteSummary } from '../../store-3nfPQK5j.cjs';
5
5
  import { L as LocalSqlitePragmaOptions } from '../../local-options-CZ1BnIoF.cjs';
6
6
  export { D as DEFAULT_LOCAL_SQLITE_PRAGMAS, a as LocalSqliteJournalMode, b as LocalSqliteSynchronousMode } from '../../local-options-CZ1BnIoF.cjs';
7
7
  import 'zod';
8
- import '../../searchable-DMdCwkXO.cjs';
9
- import '../../resolve-DQXSEN_A.cjs';
8
+ import '../../searchable-C7Xt6g45.cjs';
9
+ import '../../resolve-CoYqHqno.cjs';
10
10
 
11
11
  /**
12
12
  * Batteries-included local SQLite Store for strict TypeScript consumers.
@@ -1,12 +1,12 @@
1
- import { B as BundledBackendCapabilityOverrides, d as FulltextStrategy, e as GraphDef } from '../../types-CRCyg1fJ.js';
2
- export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-CRCyg1fJ.js';
3
- import { S as StoreOptions, a as SchemaManagerOptions, U as UnboundLiveStoreOptions, b as Store, H as HistoryStoreOptions, c as HistoryStore, R as RecordedReadStoreOptions, d as RecordedReadStore, L as LiveStoreOptions } from '../../store-C9T1c9Az.js';
4
- export { I as IdentityAssertion, e as IdentityAssertionId, f as IdentityAssertionResult, g as IdentityFacade, h as IdentityNode, i as IdentityNodeRefInput, j as IdentityPair, k as IdentityReadFacade, l as IdentityRelation, m as IdentityWriteSummary } from '../../store-C9T1c9Az.js';
1
+ import { B as BundledBackendCapabilityOverrides, d as FulltextStrategy, e as GraphDef } from '../../types-BynPp5kU.js';
2
+ export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-BynPp5kU.js';
3
+ import { S as StoreOptions, a as SchemaManagerOptions, U as UnboundLiveStoreOptions, b as Store, H as HistoryStoreOptions, c as HistoryStore, R as RecordedReadStoreOptions, d as RecordedReadStore, L as LiveStoreOptions } from '../../store-C8ZPl7OW.js';
4
+ export { I as IdentityAssertion, e as IdentityAssertionId, f as IdentityAssertionResult, g as IdentityFacade, h as IdentityNode, i as IdentityNodeRefInput, j as IdentityPair, k as IdentityReadFacade, l as IdentityRelation, m as IdentityWriteSummary } from '../../store-C8ZPl7OW.js';
5
5
  import { L as LocalSqlitePragmaOptions } from '../../local-options-CZ1BnIoF.js';
6
6
  export { D as DEFAULT_LOCAL_SQLITE_PRAGMAS, a as LocalSqliteJournalMode, b as LocalSqliteSynchronousMode } from '../../local-options-CZ1BnIoF.js';
7
7
  import 'zod';
8
- import '../../searchable-BPRF0Bah.js';
9
- import '../../resolve-DgOSlXx_.js';
8
+ import '../../searchable-KKXrPet3.js';
9
+ import '../../resolve-DV0Iposp.js';
10
10
 
11
11
  /**
12
12
  * Batteries-included local SQLite Store for strict TypeScript consumers.
@@ -6,7 +6,7 @@ import '../../chunk-GMKPIYHY.js';
6
6
  async function createLocalSqliteStore(graph, options = {}) {
7
7
  const impl = await loadDrizzleBackedModule(
8
8
  "./sqlite/local",
9
- () => import('../../local-store-impl-DFKS7QTV.js')
9
+ () => import('../../local-store-impl-XKWR46WQ.js')
10
10
  );
11
11
  return impl.createLocalSqliteStoreImpl(graph, options);
12
12
  }
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var chunkJERQGJKG_cjs = require('../../chunk-JERQGJKG.cjs');
3
+ var chunk732VS5PW_cjs = require('../../chunk-732VS5PW.cjs');
4
4
  var chunkQCD5JKU4_cjs = require('../../chunk-QCD5JKU4.cjs');
5
- require('../../chunk-3KWF25MF.cjs');
5
+ require('../../chunk-XQNKN3UF.cjs');
6
6
  require('../../chunk-DCYIUKIM.cjs');
7
7
  require('../../chunk-CBHZX3G5.cjs');
8
8
  require('../../chunk-FZKXBPTS.cjs');
9
- require('../../chunk-DSX3P4S5.cjs');
10
- require('../../chunk-BNTJ5YFO.cjs');
11
- require('../../chunk-MKJPBSID.cjs');
12
- require('../../chunk-ZOWRACZQ.cjs');
13
- require('../../chunk-KDNRACRG.cjs');
9
+ require('../../chunk-76OB5RSH.cjs');
10
+ require('../../chunk-EACDHXJL.cjs');
11
+ require('../../chunk-I7SBZJI2.cjs');
12
+ require('../../chunk-G7OKJDMG.cjs');
13
+ require('../../chunk-MRUOOAIQ.cjs');
14
14
  require('../../chunk-6YKISECL.cjs');
15
- require('../../chunk-JRWKRBI5.cjs');
16
- require('../../chunk-OC5ROP7V.cjs');
15
+ require('../../chunk-5JOCIMQ3.cjs');
16
+ require('../../chunk-6JRVV2SS.cjs');
17
17
  require('../../chunk-5ICDVLI3.cjs');
18
18
  require('../../chunk-L4L4AV6F.cjs');
19
19
  require('../../chunk-AHUN2DLL.cjs');
@@ -37,7 +37,7 @@ require('../../chunk-7XYPLAPL.cjs');
37
37
 
38
38
  Object.defineProperty(exports, "createLocalSqliteBackend", {
39
39
  enumerable: true,
40
- get: function () { return chunkJERQGJKG_cjs.createLocalSqliteBackend; }
40
+ get: function () { return chunk732VS5PW_cjs.createLocalSqliteBackend; }
41
41
  });
42
42
  Object.defineProperty(exports, "DEFAULT_LOCAL_SQLITE_PRAGMAS", {
43
43
  enumerable: true,
@@ -1,8 +1,8 @@
1
1
  import { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
2
- import { S as SchemaProvisioning, d as FulltextStrategy, B as BundledBackendCapabilityOverrides, A as AdapterBackend } from '../../types-CRCyg1fJ.cjs';
3
- export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-CRCyg1fJ.cjs';
2
+ import { S as SchemaProvisioning, d as FulltextStrategy, B as BundledBackendCapabilityOverrides, A as AdapterBackend } from '../../types-BynPp5kU.cjs';
3
+ export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-BynPp5kU.cjs';
4
4
  import { A as AnySqliteDatabase } from '../../sqlite-execution-DHenxnsc.cjs';
5
- import { a as SqliteTables } from '../../sqlite-DgbYa-1Y.cjs';
5
+ import { a as SqliteTables } from '../../sqlite-BkQM9ZeI.cjs';
6
6
  import { L as LocalSqlitePragmaOptions } from '../../local-options-CZ1BnIoF.cjs';
7
7
  export { D as DEFAULT_LOCAL_SQLITE_PRAGMAS, a as LocalSqliteJournalMode, b as LocalSqliteSynchronousMode } from '../../local-options-CZ1BnIoF.cjs';
8
8
  import 'zod';
@@ -1,8 +1,8 @@
1
1
  import { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
2
- import { S as SchemaProvisioning, d as FulltextStrategy, B as BundledBackendCapabilityOverrides, A as AdapterBackend } from '../../types-CRCyg1fJ.js';
3
- export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-CRCyg1fJ.js';
2
+ import { S as SchemaProvisioning, d as FulltextStrategy, B as BundledBackendCapabilityOverrides, A as AdapterBackend } from '../../types-BynPp5kU.js';
3
+ export { C as ContributionDiagnostic, a as ContributionDiagnosticState, b as ContributionRepairEntry, c as ContributionRepairResult, G as GraphIdentityConfig } from '../../types-BynPp5kU.js';
4
4
  import { A as AnySqliteDatabase } from '../../sqlite-execution-DHenxnsc.js';
5
- import { a as SqliteTables } from '../../sqlite-UlG5prJQ.js';
5
+ import { a as SqliteTables } from '../../sqlite-CcCSeXGg.js';
6
6
  import { L as LocalSqlitePragmaOptions } from '../../local-options-CZ1BnIoF.js';
7
7
  export { D as DEFAULT_LOCAL_SQLITE_PRAGMAS, a as LocalSqliteJournalMode, b as LocalSqliteSynchronousMode } from '../../local-options-CZ1BnIoF.js';
8
8
  import 'zod';
@@ -1,17 +1,17 @@
1
- export { createLocalSqliteBackend } from '../../chunk-VZRXXABW.js';
1
+ export { createLocalSqliteBackend } from '../../chunk-HSLP6CVG.js';
2
2
  export { DEFAULT_LOCAL_SQLITE_PRAGMAS } from '../../chunk-H4FY6OZK.js';
3
- import '../../chunk-PFXNQFFY.js';
3
+ import '../../chunk-MUEPEWMQ.js';
4
4
  import '../../chunk-DX6DIU2S.js';
5
5
  import '../../chunk-JVWXWAV5.js';
6
6
  import '../../chunk-D2DMFIH2.js';
7
- import '../../chunk-HTSJTWUT.js';
8
- import '../../chunk-BBOMNH44.js';
9
- import '../../chunk-RQPCUHIH.js';
10
- import '../../chunk-G6T23JU7.js';
11
- import '../../chunk-WTMSUIRO.js';
7
+ import '../../chunk-OF63ZHSD.js';
8
+ import '../../chunk-BABP4D5B.js';
9
+ import '../../chunk-6ECNYQDW.js';
10
+ import '../../chunk-CDKNGCE7.js';
11
+ import '../../chunk-UFKYMQJ5.js';
12
12
  import '../../chunk-RFMSZ7CF.js';
13
- import '../../chunk-4VTCIEK3.js';
14
- import '../../chunk-AD3NLSV5.js';
13
+ import '../../chunk-4TQOIBWH.js';
14
+ import '../../chunk-TU22BFMP.js';
15
15
  import '../../chunk-OXJNL2PW.js';
16
16
  import '../../chunk-CY657YYY.js';
17
17
  import '../../chunk-5PP537D7.js';
@@ -1,10 +1,10 @@
1
- import { postgresFenceSql, resolveBatchWriteVerdict, batchRefusalSuffix, batchRefusalDetails, engineSerializedWriterSlotStatement, runRetriedUnit, OPTIMISTIC_RETRY_ATTEMPTS, RECORDED_GRAPH_WRITE_ADVISORY_LOCK_NAMESPACE, isOptimisticRetryTier, groupBy, chunk, sqlValueList } from './chunk-4VTCIEK3.js';
2
- import { statementExecutionVerdict, recordedRevisionOriginsVerdict, batchPointReadVerdict, requireCatalog, REVISION_COLUMN_KINDS, WALL_TIME_COLUMN_KINDS } from './chunk-EVGZ2TRQ.js';
3
- import { resolveFenceStatements, refuseFenceSqlSessionFactUnavailable, normalizeGraphCommandIsolation, resolveWriteFencePlan, requireWriteFence, recordedRevisionOriginsMembers, assertRecursiveTraversal, bindExtraIfReachable, BATCH_POINT_READ, deriveBackend, isBackendDerivedFrom, statementExecutionMembers, withRecordedRelationsPrecondition, projectGraphBackend, assertGraphCommandExecutionContext, isFirstPartyFactory, mintGraphCommandCoordination, assertCommandResultMatchesCommand, createSqlSchema, runOptionallyInTransaction, isSqliteStaleSnapshotError, executeAuthoritativeGraphCommand, rowPropsToJsonText } from './chunk-AD3NLSV5.js';
1
+ import { postgresFenceSql, resolveBatchWriteVerdict, batchRefusalSuffix, batchRefusalDetails, engineSerializedWriterSlotStatement, runRetriedUnit, OPTIMISTIC_RETRY_ATTEMPTS, RECORDED_GRAPH_WRITE_ADVISORY_LOCK_NAMESPACE, isOptimisticRetryTier, groupBy, chunk, sqlValueList } from './chunk-4TQOIBWH.js';
2
+ import { statementExecutionVerdict, recordedRevisionOriginsVerdict, batchPointReadVerdict, requireCatalog, REVISION_COLUMN_KINDS, WALL_TIME_COLUMN_KINDS } from './chunk-BE75G3M5.js';
3
+ import { resolveFenceStatements, refuseFenceSqlSessionFactUnavailable, normalizeGraphCommandIsolation, resolveWriteFencePlan, requireWriteFence, recordedRevisionOriginsMembers, assertRecursiveTraversal, bindExtraIfReachable, BATCH_POINT_READ, deriveBackend, isBackendDerivedFrom, statementExecutionMembers, withRecordedRelationsPrecondition, projectGraphBackend, assertGraphCommandExecutionContext, isFirstPartyFactory, mintGraphCommandCoordination, assertCommandResultMatchesCommand, createSqlSchema, runOptionallyInTransaction, isSqliteStaleSnapshotError, executeAuthoritativeGraphCommand, rowPropsToJsonText } from './chunk-TU22BFMP.js';
4
4
  import { createRecordedInstant, optionalRecordedInstantParts, recordedInstantRevision, parseRecordedInstant, RECORDED_MAX_REVISION, asRecordedInstant, canonicalizeDatabaseTimestamp, nowIso } from './chunk-CY657YYY.js';
5
5
  import { typeGraphGlobalSymbol, sql, asCompiledRowsSql, asCompiledStatementSql } from './chunk-XDTDSEAE.js';
6
6
  import { requireDefined, isPresent } from './chunk-QD2JFTSL.js';
7
- import { ConfigurationError, CompilerInvariantError, ValidationError, StaleVersionError } from './chunk-GMKPIYHY.js';
7
+ import { ConfigurationError, ValidationError, CompilerInvariantError, StaleVersionError } from './chunk-GMKPIYHY.js';
8
8
  import { nanoid } from 'nanoid';
9
9
 
10
10
  // src/store/types.ts
@@ -98,6 +98,78 @@ function transactionNodeOperationHookRunner(transaction) {
98
98
  }
99
99
  return runtime.runNodeOperationHooks;
100
100
  }
101
+
102
+ // src/errors/validation.ts
103
+ function zodIssuesToValidationIssues(error) {
104
+ return error.issues.map((issue) => ({
105
+ path: issue.path.join("."),
106
+ message: issue.message,
107
+ code: issue.code
108
+ }));
109
+ }
110
+ function buildLocationString(context) {
111
+ if (context.id) {
112
+ return `${context.kind}/${context.id}`;
113
+ }
114
+ return `new ${context.kind}`;
115
+ }
116
+ function validateProps(schema, props, context) {
117
+ const result = schema.safeParse(props);
118
+ if (result.success) {
119
+ return result.data;
120
+ }
121
+ const issues = zodIssuesToValidationIssues(result.error);
122
+ const location = buildLocationString(context);
123
+ throw new ValidationError(
124
+ `Invalid ${context.entityType} props for ${location}: ${result.error.message}`,
125
+ {
126
+ entityType: context.entityType,
127
+ kind: context.kind,
128
+ operation: context.operation,
129
+ ...context.id !== void 0 && { id: context.id },
130
+ issues
131
+ },
132
+ { cause: result.error }
133
+ );
134
+ }
135
+ function validateNodeProps(schema, props, context) {
136
+ return validateProps(schema, props, {
137
+ entityType: "node",
138
+ ...context
139
+ });
140
+ }
141
+ function validateEdgeProps(schema, props, context) {
142
+ return validateProps(schema, props, {
143
+ entityType: "edge",
144
+ ...context
145
+ });
146
+ }
147
+ function wrapZodError(error, context) {
148
+ const issues = zodIssuesToValidationIssues(error);
149
+ const location = buildLocationString(context);
150
+ return new ValidationError(
151
+ `Validation failed for ${context.entityType} ${location}: ${error.message}`,
152
+ {
153
+ entityType: context.entityType,
154
+ kind: context.kind,
155
+ operation: context.operation,
156
+ ...context.id !== void 0 && { id: context.id },
157
+ issues
158
+ },
159
+ { cause: error }
160
+ );
161
+ }
162
+ function createValidationError(message, issues, context) {
163
+ return new ValidationError(message, {
164
+ ...context?.entityType !== void 0 && {
165
+ entityType: context.entityType
166
+ },
167
+ ...context?.kind !== void 0 && { kind: context.kind },
168
+ ...context?.operation !== void 0 && { operation: context.operation },
169
+ ...context?.id !== void 0 && { id: context.id },
170
+ issues
171
+ });
172
+ }
101
173
  function generateId() {
102
174
  return nanoid();
103
175
  }
@@ -1419,6 +1491,18 @@ function buildRecordedWriteMembers(target, sink, hooks = {}) {
1419
1491
  sink.touchNode(params.graphId, params.kind, params.id, row);
1420
1492
  return row;
1421
1493
  },
1494
+ ...target.upsertHeterogeneousNodes === void 0 ? {} : {
1495
+ async upsertHeterogeneousNodes(params) {
1496
+ await hooks.beforeOne?.(params.schemaFence.graphId);
1497
+ const rows = await requireDefined(target.upsertHeterogeneousNodes)(
1498
+ params
1499
+ );
1500
+ for (const row of rows) {
1501
+ sink.touchNode(row.graph_id, row.kind, row.id, row);
1502
+ }
1503
+ return rows;
1504
+ }
1505
+ },
1422
1506
  ...target.updateResolvedNodesBatch === void 0 ? {} : {
1423
1507
  async updateResolvedNodesBatch(params) {
1424
1508
  if (params.entries.length === 0) return [];
@@ -2114,6 +2198,23 @@ function registerRecordedIdentityMutationWitness(overlay, target, sink) {
2114
2198
  recordedTransactionBindings.set(overlay, binding);
2115
2199
  recordedTransactionBindings.set(target, binding);
2116
2200
  }
2201
+ async function withRecordedNodeMutationTarget(target, graphId, run) {
2202
+ const binding = recordedTransactionBindings.get(target);
2203
+ if (binding === void 0) return run(target);
2204
+ binding.assertOpen();
2205
+ if (binding.capture !== void 0) {
2206
+ await lockRecordedGraphWrite(
2207
+ binding.target,
2208
+ graphId,
2209
+ binding.capture.graphLocks
2210
+ );
2211
+ }
2212
+ const rows = await run(binding.target);
2213
+ for (const row of rows) {
2214
+ binding.sink.touchNode(row.graph_id, row.kind, row.id, row);
2215
+ }
2216
+ return rows;
2217
+ }
2117
2218
  function createRecordedTransactionBackend(target, session, schema) {
2118
2219
  const graphLocks = createRecordedGraphLockMemo();
2119
2220
  async function lockGraph(graphId) {
@@ -2266,6 +2367,20 @@ function createRecordedBackend(backend, schema) {
2266
2367
  async updateNode(params) {
2267
2368
  return capture((target) => target.updateNode(params));
2268
2369
  },
2370
+ ...backend.upsertHeterogeneousNodes === void 0 ? {} : {
2371
+ async upsertHeterogeneousNodes(params) {
2372
+ return capture((target) => {
2373
+ const upsert = target.upsertHeterogeneousNodes;
2374
+ if (upsert === void 0) {
2375
+ throw new ConfigurationError(
2376
+ "Recorded heterogeneous node upsert capability disappeared inside a transaction.",
2377
+ { operation: "upsertHeterogeneousNodes" }
2378
+ );
2379
+ }
2380
+ return upsert(params);
2381
+ });
2382
+ }
2383
+ },
2269
2384
  ...backend.updateResolvedNodesBatch === void 0 ? {} : {
2270
2385
  async updateResolvedNodesBatch(params) {
2271
2386
  return capture((target) => {
@@ -2390,78 +2505,6 @@ function createRecordedBackend(backend, schema) {
2390
2505
  });
2391
2506
  }
2392
2507
 
2393
- // src/errors/validation.ts
2394
- function zodIssuesToValidationIssues(error) {
2395
- return error.issues.map((issue) => ({
2396
- path: issue.path.join("."),
2397
- message: issue.message,
2398
- code: issue.code
2399
- }));
2400
- }
2401
- function buildLocationString(context) {
2402
- if (context.id) {
2403
- return `${context.kind}/${context.id}`;
2404
- }
2405
- return `new ${context.kind}`;
2406
- }
2407
- function validateProps(schema, props, context) {
2408
- const result = schema.safeParse(props);
2409
- if (result.success) {
2410
- return result.data;
2411
- }
2412
- const issues = zodIssuesToValidationIssues(result.error);
2413
- const location = buildLocationString(context);
2414
- throw new ValidationError(
2415
- `Invalid ${context.entityType} props for ${location}: ${result.error.message}`,
2416
- {
2417
- entityType: context.entityType,
2418
- kind: context.kind,
2419
- operation: context.operation,
2420
- ...context.id !== void 0 && { id: context.id },
2421
- issues
2422
- },
2423
- { cause: result.error }
2424
- );
2425
- }
2426
- function validateNodeProps(schema, props, context) {
2427
- return validateProps(schema, props, {
2428
- entityType: "node",
2429
- ...context
2430
- });
2431
- }
2432
- function validateEdgeProps(schema, props, context) {
2433
- return validateProps(schema, props, {
2434
- entityType: "edge",
2435
- ...context
2436
- });
2437
- }
2438
- function wrapZodError(error, context) {
2439
- const issues = zodIssuesToValidationIssues(error);
2440
- const location = buildLocationString(context);
2441
- return new ValidationError(
2442
- `Validation failed for ${context.entityType} ${location}: ${error.message}`,
2443
- {
2444
- entityType: context.entityType,
2445
- kind: context.kind,
2446
- operation: context.operation,
2447
- ...context.id !== void 0 && { id: context.id },
2448
- issues
2449
- },
2450
- { cause: error }
2451
- );
2452
- }
2453
- function createValidationError(message, issues, context) {
2454
- return new ValidationError(message, {
2455
- ...context?.entityType !== void 0 && {
2456
- entityType: context.entityType
2457
- },
2458
- ...context?.kind !== void 0 && { kind: context.kind },
2459
- ...context?.operation !== void 0 && { operation: context.operation },
2460
- ...context?.id !== void 0 && { id: context.id },
2461
- issues
2462
- });
2463
- }
2464
-
2465
2508
  // src/store/operations/write-transaction.ts
2466
2509
  var writeTransactionSessions = /* @__PURE__ */ new WeakMap();
2467
2510
  var leasedSchemaFences = /* @__PURE__ */ new WeakMap();
@@ -2493,6 +2536,29 @@ async function withTransactionSchemaFenceLease(ctx, target, fn) {
2493
2536
  leasedSchemaFences.delete(target);
2494
2537
  }
2495
2538
  }
2539
+ async function withPreAcquiredTransactionSchemaFenceLease(ctx, targets, fn) {
2540
+ const expectedVersion = ctx.schemaVersion;
2541
+ if (expectedVersion === void 0) return fn();
2542
+ const leases = /* @__PURE__ */ new Map([
2543
+ [schemaFenceLeaseKey(ctx.graphId, expectedVersion), Promise.resolve()]
2544
+ ]);
2545
+ const uniqueTargets = [...new Set(targets)];
2546
+ const previousLeases = /* @__PURE__ */ new Map();
2547
+ for (const target of uniqueTargets) {
2548
+ previousLeases.set(target, leasedSchemaFences.get(target));
2549
+ leasedSchemaFences.set(target, leases);
2550
+ }
2551
+ try {
2552
+ return await fn();
2553
+ } finally {
2554
+ for (const target of uniqueTargets) {
2555
+ if (leasedSchemaFences.get(target) !== leases) continue;
2556
+ const previous = previousLeases.get(target);
2557
+ if (previous === void 0) leasedSchemaFences.delete(target);
2558
+ else leasedSchemaFences.set(target, previous);
2559
+ }
2560
+ }
2561
+ }
2496
2562
  function hasPendingWriteTransactionRevision(target) {
2497
2563
  return writeTransactionSessions.get(target)?.wrote === true;
2498
2564
  }
@@ -2693,7 +2759,7 @@ function runInWriteTransactionAttempt(ctx, backend, fn, options, transactionMode
2693
2759
  const acquiresLock = needsGraphWriteLock && session?.lock === void 0 && !held.has(ctx.graphId);
2694
2760
  if (acquiresLock) held.add(ctx.graphId);
2695
2761
  const expectedSchemaVersion = ctx.schemaVersion;
2696
- const combinedSchemaGraphFence = !options?.schemaFenceInFirstWrite && expectedSchemaVersion !== void 0 && acquiresLock && !("transaction" in target) ? {
2762
+ const combinedSchemaGraphFence = !options?.schemaFenceInFirstWrite && expectedSchemaVersion !== void 0 && acquiresLock && !("transaction" in target) && !hasLeasedSchemaFence(ctx, target) ? {
2697
2763
  acquire: target.lockSchemaVersionAndGraphWrite,
2698
2764
  params: {
2699
2765
  graphId: ctx.graphId,
@@ -2747,6 +2813,6 @@ function runHookedWriteOperation(ctx, opContext, backend, body, options) {
2747
2813
  );
2748
2814
  }
2749
2815
 
2750
- export { AUTO_REFRESH_STATISTICS_ROW_THRESHOLD, IDENTITY_ASSERTION_COLUMNS, IDENTITY_PEER_CLASS_COLUMNS, STORE_RUNTIME, TRANSACTION_RUNTIME, advanceRevisionClock, assertCurrentRecordedSchema, assertRecordedCaptureTransactionIsolation, assertRevisionTrackableBackend, bindEvolvedTransactionStore, bindTransactionStore, closeRecordedHardDeletedKind, compareAndSetAbsent, constraintFenceRefusal, createMutationWitness, createRecordedBackend, createRecordedTransactionScope, createValidationError, diagnoseFusedSchemaFenceNoRow, edgeInsertDispatch, encodeRecordedLineageRevision, ensureEngineSerializedWriterSlot, ensureRevisionOrigin, ensureRevisionOriginsRelation, forceRecordedGraphRevision, forceWriteTransactionRevision, generateId, getEdgeRowsByIds, getNodeRowsByIds, hasLeasedSchemaFence, hasPendingRecordedGraphWrites, hasPendingWriteTransactionRevision, historicalIdentityPeerClassQuery, historicalIdentityReconstructionCtes, identityAssertionSnapshotSource, identityNodeSnapshotSource, identityNodeVisibilitySql, identitySqlCoordinate, inheritRecordedTransactionBindings, lockRecordedGraphWrite, lockSchemaVersionForStoreWrite, memoizeLeasedSchemaFence, mintsOriginNamespacedAnchor, nodeInsertDispatch, readRecordedClock, readRevisionOrigin, recordedBindParamBudget, recordedCaptureRequiresCallbackTransactionError, recordedRelationsLineage, refuseEngineNativeRecordedIdentityRead, registerRecordedIdentityMutationWitness, resetRevisionOrigin, resolveEvolvedTransactionStore, resolveLineage, runHookedWriteOperation, runInTransactionContext, runInWriteTransaction, runInsertBatch, runInsertBatchReturning, runInsertIfAbsent, runInsertNoReturn, runRecordedTransactionSavepoint, storeBackend, storeCaptureEnabled, storeRuntime, throwHistoryUnsafeSqlAccess, throwRevisionTrackingUnsafeSqlAccess, transactionBackend, transactionNodeOperationHookRunner, uncapturedGraphWriteLock, validateEdgeProps, validateNodeProps, validateProps, withRecordedFlushObserver, withRecordedIdentityMutationTarget, withTransactionSchemaFenceLease, withWriteTransactionSession, wrapZodError };
2751
- //# sourceMappingURL=chunk-337ONI2I.js.map
2752
- //# sourceMappingURL=chunk-337ONI2I.js.map
2816
+ export { AUTO_REFRESH_STATISTICS_ROW_THRESHOLD, IDENTITY_ASSERTION_COLUMNS, IDENTITY_PEER_CLASS_COLUMNS, STORE_RUNTIME, TRANSACTION_RUNTIME, advanceRevisionClock, assertCurrentRecordedSchema, assertRecordedCaptureTransactionIsolation, assertRevisionTrackableBackend, bindEvolvedTransactionStore, bindTransactionStore, closeRecordedHardDeletedKind, compareAndSetAbsent, constraintFenceRefusal, createMutationWitness, createRecordedBackend, createRecordedTransactionScope, createValidationError, diagnoseFusedSchemaFenceNoRow, edgeInsertDispatch, encodeRecordedLineageRevision, ensureEngineSerializedWriterSlot, ensureRevisionOrigin, ensureRevisionOriginsRelation, forceRecordedGraphRevision, forceWriteTransactionRevision, generateId, getEdgeRowsByIds, getNodeRowsByIds, hasLeasedSchemaFence, hasPendingRecordedGraphWrites, hasPendingWriteTransactionRevision, historicalIdentityPeerClassQuery, historicalIdentityReconstructionCtes, identityAssertionSnapshotSource, identityNodeSnapshotSource, identityNodeVisibilitySql, identitySqlCoordinate, inheritRecordedTransactionBindings, lockRecordedGraphWrite, lockSchemaVersionForStoreWrite, memoizeLeasedSchemaFence, mintsOriginNamespacedAnchor, nodeInsertDispatch, readRecordedClock, readRevisionOrigin, recordedBindParamBudget, recordedCaptureRequiresCallbackTransactionError, recordedRelationsLineage, refuseEngineNativeRecordedIdentityRead, registerRecordedIdentityMutationWitness, resetRevisionOrigin, resolveEvolvedTransactionStore, resolveLineage, runHookedWriteOperation, runInTransactionContext, runInWriteTransaction, runInsertBatch, runInsertBatchReturning, runInsertIfAbsent, runInsertNoReturn, runRecordedTransactionSavepoint, storeBackend, storeCaptureEnabled, storeRuntime, throwHistoryUnsafeSqlAccess, throwRevisionTrackingUnsafeSqlAccess, transactionBackend, transactionNodeOperationHookRunner, uncapturedGraphWriteLock, validateEdgeProps, validateNodeProps, validateProps, withPreAcquiredTransactionSchemaFenceLease, withRecordedFlushObserver, withRecordedIdentityMutationTarget, withRecordedNodeMutationTarget, withTransactionSchemaFenceLease, withWriteTransactionSession, wrapZodError };
2817
+ //# sourceMappingURL=chunk-3SUZXB5X.js.map
2818
+ //# sourceMappingURL=chunk-3SUZXB5X.js.map