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