@nicia-ai/typegraph 0.30.0 → 0.32.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.
- package/README.md +39 -0
- package/dist/backend/postgres/index.cjs +19 -18
- package/dist/backend/postgres/index.d.cts +6 -6
- package/dist/backend/postgres/index.d.ts +6 -6
- package/dist/backend/postgres/index.js +9 -8
- package/dist/backend/postgres/pglite.cjs +13 -12
- package/dist/backend/postgres/pglite.cjs.map +1 -1
- package/dist/backend/postgres/pglite.d.cts +3 -3
- package/dist/backend/postgres/pglite.d.ts +3 -3
- package/dist/backend/postgres/pglite.js +9 -8
- package/dist/backend/postgres/pglite.js.map +1 -1
- package/dist/backend/sqlite/index.cjs +16 -16
- package/dist/backend/sqlite/index.d.cts +7 -7
- package/dist/backend/sqlite/index.d.ts +7 -7
- package/dist/backend/sqlite/index.js +7 -7
- package/dist/backend/sqlite/libsql.cjs +12 -12
- package/dist/backend/sqlite/libsql.d.cts +3 -3
- package/dist/backend/sqlite/libsql.d.ts +3 -3
- package/dist/backend/sqlite/libsql.js +8 -8
- package/dist/backend/sqlite/local.cjs +13 -13
- package/dist/backend/sqlite/local.d.cts +3 -3
- package/dist/backend/sqlite/local.d.ts +3 -3
- package/dist/backend/sqlite/local.js +8 -8
- package/dist/{chunk-3JLRHQ67.js → chunk-2BVHPOIG.js} +7 -6
- package/dist/chunk-2BVHPOIG.js.map +1 -0
- package/dist/chunk-2LAT5BIK.cjs +16277 -0
- package/dist/chunk-2LAT5BIK.cjs.map +1 -0
- package/dist/chunk-2YMGNYXY.js +40 -0
- package/dist/chunk-2YMGNYXY.js.map +1 -0
- package/dist/chunk-3EUKJEQ3.js +77 -0
- package/dist/chunk-3EUKJEQ3.js.map +1 -0
- package/dist/{chunk-WFCECD6Q.cjs → chunk-3HQDMOBK.cjs} +73 -68
- package/dist/chunk-3HQDMOBK.cjs.map +1 -0
- package/dist/chunk-3QRBXYT5.cjs +94 -0
- package/dist/chunk-3QRBXYT5.cjs.map +1 -0
- package/dist/chunk-6G35I3VW.cjs +40 -0
- package/dist/chunk-6G35I3VW.cjs.map +1 -0
- package/dist/{chunk-4BXHVEFB.cjs → chunk-6RMLO5O4.cjs} +6 -51
- package/dist/chunk-6RMLO5O4.cjs.map +1 -0
- package/dist/chunk-6ZR4QC3O.cjs +12 -0
- package/dist/{chunk-LUHU4T2F.cjs.map → chunk-6ZR4QC3O.cjs.map} +1 -1
- package/dist/chunk-73KASJGO.cjs +52 -0
- package/dist/chunk-73KASJGO.cjs.map +1 -0
- package/dist/{chunk-IUIJJYPI.js → chunk-7WW3WL6E.js} +6 -5
- package/dist/chunk-7WW3WL6E.js.map +1 -0
- package/dist/chunk-A3W7QG7K.js +45 -0
- package/dist/chunk-A3W7QG7K.js.map +1 -0
- package/dist/chunk-AW4A3P5A.cjs +51 -0
- package/dist/chunk-AW4A3P5A.cjs.map +1 -0
- package/dist/{chunk-AI3RNREM.js → chunk-C4C4Q7A6.js} +94 -496
- package/dist/chunk-C4C4Q7A6.js.map +1 -0
- package/dist/{chunk-4LBO6KIF.cjs → chunk-CAMMC3E4.cjs} +60 -59
- package/dist/chunk-CAMMC3E4.cjs.map +1 -0
- package/dist/{chunk-3IRMLJEK.js → chunk-CEF2QOTO.js} +3 -3
- package/dist/{chunk-3IRMLJEK.js.map → chunk-CEF2QOTO.js.map} +1 -1
- package/dist/{chunk-UESTHN47.cjs → chunk-CFNT3ITG.cjs} +95 -507
- package/dist/chunk-CFNT3ITG.cjs.map +1 -0
- package/dist/chunk-CWFPJ3RC.js +282 -0
- package/dist/chunk-CWFPJ3RC.js.map +1 -0
- package/dist/{chunk-7JGLPAFV.cjs → chunk-EEYV6UOE.cjs} +16 -16
- package/dist/chunk-EEYV6UOE.cjs.map +1 -0
- package/dist/{chunk-FWBVPATK.cjs → chunk-FDN43KXV.cjs} +19 -19
- package/dist/{chunk-FWBVPATK.cjs.map → chunk-FDN43KXV.cjs.map} +1 -1
- package/dist/chunk-HFBRAOF7.js +610 -0
- package/dist/chunk-HFBRAOF7.js.map +1 -0
- package/dist/chunk-HTGDWIDE.cjs +89 -0
- package/dist/chunk-HTGDWIDE.cjs.map +1 -0
- package/dist/{chunk-R4JOBEJU.js → chunk-IJORSAC3.js} +4 -40
- package/dist/chunk-IJORSAC3.js.map +1 -0
- package/dist/{chunk-WEMZM7J7.cjs → chunk-JKRKIEVA.cjs} +5 -41
- package/dist/chunk-JKRKIEVA.cjs.map +1 -0
- package/dist/{chunk-SGPXKJ4A.cjs → chunk-KTIEB7VH.cjs} +26 -16
- package/dist/chunk-KTIEB7VH.cjs.map +1 -0
- package/dist/{chunk-K4N35E7B.cjs → chunk-LAZGHOZW.cjs} +72 -71
- package/dist/chunk-LAZGHOZW.cjs.map +1 -0
- package/dist/{chunk-VFX3LC76.cjs → chunk-LM2IC4ZJ.cjs} +14 -14
- package/dist/{chunk-VFX3LC76.cjs.map → chunk-LM2IC4ZJ.cjs.map} +1 -1
- package/dist/{chunk-K5VREXMZ.js → chunk-NDM5PXEH.js} +7 -6
- package/dist/chunk-NDM5PXEH.js.map +1 -0
- package/dist/chunk-PIHXFF73.js +90 -0
- package/dist/chunk-PIHXFF73.js.map +1 -0
- package/dist/{chunk-FVIGJTS7.js → chunk-PRMKPFN5.js} +4 -74
- package/dist/chunk-PRMKPFN5.js.map +1 -0
- package/dist/chunk-SAJSMR2B.js +35 -0
- package/dist/chunk-SAJSMR2B.js.map +1 -0
- package/dist/chunk-SB65GJNY.cjs +624 -0
- package/dist/chunk-SB65GJNY.cjs.map +1 -0
- package/dist/{chunk-N2OEOGBB.js → chunk-TUA3MEJJ.js} +13 -8
- package/dist/chunk-TUA3MEJJ.js.map +1 -0
- package/dist/{chunk-MAQJYNJR.js → chunk-W4ZX2GCP.js} +14 -16
- package/dist/chunk-W4ZX2GCP.js.map +1 -0
- package/dist/chunk-WNORITK6.js +16231 -0
- package/dist/chunk-WNORITK6.js.map +1 -0
- package/dist/chunk-WWVV44DY.cjs +287 -0
- package/dist/chunk-WWVV44DY.cjs.map +1 -0
- package/dist/{chunk-IX7RE7CG.js → chunk-WYTUF3QO.js} +3 -3
- package/dist/{chunk-IX7RE7CG.js.map → chunk-WYTUF3QO.js.map} +1 -1
- package/dist/{chunk-2QA5EHEN.js → chunk-XKNAK27R.js} +3 -3
- package/dist/{chunk-2QA5EHEN.js.map → chunk-XKNAK27R.js.map} +1 -1
- package/dist/{chunk-633N7DSE.js → chunk-XQFAJVYW.js} +4 -36
- package/dist/chunk-XQFAJVYW.js.map +1 -0
- package/dist/{chunk-ENDUY2CD.js → chunk-YCV72E6L.js} +23 -17
- package/dist/chunk-YCV72E6L.js.map +1 -0
- package/dist/{chunk-26HWIIVS.cjs → chunk-YL4F3CMD.cjs} +63 -62
- package/dist/chunk-YL4F3CMD.cjs.map +1 -0
- package/dist/{chunk-IE6GN7L3.cjs → chunk-YW7GHMF4.cjs} +17 -98
- package/dist/chunk-YW7GHMF4.cjs.map +1 -0
- package/dist/{ddl-EdkIiFVU.d.ts → ddl-C8e8zDAE.d.ts} +3 -3
- package/dist/{ddl-BSFlbGQF.d.cts → ddl-CwyG4HoQ.d.cts} +3 -3
- package/dist/{extension-types-CwHV-Uk4.d.cts → extension-types-D1k0inWU.d.cts} +1 -1
- package/dist/{extension-types-CwHV-Uk4.d.ts → extension-types-D1k0inWU.d.ts} +1 -1
- package/dist/graph-extension/index.cjs +17 -17
- package/dist/graph-extension/index.d.cts +5 -16
- package/dist/graph-extension/index.d.ts +5 -16
- package/dist/graph-extension/index.js +2 -2
- package/dist/graph-merge/index.cjs +3966 -0
- package/dist/graph-merge/index.cjs.map +1 -0
- package/dist/graph-merge/index.d.cts +1191 -0
- package/dist/graph-merge/index.d.ts +1191 -0
- package/dist/graph-merge/index.js +3935 -0
- package/dist/graph-merge/index.js.map +1 -0
- package/dist/{index-DzeIiMO3.d.ts → index-BEK0VtNB.d.ts} +2 -2
- package/dist/{index-Ln_KHTGA.d.cts → index-C8sSTErx.d.cts} +2 -2
- package/dist/index.cjs +291 -15919
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -11
- package/dist/index.d.ts +12 -11
- package/dist/index.js +24 -15791
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.cjs +30 -26
- package/dist/indexes/index.d.cts +5 -5
- package/dist/indexes/index.d.ts +5 -5
- package/dist/indexes/index.js +6 -2
- package/dist/interchange/index.cjs +49 -592
- package/dist/interchange/index.cjs.map +1 -1
- package/dist/interchange/index.d.cts +9 -9
- package/dist/interchange/index.d.ts +9 -9
- package/dist/interchange/index.js +2 -588
- package/dist/interchange/index.js.map +1 -1
- package/dist/{manager-BbdyNhkv.d.ts → manager-8htmuGr-.d.ts} +3 -3
- package/dist/{manager-wTDgjoXG.d.cts → manager-aVgxbGt-.d.cts} +3 -3
- package/dist/{materialize-indexes-lkawaDor.d.ts → materialize-indexes-CAGhqPHQ.d.ts} +1 -1
- package/dist/{materialize-indexes-oanE3RU0.d.cts → materialize-indexes-DEYkU-wr.d.cts} +1 -1
- package/dist/{postgres-CK2ByP1q.d.cts → postgres-Dhom7iiX.d.ts} +1 -1
- package/dist/{postgres-ymXYC6Rr.d.ts → postgres-jgXmD45C.d.cts} +1 -1
- package/dist/profiler/index.d.cts +7 -7
- package/dist/profiler/index.d.ts +7 -7
- package/dist/result-DWo6mUVz.d.cts +37 -0
- package/dist/result-DWo6mUVz.d.ts +37 -0
- package/dist/schema/index.cjs +30 -29
- package/dist/schema/index.cjs.map +1 -1
- package/dist/schema/index.d.cts +7 -7
- package/dist/schema/index.d.ts +7 -7
- package/dist/schema/index.js +7 -6
- package/dist/schema/index.js.map +1 -1
- package/dist/{sqlite-R8YGOqVQ.d.ts → sqlite-BfLsCEqO.d.ts} +1 -1
- package/dist/{sqlite-DxH1lrwD.d.cts → sqlite-DcQ_BCUW.d.cts} +1 -1
- package/dist/{store-CNKM334w.d.ts → store-view-lTcb_cnp.d.cts} +694 -366
- package/dist/{store--z1Tmk7U.d.cts → store-view-pBOUrQte.d.ts} +694 -366
- package/dist/{types-D5B6Be5c.d.cts → types-5RQwzWXx.d.cts} +2 -2
- package/dist/{types-CMvxx2kd.d.ts → types-DGDiXAYc.d.ts} +2 -2
- package/dist/{types-BBiDqJCU.d.ts → types-Dk8r09KY.d.ts} +16 -2
- package/dist/{types-dL-clxO3.d.cts → types-Dvmn-eal.d.cts} +16 -2
- package/dist/{where-CAo6wsBZ.d.ts → where-CHZFELX0.d.ts} +2 -2
- package/dist/{where-bJjuOCeV.d.cts → where-Cx_glEEB.d.cts} +2 -2
- package/package.json +7 -2
- package/dist/chunk-26HWIIVS.cjs.map +0 -1
- package/dist/chunk-3JLRHQ67.js.map +0 -1
- package/dist/chunk-4BXHVEFB.cjs.map +0 -1
- package/dist/chunk-4LBO6KIF.cjs.map +0 -1
- package/dist/chunk-633N7DSE.js.map +0 -1
- package/dist/chunk-7JGLPAFV.cjs.map +0 -1
- package/dist/chunk-AI3RNREM.js.map +0 -1
- package/dist/chunk-ENDUY2CD.js.map +0 -1
- package/dist/chunk-FVIGJTS7.js.map +0 -1
- package/dist/chunk-IE6GN7L3.cjs.map +0 -1
- package/dist/chunk-IUIJJYPI.js.map +0 -1
- package/dist/chunk-K4N35E7B.cjs.map +0 -1
- package/dist/chunk-K5VREXMZ.js.map +0 -1
- package/dist/chunk-LUHU4T2F.cjs +0 -12
- package/dist/chunk-MAQJYNJR.js.map +0 -1
- package/dist/chunk-N2OEOGBB.js.map +0 -1
- package/dist/chunk-R4JOBEJU.js.map +0 -1
- package/dist/chunk-SGPXKJ4A.cjs.map +0 -1
- package/dist/chunk-UESTHN47.cjs.map +0 -1
- package/dist/chunk-WEMZM7J7.cjs.map +0 -1
- package/dist/chunk-WFCECD6Q.cjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkCFNT3ITG_cjs = require('./chunk-CFNT3ITG.cjs');
|
|
4
4
|
var drizzleOrm = require('drizzle-orm');
|
|
5
5
|
var pgCore = require('drizzle-orm/pg-core');
|
|
6
6
|
|
|
@@ -72,7 +72,7 @@ function operatorClass(metric) {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
function vectorLiteral(embedding, name) {
|
|
75
|
-
|
|
75
|
+
chunkCFNT3ITG_cjs.assertFiniteEmbedding(embedding, name);
|
|
76
76
|
return drizzleOrm.sql`${formatVector(embedding)}::vector`;
|
|
77
77
|
}
|
|
78
78
|
function distanceExpression(embeddingColumn, queryEmbedding, metric) {
|
|
@@ -97,11 +97,11 @@ var pgvectorStrategy = {
|
|
|
97
97
|
name: "pgvector",
|
|
98
98
|
capabilities: PGVECTOR_CAPABILITIES,
|
|
99
99
|
tableName(graphId, nodeKind, fieldPath) {
|
|
100
|
-
return
|
|
100
|
+
return chunkCFNT3ITG_cjs.vectorPhysicalName(TABLE_PREFIX, graphId, nodeKind, fieldPath);
|
|
101
101
|
},
|
|
102
102
|
ownedTables(slot) {
|
|
103
103
|
const table = this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath);
|
|
104
|
-
const name =
|
|
104
|
+
const name = chunkCFNT3ITG_cjs.quoteIdentifier(table);
|
|
105
105
|
const createDdl = [
|
|
106
106
|
`CREATE TABLE IF NOT EXISTS ${name} (
|
|
107
107
|
"graph_id" TEXT NOT NULL,
|
|
@@ -114,7 +114,7 @@ var pgvectorStrategy = {
|
|
|
114
114
|
];
|
|
115
115
|
return [
|
|
116
116
|
{
|
|
117
|
-
logicalName: `${
|
|
117
|
+
logicalName: `${chunkCFNT3ITG_cjs.VECTOR_CONTRIBUTION_PREFIX}:${slot.nodeKind}.${slot.fieldPath}`,
|
|
118
118
|
owner: "pgvector",
|
|
119
119
|
tableName: table,
|
|
120
120
|
createDdl,
|
|
@@ -123,7 +123,7 @@ var pgvectorStrategy = {
|
|
|
123
123
|
];
|
|
124
124
|
},
|
|
125
125
|
buildUpsert(slot, params, timestamp) {
|
|
126
|
-
const table =
|
|
126
|
+
const table = chunkCFNT3ITG_cjs.quotedTableName(
|
|
127
127
|
this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath)
|
|
128
128
|
);
|
|
129
129
|
const value = vectorLiteral(params.embedding, "embedding");
|
|
@@ -137,7 +137,7 @@ var pgvectorStrategy = {
|
|
|
137
137
|
];
|
|
138
138
|
},
|
|
139
139
|
buildDelete(slot, params) {
|
|
140
|
-
const table =
|
|
140
|
+
const table = chunkCFNT3ITG_cjs.quotedTableName(
|
|
141
141
|
this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath)
|
|
142
142
|
);
|
|
143
143
|
return [
|
|
@@ -148,7 +148,7 @@ var pgvectorStrategy = {
|
|
|
148
148
|
];
|
|
149
149
|
},
|
|
150
150
|
buildSearch(slot, params) {
|
|
151
|
-
const table =
|
|
151
|
+
const table = chunkCFNT3ITG_cjs.quotedTableName(
|
|
152
152
|
this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath)
|
|
153
153
|
);
|
|
154
154
|
const embeddingColumn = drizzleOrm.sql`${table}."embedding"`;
|
|
@@ -157,11 +157,11 @@ var pgvectorStrategy = {
|
|
|
157
157
|
params.queryEmbedding,
|
|
158
158
|
params.metric
|
|
159
159
|
);
|
|
160
|
-
const score =
|
|
160
|
+
const score = chunkCFNT3ITG_cjs.vectorScoreExpression(distance, params.metric);
|
|
161
161
|
const conditions = [drizzleOrm.sql`${table}."graph_id" = ${params.graphId}`];
|
|
162
162
|
if (params.minScore !== void 0) {
|
|
163
163
|
conditions.push(
|
|
164
|
-
|
|
164
|
+
chunkCFNT3ITG_cjs.vectorMinScoreCondition(distance, params.metric, params.minScore)
|
|
165
165
|
);
|
|
166
166
|
}
|
|
167
167
|
return drizzleOrm.sql`
|
|
@@ -188,17 +188,17 @@ var pgvectorStrategy = {
|
|
|
188
188
|
buildDropIndex(slot) {
|
|
189
189
|
if (!usesAnnIndex(slot)) return void 0;
|
|
190
190
|
const indexName = pgvectorIndexName(slot);
|
|
191
|
-
return drizzleOrm.sql.raw(`DROP INDEX IF EXISTS ${
|
|
191
|
+
return drizzleOrm.sql.raw(`DROP INDEX IF EXISTS ${chunkCFNT3ITG_cjs.quoteIdentifier(indexName)}`);
|
|
192
192
|
},
|
|
193
193
|
buildDropStorage(slot) {
|
|
194
|
-
const table =
|
|
194
|
+
const table = chunkCFNT3ITG_cjs.quoteIdentifier(
|
|
195
195
|
this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath)
|
|
196
196
|
);
|
|
197
197
|
return [`DROP TABLE IF EXISTS ${table} CASCADE`];
|
|
198
198
|
}
|
|
199
199
|
};
|
|
200
200
|
function pgvectorIndexName(slot) {
|
|
201
|
-
return
|
|
201
|
+
return chunkCFNT3ITG_cjs.vectorPhysicalName(
|
|
202
202
|
INDEX_PREFIX,
|
|
203
203
|
slot.graphId,
|
|
204
204
|
slot.nodeKind,
|
|
@@ -206,8 +206,8 @@ function pgvectorIndexName(slot) {
|
|
|
206
206
|
);
|
|
207
207
|
}
|
|
208
208
|
function pgvectorIndexDdl(table, slot, concurrent) {
|
|
209
|
-
const indexName =
|
|
210
|
-
const quotedTable =
|
|
209
|
+
const indexName = chunkCFNT3ITG_cjs.quoteIdentifier(pgvectorIndexName(slot));
|
|
210
|
+
const quotedTable = chunkCFNT3ITG_cjs.quoteIdentifier(table);
|
|
211
211
|
const opClass = operatorClass(slot.metric);
|
|
212
212
|
const m = slot.indexParams?.m ?? DEFAULT_HNSW_M;
|
|
213
213
|
const efConstruction = slot.indexParams?.efConstruction ?? DEFAULT_HNSW_EF_CONSTRUCTION;
|
|
@@ -231,89 +231,8 @@ function pgvectorIndexDdl(table, slot, concurrent) {
|
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
|
-
var NODE_COLUMNS = [
|
|
235
|
-
"id",
|
|
236
|
-
"kind",
|
|
237
|
-
"props",
|
|
238
|
-
"version",
|
|
239
|
-
"valid_from",
|
|
240
|
-
"valid_to",
|
|
241
|
-
"created_at",
|
|
242
|
-
"updated_at",
|
|
243
|
-
"deleted_at"
|
|
244
|
-
];
|
|
245
|
-
var EDGE_COLUMNS = [
|
|
246
|
-
"id",
|
|
247
|
-
"kind",
|
|
248
|
-
"from_id",
|
|
249
|
-
"to_id",
|
|
250
|
-
"props",
|
|
251
|
-
"valid_from",
|
|
252
|
-
"valid_to",
|
|
253
|
-
"created_at",
|
|
254
|
-
"updated_at",
|
|
255
|
-
"deleted_at"
|
|
256
|
-
];
|
|
257
|
-
var EMPTY_REQUIRED_COLUMNS = /* @__PURE__ */ new Set();
|
|
258
|
-
function quoteIdentifier2(identifier) {
|
|
259
|
-
return drizzleOrm.sql.raw(`"${identifier.replaceAll('"', '""')}"`);
|
|
260
|
-
}
|
|
261
|
-
function shouldProjectColumn(requiredColumns, column, alwaysRequiredColumns) {
|
|
262
|
-
if (alwaysRequiredColumns?.has(column)) return true;
|
|
263
|
-
if (requiredColumns === void 0) return true;
|
|
264
|
-
return requiredColumns.has(column);
|
|
265
|
-
}
|
|
266
|
-
function addRequiredColumn(requiredColumnsByAlias, alias, column) {
|
|
267
|
-
const existing = requiredColumnsByAlias.get(alias);
|
|
268
|
-
if (existing) {
|
|
269
|
-
existing.add(column);
|
|
270
|
-
return;
|
|
271
|
-
}
|
|
272
|
-
requiredColumnsByAlias.set(alias, /* @__PURE__ */ new Set([column]));
|
|
273
|
-
}
|
|
274
|
-
function markFieldRefAsRequired(requiredColumnsByAlias, field) {
|
|
275
|
-
const column = field.path[0];
|
|
276
|
-
if (column === void 0) return;
|
|
277
|
-
addRequiredColumn(requiredColumnsByAlias, field.alias, column);
|
|
278
|
-
}
|
|
279
|
-
function mapSelectiveSystemFieldToColumn(field) {
|
|
280
|
-
if (field === "fromId") return "from_id";
|
|
281
|
-
if (field === "toId") return "to_id";
|
|
282
|
-
if (field.startsWith("meta.")) {
|
|
283
|
-
return field.slice(5).replaceAll(/([A-Z])/g, "_$1").toLowerCase();
|
|
284
|
-
}
|
|
285
|
-
return field;
|
|
286
|
-
}
|
|
287
|
-
function markSelectiveFieldAsRequired(requiredColumnsByAlias, field) {
|
|
288
|
-
if (field.isSystemField) {
|
|
289
|
-
addRequiredColumn(
|
|
290
|
-
requiredColumnsByAlias,
|
|
291
|
-
field.alias,
|
|
292
|
-
mapSelectiveSystemFieldToColumn(field.field)
|
|
293
|
-
);
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
addRequiredColumn(requiredColumnsByAlias, field.alias, "props");
|
|
297
|
-
}
|
|
298
|
-
function isIdFieldRef(field) {
|
|
299
|
-
return field.path.length === 1 && field.path[0] === "id" && field.jsonPointer === void 0;
|
|
300
|
-
}
|
|
301
|
-
function isAggregateExpr(source) {
|
|
302
|
-
return "__type" in source && source.__type === "aggregate";
|
|
303
|
-
}
|
|
304
234
|
|
|
305
|
-
exports.EDGE_COLUMNS = EDGE_COLUMNS;
|
|
306
|
-
exports.EMPTY_REQUIRED_COLUMNS = EMPTY_REQUIRED_COLUMNS;
|
|
307
|
-
exports.NODE_COLUMNS = NODE_COLUMNS;
|
|
308
|
-
exports.addRequiredColumn = addRequiredColumn;
|
|
309
235
|
exports.assertPgvectorEfSearch = assertPgvectorEfSearch;
|
|
310
|
-
exports.isAggregateExpr = isAggregateExpr;
|
|
311
|
-
exports.isIdFieldRef = isIdFieldRef;
|
|
312
|
-
exports.mapSelectiveSystemFieldToColumn = mapSelectiveSystemFieldToColumn;
|
|
313
|
-
exports.markFieldRefAsRequired = markFieldRefAsRequired;
|
|
314
|
-
exports.markSelectiveFieldAsRequired = markSelectiveFieldAsRequired;
|
|
315
236
|
exports.pgvectorStrategy = pgvectorStrategy;
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
//# sourceMappingURL=chunk-IE6GN7L3.cjs.map
|
|
319
|
-
//# sourceMappingURL=chunk-IE6GN7L3.cjs.map
|
|
237
|
+
//# sourceMappingURL=chunk-YW7GHMF4.cjs.map
|
|
238
|
+
//# sourceMappingURL=chunk-YW7GHMF4.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/backend/drizzle/columns/vector.ts","../src/query/dialect/vector/pgvector-strategy.ts"],"names":["customType","assertFiniteEmbedding","sql","vectorPhysicalName","quoteIdentifier","VECTOR_CONTRIBUTION_PREFIX","quotedTableName","vectorScoreExpression","vectorMinScoreCondition"],"mappings":"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","file":"chunk-YW7GHMF4.cjs","sourcesContent":["/**\n * Custom Drizzle column type for pgvector's VECTOR type.\n *\n * Provides native support for PostgreSQL vector embeddings without\n * requiring runtime casts in queries.\n *\n * @example\n * ```typescript\n * import { pgTable, text, integer } from \"drizzle-orm/pg-core\";\n * import { vector } from \"./columns/vector\";\n *\n * const embeddings = pgTable(\"embeddings\", {\n * id: text(\"id\").primaryKey(),\n * embedding: vector(\"embedding\"),\n * dimensions: integer(\"dimensions\"),\n * });\n * ```\n */\nimport { customType } from \"drizzle-orm/pg-core\";\n\n/**\n * PostgreSQL vector column type for pgvector extension.\n *\n * Stores embeddings as native VECTOR type, enabling efficient\n * similarity search without runtime casts.\n *\n * The column type is unparameterized (`VECTOR` not `VECTOR(N)`)\n * to support multiple embedding dimensions in a single table.\n * Dimension validation is handled at the application level.\n *\n * @example\n * ```typescript\n * // In table definition\n * embedding: vector(\"embedding\").notNull(),\n *\n * // In queries - no cast needed\n * db.execute(sql`\n * SELECT * FROM embeddings\n * WHERE embedding <=> ${formatVector([0.1, 0.2, 0.3])} < 0.5\n * `);\n * ```\n */\nexport const vector = customType<{\n data: number[];\n driverData: string;\n config: { dimensions?: number };\n}>({\n dataType(config) {\n // Use parameterized type if dimensions specified, otherwise unparameterized\n return config?.dimensions ? `vector(${config.dimensions})` : \"vector\";\n },\n\n toDriver(value: number[]): string {\n // Format as pgvector literal: [1.0,2.0,3.0]\n return `[${value.join(\",\")}]`;\n },\n\n fromDriver(value: string): number[] {\n // pgvector returns '[1,2,3]' format\n // Handle both string and already-parsed array (some drivers differ)\n if (Array.isArray(value)) {\n return value as number[];\n }\n // Parse the string representation\n const content = value.slice(1, -1); // Remove [ and ]\n if (content === \"\") {\n return [];\n }\n return content.split(\",\").map((s) => Number.parseFloat(s.trim()));\n },\n});\n\n/**\n * Formats a number array as a pgvector literal string.\n *\n * Use this when building raw SQL queries with embeddings.\n *\n * @example\n * ```typescript\n * const embedding = [0.1, 0.2, 0.3];\n * db.execute(sql`\n * SELECT * FROM embeddings\n * WHERE embedding <=> ${formatVector(embedding)}::vector < 0.5\n * `);\n * ```\n */\nexport function formatVector(embedding: readonly number[]): string {\n return `[${embedding.join(\",\")}]`;\n}\n","/**\n * pgvector strategy.\n *\n * Postgres' pgvector extension is the one engine where the *same* SQL serves\n * brute-force and ANN: `ORDER BY embedding <=> q LIMIT k` scans sequentially\n * with no index and is rewritten to an HNSW/IVFFlat scan the moment a matching\n * index exists — the planner picks it up automatically. So `buildSearch` never\n * branches on `slot.indexType`; it emits one relevance scan and lets Postgres\n * decide. (Contrast libSQL/sqlite-vec, whose ANN needs distinct syntax.)\n *\n * Storage is per-`(nodeKind, fieldPath)`: a `vector(N)` column carrying the\n * field's fixed dimension `N`, with the operator-class-typed ANN index folded\n * into the same table contribution so materialization builds table + index\n * together. The typed column means the index does not need the legacy\n * `::vector(N)` cast-in-index escape hatch the old shared table relied on.\n *\n * Metric support is the full pgvector set — `cosine`, `l2`, `inner_product` —\n * advertised as data on `capabilities`, mirroring `vector_cosine_ops` /\n * `vector_l2_ops` / `vector_ip_ops` and the `<=>` / `<->` / `<#>` operators.\n *\n * Mirrors the `libsqlVectorStrategy` / `sqliteVecStrategy` structure while\n * letting Postgres' planner pick the ANN index when one exists.\n */\nimport { type SQL, sql } from \"drizzle-orm\";\n\nimport { formatVector } from \"../../../backend/drizzle/columns/vector\";\nimport { quotedTableName } from \"../../../backend/drizzle/operations/shared\";\nimport { type StrategyTableContribution } from \"../../../backend/table-contribution\";\nimport {\n type DeleteEmbeddingParams,\n type UpsertEmbeddingParams,\n type VectorCapabilities,\n type VectorMetric,\n type VectorSearchParams,\n} from \"../../../backend/types\";\nimport {\n assertFiniteEmbedding,\n quoteIdentifier,\n VECTOR_CONTRIBUTION_PREFIX,\n vectorMinScoreCondition,\n vectorPhysicalName,\n vectorScoreExpression,\n type VectorSlot,\n type VectorStrategy,\n} from \"../vector-strategy\";\n\n/** Physical-name prefixes for the per-field table and its ANN index. */\nconst TABLE_PREFIX = \"tg_vec\";\nconst INDEX_PREFIX = \"tg_vecidx\";\n\n/**\n * pgvector defines `hnsw.ef_search` as an integer GUC with a valid range\n * of 1..1000; `SET hnsw.ef_search = 1001` errors at the server. The\n * backend validates a per-search `efSearch` against this ceiling before\n * inlining it into `SET LOCAL`, surfacing a clear message instead of a raw\n * pgvector error.\n */\nexport const MAX_HNSW_EF_SEARCH = 1000;\n\n/**\n * Validates a per-search `efSearch` override against pgvector's\n * `hnsw.ef_search` valid range. `undefined` (no override) is accepted.\n */\nexport function assertPgvectorEfSearch(efSearch?: number): void {\n if (efSearch === undefined) return;\n if (!Number.isInteger(efSearch) || efSearch <= 0) {\n throw new Error(`efSearch must be a positive integer, got: ${efSearch}`);\n }\n if (efSearch > MAX_HNSW_EF_SEARCH) {\n throw new RangeError(\n `efSearch must be ≤ ${MAX_HNSW_EF_SEARCH} (pgvector's hnsw.ef_search ` +\n `valid range is 1..${MAX_HNSW_EF_SEARCH}), got: ${efSearch}`,\n );\n }\n}\n\n/**\n * pgvector's `vector` type caps at 16,000 dimensions for a stored column\n * (2,000 for an indexed column, but the column-type ceiling is what governs\n * storage; recall degradation beyond 2,000 is a tuning concern, not a hard\n * limit advertised here).\n */\nconst PGVECTOR_MAX_DIMENSIONS = 16_000;\n\n/** Default HNSW `m` (max connections per layer) — pgvector's own default. */\nconst DEFAULT_HNSW_M = 16;\n/** Default HNSW `ef_construction` (build candidate list) — pgvector's own default. */\nconst DEFAULT_HNSW_EF_CONSTRUCTION = 64;\n/** Default IVFFlat `lists` (inverted lists) — pgvector's own default. */\nconst DEFAULT_IVFFLAT_LISTS = 100;\n\nconst PGVECTOR_CAPABILITIES: VectorCapabilities = {\n supported: true,\n metrics: [\"cosine\", \"l2\", \"inner_product\"],\n indexTypes: [\"hnsw\", \"ivfflat\", \"none\"],\n maxDimensions: PGVECTOR_MAX_DIMENSIONS,\n};\n\n/** Whether a slot's declared index type materializes a real pgvector ANN index. */\nfunction usesAnnIndex(slot: VectorSlot): boolean {\n return slot.indexType === \"hnsw\" || slot.indexType === \"ivfflat\";\n}\n\n/**\n * pgvector operator class for a metric's ANN index — `vector_cosine_ops` /\n * `vector_l2_ops` / `vector_ip_ops`, mirroring the `<=>` / `<->` / `<#>`\n * distance operators this strategy emits.\n */\nfunction operatorClass(metric: VectorMetric): string {\n switch (metric) {\n case \"cosine\": {\n return \"vector_cosine_ops\";\n }\n case \"l2\": {\n return \"vector_l2_ops\";\n }\n case \"inner_product\": {\n return \"vector_ip_ops\";\n }\n default: {\n const _exhaustive: never = metric;\n throw new Error(`Unsupported vector metric: ${String(_exhaustive)}`);\n }\n }\n}\n\n/**\n * Formats an embedding as a `::vector` literal. The value is bound as a\n * parameter (not interpolated) — Postgres parses the `[a,b,c]` text and the\n * cast types it. Finiteness is validated first so a NaN names its index.\n */\nfunction vectorLiteral(embedding: readonly number[], name: string): SQL {\n assertFiniteEmbedding(embedding, name);\n return sql`${formatVector(embedding)}::vector`;\n}\n\nfunction distanceExpression(\n embeddingColumn: SQL,\n queryEmbedding: readonly number[],\n metric: VectorMetric,\n): SQL {\n const query = vectorLiteral(queryEmbedding, \"queryEmbedding\");\n switch (metric) {\n case \"cosine\": {\n return sql`(${embeddingColumn} <=> ${query})`;\n }\n case \"l2\": {\n return sql`(${embeddingColumn} <-> ${query})`;\n }\n case \"inner_product\": {\n return sql`(${embeddingColumn} <#> ${query})`;\n }\n default: {\n const _exhaustive: never = metric;\n throw new Error(`Unsupported vector metric: ${String(_exhaustive)}`);\n }\n }\n}\n\nexport const pgvectorStrategy: VectorStrategy = {\n name: \"pgvector\",\n capabilities: PGVECTOR_CAPABILITIES,\n\n tableName(graphId, nodeKind, fieldPath) {\n return vectorPhysicalName(TABLE_PREFIX, graphId, nodeKind, fieldPath);\n },\n\n ownedTables(slot): readonly StrategyTableContribution[] {\n const table = this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath);\n const name = quoteIdentifier(table);\n\n // No standalone graph_id index: the PRIMARY KEY (graph_id, node_id) already\n // covers `WHERE graph_id = ?` via its leading column, so a separate index\n // would be pure write amplification.\n const createDdl = [\n `CREATE TABLE IF NOT EXISTS ${name} (\n \"graph_id\" TEXT NOT NULL,\n \"node_id\" TEXT NOT NULL,\n \"embedding\" vector(${slot.dimensions}) NOT NULL,\n \"created_at\" TIMESTAMPTZ NOT NULL,\n \"updated_at\" TIMESTAMPTZ NOT NULL,\n PRIMARY KEY (\"graph_id\", \"node_id\")\n);`,\n ];\n\n // The HNSW/IVFFlat index is intentionally NOT created here. pgvector\n // similarity SQL is planner-driven (`ORDER BY embedding <=> q LIMIT k`\n // uses the index when present, sequential-scans when not), so the index\n // is a pure materialization concern: `buildCreateIndex` builds it through\n // `materializeIndexes()` with the field's declared `m`/`ef_construction`/\n // `lists`. Building it eagerly here would bake in default tuning (the\n // write-ensure slot has no `indexParams`) and `CREATE INDEX IF NOT EXISTS`\n // would then mask the tuned index materialization would emit.\n\n return [\n {\n logicalName: `${VECTOR_CONTRIBUTION_PREFIX}:${slot.nodeKind}.${slot.fieldPath}`,\n owner: \"pgvector\",\n tableName: table,\n createDdl,\n runtimeEnsure: true,\n },\n ];\n },\n\n buildUpsert(slot, params: UpsertEmbeddingParams, timestamp): readonly SQL[] {\n const table = quotedTableName(\n this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath),\n );\n const value = vectorLiteral(params.embedding, \"embedding\");\n return [\n sql`\n INSERT INTO ${table} (\"graph_id\", \"node_id\", \"embedding\", \"created_at\", \"updated_at\")\n VALUES (${params.graphId}, ${params.nodeId}, ${value}, ${timestamp}, ${timestamp})\n ON CONFLICT (\"graph_id\", \"node_id\")\n DO UPDATE SET \"embedding\" = EXCLUDED.\"embedding\", \"updated_at\" = EXCLUDED.\"updated_at\"\n `,\n ];\n },\n\n buildDelete(slot, params: DeleteEmbeddingParams): readonly SQL[] {\n const table = quotedTableName(\n this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath),\n );\n return [\n sql`\n DELETE FROM ${table}\n WHERE \"graph_id\" = ${params.graphId} AND \"node_id\" = ${params.nodeId}\n `,\n ];\n },\n\n buildSearch(slot, params: VectorSearchParams): SQL {\n const table = quotedTableName(\n this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath),\n );\n const embeddingColumn = sql`${table}.\"embedding\"`;\n const distance = distanceExpression(\n embeddingColumn,\n params.queryEmbedding,\n params.metric,\n );\n const score = vectorScoreExpression(distance, params.metric);\n\n // Same SQL for brute-force and ANN: with a matching HNSW/IVFFlat index the\n // Postgres planner rewrites this `ORDER BY distance LIMIT k` into an index\n // scan automatically, so the strategy never branches on `slot.indexType`.\n const conditions: SQL[] = [sql`${table}.\"graph_id\" = ${params.graphId}`];\n if (params.minScore !== undefined) {\n conditions.push(\n vectorMinScoreCondition(distance, params.metric, params.minScore),\n );\n }\n return sql`\n SELECT ${table}.\"node_id\" AS node_id, ${score} AS score\n FROM ${table}\n WHERE ${sql.join(conditions, sql` AND `)}\n ORDER BY ${distance} ASC\n LIMIT ${params.limit}\n `;\n },\n\n distanceExpression(embeddingColumn, queryEmbedding, metric) {\n return distanceExpression(embeddingColumn, queryEmbedding, metric);\n },\n\n buildCreateIndex(slot, options): SQL | undefined {\n if (!usesAnnIndex(slot)) return undefined;\n return sql.raw(\n pgvectorIndexDdl(\n this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath),\n slot,\n options?.concurrent === true,\n ),\n );\n },\n\n buildDropIndex(slot): SQL | undefined {\n if (!usesAnnIndex(slot)) return undefined;\n const indexName = pgvectorIndexName(slot);\n return sql.raw(`DROP INDEX IF EXISTS ${quoteIdentifier(indexName)}`);\n },\n\n buildDropStorage(slot): readonly string[] {\n const table = quoteIdentifier(\n this.tableName(slot.graphId, slot.nodeKind, slot.fieldPath),\n );\n // CASCADE drops the ANN index along with the table.\n return [`DROP TABLE IF EXISTS ${table} CASCADE`];\n },\n};\n\nfunction pgvectorIndexName(slot: VectorSlot): string {\n return vectorPhysicalName(\n INDEX_PREFIX,\n slot.graphId,\n slot.nodeKind,\n slot.fieldPath,\n );\n}\n\nfunction pgvectorIndexDdl(\n table: string,\n slot: VectorSlot,\n concurrent: boolean,\n): string {\n const indexName = quoteIdentifier(pgvectorIndexName(slot));\n const quotedTable = quoteIdentifier(table);\n const opClass = operatorClass(slot.metric);\n // Honor the field's declared tuning; fall back to pgvector defaults.\n const m = slot.indexParams?.m ?? DEFAULT_HNSW_M;\n const efConstruction =\n slot.indexParams?.efConstruction ?? DEFAULT_HNSW_EF_CONSTRUCTION;\n const lists = slot.indexParams?.lists ?? DEFAULT_IVFFLAT_LISTS;\n // CONCURRENTLY builds without taking a write-blocking lock on the live table\n // (materializeIndexes passes concurrent on Postgres). Run outside a tx.\n const create = `CREATE INDEX${concurrent ? \" CONCURRENTLY\" : \"\"} IF NOT EXISTS`;\n\n switch (slot.indexType) {\n case \"hnsw\": {\n return `${create} ${indexName} ON ${quotedTable} USING hnsw (\"embedding\" ${opClass}) WITH (m = ${m}, ef_construction = ${efConstruction});`;\n }\n case \"ivfflat\": {\n return `${create} ${indexName} ON ${quotedTable} USING ivfflat (\"embedding\" ${opClass}) WITH (lists = ${lists});`;\n }\n case \"none\": {\n throw new Error(\n \"pgvectorIndexDdl called for a brute-force-only slot (indexType 'none').\",\n );\n }\n default: {\n const _exhaustive: never = slot.indexType;\n throw new Error(`Unsupported vector index type: ${String(_exhaustive)}`);\n }\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { F as FulltextStrategy } from './types-
|
|
2
|
-
import { P as PostgresTables } from './postgres-
|
|
3
|
-
import { S as SqliteTables } from './sqlite-
|
|
1
|
+
import { F as FulltextStrategy } from './types-Dk8r09KY.js';
|
|
2
|
+
import { P as PostgresTables } from './postgres-Dhom7iiX.js';
|
|
3
|
+
import { S as SqliteTables } from './sqlite-BfLsCEqO.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Generates all DDL statements for the given SQLite tables.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { F as FulltextStrategy } from './types-
|
|
2
|
-
import { P as PostgresTables } from './postgres-
|
|
3
|
-
import { S as SqliteTables } from './sqlite-
|
|
1
|
+
import { F as FulltextStrategy } from './types-Dvmn-eal.cjs';
|
|
2
|
+
import { P as PostgresTables } from './postgres-jgXmD45C.cjs';
|
|
3
|
+
import { S as SqliteTables } from './sqlite-DcQ_BCUW.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Generates all DDL statements for the given SQLite tables.
|
|
@@ -540,4 +540,4 @@ type GraphExtension = Readonly<{
|
|
|
540
540
|
declare const GRAPH_EXTENSION_TOP_LEVEL_KEYS: readonly ["version", "nodes", "edges", "ontology", "indexes"];
|
|
541
541
|
type GraphExtensionTopLevelKey = (typeof GRAPH_EXTENSION_TOP_LEVEL_KEYS)[number];
|
|
542
542
|
|
|
543
|
-
export { type AnyEdgeType as A, type
|
|
543
|
+
export { type AnyEdgeType as A, type ExtensionEmbeddingModifier as B, type Collation as C, type DeleteBehavior as D, type EdgeRegistration as E, type ExtensionEnumProperty as F, type GraphExtension as G, type ExtensionIndexWhere as H, type IndexEntity as I, type JsonValue as J, type KindEntity as K, LEGACY_GRAPH_EXTENSION_VERSION as L, type ExtensionNodeIndex as M, type NodeType as N, type ExtensionNumberProperty as O, type ExtensionObjectFieldProperty as P, type ExtensionObjectProperty as Q, type ExtensionPropertyType as R, type ExtensionSearchableModifier as S, type TemporalMode as T, type UniquenessScope as U, type ExtensionStringProperty as V, type ExtensionUniqueConstraint as W, type ExtensionUniqueWhere as X, GRAPH_EXTENSION_TOP_LEVEL_KEYS as Y, type GraphExtensionTopLevelKey as Z, type NullCheckOp as a, type NodeRegistration as b, type GraphDefaults as c, type NodeId as d, type EdgeId as e, type KindAnnotations as f, type EdgeType as g, type GraphExtensionVersion as h, type ExtensionNodeDef as i, type ExtensionEdgeDef as j, type ExtensionOntologyRelation as k, type ExtensionIndex as l, type Cardinality as m, type EndpointExistence as n, CURRENT_GRAPH_EXTENSION_VERSION as o, type EdgeProps as p, type EdgeTypeWithEndpoints as q, type NodeProps as r, type UniqueConstraint as s, isEdgeType as t, isEdgeTypeWithEndpoints as u, isNodeType as v, type ExtensionArrayItemType as w, type ExtensionArrayProperty as x, type ExtensionBooleanProperty as y, type ExtensionEdgeIndex as z };
|
|
@@ -540,4 +540,4 @@ type GraphExtension = Readonly<{
|
|
|
540
540
|
declare const GRAPH_EXTENSION_TOP_LEVEL_KEYS: readonly ["version", "nodes", "edges", "ontology", "indexes"];
|
|
541
541
|
type GraphExtensionTopLevelKey = (typeof GRAPH_EXTENSION_TOP_LEVEL_KEYS)[number];
|
|
542
542
|
|
|
543
|
-
export { type AnyEdgeType as A, type
|
|
543
|
+
export { type AnyEdgeType as A, type ExtensionEmbeddingModifier as B, type Collation as C, type DeleteBehavior as D, type EdgeRegistration as E, type ExtensionEnumProperty as F, type GraphExtension as G, type ExtensionIndexWhere as H, type IndexEntity as I, type JsonValue as J, type KindEntity as K, LEGACY_GRAPH_EXTENSION_VERSION as L, type ExtensionNodeIndex as M, type NodeType as N, type ExtensionNumberProperty as O, type ExtensionObjectFieldProperty as P, type ExtensionObjectProperty as Q, type ExtensionPropertyType as R, type ExtensionSearchableModifier as S, type TemporalMode as T, type UniquenessScope as U, type ExtensionStringProperty as V, type ExtensionUniqueConstraint as W, type ExtensionUniqueWhere as X, GRAPH_EXTENSION_TOP_LEVEL_KEYS as Y, type GraphExtensionTopLevelKey as Z, type NullCheckOp as a, type NodeRegistration as b, type GraphDefaults as c, type NodeId as d, type EdgeId as e, type KindAnnotations as f, type EdgeType as g, type GraphExtensionVersion as h, type ExtensionNodeDef as i, type ExtensionEdgeDef as j, type ExtensionOntologyRelation as k, type ExtensionIndex as l, type Cardinality as m, type EndpointExistence as n, CURRENT_GRAPH_EXTENSION_VERSION as o, type EdgeProps as p, type EdgeTypeWithEndpoints as q, type NodeProps as r, type UniqueConstraint as s, isEdgeType as t, isEdgeTypeWithEndpoints as u, isNodeType as v, type ExtensionArrayItemType as w, type ExtensionArrayProperty as x, type ExtensionBooleanProperty as y, type ExtensionEdgeIndex as z };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk6ZR4QC3O_cjs = require('../chunk-6ZR4QC3O.cjs');
|
|
4
|
+
var chunkKTIEB7VH_cjs = require('../chunk-KTIEB7VH.cjs');
|
|
5
5
|
require('../chunk-JIEJCTDS.cjs');
|
|
6
6
|
require('../chunk-FLRCVI2G.cjs');
|
|
7
7
|
|
|
@@ -9,63 +9,63 @@ require('../chunk-FLRCVI2G.cjs');
|
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, "defineGraphExtension", {
|
|
11
11
|
enumerable: true,
|
|
12
|
-
get: function () { return
|
|
12
|
+
get: function () { return chunk6ZR4QC3O_cjs.defineGraphExtension; }
|
|
13
13
|
});
|
|
14
14
|
Object.defineProperty(exports, "CURRENT_GRAPH_EXTENSION_VERSION", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: function () { return
|
|
16
|
+
get: function () { return chunkKTIEB7VH_cjs.CURRENT_GRAPH_EXTENSION_VERSION; }
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "GRAPH_EXTENSION_ISSUE_CODES", {
|
|
19
19
|
enumerable: true,
|
|
20
|
-
get: function () { return
|
|
20
|
+
get: function () { return chunkKTIEB7VH_cjs.GRAPH_EXTENSION_ISSUE_CODES; }
|
|
21
21
|
});
|
|
22
22
|
Object.defineProperty(exports, "GRAPH_EXTENSION_TOP_LEVEL_KEYS", {
|
|
23
23
|
enumerable: true,
|
|
24
|
-
get: function () { return
|
|
24
|
+
get: function () { return chunkKTIEB7VH_cjs.GRAPH_EXTENSION_TOP_LEVEL_KEYS; }
|
|
25
25
|
});
|
|
26
26
|
Object.defineProperty(exports, "GraphExtensionError", {
|
|
27
27
|
enumerable: true,
|
|
28
|
-
get: function () { return
|
|
28
|
+
get: function () { return chunkKTIEB7VH_cjs.GraphExtensionError; }
|
|
29
29
|
});
|
|
30
30
|
Object.defineProperty(exports, "GraphExtensionUnresolvedEndpointError", {
|
|
31
31
|
enumerable: true,
|
|
32
|
-
get: function () { return
|
|
32
|
+
get: function () { return chunkKTIEB7VH_cjs.GraphExtensionUnresolvedEndpointError; }
|
|
33
33
|
});
|
|
34
34
|
Object.defineProperty(exports, "GraphExtensionValidationError", {
|
|
35
35
|
enumerable: true,
|
|
36
|
-
get: function () { return
|
|
36
|
+
get: function () { return chunkKTIEB7VH_cjs.GraphExtensionValidationError; }
|
|
37
37
|
});
|
|
38
38
|
Object.defineProperty(exports, "GraphExtensionVersionUnsupportedError", {
|
|
39
39
|
enumerable: true,
|
|
40
|
-
get: function () { return
|
|
40
|
+
get: function () { return chunkKTIEB7VH_cjs.GraphExtensionVersionUnsupportedError; }
|
|
41
41
|
});
|
|
42
42
|
Object.defineProperty(exports, "INCOMPATIBLE_CHANGE_TYPES", {
|
|
43
43
|
enumerable: true,
|
|
44
|
-
get: function () { return
|
|
44
|
+
get: function () { return chunkKTIEB7VH_cjs.INCOMPATIBLE_CHANGE_TYPES; }
|
|
45
45
|
});
|
|
46
46
|
Object.defineProperty(exports, "IncompatibleChangeError", {
|
|
47
47
|
enumerable: true,
|
|
48
|
-
get: function () { return
|
|
48
|
+
get: function () { return chunkKTIEB7VH_cjs.IncompatibleChangeError; }
|
|
49
49
|
});
|
|
50
50
|
Object.defineProperty(exports, "KindCollisionError", {
|
|
51
51
|
enumerable: true,
|
|
52
|
-
get: function () { return
|
|
52
|
+
get: function () { return chunkKTIEB7VH_cjs.KindCollisionError; }
|
|
53
53
|
});
|
|
54
54
|
Object.defineProperty(exports, "KindHasReferentsError", {
|
|
55
55
|
enumerable: true,
|
|
56
|
-
get: function () { return
|
|
56
|
+
get: function () { return chunkKTIEB7VH_cjs.KindHasReferentsError; }
|
|
57
57
|
});
|
|
58
58
|
Object.defineProperty(exports, "LEGACY_GRAPH_EXTENSION_VERSION", {
|
|
59
59
|
enumerable: true,
|
|
60
|
-
get: function () { return
|
|
60
|
+
get: function () { return chunkKTIEB7VH_cjs.LEGACY_GRAPH_EXTENSION_VERSION; }
|
|
61
61
|
});
|
|
62
62
|
Object.defineProperty(exports, "RemoveCompileTimeKindError", {
|
|
63
63
|
enumerable: true,
|
|
64
|
-
get: function () { return
|
|
64
|
+
get: function () { return chunkKTIEB7VH_cjs.RemoveCompileTimeKindError; }
|
|
65
65
|
});
|
|
66
66
|
Object.defineProperty(exports, "validateGraphExtension", {
|
|
67
67
|
enumerable: true,
|
|
68
|
-
get: function () { return
|
|
68
|
+
get: function () { return chunkKTIEB7VH_cjs.validateGraphExtension; }
|
|
69
69
|
});
|
|
70
70
|
//# sourceMappingURL=index.cjs.map
|
|
71
71
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { G as GraphExtension, K as KindEntity } from '../extension-types-
|
|
2
|
-
export {
|
|
3
|
-
import { T as TypeGraphError, i as ErrorCategory } from '../index-
|
|
1
|
+
import { G as GraphExtension, K as KindEntity } from '../extension-types-D1k0inWU.cjs';
|
|
2
|
+
export { o as CURRENT_GRAPH_EXTENSION_VERSION, w as ExtensionArrayItemType, x as ExtensionArrayProperty, y as ExtensionBooleanProperty, j as ExtensionEdgeDef, z as ExtensionEdgeIndex, B as ExtensionEmbeddingModifier, F as ExtensionEnumProperty, l as ExtensionIndex, H as ExtensionIndexWhere, i as ExtensionNodeDef, M as ExtensionNodeIndex, O as ExtensionNumberProperty, P as ExtensionObjectFieldProperty, Q as ExtensionObjectProperty, k as ExtensionOntologyRelation, R as ExtensionPropertyType, S as ExtensionSearchableModifier, V as ExtensionStringProperty, W as ExtensionUniqueConstraint, X as ExtensionUniqueWhere, Y as GRAPH_EXTENSION_TOP_LEVEL_KEYS, Z as GraphExtensionTopLevelKey, h as GraphExtensionVersion, L as LEGACY_GRAPH_EXTENSION_VERSION } from '../extension-types-D1k0inWU.cjs';
|
|
3
|
+
import { T as TypeGraphError, i as ErrorCategory } from '../index-C8sSTErx.cjs';
|
|
4
|
+
import { R as Result } from '../result-DWo6mUVz.cjs';
|
|
4
5
|
import 'zod';
|
|
5
|
-
import '../materialize-indexes-
|
|
6
|
+
import '../materialize-indexes-DEYkU-wr.cjs';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Validates and freezes a graph-extension document.
|
|
@@ -238,18 +239,6 @@ declare class GraphExtensionVersionUnsupportedError extends GraphExtensionError
|
|
|
238
239
|
constructor(persistedVersion: number, currentVersion: number);
|
|
239
240
|
}
|
|
240
241
|
|
|
241
|
-
/**
|
|
242
|
-
* Result type for error handling without exceptions.
|
|
243
|
-
* Use at service boundaries and for operations that can fail.
|
|
244
|
-
*/
|
|
245
|
-
type Result<T, E = Error> = Readonly<{
|
|
246
|
-
success: true;
|
|
247
|
-
data: T;
|
|
248
|
-
}> | Readonly<{
|
|
249
|
-
success: false;
|
|
250
|
-
error: E;
|
|
251
|
-
}>;
|
|
252
|
-
|
|
253
242
|
type ValidateGraphExtensionOptions = Readonly<{
|
|
254
243
|
/**
|
|
255
244
|
* Reject unknown top-level keys and unsupported string formats.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { G as GraphExtension, K as KindEntity } from '../extension-types-
|
|
2
|
-
export {
|
|
3
|
-
import { T as TypeGraphError, i as ErrorCategory } from '../index-
|
|
1
|
+
import { G as GraphExtension, K as KindEntity } from '../extension-types-D1k0inWU.js';
|
|
2
|
+
export { o as CURRENT_GRAPH_EXTENSION_VERSION, w as ExtensionArrayItemType, x as ExtensionArrayProperty, y as ExtensionBooleanProperty, j as ExtensionEdgeDef, z as ExtensionEdgeIndex, B as ExtensionEmbeddingModifier, F as ExtensionEnumProperty, l as ExtensionIndex, H as ExtensionIndexWhere, i as ExtensionNodeDef, M as ExtensionNodeIndex, O as ExtensionNumberProperty, P as ExtensionObjectFieldProperty, Q as ExtensionObjectProperty, k as ExtensionOntologyRelation, R as ExtensionPropertyType, S as ExtensionSearchableModifier, V as ExtensionStringProperty, W as ExtensionUniqueConstraint, X as ExtensionUniqueWhere, Y as GRAPH_EXTENSION_TOP_LEVEL_KEYS, Z as GraphExtensionTopLevelKey, h as GraphExtensionVersion, L as LEGACY_GRAPH_EXTENSION_VERSION } from '../extension-types-D1k0inWU.js';
|
|
3
|
+
import { T as TypeGraphError, i as ErrorCategory } from '../index-BEK0VtNB.js';
|
|
4
|
+
import { R as Result } from '../result-DWo6mUVz.js';
|
|
4
5
|
import 'zod';
|
|
5
|
-
import '../materialize-indexes-
|
|
6
|
+
import '../materialize-indexes-CAGhqPHQ.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Validates and freezes a graph-extension document.
|
|
@@ -238,18 +239,6 @@ declare class GraphExtensionVersionUnsupportedError extends GraphExtensionError
|
|
|
238
239
|
constructor(persistedVersion: number, currentVersion: number);
|
|
239
240
|
}
|
|
240
241
|
|
|
241
|
-
/**
|
|
242
|
-
* Result type for error handling without exceptions.
|
|
243
|
-
* Use at service boundaries and for operations that can fail.
|
|
244
|
-
*/
|
|
245
|
-
type Result<T, E = Error> = Readonly<{
|
|
246
|
-
success: true;
|
|
247
|
-
data: T;
|
|
248
|
-
}> | Readonly<{
|
|
249
|
-
success: false;
|
|
250
|
-
error: E;
|
|
251
|
-
}>;
|
|
252
|
-
|
|
253
242
|
type ValidateGraphExtensionOptions = Readonly<{
|
|
254
243
|
/**
|
|
255
244
|
* Reject unknown top-level keys and unsupported string formats.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { defineGraphExtension } from '../chunk-
|
|
2
|
-
export { CURRENT_GRAPH_EXTENSION_VERSION, GRAPH_EXTENSION_ISSUE_CODES, GRAPH_EXTENSION_TOP_LEVEL_KEYS, GraphExtensionError, GraphExtensionUnresolvedEndpointError, GraphExtensionValidationError, GraphExtensionVersionUnsupportedError, INCOMPATIBLE_CHANGE_TYPES, IncompatibleChangeError, KindCollisionError, KindHasReferentsError, LEGACY_GRAPH_EXTENSION_VERSION, RemoveCompileTimeKindError, validateGraphExtension } from '../chunk-
|
|
1
|
+
export { defineGraphExtension } from '../chunk-WYTUF3QO.js';
|
|
2
|
+
export { CURRENT_GRAPH_EXTENSION_VERSION, GRAPH_EXTENSION_ISSUE_CODES, GRAPH_EXTENSION_TOP_LEVEL_KEYS, GraphExtensionError, GraphExtensionUnresolvedEndpointError, GraphExtensionValidationError, GraphExtensionVersionUnsupportedError, INCOMPATIBLE_CHANGE_TYPES, IncompatibleChangeError, KindCollisionError, KindHasReferentsError, LEGACY_GRAPH_EXTENSION_VERSION, RemoveCompileTimeKindError, validateGraphExtension } from '../chunk-YCV72E6L.js';
|
|
3
3
|
import '../chunk-TQOYM4LN.js';
|
|
4
4
|
import '../chunk-K5P5OZXS.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|