@nicia-ai/typegraph 0.32.0 → 0.33.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 (158) hide show
  1. package/README.md +31 -0
  2. package/dist/backend/postgres/index.cjs +28 -15
  3. package/dist/backend/postgres/index.d.cts +6 -6
  4. package/dist/backend/postgres/index.d.ts +6 -6
  5. package/dist/backend/postgres/index.js +6 -5
  6. package/dist/backend/postgres/pglite.cjs +10 -9
  7. package/dist/backend/postgres/pglite.cjs.map +1 -1
  8. package/dist/backend/postgres/pglite.d.cts +3 -3
  9. package/dist/backend/postgres/pglite.d.ts +3 -3
  10. package/dist/backend/postgres/pglite.js +6 -5
  11. package/dist/backend/postgres/pglite.js.map +1 -1
  12. package/dist/backend/sqlite/index.cjs +27 -14
  13. package/dist/backend/sqlite/index.d.cts +7 -7
  14. package/dist/backend/sqlite/index.d.ts +7 -7
  15. package/dist/backend/sqlite/index.js +6 -5
  16. package/dist/backend/sqlite/libsql.cjs +9 -8
  17. package/dist/backend/sqlite/libsql.cjs.map +1 -1
  18. package/dist/backend/sqlite/libsql.d.cts +3 -3
  19. package/dist/backend/sqlite/libsql.d.ts +3 -3
  20. package/dist/backend/sqlite/libsql.js +6 -5
  21. package/dist/backend/sqlite/libsql.js.map +1 -1
  22. package/dist/backend/sqlite/local.cjs +10 -9
  23. package/dist/backend/sqlite/local.cjs.map +1 -1
  24. package/dist/backend/sqlite/local.d.cts +3 -3
  25. package/dist/backend/sqlite/local.d.ts +3 -3
  26. package/dist/backend/sqlite/local.js +6 -5
  27. package/dist/backend/sqlite/local.js.map +1 -1
  28. package/dist/{chunk-CAMMC3E4.cjs → chunk-3642VBVC.cjs} +65 -63
  29. package/dist/chunk-3642VBVC.cjs.map +1 -0
  30. package/dist/chunk-3E7SNSIA.cjs +55 -0
  31. package/dist/chunk-3E7SNSIA.cjs.map +1 -0
  32. package/dist/{chunk-6RMLO5O4.cjs → chunk-3IR2GEMJ.cjs} +8 -7
  33. package/dist/chunk-3IR2GEMJ.cjs.map +1 -0
  34. package/dist/{chunk-JKRKIEVA.cjs → chunk-4RBAJVEC.cjs} +125 -3
  35. package/dist/chunk-4RBAJVEC.cjs.map +1 -0
  36. package/dist/{chunk-IJORSAC3.js → chunk-6NRFUHMS.js} +4 -3
  37. package/dist/chunk-6NRFUHMS.js.map +1 -0
  38. package/dist/{chunk-YL4F3CMD.cjs → chunk-BF3ZDEUE.cjs} +96 -64
  39. package/dist/chunk-BF3ZDEUE.cjs.map +1 -0
  40. package/dist/{chunk-2LAT5BIK.cjs → chunk-D3EWZ67S.cjs} +2820 -1947
  41. package/dist/chunk-D3EWZ67S.cjs.map +1 -0
  42. package/dist/{chunk-XQFAJVYW.js → chunk-DJYRRDHA.js} +123 -4
  43. package/dist/chunk-DJYRRDHA.js.map +1 -0
  44. package/dist/{chunk-YQGLVWB2.cjs → chunk-EF3Z645U.cjs} +2 -52
  45. package/dist/chunk-EF3Z645U.cjs.map +1 -0
  46. package/dist/chunk-GYVBEZAO.js +120 -0
  47. package/dist/chunk-GYVBEZAO.js.map +1 -0
  48. package/dist/chunk-I4W7MKVG.cjs +1526 -0
  49. package/dist/chunk-I4W7MKVG.cjs.map +1 -0
  50. package/dist/{chunk-MXE2U3EX.js → chunk-IZ4PCL47.js} +3 -52
  51. package/dist/chunk-IZ4PCL47.js.map +1 -0
  52. package/dist/{chunk-7WW3WL6E.js → chunk-JHOBXD7O.js} +9 -7
  53. package/dist/chunk-JHOBXD7O.js.map +1 -0
  54. package/dist/{chunk-3HQDMOBK.cjs → chunk-KY5SDVA7.cjs} +619 -578
  55. package/dist/chunk-KY5SDVA7.cjs.map +1 -0
  56. package/dist/{chunk-EEYV6UOE.cjs → chunk-MBLXCV2Y.cjs} +2 -2
  57. package/dist/{chunk-EEYV6UOE.cjs.map → chunk-MBLXCV2Y.cjs.map} +1 -1
  58. package/dist/{chunk-LAZGHOZW.cjs → chunk-NG5N7R45.cjs} +28 -28
  59. package/dist/{chunk-LAZGHOZW.cjs.map → chunk-NG5N7R45.cjs.map} +1 -1
  60. package/dist/chunk-OIE2UPVG.cjs +126 -0
  61. package/dist/chunk-OIE2UPVG.cjs.map +1 -0
  62. package/dist/{chunk-NDM5PXEH.js → chunk-OS6KS3HV.js} +41 -9
  63. package/dist/chunk-OS6KS3HV.js.map +1 -0
  64. package/dist/chunk-PYD3UCDU.js +1480 -0
  65. package/dist/chunk-PYD3UCDU.js.map +1 -0
  66. package/dist/{chunk-W4ZX2GCP.js → chunk-QBYTJSAY.js} +2 -2
  67. package/dist/{chunk-W4ZX2GCP.js.map → chunk-QBYTJSAY.js.map} +1 -1
  68. package/dist/{chunk-HFBRAOF7.js → chunk-SPT5JMME.js} +3 -3
  69. package/dist/{chunk-HFBRAOF7.js.map → chunk-SPT5JMME.js.map} +1 -1
  70. package/dist/{chunk-SB65GJNY.cjs → chunk-SST7XDY6.cjs} +11 -11
  71. package/dist/{chunk-SB65GJNY.cjs.map → chunk-SST7XDY6.cjs.map} +1 -1
  72. package/dist/{chunk-TUA3MEJJ.js → chunk-UPDMJEW6.js} +606 -561
  73. package/dist/chunk-UPDMJEW6.js.map +1 -0
  74. package/dist/{chunk-WNORITK6.js → chunk-WLP6TKFB.js} +2691 -1817
  75. package/dist/chunk-WLP6TKFB.js.map +1 -0
  76. package/dist/chunk-XLUNB2TZ.js +53 -0
  77. package/dist/chunk-XLUNB2TZ.js.map +1 -0
  78. package/dist/{chunk-2BVHPOIG.js → chunk-XVUJY72M.js} +6 -6
  79. package/dist/{chunk-2BVHPOIG.js.map → chunk-XVUJY72M.js.map} +1 -1
  80. package/dist/{ddl-C8e8zDAE.d.ts → ddl-CVnHJcar.d.ts} +3 -3
  81. package/dist/{ddl-CwyG4HoQ.d.cts → ddl-Dxt_fBHr.d.cts} +3 -3
  82. package/dist/{extension-types-D1k0inWU.d.cts → extension-types-YGFJPrzK.d.cts} +1 -1
  83. package/dist/{extension-types-D1k0inWU.d.ts → extension-types-YGFJPrzK.d.ts} +1 -1
  84. package/dist/graph-extension/index.d.cts +4 -4
  85. package/dist/graph-extension/index.d.ts +4 -4
  86. package/dist/graph-merge/index.cjs +24 -23
  87. package/dist/graph-merge/index.cjs.map +1 -1
  88. package/dist/graph-merge/index.d.cts +6 -6
  89. package/dist/graph-merge/index.d.ts +6 -6
  90. package/dist/graph-merge/index.js +9 -8
  91. package/dist/graph-merge/index.js.map +1 -1
  92. package/dist/{index-BEK0VtNB.d.ts → index-DGX6D9j1.d.ts} +2 -2
  93. package/dist/{index-C8sSTErx.d.cts → index-SEvUHDA6.d.cts} +2 -2
  94. package/dist/index.cjs +129 -104
  95. package/dist/index.cjs.map +1 -1
  96. package/dist/index.d.cts +25 -55
  97. package/dist/index.d.ts +25 -55
  98. package/dist/index.js +12 -10
  99. package/dist/index.js.map +1 -1
  100. package/dist/indexes/index.cjs +5 -4
  101. package/dist/indexes/index.d.cts +5 -5
  102. package/dist/indexes/index.d.ts +5 -5
  103. package/dist/indexes/index.js +3 -2
  104. package/dist/interchange/index.cjs +15 -15
  105. package/dist/interchange/index.d.cts +5 -5
  106. package/dist/interchange/index.d.ts +5 -5
  107. package/dist/interchange/index.js +2 -2
  108. package/dist/{manager-aVgxbGt-.d.cts → manager-BYl_zyZR.d.cts} +2 -2
  109. package/dist/{manager-8htmuGr-.d.ts → manager-C0_r0ALf.d.ts} +2 -2
  110. package/dist/{materialize-indexes-CAGhqPHQ.d.ts → materialize-indexes-CAkIYFV-.d.ts} +1 -1
  111. package/dist/{materialize-indexes-DEYkU-wr.d.cts → materialize-indexes-D20xNluI.d.cts} +1 -1
  112. package/dist/{postgres-jgXmD45C.d.cts → postgres-MzBPkYzq.d.ts} +2651 -596
  113. package/dist/{postgres-Dhom7iiX.d.ts → postgres-_9psmVGm.d.cts} +2651 -596
  114. package/dist/profiler/index.cjs +4 -3
  115. package/dist/profiler/index.cjs.map +1 -1
  116. package/dist/profiler/index.d.cts +7 -7
  117. package/dist/profiler/index.d.ts +7 -7
  118. package/dist/profiler/index.js +2 -1
  119. package/dist/profiler/index.js.map +1 -1
  120. package/dist/schema/index.cjs +30 -29
  121. package/dist/schema/index.cjs.map +1 -1
  122. package/dist/schema/index.d.cts +7 -7
  123. package/dist/schema/index.d.ts +7 -7
  124. package/dist/schema/index.js +7 -6
  125. package/dist/schema/index.js.map +1 -1
  126. package/dist/{sqlite-BfLsCEqO.d.ts → sqlite-BfksSb45.d.cts} +2726 -455
  127. package/dist/{sqlite-DcQ_BCUW.d.cts → sqlite-gm44dShb.d.ts} +2726 -455
  128. package/dist/{store-view-pBOUrQte.d.ts → store-view-9jQ2rPum.d.cts} +437 -129
  129. package/dist/{store-view-lTcb_cnp.d.cts → store-view-FfE5_7eo.d.ts} +437 -129
  130. package/dist/{types-5RQwzWXx.d.cts → types-B6mhrcLv.d.cts} +2 -2
  131. package/dist/{types-Dk8r09KY.d.ts → types-C_UnQOQp.d.cts} +154 -23
  132. package/dist/{types-DGDiXAYc.d.ts → types-CdWxK-nD.d.ts} +2 -2
  133. package/dist/{types-Dvmn-eal.d.cts → types-DGylBhWo.d.ts} +154 -23
  134. package/dist/{where-Cx_glEEB.d.cts → where-Bpp2ul_z.d.cts} +2 -2
  135. package/dist/{where-CHZFELX0.d.ts → where-BsEXraKW.d.ts} +2 -2
  136. package/package.json +1 -1
  137. package/dist/chunk-2LAT5BIK.cjs.map +0 -1
  138. package/dist/chunk-3HQDMOBK.cjs.map +0 -1
  139. package/dist/chunk-6G35I3VW.cjs +0 -40
  140. package/dist/chunk-6G35I3VW.cjs.map +0 -1
  141. package/dist/chunk-6RMLO5O4.cjs.map +0 -1
  142. package/dist/chunk-7WW3WL6E.js.map +0 -1
  143. package/dist/chunk-CAMMC3E4.cjs.map +0 -1
  144. package/dist/chunk-IJORSAC3.js.map +0 -1
  145. package/dist/chunk-JKRKIEVA.cjs.map +0 -1
  146. package/dist/chunk-M6OC455F.js +0 -65
  147. package/dist/chunk-M6OC455F.js.map +0 -1
  148. package/dist/chunk-MXE2U3EX.js.map +0 -1
  149. package/dist/chunk-NDM5PXEH.js.map +0 -1
  150. package/dist/chunk-RP7YITHX.cjs +0 -70
  151. package/dist/chunk-RP7YITHX.cjs.map +0 -1
  152. package/dist/chunk-SAJSMR2B.js +0 -35
  153. package/dist/chunk-SAJSMR2B.js.map +0 -1
  154. package/dist/chunk-TUA3MEJJ.js.map +0 -1
  155. package/dist/chunk-WNORITK6.js.map +0 -1
  156. package/dist/chunk-XQFAJVYW.js.map +0 -1
  157. package/dist/chunk-YL4F3CMD.cjs.map +0 -1
  158. package/dist/chunk-YQGLVWB2.cjs.map +0 -1
