@nicia-ai/typegraph 0.1.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/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/ast-BVyihVbP.d.cts +564 -0
- package/dist/ast-BVyihVbP.d.ts +564 -0
- package/dist/backend/drizzle/index.cjs +41 -0
- package/dist/backend/drizzle/index.cjs.map +1 -0
- package/dist/backend/drizzle/index.d.cts +12 -0
- package/dist/backend/drizzle/index.d.ts +12 -0
- package/dist/backend/drizzle/index.js +12 -0
- package/dist/backend/drizzle/index.js.map +1 -0
- package/dist/backend/drizzle/postgres.cjs +27 -0
- package/dist/backend/drizzle/postgres.cjs.map +1 -0
- package/dist/backend/drizzle/postgres.d.cts +37 -0
- package/dist/backend/drizzle/postgres.d.ts +37 -0
- package/dist/backend/drizzle/postgres.js +10 -0
- package/dist/backend/drizzle/postgres.js.map +1 -0
- package/dist/backend/drizzle/schema/postgres.cjs +40 -0
- package/dist/backend/drizzle/schema/postgres.cjs.map +1 -0
- package/dist/backend/drizzle/schema/postgres.d.cts +2419 -0
- package/dist/backend/drizzle/schema/postgres.d.ts +2419 -0
- package/dist/backend/drizzle/schema/postgres.js +7 -0
- package/dist/backend/drizzle/schema/postgres.js.map +1 -0
- package/dist/backend/drizzle/schema/sqlite.cjs +40 -0
- package/dist/backend/drizzle/schema/sqlite.cjs.map +1 -0
- package/dist/backend/drizzle/schema/sqlite.d.cts +2647 -0
- package/dist/backend/drizzle/schema/sqlite.d.ts +2647 -0
- package/dist/backend/drizzle/schema/sqlite.js +7 -0
- package/dist/backend/drizzle/schema/sqlite.js.map +1 -0
- package/dist/backend/drizzle/sqlite.cjs +27 -0
- package/dist/backend/drizzle/sqlite.cjs.map +1 -0
- package/dist/backend/drizzle/sqlite.d.cts +36 -0
- package/dist/backend/drizzle/sqlite.d.ts +36 -0
- package/dist/backend/drizzle/sqlite.js +10 -0
- package/dist/backend/drizzle/sqlite.js.map +1 -0
- package/dist/backend/postgres/index.cjs +53 -0
- package/dist/backend/postgres/index.cjs.map +1 -0
- package/dist/backend/postgres/index.d.cts +12 -0
- package/dist/backend/postgres/index.d.ts +12 -0
- package/dist/backend/postgres/index.js +12 -0
- package/dist/backend/postgres/index.js.map +1 -0
- package/dist/backend/sqlite/index.cjs +117 -0
- package/dist/backend/sqlite/index.cjs.map +1 -0
- package/dist/backend/sqlite/index.d.cts +71 -0
- package/dist/backend/sqlite/index.d.ts +71 -0
- package/dist/backend/sqlite/index.js +78 -0
- package/dist/backend/sqlite/index.js.map +1 -0
- package/dist/chunk-2QHQ2C4P.js +146 -0
- package/dist/chunk-2QHQ2C4P.js.map +1 -0
- package/dist/chunk-3A5TKOEJ.js +306 -0
- package/dist/chunk-3A5TKOEJ.js.map +1 -0
- package/dist/chunk-4PIEL2VO.js +162 -0
- package/dist/chunk-4PIEL2VO.js.map +1 -0
- package/dist/chunk-536PH5FT.js +342 -0
- package/dist/chunk-536PH5FT.js.map +1 -0
- package/dist/chunk-DBFCKELK.cjs +156 -0
- package/dist/chunk-DBFCKELK.cjs.map +1 -0
- package/dist/chunk-DDM2FZRJ.cjs +1143 -0
- package/dist/chunk-DDM2FZRJ.cjs.map +1 -0
- package/dist/chunk-DGUM43GV.js +10 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-F32HCHYA.cjs +680 -0
- package/dist/chunk-F32HCHYA.cjs.map +1 -0
- package/dist/chunk-IIAT36MI.js +353 -0
- package/dist/chunk-IIAT36MI.js.map +1 -0
- package/dist/chunk-JDAET5LO.js +236 -0
- package/dist/chunk-JDAET5LO.js.map +1 -0
- package/dist/chunk-JEQ2X3Z6.cjs +12 -0
- package/dist/chunk-JEQ2X3Z6.cjs.map +1 -0
- package/dist/chunk-JKTO7TW3.js +299 -0
- package/dist/chunk-JKTO7TW3.js.map +1 -0
- package/dist/chunk-K7SQ3SWP.js +497 -0
- package/dist/chunk-K7SQ3SWP.js.map +1 -0
- package/dist/chunk-L642L24T.js +142 -0
- package/dist/chunk-L642L24T.js.map +1 -0
- package/dist/chunk-MFVCSNIY.cjs +308 -0
- package/dist/chunk-MFVCSNIY.cjs.map +1 -0
- package/dist/chunk-MNO33ASC.cjs +240 -0
- package/dist/chunk-MNO33ASC.cjs.map +1 -0
- package/dist/chunk-N4AOJ3VF.cjs +154 -0
- package/dist/chunk-N4AOJ3VF.cjs.map +1 -0
- package/dist/chunk-P5CNM325.cjs +508 -0
- package/dist/chunk-P5CNM325.cjs.map +1 -0
- package/dist/chunk-RYT4H46I.js +646 -0
- package/dist/chunk-RYT4H46I.js.map +1 -0
- package/dist/chunk-SV5H3XM5.cjs +321 -0
- package/dist/chunk-SV5H3XM5.cjs.map +1 -0
- package/dist/chunk-TXHKFLWX.cjs +344 -0
- package/dist/chunk-TXHKFLWX.cjs.map +1 -0
- package/dist/chunk-UJAGXJDG.cjs +170 -0
- package/dist/chunk-UJAGXJDG.cjs.map +1 -0
- package/dist/chunk-VXRVGFCI.js +1128 -0
- package/dist/chunk-VXRVGFCI.js.map +1 -0
- package/dist/chunk-YM5AL65Y.cjs +357 -0
- package/dist/chunk-YM5AL65Y.cjs.map +1 -0
- package/dist/index.cjs +8334 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1365 -0
- package/dist/index.d.ts +1365 -0
- package/dist/index.js +8105 -0
- package/dist/index.js.map +1 -0
- package/dist/indexes/index.cjs +67 -0
- package/dist/indexes/index.cjs.map +1 -0
- package/dist/indexes/index.d.cts +62 -0
- package/dist/indexes/index.d.ts +62 -0
- package/dist/indexes/index.js +6 -0
- package/dist/indexes/index.js.map +1 -0
- package/dist/interchange/index.cjs +612 -0
- package/dist/interchange/index.cjs.map +1 -0
- package/dist/interchange/index.d.cts +288 -0
- package/dist/interchange/index.d.ts +288 -0
- package/dist/interchange/index.js +598 -0
- package/dist/interchange/index.js.map +1 -0
- package/dist/profiler/index.cjs +793 -0
- package/dist/profiler/index.cjs.map +1 -0
- package/dist/profiler/index.d.cts +283 -0
- package/dist/profiler/index.d.ts +283 -0
- package/dist/profiler/index.js +785 -0
- package/dist/profiler/index.js.map +1 -0
- package/dist/store-60Lcfi0w.d.ts +2263 -0
- package/dist/store-Bifii8MZ.d.cts +2263 -0
- package/dist/test-helpers-BjyRYJZX.d.ts +22 -0
- package/dist/test-helpers-NoQXhleQ.d.cts +22 -0
- package/dist/types-BRzHlhKC.d.cts +14 -0
- package/dist/types-BRzHlhKC.d.ts +14 -0
- package/dist/types-BrSfFSpW.d.cts +158 -0
- package/dist/types-CX4cLd7M.d.ts +152 -0
- package/dist/types-CjZ7g_7v.d.ts +442 -0
- package/dist/types-DDOSfrih.d.cts +442 -0
- package/dist/types-D_3mEv2y.d.ts +158 -0
- package/dist/types-a5rAxC92.d.cts +152 -0
- package/package.json +201 -0
|
@@ -0,0 +1,646 @@
|
|
|
1
|
+
import { getDialect } from './chunk-IIAT36MI.js';
|
|
2
|
+
import { sql, getTableName } from 'drizzle-orm';
|
|
3
|
+
|
|
4
|
+
// src/backend/types.ts
|
|
5
|
+
var SQLITE_CAPABILITIES = {
|
|
6
|
+
jsonb: false,
|
|
7
|
+
// SQLite uses TEXT with json functions
|
|
8
|
+
partialIndexes: true,
|
|
9
|
+
// SQLite supports WHERE in CREATE INDEX
|
|
10
|
+
ginIndexes: false,
|
|
11
|
+
// SQLite doesn't have GIN
|
|
12
|
+
cte: true,
|
|
13
|
+
// SQLite supports WITH
|
|
14
|
+
returning: true,
|
|
15
|
+
// SQLite 3.35+ supports RETURNING
|
|
16
|
+
transactions: true
|
|
17
|
+
// SQLite supports transactions
|
|
18
|
+
};
|
|
19
|
+
var POSTGRES_CAPABILITIES = {
|
|
20
|
+
jsonb: true,
|
|
21
|
+
// PostgreSQL has native JSONB
|
|
22
|
+
partialIndexes: true,
|
|
23
|
+
ginIndexes: true,
|
|
24
|
+
cte: true,
|
|
25
|
+
returning: true,
|
|
26
|
+
transactions: true
|
|
27
|
+
// PostgreSQL supports transactions
|
|
28
|
+
};
|
|
29
|
+
var D1_CAPABILITIES = {
|
|
30
|
+
jsonb: false,
|
|
31
|
+
// D1 uses TEXT with json functions
|
|
32
|
+
partialIndexes: true,
|
|
33
|
+
ginIndexes: false,
|
|
34
|
+
cte: true,
|
|
35
|
+
returning: true,
|
|
36
|
+
transactions: false
|
|
37
|
+
// D1 does NOT support atomic transactions
|
|
38
|
+
};
|
|
39
|
+
function sqlNull(value) {
|
|
40
|
+
return value ?? sql.raw("NULL");
|
|
41
|
+
}
|
|
42
|
+
function buildInsertNode(tables, params, timestamp) {
|
|
43
|
+
const { nodes } = tables;
|
|
44
|
+
const propsJson = JSON.stringify(params.props);
|
|
45
|
+
const cols = sql.raw(`"${nodes.graphId.name}", "${nodes.kind.name}", "${nodes.id.name}", "${nodes.props.name}", "${nodes.version.name}", "${nodes.validFrom.name}", "${nodes.validTo.name}", "${nodes.createdAt.name}", "${nodes.updatedAt.name}"`);
|
|
46
|
+
return sql`
|
|
47
|
+
INSERT INTO ${nodes} (${cols})
|
|
48
|
+
VALUES (
|
|
49
|
+
${params.graphId}, ${params.kind}, ${params.id}, ${propsJson},
|
|
50
|
+
1, ${sqlNull(params.validFrom)}, ${sqlNull(params.validTo)},
|
|
51
|
+
${timestamp}, ${timestamp}
|
|
52
|
+
)
|
|
53
|
+
RETURNING *
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
function buildGetNode(tables, graphId, kind, id) {
|
|
57
|
+
const { nodes } = tables;
|
|
58
|
+
return sql`
|
|
59
|
+
SELECT * FROM ${nodes}
|
|
60
|
+
WHERE ${nodes.graphId} = ${graphId}
|
|
61
|
+
AND ${nodes.kind} = ${kind}
|
|
62
|
+
AND ${nodes.id} = ${id}
|
|
63
|
+
`;
|
|
64
|
+
}
|
|
65
|
+
function buildUpdateNode(tables, params, timestamp) {
|
|
66
|
+
const { nodes } = tables;
|
|
67
|
+
const propsJson = JSON.stringify(params.props);
|
|
68
|
+
const col = (c) => sql.raw(`"${c.name}"`);
|
|
69
|
+
const setParts = [
|
|
70
|
+
sql`${col(nodes.props)} = ${propsJson}`,
|
|
71
|
+
sql`${col(nodes.updatedAt)} = ${timestamp}`
|
|
72
|
+
];
|
|
73
|
+
if (params.incrementVersion) {
|
|
74
|
+
setParts.push(sql`${col(nodes.version)} = ${col(nodes.version)} + 1`);
|
|
75
|
+
}
|
|
76
|
+
if (params.validTo !== void 0) {
|
|
77
|
+
setParts.push(sql`${col(nodes.validTo)} = ${params.validTo}`);
|
|
78
|
+
}
|
|
79
|
+
if (params.clearDeleted) {
|
|
80
|
+
setParts.push(sql`${col(nodes.deletedAt)} = NULL`);
|
|
81
|
+
}
|
|
82
|
+
const setClause = sql.join(setParts, sql`, `);
|
|
83
|
+
if (params.clearDeleted) {
|
|
84
|
+
return sql`
|
|
85
|
+
UPDATE ${nodes}
|
|
86
|
+
SET ${setClause}
|
|
87
|
+
WHERE ${nodes.graphId} = ${params.graphId}
|
|
88
|
+
AND ${nodes.kind} = ${params.kind}
|
|
89
|
+
AND ${nodes.id} = ${params.id}
|
|
90
|
+
RETURNING *
|
|
91
|
+
`;
|
|
92
|
+
}
|
|
93
|
+
return sql`
|
|
94
|
+
UPDATE ${nodes}
|
|
95
|
+
SET ${setClause}
|
|
96
|
+
WHERE ${nodes.graphId} = ${params.graphId}
|
|
97
|
+
AND ${nodes.kind} = ${params.kind}
|
|
98
|
+
AND ${nodes.id} = ${params.id}
|
|
99
|
+
AND ${nodes.deletedAt} IS NULL
|
|
100
|
+
RETURNING *
|
|
101
|
+
`;
|
|
102
|
+
}
|
|
103
|
+
function buildDeleteNode(tables, params, timestamp) {
|
|
104
|
+
const { nodes } = tables;
|
|
105
|
+
const col = (c) => sql.raw(`"${c.name}"`);
|
|
106
|
+
return sql`
|
|
107
|
+
UPDATE ${nodes}
|
|
108
|
+
SET ${col(nodes.deletedAt)} = ${timestamp}
|
|
109
|
+
WHERE ${nodes.graphId} = ${params.graphId}
|
|
110
|
+
AND ${nodes.kind} = ${params.kind}
|
|
111
|
+
AND ${nodes.id} = ${params.id}
|
|
112
|
+
AND ${nodes.deletedAt} IS NULL
|
|
113
|
+
`;
|
|
114
|
+
}
|
|
115
|
+
function buildHardDeleteNode(tables, params) {
|
|
116
|
+
const { nodes } = tables;
|
|
117
|
+
return sql`
|
|
118
|
+
DELETE FROM ${nodes}
|
|
119
|
+
WHERE ${nodes.graphId} = ${params.graphId}
|
|
120
|
+
AND ${nodes.kind} = ${params.kind}
|
|
121
|
+
AND ${nodes.id} = ${params.id}
|
|
122
|
+
`;
|
|
123
|
+
}
|
|
124
|
+
function buildInsertEdge(tables, params, timestamp) {
|
|
125
|
+
const { edges } = tables;
|
|
126
|
+
const propsJson = JSON.stringify(params.props);
|
|
127
|
+
const cols = sql.raw(`"${edges.graphId.name}", "${edges.id.name}", "${edges.kind.name}", "${edges.fromKind.name}", "${edges.fromId.name}", "${edges.toKind.name}", "${edges.toId.name}", "${edges.props.name}", "${edges.validFrom.name}", "${edges.validTo.name}", "${edges.createdAt.name}", "${edges.updatedAt.name}"`);
|
|
128
|
+
return sql`
|
|
129
|
+
INSERT INTO ${edges} (${cols})
|
|
130
|
+
VALUES (
|
|
131
|
+
${params.graphId}, ${params.id}, ${params.kind},
|
|
132
|
+
${params.fromKind}, ${params.fromId}, ${params.toKind}, ${params.toId},
|
|
133
|
+
${propsJson}, ${sqlNull(params.validFrom)}, ${sqlNull(params.validTo)},
|
|
134
|
+
${timestamp}, ${timestamp}
|
|
135
|
+
)
|
|
136
|
+
RETURNING *
|
|
137
|
+
`;
|
|
138
|
+
}
|
|
139
|
+
function buildGetEdge(tables, graphId, id) {
|
|
140
|
+
const { edges } = tables;
|
|
141
|
+
return sql`
|
|
142
|
+
SELECT * FROM ${edges}
|
|
143
|
+
WHERE ${edges.graphId} = ${graphId}
|
|
144
|
+
AND ${edges.id} = ${id}
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
function buildUpdateEdge(tables, params, timestamp) {
|
|
148
|
+
const { edges } = tables;
|
|
149
|
+
const propsJson = JSON.stringify(params.props);
|
|
150
|
+
const col = (c) => sql.raw(`"${c.name}"`);
|
|
151
|
+
if (params.validTo !== void 0) {
|
|
152
|
+
return sql`
|
|
153
|
+
UPDATE ${edges}
|
|
154
|
+
SET ${col(edges.props)} = ${propsJson},
|
|
155
|
+
${col(edges.validTo)} = ${params.validTo},
|
|
156
|
+
${col(edges.updatedAt)} = ${timestamp}
|
|
157
|
+
WHERE ${edges.graphId} = ${params.graphId}
|
|
158
|
+
AND ${edges.id} = ${params.id}
|
|
159
|
+
AND ${edges.deletedAt} IS NULL
|
|
160
|
+
RETURNING *
|
|
161
|
+
`;
|
|
162
|
+
}
|
|
163
|
+
return sql`
|
|
164
|
+
UPDATE ${edges}
|
|
165
|
+
SET ${col(edges.props)} = ${propsJson},
|
|
166
|
+
${col(edges.updatedAt)} = ${timestamp}
|
|
167
|
+
WHERE ${edges.graphId} = ${params.graphId}
|
|
168
|
+
AND ${edges.id} = ${params.id}
|
|
169
|
+
AND ${edges.deletedAt} IS NULL
|
|
170
|
+
RETURNING *
|
|
171
|
+
`;
|
|
172
|
+
}
|
|
173
|
+
function buildDeleteEdge(tables, params, timestamp) {
|
|
174
|
+
const { edges } = tables;
|
|
175
|
+
const col = (c) => sql.raw(`"${c.name}"`);
|
|
176
|
+
return sql`
|
|
177
|
+
UPDATE ${edges}
|
|
178
|
+
SET ${col(edges.deletedAt)} = ${timestamp}
|
|
179
|
+
WHERE ${edges.graphId} = ${params.graphId}
|
|
180
|
+
AND ${edges.id} = ${params.id}
|
|
181
|
+
AND ${edges.deletedAt} IS NULL
|
|
182
|
+
`;
|
|
183
|
+
}
|
|
184
|
+
function buildHardDeleteEdge(tables, params) {
|
|
185
|
+
const { edges } = tables;
|
|
186
|
+
return sql`
|
|
187
|
+
DELETE FROM ${edges}
|
|
188
|
+
WHERE ${edges.graphId} = ${params.graphId}
|
|
189
|
+
AND ${edges.id} = ${params.id}
|
|
190
|
+
`;
|
|
191
|
+
}
|
|
192
|
+
function buildInsertUniqueSqlite(tables, params) {
|
|
193
|
+
const { uniques } = tables;
|
|
194
|
+
const cols = sql.raw(`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}", "${uniques.nodeId.name}", "${uniques.concreteKind.name}", "${uniques.deletedAt.name}"`);
|
|
195
|
+
const conflictCols = sql.raw(`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}"`);
|
|
196
|
+
const col = (c) => sql.raw(`"${c.name}"`);
|
|
197
|
+
return sql`
|
|
198
|
+
INSERT INTO ${uniques} (${cols})
|
|
199
|
+
VALUES (
|
|
200
|
+
${params.graphId}, ${params.nodeKind}, ${params.constraintName},
|
|
201
|
+
${params.key}, ${params.nodeId}, ${params.concreteKind}, ${sql.raw("NULL")}
|
|
202
|
+
)
|
|
203
|
+
ON CONFLICT (${conflictCols})
|
|
204
|
+
DO UPDATE SET
|
|
205
|
+
${col(uniques.nodeId)} = CASE
|
|
206
|
+
WHEN ${col(uniques.nodeId)} = ${params.nodeId} THEN ${params.nodeId}
|
|
207
|
+
WHEN ${col(uniques.deletedAt)} IS NOT NULL THEN ${params.nodeId}
|
|
208
|
+
ELSE ${col(uniques.nodeId)}
|
|
209
|
+
END,
|
|
210
|
+
${col(uniques.concreteKind)} = CASE
|
|
211
|
+
WHEN ${col(uniques.nodeId)} = ${params.nodeId} THEN ${params.concreteKind}
|
|
212
|
+
WHEN ${col(uniques.deletedAt)} IS NOT NULL THEN ${params.concreteKind}
|
|
213
|
+
ELSE ${col(uniques.concreteKind)}
|
|
214
|
+
END,
|
|
215
|
+
${col(uniques.deletedAt)} = CASE
|
|
216
|
+
WHEN ${col(uniques.nodeId)} = ${params.nodeId} THEN NULL
|
|
217
|
+
WHEN ${col(uniques.deletedAt)} IS NOT NULL THEN NULL
|
|
218
|
+
ELSE ${col(uniques.deletedAt)}
|
|
219
|
+
END
|
|
220
|
+
RETURNING ${col(uniques.nodeId)} as node_id
|
|
221
|
+
`;
|
|
222
|
+
}
|
|
223
|
+
function buildInsertUniquePostgres(tables, params) {
|
|
224
|
+
const { uniques } = tables;
|
|
225
|
+
const cols = sql.raw(`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}", "${uniques.nodeId.name}", "${uniques.concreteKind.name}", "${uniques.deletedAt.name}"`);
|
|
226
|
+
const conflictCols = sql.raw(`"${uniques.graphId.name}", "${uniques.nodeKind.name}", "${uniques.constraintName.name}", "${uniques.key.name}"`);
|
|
227
|
+
const col = (c) => sql.raw(`"${c.name}"`);
|
|
228
|
+
const tableName = getTableName(uniques);
|
|
229
|
+
const existingCol = (c) => sql.raw(`"${tableName}"."${c.name}"`);
|
|
230
|
+
return sql`
|
|
231
|
+
INSERT INTO ${uniques} (${cols})
|
|
232
|
+
VALUES (
|
|
233
|
+
${params.graphId}, ${params.nodeKind}, ${params.constraintName},
|
|
234
|
+
${params.key}, ${params.nodeId}, ${params.concreteKind}, ${sql.raw("NULL")}
|
|
235
|
+
)
|
|
236
|
+
ON CONFLICT (${conflictCols})
|
|
237
|
+
DO UPDATE SET
|
|
238
|
+
${col(uniques.nodeId)} = CASE
|
|
239
|
+
WHEN ${existingCol(uniques.nodeId)} = ${params.nodeId} THEN ${params.nodeId}
|
|
240
|
+
WHEN ${existingCol(uniques.deletedAt)} IS NOT NULL THEN ${params.nodeId}
|
|
241
|
+
ELSE ${existingCol(uniques.nodeId)}
|
|
242
|
+
END,
|
|
243
|
+
${col(uniques.concreteKind)} = CASE
|
|
244
|
+
WHEN ${existingCol(uniques.nodeId)} = ${params.nodeId} THEN ${params.concreteKind}
|
|
245
|
+
WHEN ${existingCol(uniques.deletedAt)} IS NOT NULL THEN ${params.concreteKind}
|
|
246
|
+
ELSE ${existingCol(uniques.concreteKind)}
|
|
247
|
+
END,
|
|
248
|
+
${col(uniques.deletedAt)} = CASE
|
|
249
|
+
WHEN ${existingCol(uniques.nodeId)} = ${params.nodeId} THEN NULL
|
|
250
|
+
WHEN ${existingCol(uniques.deletedAt)} IS NOT NULL THEN NULL
|
|
251
|
+
ELSE ${existingCol(uniques.deletedAt)}
|
|
252
|
+
END
|
|
253
|
+
RETURNING ${col(uniques.nodeId)} as node_id
|
|
254
|
+
`;
|
|
255
|
+
}
|
|
256
|
+
function buildInsertUnique(tables, dialect, params) {
|
|
257
|
+
if (dialect === "sqlite") {
|
|
258
|
+
return buildInsertUniqueSqlite(tables, params);
|
|
259
|
+
}
|
|
260
|
+
return buildInsertUniquePostgres(tables, params);
|
|
261
|
+
}
|
|
262
|
+
function buildDeleteUnique(tables, params, timestamp) {
|
|
263
|
+
const { uniques } = tables;
|
|
264
|
+
const col = (c) => sql.raw(`"${c.name}"`);
|
|
265
|
+
return sql`
|
|
266
|
+
UPDATE ${uniques}
|
|
267
|
+
SET ${col(uniques.deletedAt)} = ${timestamp}
|
|
268
|
+
WHERE ${uniques.graphId} = ${params.graphId}
|
|
269
|
+
AND ${uniques.nodeKind} = ${params.nodeKind}
|
|
270
|
+
AND ${uniques.constraintName} = ${params.constraintName}
|
|
271
|
+
AND ${uniques.key} = ${params.key}
|
|
272
|
+
AND ${uniques.deletedAt} IS NULL
|
|
273
|
+
`;
|
|
274
|
+
}
|
|
275
|
+
function buildHardDeleteUniquesByNode(tables, graphId, nodeId) {
|
|
276
|
+
const { uniques } = tables;
|
|
277
|
+
return sql`
|
|
278
|
+
DELETE FROM ${uniques}
|
|
279
|
+
WHERE ${uniques.graphId} = ${graphId}
|
|
280
|
+
AND ${uniques.nodeId} = ${nodeId}
|
|
281
|
+
`;
|
|
282
|
+
}
|
|
283
|
+
function buildHardDeleteEmbeddingsByNode(tables, graphId, nodeKind, nodeId) {
|
|
284
|
+
const { embeddings } = tables;
|
|
285
|
+
return sql`
|
|
286
|
+
DELETE FROM ${embeddings}
|
|
287
|
+
WHERE ${embeddings.graphId} = ${graphId}
|
|
288
|
+
AND ${embeddings.nodeKind} = ${nodeKind}
|
|
289
|
+
AND ${embeddings.nodeId} = ${nodeId}
|
|
290
|
+
`;
|
|
291
|
+
}
|
|
292
|
+
function buildCheckUnique(tables, params) {
|
|
293
|
+
const { uniques } = tables;
|
|
294
|
+
return sql`
|
|
295
|
+
SELECT * FROM ${uniques}
|
|
296
|
+
WHERE ${uniques.graphId} = ${params.graphId}
|
|
297
|
+
AND ${uniques.nodeKind} = ${params.nodeKind}
|
|
298
|
+
AND ${uniques.constraintName} = ${params.constraintName}
|
|
299
|
+
AND ${uniques.key} = ${params.key}
|
|
300
|
+
AND ${uniques.deletedAt} IS NULL
|
|
301
|
+
`;
|
|
302
|
+
}
|
|
303
|
+
function buildCountEdgesFrom(tables, params) {
|
|
304
|
+
const { edges } = tables;
|
|
305
|
+
if (params.activeOnly) {
|
|
306
|
+
return sql`
|
|
307
|
+
SELECT COUNT(*) as count FROM ${edges}
|
|
308
|
+
WHERE ${edges.graphId} = ${params.graphId}
|
|
309
|
+
AND ${edges.kind} = ${params.edgeKind}
|
|
310
|
+
AND ${edges.fromKind} = ${params.fromKind}
|
|
311
|
+
AND ${edges.fromId} = ${params.fromId}
|
|
312
|
+
AND ${edges.deletedAt} IS NULL
|
|
313
|
+
AND ${edges.validTo} IS NULL
|
|
314
|
+
`;
|
|
315
|
+
}
|
|
316
|
+
return sql`
|
|
317
|
+
SELECT COUNT(*) as count FROM ${edges}
|
|
318
|
+
WHERE ${edges.graphId} = ${params.graphId}
|
|
319
|
+
AND ${edges.kind} = ${params.edgeKind}
|
|
320
|
+
AND ${edges.fromKind} = ${params.fromKind}
|
|
321
|
+
AND ${edges.fromId} = ${params.fromId}
|
|
322
|
+
AND ${edges.deletedAt} IS NULL
|
|
323
|
+
`;
|
|
324
|
+
}
|
|
325
|
+
function buildEdgeExistsBetween(tables, params) {
|
|
326
|
+
const { edges } = tables;
|
|
327
|
+
return sql`
|
|
328
|
+
SELECT 1 FROM ${edges}
|
|
329
|
+
WHERE ${edges.graphId} = ${params.graphId}
|
|
330
|
+
AND ${edges.kind} = ${params.edgeKind}
|
|
331
|
+
AND ${edges.fromKind} = ${params.fromKind}
|
|
332
|
+
AND ${edges.fromId} = ${params.fromId}
|
|
333
|
+
AND ${edges.toKind} = ${params.toKind}
|
|
334
|
+
AND ${edges.toId} = ${params.toId}
|
|
335
|
+
AND ${edges.deletedAt} IS NULL
|
|
336
|
+
LIMIT 1
|
|
337
|
+
`;
|
|
338
|
+
}
|
|
339
|
+
function buildFindEdgesConnectedTo(tables, params) {
|
|
340
|
+
const { edges } = tables;
|
|
341
|
+
return sql`
|
|
342
|
+
SELECT * FROM ${edges}
|
|
343
|
+
WHERE ${edges.graphId} = ${params.graphId}
|
|
344
|
+
AND ${edges.deletedAt} IS NULL
|
|
345
|
+
AND (
|
|
346
|
+
(${edges.fromKind} = ${params.nodeKind} AND ${edges.fromId} = ${params.nodeId})
|
|
347
|
+
OR
|
|
348
|
+
(${edges.toKind} = ${params.nodeKind} AND ${edges.toId} = ${params.nodeId})
|
|
349
|
+
)
|
|
350
|
+
`;
|
|
351
|
+
}
|
|
352
|
+
function buildFindNodesByKind(tables, params) {
|
|
353
|
+
const { nodes } = tables;
|
|
354
|
+
const excludeDeleted = params.excludeDeleted ?? true;
|
|
355
|
+
const baseCondition = excludeDeleted ? sql`${nodes.graphId} = ${params.graphId} AND ${nodes.kind} = ${params.kind} AND ${nodes.deletedAt} IS NULL` : sql`${nodes.graphId} = ${params.graphId} AND ${nodes.kind} = ${params.kind}`;
|
|
356
|
+
if (params.limit !== void 0 && params.offset !== void 0) {
|
|
357
|
+
return sql`
|
|
358
|
+
SELECT * FROM ${nodes}
|
|
359
|
+
WHERE ${baseCondition}
|
|
360
|
+
ORDER BY ${nodes.createdAt} DESC
|
|
361
|
+
LIMIT ${params.limit} OFFSET ${params.offset}
|
|
362
|
+
`;
|
|
363
|
+
}
|
|
364
|
+
if (params.limit !== void 0) {
|
|
365
|
+
return sql`
|
|
366
|
+
SELECT * FROM ${nodes}
|
|
367
|
+
WHERE ${baseCondition}
|
|
368
|
+
ORDER BY ${nodes.createdAt} DESC
|
|
369
|
+
LIMIT ${params.limit}
|
|
370
|
+
`;
|
|
371
|
+
}
|
|
372
|
+
return sql`
|
|
373
|
+
SELECT * FROM ${nodes}
|
|
374
|
+
WHERE ${baseCondition}
|
|
375
|
+
ORDER BY ${nodes.createdAt} DESC
|
|
376
|
+
`;
|
|
377
|
+
}
|
|
378
|
+
function buildCountNodesByKind(tables, params) {
|
|
379
|
+
const { nodes } = tables;
|
|
380
|
+
const excludeDeleted = params.excludeDeleted ?? true;
|
|
381
|
+
if (excludeDeleted) {
|
|
382
|
+
return sql`
|
|
383
|
+
SELECT COUNT(*) as count FROM ${nodes}
|
|
384
|
+
WHERE ${nodes.graphId} = ${params.graphId}
|
|
385
|
+
AND ${nodes.kind} = ${params.kind}
|
|
386
|
+
AND ${nodes.deletedAt} IS NULL
|
|
387
|
+
`;
|
|
388
|
+
}
|
|
389
|
+
return sql`
|
|
390
|
+
SELECT COUNT(*) as count FROM ${nodes}
|
|
391
|
+
WHERE ${nodes.graphId} = ${params.graphId}
|
|
392
|
+
AND ${nodes.kind} = ${params.kind}
|
|
393
|
+
`;
|
|
394
|
+
}
|
|
395
|
+
function buildFindEdgesByKind(tables, params) {
|
|
396
|
+
const { edges } = tables;
|
|
397
|
+
const excludeDeleted = params.excludeDeleted ?? true;
|
|
398
|
+
const conditions = [
|
|
399
|
+
sql`${edges.graphId} = ${params.graphId}`,
|
|
400
|
+
sql`${edges.kind} = ${params.kind}`
|
|
401
|
+
];
|
|
402
|
+
if (excludeDeleted) {
|
|
403
|
+
conditions.push(sql`${edges.deletedAt} IS NULL`);
|
|
404
|
+
}
|
|
405
|
+
if (params.fromKind !== void 0) {
|
|
406
|
+
conditions.push(sql`${edges.fromKind} = ${params.fromKind}`);
|
|
407
|
+
}
|
|
408
|
+
if (params.fromId !== void 0) {
|
|
409
|
+
conditions.push(sql`${edges.fromId} = ${params.fromId}`);
|
|
410
|
+
}
|
|
411
|
+
if (params.toKind !== void 0) {
|
|
412
|
+
conditions.push(sql`${edges.toKind} = ${params.toKind}`);
|
|
413
|
+
}
|
|
414
|
+
if (params.toId !== void 0) {
|
|
415
|
+
conditions.push(sql`${edges.toId} = ${params.toId}`);
|
|
416
|
+
}
|
|
417
|
+
const whereClause = sql.join(conditions, sql` AND `);
|
|
418
|
+
if (params.limit !== void 0 && params.offset !== void 0) {
|
|
419
|
+
return sql`
|
|
420
|
+
SELECT * FROM ${edges}
|
|
421
|
+
WHERE ${whereClause}
|
|
422
|
+
ORDER BY ${edges.createdAt} DESC
|
|
423
|
+
LIMIT ${params.limit} OFFSET ${params.offset}
|
|
424
|
+
`;
|
|
425
|
+
}
|
|
426
|
+
if (params.limit !== void 0) {
|
|
427
|
+
return sql`
|
|
428
|
+
SELECT * FROM ${edges}
|
|
429
|
+
WHERE ${whereClause}
|
|
430
|
+
ORDER BY ${edges.createdAt} DESC
|
|
431
|
+
LIMIT ${params.limit}
|
|
432
|
+
`;
|
|
433
|
+
}
|
|
434
|
+
return sql`
|
|
435
|
+
SELECT * FROM ${edges}
|
|
436
|
+
WHERE ${whereClause}
|
|
437
|
+
ORDER BY ${edges.createdAt} DESC
|
|
438
|
+
`;
|
|
439
|
+
}
|
|
440
|
+
function buildCountEdgesByKind(tables, params) {
|
|
441
|
+
const { edges } = tables;
|
|
442
|
+
const excludeDeleted = params.excludeDeleted ?? true;
|
|
443
|
+
const conditions = [
|
|
444
|
+
sql`${edges.graphId} = ${params.graphId}`,
|
|
445
|
+
sql`${edges.kind} = ${params.kind}`
|
|
446
|
+
];
|
|
447
|
+
if (excludeDeleted) {
|
|
448
|
+
conditions.push(sql`${edges.deletedAt} IS NULL`);
|
|
449
|
+
}
|
|
450
|
+
if (params.fromKind !== void 0) {
|
|
451
|
+
conditions.push(sql`${edges.fromKind} = ${params.fromKind}`);
|
|
452
|
+
}
|
|
453
|
+
if (params.fromId !== void 0) {
|
|
454
|
+
conditions.push(sql`${edges.fromId} = ${params.fromId}`);
|
|
455
|
+
}
|
|
456
|
+
if (params.toKind !== void 0) {
|
|
457
|
+
conditions.push(sql`${edges.toKind} = ${params.toKind}`);
|
|
458
|
+
}
|
|
459
|
+
if (params.toId !== void 0) {
|
|
460
|
+
conditions.push(sql`${edges.toId} = ${params.toId}`);
|
|
461
|
+
}
|
|
462
|
+
const whereClause = sql.join(conditions, sql` AND `);
|
|
463
|
+
return sql`
|
|
464
|
+
SELECT COUNT(*) as count FROM ${edges}
|
|
465
|
+
WHERE ${whereClause}
|
|
466
|
+
`;
|
|
467
|
+
}
|
|
468
|
+
function buildInsertSchemaSqlite(tables, params, timestamp) {
|
|
469
|
+
const { schemaVersions } = tables;
|
|
470
|
+
const schemaDocumentJson = JSON.stringify(params.schemaDoc);
|
|
471
|
+
const isActiveValue = params.isActive ? sql.raw("1") : sql.raw("0");
|
|
472
|
+
const cols = sql.raw(`"${schemaVersions.graphId.name}", "${schemaVersions.version.name}", "${schemaVersions.schemaHash.name}", "${schemaVersions.schemaDoc.name}", "${schemaVersions.createdAt.name}", "${schemaVersions.isActive.name}"`);
|
|
473
|
+
return sql`
|
|
474
|
+
INSERT INTO ${schemaVersions} (${cols})
|
|
475
|
+
VALUES (
|
|
476
|
+
${params.graphId}, ${params.version},
|
|
477
|
+
${params.schemaHash}, ${schemaDocumentJson},
|
|
478
|
+
${timestamp}, ${isActiveValue}
|
|
479
|
+
)
|
|
480
|
+
RETURNING *
|
|
481
|
+
`;
|
|
482
|
+
}
|
|
483
|
+
function buildInsertSchemaPostgres(tables, params, timestamp) {
|
|
484
|
+
const { schemaVersions } = tables;
|
|
485
|
+
const schemaDocumentJson = JSON.stringify(params.schemaDoc);
|
|
486
|
+
const isActiveValue = params.isActive ? sql.raw("true") : sql.raw("false");
|
|
487
|
+
const cols = sql.raw(`"${schemaVersions.graphId.name}", "${schemaVersions.version.name}", "${schemaVersions.schemaHash.name}", "${schemaVersions.schemaDoc.name}", "${schemaVersions.createdAt.name}", "${schemaVersions.isActive.name}"`);
|
|
488
|
+
return sql`
|
|
489
|
+
INSERT INTO ${schemaVersions} (${cols})
|
|
490
|
+
VALUES (
|
|
491
|
+
${params.graphId}, ${params.version},
|
|
492
|
+
${params.schemaHash}, ${schemaDocumentJson},
|
|
493
|
+
${timestamp}, ${isActiveValue}
|
|
494
|
+
)
|
|
495
|
+
RETURNING *
|
|
496
|
+
`;
|
|
497
|
+
}
|
|
498
|
+
function buildInsertSchema(tables, params, timestamp, dialect = "sqlite") {
|
|
499
|
+
if (dialect === "postgres") {
|
|
500
|
+
return buildInsertSchemaPostgres(tables, params, timestamp);
|
|
501
|
+
}
|
|
502
|
+
return buildInsertSchemaSqlite(tables, params, timestamp);
|
|
503
|
+
}
|
|
504
|
+
function buildGetActiveSchema(tables, graphId, dialect = "sqlite") {
|
|
505
|
+
const { schemaVersions } = tables;
|
|
506
|
+
const adapter = getDialect(dialect);
|
|
507
|
+
return sql`
|
|
508
|
+
SELECT * FROM ${schemaVersions}
|
|
509
|
+
WHERE ${schemaVersions.graphId} = ${graphId}
|
|
510
|
+
AND ${schemaVersions.isActive} = ${adapter.booleanLiteral(true)}
|
|
511
|
+
`;
|
|
512
|
+
}
|
|
513
|
+
function buildGetSchemaVersion(tables, graphId, version) {
|
|
514
|
+
const { schemaVersions } = tables;
|
|
515
|
+
return sql`
|
|
516
|
+
SELECT * FROM ${schemaVersions}
|
|
517
|
+
WHERE ${schemaVersions.graphId} = ${graphId}
|
|
518
|
+
AND ${schemaVersions.version} = ${version}
|
|
519
|
+
`;
|
|
520
|
+
}
|
|
521
|
+
function buildSetActiveSchema(tables, graphId, version, dialect = "sqlite") {
|
|
522
|
+
const { schemaVersions } = tables;
|
|
523
|
+
const adapter = getDialect(dialect);
|
|
524
|
+
const col = (c) => sql.raw(`"${c.name}"`);
|
|
525
|
+
const deactivateAll = sql`
|
|
526
|
+
UPDATE ${schemaVersions}
|
|
527
|
+
SET ${col(schemaVersions.isActive)} = ${adapter.booleanLiteral(false)}
|
|
528
|
+
WHERE ${schemaVersions.graphId} = ${graphId}
|
|
529
|
+
`;
|
|
530
|
+
const activateVersion = sql`
|
|
531
|
+
UPDATE ${schemaVersions}
|
|
532
|
+
SET ${col(schemaVersions.isActive)} = ${adapter.booleanLiteral(true)}
|
|
533
|
+
WHERE ${schemaVersions.graphId} = ${graphId}
|
|
534
|
+
AND ${schemaVersions.version} = ${version}
|
|
535
|
+
`;
|
|
536
|
+
return { deactivateAll, activateVersion };
|
|
537
|
+
}
|
|
538
|
+
function assertFiniteNumberArray(array, name) {
|
|
539
|
+
for (const [index, value] of array.entries()) {
|
|
540
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
541
|
+
throw new TypeError(
|
|
542
|
+
`${name}[${index}] must be a finite number, got: ${value}`
|
|
543
|
+
);
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
function formatEmbeddingLiteral(embedding) {
|
|
548
|
+
assertFiniteNumberArray(embedding, "embedding");
|
|
549
|
+
return `[${embedding.join(",")}]`;
|
|
550
|
+
}
|
|
551
|
+
function buildUpsertEmbeddingPostgres(tables, params, timestamp) {
|
|
552
|
+
const { embeddings } = tables;
|
|
553
|
+
const embeddingLiteral = formatEmbeddingLiteral(params.embedding);
|
|
554
|
+
const cols = sql.raw(
|
|
555
|
+
`"${embeddings.graphId.name}", "${embeddings.nodeKind.name}", "${embeddings.nodeId.name}", "${embeddings.fieldPath.name}", "${embeddings.embedding.name}", "${embeddings.dimensions.name}", "${embeddings.createdAt.name}", "${embeddings.updatedAt.name}"`
|
|
556
|
+
);
|
|
557
|
+
const conflictCols = sql.raw(
|
|
558
|
+
`"${embeddings.graphId.name}", "${embeddings.nodeKind.name}", "${embeddings.nodeId.name}", "${embeddings.fieldPath.name}"`
|
|
559
|
+
);
|
|
560
|
+
const col = (c) => sql.raw(`"${c.name}"`);
|
|
561
|
+
return sql`
|
|
562
|
+
INSERT INTO ${embeddings} (${cols})
|
|
563
|
+
VALUES (
|
|
564
|
+
${params.graphId}, ${params.nodeKind}, ${params.nodeId}, ${params.fieldPath},
|
|
565
|
+
${embeddingLiteral}::vector, ${params.dimensions}, ${timestamp}, ${timestamp}
|
|
566
|
+
)
|
|
567
|
+
ON CONFLICT (${conflictCols})
|
|
568
|
+
DO UPDATE SET
|
|
569
|
+
${col(embeddings.embedding)} = ${embeddingLiteral}::vector,
|
|
570
|
+
${col(embeddings.dimensions)} = ${params.dimensions},
|
|
571
|
+
${col(embeddings.updatedAt)} = ${timestamp}
|
|
572
|
+
`;
|
|
573
|
+
}
|
|
574
|
+
function buildDeleteEmbedding(tables, params) {
|
|
575
|
+
const { embeddings } = tables;
|
|
576
|
+
return sql`
|
|
577
|
+
DELETE FROM ${embeddings}
|
|
578
|
+
WHERE ${embeddings.graphId} = ${params.graphId}
|
|
579
|
+
AND ${embeddings.nodeKind} = ${params.nodeKind}
|
|
580
|
+
AND ${embeddings.nodeId} = ${params.nodeId}
|
|
581
|
+
AND ${embeddings.fieldPath} = ${params.fieldPath}
|
|
582
|
+
`;
|
|
583
|
+
}
|
|
584
|
+
function buildGetEmbedding(tables, graphId, nodeKind, nodeId, fieldPath) {
|
|
585
|
+
const { embeddings } = tables;
|
|
586
|
+
return sql`
|
|
587
|
+
SELECT * FROM ${embeddings}
|
|
588
|
+
WHERE ${embeddings.graphId} = ${graphId}
|
|
589
|
+
AND ${embeddings.nodeKind} = ${nodeKind}
|
|
590
|
+
AND ${embeddings.nodeId} = ${nodeId}
|
|
591
|
+
AND ${embeddings.fieldPath} = ${fieldPath}
|
|
592
|
+
`;
|
|
593
|
+
}
|
|
594
|
+
function buildDistanceExpression(embeddingColumn, queryLiteral, metric) {
|
|
595
|
+
const vectorParam = sql`${queryLiteral}::vector`;
|
|
596
|
+
switch (metric) {
|
|
597
|
+
case "cosine": {
|
|
598
|
+
return sql`(${embeddingColumn} <=> ${vectorParam})`;
|
|
599
|
+
}
|
|
600
|
+
case "l2": {
|
|
601
|
+
return sql`(${embeddingColumn} <-> ${vectorParam})`;
|
|
602
|
+
}
|
|
603
|
+
case "inner_product": {
|
|
604
|
+
return sql`(${embeddingColumn} <#> ${vectorParam})`;
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
function buildVectorSearchPostgres(tables, params) {
|
|
609
|
+
const { embeddings } = tables;
|
|
610
|
+
const queryLiteral = formatEmbeddingLiteral(params.queryEmbedding);
|
|
611
|
+
const embeddingColumn = sql`${embeddings.embedding}`;
|
|
612
|
+
const distanceExpr = buildDistanceExpression(
|
|
613
|
+
embeddingColumn,
|
|
614
|
+
queryLiteral,
|
|
615
|
+
params.metric
|
|
616
|
+
);
|
|
617
|
+
const conditions = [
|
|
618
|
+
sql`${embeddings.graphId} = ${params.graphId}`,
|
|
619
|
+
sql`${embeddings.nodeKind} = ${params.nodeKind}`,
|
|
620
|
+
sql`${embeddings.fieldPath} = ${params.fieldPath}`
|
|
621
|
+
];
|
|
622
|
+
if (params.minScore !== void 0) {
|
|
623
|
+
if (!Number.isFinite(params.minScore)) {
|
|
624
|
+
throw new TypeError(`minScore must be a finite number, got: ${params.minScore}`);
|
|
625
|
+
}
|
|
626
|
+
const threshold = 1 - params.minScore;
|
|
627
|
+
conditions.push(sql`${distanceExpr} <= ${threshold}`);
|
|
628
|
+
}
|
|
629
|
+
if (!Number.isInteger(params.limit) || params.limit <= 0) {
|
|
630
|
+
throw new Error(`limit must be a positive integer, got: ${params.limit}`);
|
|
631
|
+
}
|
|
632
|
+
const whereClause = sql.join(conditions, sql` AND `);
|
|
633
|
+
return sql`
|
|
634
|
+
SELECT
|
|
635
|
+
${embeddings.nodeId} as node_id,
|
|
636
|
+
(1 - (${distanceExpr})) as score
|
|
637
|
+
FROM ${embeddings}
|
|
638
|
+
WHERE ${whereClause}
|
|
639
|
+
ORDER BY ${distanceExpr} ASC
|
|
640
|
+
LIMIT ${params.limit}
|
|
641
|
+
`;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
export { D1_CAPABILITIES, POSTGRES_CAPABILITIES, SQLITE_CAPABILITIES, buildCheckUnique, buildCountEdgesByKind, buildCountEdgesFrom, buildCountNodesByKind, buildDeleteEdge, buildDeleteEmbedding, buildDeleteNode, buildDeleteUnique, buildEdgeExistsBetween, buildFindEdgesByKind, buildFindEdgesConnectedTo, buildFindNodesByKind, buildGetActiveSchema, buildGetEdge, buildGetEmbedding, buildGetNode, buildGetSchemaVersion, buildHardDeleteEdge, buildHardDeleteEmbeddingsByNode, buildHardDeleteNode, buildHardDeleteUniquesByNode, buildInsertEdge, buildInsertNode, buildInsertSchema, buildInsertUnique, buildSetActiveSchema, buildUpdateEdge, buildUpdateNode, buildUpsertEmbeddingPostgres, buildVectorSearchPostgres };
|
|
645
|
+
//# sourceMappingURL=chunk-RYT4H46I.js.map
|
|
646
|
+
//# sourceMappingURL=chunk-RYT4H46I.js.map
|