@@ -2,9 +2,9 @@
2
2
 
3
3
  var chunkYW7GHMF4_cjs = require('./chunk-YW7GHMF4.cjs');
4
4
  var chunkHTGDWIDE_cjs = require('./chunk-HTGDWIDE.cjs');
5
- var chunk3HQDMOBK_cjs = require('./chunk-3HQDMOBK.cjs');
6
- var chunk6G35I3VW_cjs = require('./chunk-6G35I3VW.cjs');
7
- var chunkRP7YITHX_cjs = require('./chunk-RP7YITHX.cjs');
5
+ var chunkKY5SDVA7_cjs = require('./chunk-KY5SDVA7.cjs');
6
+ var chunkI4W7MKVG_cjs = require('./chunk-I4W7MKVG.cjs');
7
+ var chunkOIE2UPVG_cjs = require('./chunk-OIE2UPVG.cjs');
8
8
  var chunkCFNT3ITG_cjs = require('./chunk-CFNT3ITG.cjs');
9
9
  var chunkJIEJCTDS_cjs = require('./chunk-JIEJCTDS.cjs');
10
10
  var drizzleOrm = require('drizzle-orm');
@@ -35,7 +35,7 @@ var DEFAULT_POSTGRES_STATEMENT_CACHE_MAX = 256;
35
35
  var STATEMENT_NAME_CACHE = /* @__PURE__ */ new Map();
36
36
  var nextStatementId = 0;
37
37
  function statementNameFor(sqlText, cacheMax) {
38
- return chunk3HQDMOBK_cjs.getOrCreateLru(STATEMENT_NAME_CACHE, sqlText, cacheMax, () => {
38
+ return chunkKY5SDVA7_cjs.getOrCreateLru(STATEMENT_NAME_CACHE, sqlText, cacheMax, () => {
39
39
  const name = `tg_${nextStatementId}`;
40
40
  nextStatementId += 1;
41
41
  return name;
@@ -129,7 +129,7 @@ function createPostgresExecutionAdapter(db, options = {}) {
129
129
  const cacheMax = options.preparedStatementCacheMax ?? DEFAULT_POSTGRES_STATEMENT_CACHE_MAX;
130
130
  const pgClient = resolvePgClient(db, prepareStatements, cacheMax);
131
131
  function compile(query) {
132
- return chunk3HQDMOBK_cjs.compileQueryWithDialect(db, query, "PostgreSQL");
132
+ return chunkKY5SDVA7_cjs.compileQueryWithDialect(db, query, "PostgreSQL");
133
133
  }
134
134
  if (pgClient === void 0) {
135
135
  return {
@@ -161,48 +161,47 @@ function createPostgresExecutionAdapter(db, options = {}) {
161
161
  }
162
162
 
163
163
  // src/backend/drizzle/postgres.ts
164
- var POSTGRES_MAX_BIND_PARAMETERS = 65535;
165
164
  var NODE_INSERT_PARAM_COUNT = 9;
166
165
  var EDGE_INSERT_PARAM_COUNT = 12;
167
166
  var POSTGRES_NODE_INSERT_BATCH_SIZE = Math.max(
168
167
  1,
169
- Math.floor(POSTGRES_MAX_BIND_PARAMETERS / NODE_INSERT_PARAM_COUNT)
168
+ Math.floor(chunkI4W7MKVG_cjs.POSTGRES_MAX_BIND_PARAMETERS / NODE_INSERT_PARAM_COUNT)
170
169
  );
171
170
  var POSTGRES_EDGE_INSERT_BATCH_SIZE = Math.max(
172
171
  1,
173
- Math.floor(POSTGRES_MAX_BIND_PARAMETERS / EDGE_INSERT_PARAM_COUNT)
172
+ Math.floor(chunkI4W7MKVG_cjs.POSTGRES_MAX_BIND_PARAMETERS / EDGE_INSERT_PARAM_COUNT)
174
173
  );
175
174
  var POSTGRES_GET_NODES_ID_CHUNK_SIZE = Math.max(
176
175
  1,
177
- POSTGRES_MAX_BIND_PARAMETERS - 2
176
+ chunkI4W7MKVG_cjs.POSTGRES_MAX_BIND_PARAMETERS - 2
178
177
  );
179
178
  var POSTGRES_GET_EDGES_ID_CHUNK_SIZE = Math.max(
180
179
  1,
181
- POSTGRES_MAX_BIND_PARAMETERS - 1
180
+ chunkI4W7MKVG_cjs.POSTGRES_MAX_BIND_PARAMETERS - 1
182
181
  );
183
182
  var CHECK_UNIQUE_BATCH_FIXED_PARAM_COUNT = 3;
184
183
  var POSTGRES_CHECK_UNIQUE_BATCH_CHUNK_SIZE = Math.max(
185
184
  1,
186
- POSTGRES_MAX_BIND_PARAMETERS - CHECK_UNIQUE_BATCH_FIXED_PARAM_COUNT
185
+ chunkI4W7MKVG_cjs.POSTGRES_MAX_BIND_PARAMETERS - CHECK_UNIQUE_BATCH_FIXED_PARAM_COUNT
187
186
  );
188
- var toNodeRow = chunk3HQDMOBK_cjs.createNodeRowMapper(chunk3HQDMOBK_cjs.POSTGRES_ROW_MAPPER_CONFIG);
189
- var toEdgeRow = chunk3HQDMOBK_cjs.createEdgeRowMapper(chunk3HQDMOBK_cjs.POSTGRES_ROW_MAPPER_CONFIG);
190
- var toUniqueRow = chunk3HQDMOBK_cjs.createUniqueRowMapper(chunk3HQDMOBK_cjs.POSTGRES_ROW_MAPPER_CONFIG);
191
- var toSchemaVersionRow = chunk3HQDMOBK_cjs.createSchemaVersionRowMapper(
192
- chunk3HQDMOBK_cjs.POSTGRES_ROW_MAPPER_CONFIG
187
+ var toNodeRow = chunkI4W7MKVG_cjs.createNodeRowMapper(chunkI4W7MKVG_cjs.POSTGRES_ROW_MAPPER_CONFIG);
188
+ var toEdgeRow = chunkI4W7MKVG_cjs.createEdgeRowMapper(chunkI4W7MKVG_cjs.POSTGRES_ROW_MAPPER_CONFIG);
189
+ var toUniqueRow = chunkI4W7MKVG_cjs.createUniqueRowMapper(chunkI4W7MKVG_cjs.POSTGRES_ROW_MAPPER_CONFIG);
190
+ var toSchemaVersionRow = chunkI4W7MKVG_cjs.createSchemaVersionRowMapper(
191
+ chunkI4W7MKVG_cjs.POSTGRES_ROW_MAPPER_CONFIG
193
192
  );
194
193
  function buildPostgresCapabilities(fulltextStrategy, vectorStrategy) {
195
194
  return {
196
- ...chunk6G35I3VW_cjs.POSTGRES_CAPABILITIES,
195
+ ...chunkI4W7MKVG_cjs.POSTGRES_CAPABILITIES,
197
196
  ...vectorStrategy === void 0 ? {} : { vector: chunkCFNT3ITG_cjs.buildVectorCapabilities(vectorStrategy) },
198
197
  fulltext: chunkCFNT3ITG_cjs.buildFulltextCapabilities(fulltextStrategy)
199
198
  };
200
199
  }
201
200
  function createPostgresBackend(db, options = {}) {
202
- const tables2 = options.tables ?? chunk3HQDMOBK_cjs.tables;
201
+ const tables2 = options.tables ?? chunkKY5SDVA7_cjs.tables;
203
202
  const fulltextStrategy = options.fulltext ?? chunkCFNT3ITG_cjs.tsvectorStrategy;
204
203
  const vectorStrategy = options.vector === false ? void 0 : options.vector ?? chunkYW7GHMF4_cjs.pgvectorStrategy;
205
- const vectorSlotLatch = vectorStrategy === void 0 ? void 0 : chunk3HQDMOBK_cjs.createVectorSlotLatch();
204
+ const vectorSlotLatch = vectorStrategy === void 0 ? void 0 : chunkKY5SDVA7_cjs.createVectorSlotLatch();
206
205
  const baseCapabilities = buildPostgresCapabilities(
207
206
  fulltextStrategy,
208
207
  vectorStrategy
@@ -221,10 +220,13 @@ function createPostgresBackend(db, options = {}) {
221
220
  const tableNames = {
222
221
  nodes: drizzleOrm.getTableName(tables2.nodes),
223
222
  edges: drizzleOrm.getTableName(tables2.edges),
223
+ recordedNodes: drizzleOrm.getTableName(tables2.recordedNodes),
224
+ recordedEdges: drizzleOrm.getTableName(tables2.recordedEdges),
225
+ recordedClock: drizzleOrm.getTableName(tables2.recordedClock),
224
226
  fulltext: tables2.fulltextTableName,
225
227
  uniques: drizzleOrm.getTableName(tables2.uniques)
226
228
  };
227
- const analyzeStatement = drizzleOrm.sql`ANALYZE ${drizzleOrm.sql.join(
229
+ const coreAnalyzeStatement = drizzleOrm.sql`ANALYZE ${drizzleOrm.sql.join(
228
230
  [
229
231
  tableNames.nodes,
230
232
  tableNames.edges,
@@ -233,7 +235,12 @@ function createPostgresBackend(db, options = {}) {
233
235
  ].map((name) => chunkHTGDWIDE_cjs.quoteIdentifier(name)),
234
236
  drizzleOrm.sql`, `
235
237
  )}`;
236
- const operationStrategy = chunk3HQDMOBK_cjs.createPostgresOperationStrategy(
238
+ const recordedAnalyzeTables = [
239
+ tableNames.recordedNodes,
240
+ tableNames.recordedEdges,
241
+ tableNames.recordedClock
242
+ ];
243
+ const operationStrategy = chunkKY5SDVA7_cjs.createPostgresOperationStrategy(
237
244
  tables2,
238
245
  fulltextStrategy
239
246
  );
@@ -248,6 +255,15 @@ function createPostgresBackend(db, options = {}) {
248
255
  vectorStrategy,
249
256
  vectorSlotLatch
250
257
  });
258
+ const recordedTableExists = chunkKY5SDVA7_cjs.createCachedTableExistence(
259
+ async (tableName) => {
260
+ const rows = await executionAdapter.execute(
261
+ operationStrategy.buildTableExists(tableName)
262
+ );
263
+ return rows[0];
264
+ },
265
+ { cacheExisting: false }
266
+ );
251
267
  function runSchemaWriteTransaction(graphId, fn) {
252
268
  if (!capabilities.transactions) {
253
269
  throw new chunkJIEJCTDS_cjs.ConfigurationError(
@@ -274,7 +290,7 @@ function createPostgresBackend(db, options = {}) {
274
290
  }
275
291
  const matTable = tables2.contributionMaterializations;
276
292
  async function ensureContributionMaterializationsTableImpl() {
277
- await db.execute(drizzleOrm.sql.raw(chunk3HQDMOBK_cjs.generatePgCreateTableSQL(matTable)));
293
+ await db.execute(drizzleOrm.sql.raw(chunkKY5SDVA7_cjs.generatePgCreateTableSQL(matTable)));
278
294
  }
279
295
  async function getContributionMaterializationRow(identity) {
280
296
  const rows = await db.select().from(matTable).where(
@@ -287,16 +303,16 @@ function createPostgresBackend(db, options = {}) {
287
303
  );
288
304
  const row = rows[0];
289
305
  if (row === void 0) return void 0;
290
- return chunk3HQDMOBK_cjs.mapContributionMaterializationRow(
306
+ return chunkKY5SDVA7_cjs.mapContributionMaterializationRow(
291
307
  row,
292
- chunk3HQDMOBK_cjs.POSTGRES_CONTRIBUTION_MAT_TIMESTAMPS.decode
308
+ chunkKY5SDVA7_cjs.POSTGRES_CONTRIBUTION_MAT_TIMESTAMPS.decode
293
309
  );
294
310
  }
295
311
  async function recordContributionMaterializationRow(params) {
296
312
  await db.insert(matTable).values(
297
- chunk3HQDMOBK_cjs.buildContributionInsertValues(
313
+ chunkKY5SDVA7_cjs.buildContributionInsertValues(
298
314
  params,
299
- chunk3HQDMOBK_cjs.POSTGRES_CONTRIBUTION_MAT_TIMESTAMPS.encode
315
+ chunkKY5SDVA7_cjs.POSTGRES_CONTRIBUTION_MAT_TIMESTAMPS.encode
300
316
  )
301
317
  ).onConflictDoUpdate({
302
318
  target: [
@@ -305,13 +321,13 @@ function createPostgresBackend(db, options = {}) {
305
321
  matTable.owner,
306
322
  matTable.tableName
307
323
  ],
308
- set: chunk3HQDMOBK_cjs.buildContributionOnConflictSet(
324
+ set: chunkKY5SDVA7_cjs.buildContributionOnConflictSet(
309
325
  matTable.materializedAt,
310
326
  params.materializedAt
311
327
  )
312
328
  });
313
329
  }
314
- const contributionMaterializer = chunk3HQDMOBK_cjs.createContributionMaterializer({
330
+ const contributionMaterializer = chunkKY5SDVA7_cjs.createContributionMaterializer({
315
331
  dialect: "postgres",
316
332
  fulltextStrategy,
317
333
  fulltextTableName: tables2.fulltextTableName,
@@ -331,12 +347,12 @@ function createPostgresBackend(db, options = {}) {
331
347
  capabilities,
332
348
  fulltextStrategy,
333
349
  vectorStrategy});
334
- return chunk3HQDMOBK_cjs.gateFulltext(txBackend, contributionMaterializer.assertInitialized);
350
+ return chunkKY5SDVA7_cjs.gateFulltext(txBackend, contributionMaterializer.assertInitialized);
335
351
  }
336
352
  const backend = {
337
353
  ...operations,
338
354
  async bootstrapTables() {
339
- const statements = chunk3HQDMOBK_cjs.generatePostgresDDL(tables2, fulltextStrategy);
355
+ const statements = chunkKY5SDVA7_cjs.generatePostgresDDL(tables2, fulltextStrategy);
340
356
  for (const statement of statements) {
341
357
  await db.execute(drizzleOrm.sql.raw(statement));
342
358
  }
@@ -346,7 +362,7 @@ function createPostgresBackend(db, options = {}) {
346
362
  // uninitialized database throws `StoreNotInitializedError` loudly
347
363
  // rather than self-healing on a read/write path (#135). Shared
348
364
  // verbatim with the tx-scoped gate via `gateFulltextMethods`.
349
- ...chunk3HQDMOBK_cjs.gateFulltextMethods(
365
+ ...chunkKY5SDVA7_cjs.gateFulltextMethods(
350
366
  operations,
351
367
  contributionMaterializer.assertInitialized
352
368
  ),
@@ -355,7 +371,7 @@ function createPostgresBackend(db, options = {}) {
355
371
  },
356
372
  async ensureIndexMaterializationsTable() {
357
373
  await db.execute(
358
- drizzleOrm.sql.raw(chunk3HQDMOBK_cjs.generatePgCreateTableSQL(tables2.indexMaterializations))
374
+ drizzleOrm.sql.raw(chunkKY5SDVA7_cjs.generatePgCreateTableSQL(tables2.indexMaterializations))
359
375
  );
360
376
  },
361
377
  async getIndexMaterialization(indexName) {
@@ -363,26 +379,26 @@ function createPostgresBackend(db, options = {}) {
363
379
  const rows = await db.select().from(t).where(drizzleOrm.eq(t.indexName, indexName));
364
380
  const row = rows[0];
365
381
  if (row === void 0) return void 0;
366
- return chunk3HQDMOBK_cjs.mapMaterializationRow(row, chunk3HQDMOBK_cjs.POSTGRES_INDEX_MAT_TIMESTAMPS.decode);
382
+ return chunkKY5SDVA7_cjs.mapMaterializationRow(row, chunkKY5SDVA7_cjs.POSTGRES_INDEX_MAT_TIMESTAMPS.decode);
367
383
  },
368
384
  async getIndexMaterializations(statusKeys) {
369
385
  if (statusKeys.length === 0) return [];
370
386
  const t = tables2.indexMaterializations;
371
387
  const rows = await db.select().from(t).where(drizzleOrm.inArray(t.indexName, [...statusKeys]));
372
388
  return rows.map(
373
- (row) => chunk3HQDMOBK_cjs.mapMaterializationRow(row, chunk3HQDMOBK_cjs.POSTGRES_INDEX_MAT_TIMESTAMPS.decode)
389
+ (row) => chunkKY5SDVA7_cjs.mapMaterializationRow(row, chunkKY5SDVA7_cjs.POSTGRES_INDEX_MAT_TIMESTAMPS.decode)
374
390
  );
375
391
  },
376
392
  async recordIndexMaterialization(params) {
377
393
  const t = tables2.indexMaterializations;
378
394
  await db.insert(t).values(
379
- chunk3HQDMOBK_cjs.buildMaterializationInsertValues(
395
+ chunkKY5SDVA7_cjs.buildMaterializationInsertValues(
380
396
  params,
381
- chunk3HQDMOBK_cjs.POSTGRES_INDEX_MAT_TIMESTAMPS.encode
397
+ chunkKY5SDVA7_cjs.POSTGRES_INDEX_MAT_TIMESTAMPS.encode
382
398
  )
383
399
  ).onConflictDoUpdate({
384
400
  target: t.indexName,
385
- set: chunk3HQDMOBK_cjs.buildMaterializationOnConflictSet(
401
+ set: chunkKY5SDVA7_cjs.buildMaterializationOnConflictSet(
386
402
  t.materializedAt,
387
403
  params.materializedAt
388
404
  )
@@ -401,37 +417,37 @@ function createPostgresBackend(db, options = {}) {
401
417
  await contributionMaterializer.assertInitialized(graphId);
402
418
  },
403
419
  async ensureKindRemovalsTable() {
404
- await db.execute(drizzleOrm.sql.raw(chunk3HQDMOBK_cjs.generatePgCreateTableSQL(tables2.kindRemovals)));
420
+ await db.execute(drizzleOrm.sql.raw(chunkKY5SDVA7_cjs.generatePgCreateTableSQL(tables2.kindRemovals)));
405
421
  },
406
422
  async getPendingKindRemovals(graphId) {
407
423
  const t = tables2.kindRemovals;
408
424
  const rows = await db.select().from(t).where(drizzleOrm.and(drizzleOrm.eq(t.graphId, graphId), drizzleOrm.isNull(t.removedAt)));
409
425
  return rows.map(
410
- (row) => chunk3HQDMOBK_cjs.mapKindRemovalRow(row, chunk3HQDMOBK_cjs.POSTGRES_KIND_REMOVAL_TIMESTAMPS.decode)
426
+ (row) => chunkKY5SDVA7_cjs.mapKindRemovalRow(row, chunkKY5SDVA7_cjs.POSTGRES_KIND_REMOVAL_TIMESTAMPS.decode)
411
427
  );
412
428
  },
413
429
  async getAllKindRemovals(graphId) {
414
430
  const t = tables2.kindRemovals;
415
431
  const rows = await db.select().from(t).where(drizzleOrm.eq(t.graphId, graphId));
416
432
  return rows.map(
417
- (row) => chunk3HQDMOBK_cjs.mapKindRemovalRow(row, chunk3HQDMOBK_cjs.POSTGRES_KIND_REMOVAL_TIMESTAMPS.decode)
433
+ (row) => chunkKY5SDVA7_cjs.mapKindRemovalRow(row, chunkKY5SDVA7_cjs.POSTGRES_KIND_REMOVAL_TIMESTAMPS.decode)
418
434
  );
419
435
  },
420
436
  async recordKindRemoval(params) {
421
437
  const t = tables2.kindRemovals;
422
438
  await db.insert(t).values(
423
- chunk3HQDMOBK_cjs.buildKindRemovalInsertValues(
439
+ chunkKY5SDVA7_cjs.buildKindRemovalInsertValues(
424
440
  params,
425
- chunk3HQDMOBK_cjs.POSTGRES_KIND_REMOVAL_TIMESTAMPS.encode
441
+ chunkKY5SDVA7_cjs.POSTGRES_KIND_REMOVAL_TIMESTAMPS.encode
426
442
  )
427
443
  ).onConflictDoUpdate({
428
444
  target: [t.graphId, t.kindName, t.entity, t.schemaVersion],
429
- set: chunk3HQDMOBK_cjs.buildKindRemovalOnConflictSet(t.removedAt, params.removedAt)
445
+ set: chunkKY5SDVA7_cjs.buildKindRemovalOnConflictSet(t.removedAt, params.removedAt)
430
446
  });
431
447
  },
432
448
  async ensureReconciliationMarkersTable() {
433
449
  await db.execute(
434
- drizzleOrm.sql.raw(chunk3HQDMOBK_cjs.generatePgCreateTableSQL(tables2.reconciliationMarkers))
450
+ drizzleOrm.sql.raw(chunkKY5SDVA7_cjs.generatePgCreateTableSQL(tables2.reconciliationMarkers))
435
451
  );
436
452
  },
437
453
  async ensureRuntimeContributions(graphId) {
@@ -458,7 +474,22 @@ function createPostgresBackend(db, options = {}) {
458
474
  });
459
475
  },
460
476
  async refreshStatistics() {
461
- await db.execute(analyzeStatement);
477
+ await db.execute(coreAnalyzeStatement);
478
+ const tablePresence = await Promise.all(
479
+ recordedAnalyzeTables.map(async (tableName) => ({
480
+ tableName,
481
+ exists: await recordedTableExists(tableName)
482
+ }))
483
+ );
484
+ const presentRecordedTables = tablePresence.filter((entry) => entry.exists).map((entry) => entry.tableName);
485
+ if (presentRecordedTables.length > 0) {
486
+ await db.execute(
487
+ drizzleOrm.sql`ANALYZE ${drizzleOrm.sql.join(
488
+ presentRecordedTables.map((name) => chunkHTGDWIDE_cjs.quoteIdentifier(name)),
489
+ drizzleOrm.sql`, `
490
+ )}`
491
+ );
492
+ }
462
493
  },
463
494
  async commitSchemaVersion(params) {
464
495
  return runSchemaWriteTransaction(
@@ -492,7 +523,7 @@ function createPostgresBackend(db, options = {}) {
492
523
  }
493
524
  );
494
525
  }
495
- chunk3HQDMOBK_cjs.assertAdoptedDialect(externalTx, pgCore.PgDatabase, "postgres");
526
+ chunkKY5SDVA7_cjs.assertAdoptedDialect(externalTx, pgCore.PgDatabase, "postgres");
496
527
  return bindTransactionBackend(externalTx);
497
528
  },
498
529
  async close() {
@@ -567,7 +598,7 @@ function createPostgresOperationBackend(options) {
567
598
  await execRun(drizzleOrm.sql.raw(statement));
568
599
  });
569
600
  }
570
- const commonBackend = chunk3HQDMOBK_cjs.createCommonOperationBackend({
601
+ const commonBackend = chunkKY5SDVA7_cjs.createCommonOperationBackend({
571
602
  batchConfig: {
572
603
  checkUniqueBatchChunkSize: POSTGRES_CHECK_UNIQUE_BATCH_CHUNK_SIZE,
573
604
  edgeInsertBatchSize: POSTGRES_EDGE_INSERT_BATCH_SIZE,
@@ -580,14 +611,15 @@ function createPostgresOperationBackend(options) {
580
611
  execGet,
581
612
  execRun
582
613
  },
583
- nowIso: chunk3HQDMOBK_cjs.nowIso,
614
+ nowIso: chunkI4W7MKVG_cjs.nowIso,
584
615
  operationStrategy,
585
616
  rowMappers: {
586
617
  toEdgeRow,
587
618
  toNodeRow,
588
619
  toSchemaVersionRow,
589
620
  toUniqueRow
590
- }
621
+ },
622
+ tableExistenceCache: { cacheExisting: false }
591
623
  });
592
624
  const executeCompiled = executionAdapter.executeCompiled;
593
625
  const executeRawMethod = executeCompiled === void 0 ? {} : {
@@ -597,19 +629,19 @@ function createPostgresOperationBackend(options) {
597
629
  };
598
630
  const vectorEmbeddingMethods = vectorStrategy === void 0 ? {} : {
599
631
  async upsertEmbedding(params) {
600
- const slot = chunk3HQDMOBK_cjs.vectorSlotFromParams(params);
632
+ const slot = chunkKY5SDVA7_cjs.vectorSlotFromParams(params);
601
633
  await ensureVectorSlotStorage(slot);
602
- const statements = vectorStrategy.buildUpsert(slot, params, chunk3HQDMOBK_cjs.nowIso());
634
+ const statements = vectorStrategy.buildUpsert(slot, params, chunkI4W7MKVG_cjs.nowIso());
603
635
  try {
604
636
  for (const statement of statements) {
605
637
  await execRun(statement);
606
638
  }
607
639
  } catch (error) {
608
- throw chunk3HQDMOBK_cjs.mapVectorWriteError(error, params);
640
+ throw chunkKY5SDVA7_cjs.mapVectorWriteError(error, params);
609
641
  }
610
642
  },
611
643
  async deleteEmbedding(params) {
612
- const slot = chunk3HQDMOBK_cjs.vectorSlotFromParams(params);
644
+ const slot = chunkKY5SDVA7_cjs.vectorSlotFromParams(params);
613
645
  await ensureVectorSlotStorage(slot);
614
646
  const statements = vectorStrategy.buildDelete(slot, params);
615
647
  for (const statement of statements) {
@@ -619,14 +651,14 @@ function createPostgresOperationBackend(options) {
619
651
  async vectorSearch(params) {
620
652
  chunkCFNT3ITG_cjs.assertVectorSearchLimit(params.limit);
621
653
  chunkYW7GHMF4_cjs.assertPgvectorEfSearch(params.efSearch);
622
- const slot = chunk3HQDMOBK_cjs.vectorSlotFromParams(params);
654
+ const slot = chunkKY5SDVA7_cjs.vectorSlotFromParams(params);
623
655
  await ensureVectorSlotStorage(slot);
624
656
  const query = vectorStrategy.buildSearch(slot, params);
625
657
  let rows;
626
658
  try {
627
659
  rows = await runVectorSearch(params.efSearch, query);
628
660
  } catch (error) {
629
- throw chunk3HQDMOBK_cjs.mapVectorWriteError(error, params);
661
+ throw chunkKY5SDVA7_cjs.mapVectorWriteError(error, params);
630
662
  }
631
663
  return rows.map((row) => ({
632
664
  nodeId: row.node_id,
@@ -646,7 +678,7 @@ function createPostgresOperationBackend(options) {
646
678
  // === Vector Index Operations ===
647
679
  async createVectorIndex(params) {
648
680
  if (vectorStrategy === void 0) return;
649
- const slot = chunk3HQDMOBK_cjs.vectorSlotFromCreateIndexParams(params);
681
+ const slot = chunkKY5SDVA7_cjs.vectorSlotFromCreateIndexParams(params);
650
682
  await ensureVectorSlotStorage(slot);
651
683
  const indexStatement = vectorStrategy.buildCreateIndex?.(slot, {
652
684
  concurrent: params.concurrent === true
@@ -657,7 +689,7 @@ function createPostgresOperationBackend(options) {
657
689
  },
658
690
  // === Fulltext Operations ===
659
691
  async upsertFulltext(params) {
660
- const timestamp = chunk3HQDMOBK_cjs.nowIso();
692
+ const timestamp = chunkI4W7MKVG_cjs.nowIso();
661
693
  const statements = operationStrategy.buildUpsertFulltext(
662
694
  params,
663
695
  timestamp
@@ -674,7 +706,7 @@ function createPostgresOperationBackend(options) {
674
706
  },
675
707
  async upsertFulltextBatch(params) {
676
708
  if (params.rows.length === 0) return;
677
- const timestamp = chunk3HQDMOBK_cjs.nowIso();
709
+ const timestamp = chunkI4W7MKVG_cjs.nowIso();
678
710
  const statements = operationStrategy.buildUpsertFulltextBatch(
679
711
  params,
680
712
  timestamp
@@ -695,20 +727,20 @@ function createPostgresOperationBackend(options) {
695
727
  const rows = await execAll(query);
696
728
  return rows.map((row, index) => ({
697
729
  nodeId: row.node_id,
698
- score: chunk3HQDMOBK_cjs.coerceNumericScore(row.score),
730
+ score: chunkI4W7MKVG_cjs.coerceNumericScore(row.score),
699
731
  rank: index + 1,
700
732
  ...row.snippet === null ? {} : { snippet: row.snippet }
701
733
  }));
702
734
  },
703
735
  async dropVectorIndex(params) {
704
736
  if (vectorStrategy === void 0) return;
705
- const slot = chunk3HQDMOBK_cjs.vectorSlotFromDropIndexParams(params);
737
+ const slot = chunkKY5SDVA7_cjs.vectorSlotFromDropIndexParams(params);
706
738
  const dropStatement = vectorStrategy.buildDropIndex?.(slot);
707
739
  if (dropStatement === void 0) return;
708
740
  try {
709
741
  await execRun(dropStatement);
710
742
  } catch (error) {
711
- if (!chunkRP7YITHX_cjs.isMissingTableError(error)) throw error;
743
+ if (!chunkOIE2UPVG_cjs.isMissingTableError(error)) throw error;
712
744
  }
713
745
  },
714
746
  // === Query Execution ===
@@ -732,10 +764,10 @@ function createTransactionBackend(options) {
732
764
  capabilities: options.capabilities,
733
765
  fulltextStrategy: options.fulltextStrategy,
734
766
  vectorStrategy: options.vectorStrategy,
735
- vectorSlotLatch: options.vectorStrategy === void 0 ? void 0 : chunk3HQDMOBK_cjs.createVectorSlotLatch()
767
+ vectorSlotLatch: options.vectorStrategy === void 0 ? void 0 : chunkKY5SDVA7_cjs.createVectorSlotLatch()
736
768
  });
737
769
  }
738
770
 
739
771
  exports.createPostgresBackend = createPostgresBackend;
740
- //# sourceMappingURL=chunk-YL4F3CMD.cjs.map
741
- //# sourceMappingURL=chunk-YL4F3CMD.cjs.map
772
+ //# sourceMappingURL=chunk-BF3ZDEUE.cjs.map
773
+ //# sourceMappingURL=chunk-BF3ZDEUE.cjs.map