@nicia-ai/typegraph 0.7.0 → 0.9.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/dist/backend/postgres/index.cjs +26 -26
- package/dist/backend/postgres/index.js +2 -2
- package/dist/backend/sqlite/index.cjs +12 -12
- package/dist/backend/sqlite/index.d.cts +15 -3
- package/dist/backend/sqlite/index.d.ts +15 -3
- package/dist/backend/sqlite/index.js +2 -2
- package/dist/backend/sqlite/local.cjs +5 -6
- package/dist/backend/sqlite/local.cjs.map +1 -1
- package/dist/backend/sqlite/local.js +2 -3
- package/dist/backend/sqlite/local.js.map +1 -1
- package/dist/{chunk-PDQBCQ34.cjs → chunk-7VITUTRA.cjs} +6 -6
- package/dist/{chunk-PDQBCQ34.cjs.map → chunk-7VITUTRA.cjs.map} +1 -1
- package/dist/{chunk-K5O7TOJO.cjs → chunk-FXZOTO6F.cjs} +56 -48
- package/dist/chunk-FXZOTO6F.cjs.map +1 -0
- package/dist/{chunk-JUZWF5NX.js → chunk-IRFD3MEU.js} +12 -12
- package/dist/chunk-IRFD3MEU.js.map +1 -0
- package/dist/{chunk-2DKSQNPW.js → chunk-KP2HKVXU.js} +45 -37
- package/dist/chunk-KP2HKVXU.js.map +1 -0
- package/dist/{chunk-23NGZHUN.cjs → chunk-MGEVSTDX.cjs} +2 -13
- package/dist/chunk-MGEVSTDX.cjs.map +1 -0
- package/dist/{chunk-BELXZTVK.cjs → chunk-NI2GV74U.cjs} +12 -12
- package/dist/chunk-NI2GV74U.cjs.map +1 -0
- package/dist/{chunk-SH237DWD.js → chunk-PYV4ADC6.js} +3 -3
- package/dist/{chunk-SH237DWD.js.map → chunk-PYV4ADC6.js.map} +1 -1
- package/dist/{chunk-JPO7W262.js → chunk-X3OXNIMH.js} +3 -13
- package/dist/chunk-X3OXNIMH.js.map +1 -0
- package/dist/index.cjs +61 -61
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/interchange/index.cjs +6 -6
- package/dist/interchange/index.d.cts +2 -2
- package/dist/interchange/index.d.ts +2 -2
- package/dist/interchange/index.js +1 -1
- package/dist/{manager-Ba2CXGMG.d.ts → manager-BCLhWysp.d.ts} +8 -6
- package/dist/{manager-Cu3JQN0H.d.cts → manager-DGSnJa1v.d.cts} +8 -6
- package/dist/profiler/index.d.cts +2 -2
- package/dist/profiler/index.d.ts +2 -2
- package/dist/schema/index.cjs +21 -21
- package/dist/schema/index.d.cts +2 -2
- package/dist/schema/index.d.ts +2 -2
- package/dist/schema/index.js +3 -3
- package/dist/{store-CL-QMus7.d.cts → store-DgzIgrmn.d.cts} +1 -1
- package/dist/{store-DJpuUOSL.d.ts → store-wqOO3GSy.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-23NGZHUN.cjs.map +0 -1
- package/dist/chunk-2DKSQNPW.js.map +0 -1
- package/dist/chunk-BELXZTVK.cjs.map +0 -1
- package/dist/chunk-JPO7W262.js.map +0 -1
- package/dist/chunk-JUZWF5NX.js.map +0 -1
- package/dist/chunk-K5O7TOJO.cjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkMGEVSTDX_cjs = require('../../chunk-MGEVSTDX.cjs');
|
|
4
4
|
require('../../chunk-44SXEVF4.cjs');
|
|
5
5
|
require('../../chunk-JQDWEX6V.cjs');
|
|
6
6
|
require('../../chunk-2WVFEIHR.cjs');
|
|
@@ -31,7 +31,7 @@ function createPgPreparedStatement(pgClient, sqlText) {
|
|
|
31
31
|
function createPostgresExecutionAdapter(db) {
|
|
32
32
|
const pgClient = resolvePgClient(db);
|
|
33
33
|
function compile(query) {
|
|
34
|
-
return
|
|
34
|
+
return chunkMGEVSTDX_cjs.compileQueryWithDialect(db, query, "PostgreSQL");
|
|
35
35
|
}
|
|
36
36
|
if (pgClient === void 0) {
|
|
37
37
|
return {
|
|
@@ -81,10 +81,10 @@ var POSTGRES_GET_EDGES_ID_CHUNK_SIZE = Math.max(
|
|
|
81
81
|
1,
|
|
82
82
|
POSTGRES_MAX_BIND_PARAMETERS - 1
|
|
83
83
|
);
|
|
84
|
-
var toNodeRow =
|
|
85
|
-
var toEdgeRow =
|
|
86
|
-
var toUniqueRow =
|
|
87
|
-
var toSchemaVersionRow =
|
|
84
|
+
var toNodeRow = chunkMGEVSTDX_cjs.createNodeRowMapper(chunkMGEVSTDX_cjs.POSTGRES_ROW_MAPPER_CONFIG);
|
|
85
|
+
var toEdgeRow = chunkMGEVSTDX_cjs.createEdgeRowMapper(chunkMGEVSTDX_cjs.POSTGRES_ROW_MAPPER_CONFIG);
|
|
86
|
+
var toUniqueRow = chunkMGEVSTDX_cjs.createUniqueRowMapper(chunkMGEVSTDX_cjs.POSTGRES_ROW_MAPPER_CONFIG);
|
|
87
|
+
var toSchemaVersionRow = chunkMGEVSTDX_cjs.createSchemaVersionRowMapper(chunkMGEVSTDX_cjs.POSTGRES_ROW_MAPPER_CONFIG);
|
|
88
88
|
function toEmbeddingRow(row) {
|
|
89
89
|
let embedding;
|
|
90
90
|
if (typeof row.embedding === "string") {
|
|
@@ -102,12 +102,12 @@ function toEmbeddingRow(row) {
|
|
|
102
102
|
field_path: row.field_path,
|
|
103
103
|
embedding,
|
|
104
104
|
dimensions: row.dimensions,
|
|
105
|
-
created_at:
|
|
106
|
-
updated_at:
|
|
105
|
+
created_at: chunkMGEVSTDX_cjs.formatPostgresTimestamp(row.created_at) ?? "",
|
|
106
|
+
updated_at: chunkMGEVSTDX_cjs.formatPostgresTimestamp(row.updated_at) ?? ""
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
109
|
var POSTGRES_VECTOR_CAPABILITIES = {
|
|
110
|
-
...
|
|
110
|
+
...chunkMGEVSTDX_cjs.POSTGRES_CAPABILITIES,
|
|
111
111
|
vector: {
|
|
112
112
|
supported: true,
|
|
113
113
|
metrics: ["cosine", "l2", "inner_product"],
|
|
@@ -117,14 +117,14 @@ var POSTGRES_VECTOR_CAPABILITIES = {
|
|
|
117
117
|
}
|
|
118
118
|
};
|
|
119
119
|
function createPostgresBackend(db, options = {}) {
|
|
120
|
-
const tables2 = options.tables ??
|
|
120
|
+
const tables2 = options.tables ?? chunkMGEVSTDX_cjs.tables2;
|
|
121
121
|
const executionAdapter = createPostgresExecutionAdapter(db);
|
|
122
122
|
const tableNames = {
|
|
123
123
|
nodes: drizzleOrm.getTableName(tables2.nodes),
|
|
124
124
|
edges: drizzleOrm.getTableName(tables2.edges),
|
|
125
125
|
embeddings: drizzleOrm.getTableName(tables2.embeddings)
|
|
126
126
|
};
|
|
127
|
-
const operationStrategy =
|
|
127
|
+
const operationStrategy = chunkMGEVSTDX_cjs.createPostgresOperationStrategy(tables2);
|
|
128
128
|
const operations = createPostgresOperationBackend({
|
|
129
129
|
db,
|
|
130
130
|
executionAdapter,
|
|
@@ -169,7 +169,7 @@ function createPostgresOperationBackend(options) {
|
|
|
169
169
|
async function execRun(query) {
|
|
170
170
|
await db.execute(query);
|
|
171
171
|
}
|
|
172
|
-
const commonBackend =
|
|
172
|
+
const commonBackend = chunkMGEVSTDX_cjs.createCommonOperationBackend({
|
|
173
173
|
batchConfig: {
|
|
174
174
|
edgeInsertBatchSize: POSTGRES_EDGE_INSERT_BATCH_SIZE,
|
|
175
175
|
getEdgesChunkSize: POSTGRES_GET_EDGES_ID_CHUNK_SIZE,
|
|
@@ -181,7 +181,7 @@ function createPostgresOperationBackend(options) {
|
|
|
181
181
|
execGet,
|
|
182
182
|
execRun
|
|
183
183
|
},
|
|
184
|
-
nowIso:
|
|
184
|
+
nowIso: chunkMGEVSTDX_cjs.nowIso,
|
|
185
185
|
operationStrategy,
|
|
186
186
|
rowMappers: {
|
|
187
187
|
toEdgeRow,
|
|
@@ -204,7 +204,7 @@ function createPostgresOperationBackend(options) {
|
|
|
204
204
|
tableNames,
|
|
205
205
|
// === Embedding Operations ===
|
|
206
206
|
async upsertEmbedding(params) {
|
|
207
|
-
const timestamp =
|
|
207
|
+
const timestamp = chunkMGEVSTDX_cjs.nowIso();
|
|
208
208
|
const query = operationStrategy.buildUpsertEmbedding(params, timestamp);
|
|
209
209
|
await execRun(query);
|
|
210
210
|
},
|
|
@@ -243,7 +243,7 @@ function createPostgresOperationBackend(options) {
|
|
|
243
243
|
...params.indexParams?.efConstruction === void 0 ? {} : { hnswEfConstruction: params.indexParams.efConstruction },
|
|
244
244
|
...params.indexParams?.lists === void 0 ? {} : { ivfflatLists: params.indexParams.lists }
|
|
245
245
|
};
|
|
246
|
-
const result = await
|
|
246
|
+
const result = await chunkMGEVSTDX_cjs.createPostgresVectorIndex(db, indexOptions);
|
|
247
247
|
if (!result.success) {
|
|
248
248
|
throw new Error(
|
|
249
249
|
result.message ?? "Failed to create PostgreSQL vector index"
|
|
@@ -253,13 +253,13 @@ function createPostgresOperationBackend(options) {
|
|
|
253
253
|
async dropVectorIndex(params) {
|
|
254
254
|
const metrics = POSTGRES_VECTOR_CAPABILITIES.vector?.metrics ?? ["cosine"];
|
|
255
255
|
for (const metric of metrics) {
|
|
256
|
-
const indexName =
|
|
256
|
+
const indexName = chunkMGEVSTDX_cjs.generateVectorIndexName(
|
|
257
257
|
params.graphId,
|
|
258
258
|
params.nodeKind,
|
|
259
259
|
params.fieldPath,
|
|
260
260
|
metric
|
|
261
261
|
);
|
|
262
|
-
const result = await
|
|
262
|
+
const result = await chunkMGEVSTDX_cjs.dropPostgresVectorIndex(db, indexName);
|
|
263
263
|
if (!result.success) {
|
|
264
264
|
throw new Error(
|
|
265
265
|
result.message ?? "Failed to drop PostgreSQL vector index"
|
|
@@ -289,39 +289,39 @@ function createTransactionBackend(options) {
|
|
|
289
289
|
|
|
290
290
|
Object.defineProperty(exports, "createPostgresTables", {
|
|
291
291
|
enumerable: true,
|
|
292
|
-
get: function () { return
|
|
292
|
+
get: function () { return chunkMGEVSTDX_cjs.createPostgresTables; }
|
|
293
293
|
});
|
|
294
294
|
Object.defineProperty(exports, "edges", {
|
|
295
295
|
enumerable: true,
|
|
296
|
-
get: function () { return
|
|
296
|
+
get: function () { return chunkMGEVSTDX_cjs.edges2; }
|
|
297
297
|
});
|
|
298
298
|
Object.defineProperty(exports, "embeddings", {
|
|
299
299
|
enumerable: true,
|
|
300
|
-
get: function () { return
|
|
300
|
+
get: function () { return chunkMGEVSTDX_cjs.embeddings2; }
|
|
301
301
|
});
|
|
302
302
|
Object.defineProperty(exports, "generatePostgresDDL", {
|
|
303
303
|
enumerable: true,
|
|
304
|
-
get: function () { return
|
|
304
|
+
get: function () { return chunkMGEVSTDX_cjs.generatePostgresDDL; }
|
|
305
305
|
});
|
|
306
306
|
Object.defineProperty(exports, "generatePostgresMigrationSQL", {
|
|
307
307
|
enumerable: true,
|
|
308
|
-
get: function () { return
|
|
308
|
+
get: function () { return chunkMGEVSTDX_cjs.generatePostgresMigrationSQL; }
|
|
309
309
|
});
|
|
310
310
|
Object.defineProperty(exports, "nodes", {
|
|
311
311
|
enumerable: true,
|
|
312
|
-
get: function () { return
|
|
312
|
+
get: function () { return chunkMGEVSTDX_cjs.nodes2; }
|
|
313
313
|
});
|
|
314
314
|
Object.defineProperty(exports, "schemaVersions", {
|
|
315
315
|
enumerable: true,
|
|
316
|
-
get: function () { return
|
|
316
|
+
get: function () { return chunkMGEVSTDX_cjs.schemaVersions2; }
|
|
317
317
|
});
|
|
318
318
|
Object.defineProperty(exports, "tables", {
|
|
319
319
|
enumerable: true,
|
|
320
|
-
get: function () { return
|
|
320
|
+
get: function () { return chunkMGEVSTDX_cjs.tables2; }
|
|
321
321
|
});
|
|
322
322
|
Object.defineProperty(exports, "uniques", {
|
|
323
323
|
enumerable: true,
|
|
324
|
-
get: function () { return
|
|
324
|
+
get: function () { return chunkMGEVSTDX_cjs.uniques2; }
|
|
325
325
|
});
|
|
326
326
|
exports.createPostgresBackend = createPostgresBackend;
|
|
327
327
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createNodeRowMapper, POSTGRES_ROW_MAPPER_CONFIG, createEdgeRowMapper, createUniqueRowMapper, createSchemaVersionRowMapper, POSTGRES_CAPABILITIES, tables2, createPostgresOperationStrategy, createCommonOperationBackend, nowIso, generateVectorIndexName, dropPostgresVectorIndex, createPostgresVectorIndex, compileQueryWithDialect, formatPostgresTimestamp } from '../../chunk-
|
|
2
|
-
export { createPostgresTables, edges2 as edges, embeddings2 as embeddings, generatePostgresDDL, generatePostgresMigrationSQL, nodes2 as nodes, schemaVersions2 as schemaVersions, tables2 as tables, uniques2 as uniques } from '../../chunk-
|
|
1
|
+
import { createNodeRowMapper, POSTGRES_ROW_MAPPER_CONFIG, createEdgeRowMapper, createUniqueRowMapper, createSchemaVersionRowMapper, POSTGRES_CAPABILITIES, tables2, createPostgresOperationStrategy, createCommonOperationBackend, nowIso, generateVectorIndexName, dropPostgresVectorIndex, createPostgresVectorIndex, compileQueryWithDialect, formatPostgresTimestamp } from '../../chunk-X3OXNIMH.js';
|
|
2
|
+
export { createPostgresTables, edges2 as edges, embeddings2 as embeddings, generatePostgresDDL, generatePostgresMigrationSQL, nodes2 as nodes, schemaVersions2 as schemaVersions, tables2 as tables, uniques2 as uniques } from '../../chunk-X3OXNIMH.js';
|
|
3
3
|
import '../../chunk-SJ2QMDXY.js';
|
|
4
4
|
import '../../chunk-U3452TEU.js';
|
|
5
5
|
import '../../chunk-54WJF3DW.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkFXZOTO6F_cjs = require('../../chunk-FXZOTO6F.cjs');
|
|
4
|
+
var chunkMGEVSTDX_cjs = require('../../chunk-MGEVSTDX.cjs');
|
|
5
5
|
require('../../chunk-44SXEVF4.cjs');
|
|
6
6
|
require('../../chunk-JQDWEX6V.cjs');
|
|
7
7
|
require('../../chunk-2WVFEIHR.cjs');
|
|
@@ -11,43 +11,43 @@ require('../../chunk-P5CNM325.cjs');
|
|
|
11
11
|
|
|
12
12
|
Object.defineProperty(exports, "createSqliteBackend", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkFXZOTO6F_cjs.createSqliteBackend; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "createSqliteTables", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkMGEVSTDX_cjs.createSqliteTables; }
|
|
19
19
|
});
|
|
20
20
|
Object.defineProperty(exports, "edges", {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function () { return
|
|
22
|
+
get: function () { return chunkMGEVSTDX_cjs.edges; }
|
|
23
23
|
});
|
|
24
24
|
Object.defineProperty(exports, "embeddings", {
|
|
25
25
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
26
|
+
get: function () { return chunkMGEVSTDX_cjs.embeddings; }
|
|
27
27
|
});
|
|
28
28
|
Object.defineProperty(exports, "generateSqliteDDL", {
|
|
29
29
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
30
|
+
get: function () { return chunkMGEVSTDX_cjs.generateSqliteDDL; }
|
|
31
31
|
});
|
|
32
32
|
Object.defineProperty(exports, "generateSqliteMigrationSQL", {
|
|
33
33
|
enumerable: true,
|
|
34
|
-
get: function () { return
|
|
34
|
+
get: function () { return chunkMGEVSTDX_cjs.generateSqliteMigrationSQL; }
|
|
35
35
|
});
|
|
36
36
|
Object.defineProperty(exports, "nodes", {
|
|
37
37
|
enumerable: true,
|
|
38
|
-
get: function () { return
|
|
38
|
+
get: function () { return chunkMGEVSTDX_cjs.nodes; }
|
|
39
39
|
});
|
|
40
40
|
Object.defineProperty(exports, "schemaVersions", {
|
|
41
41
|
enumerable: true,
|
|
42
|
-
get: function () { return
|
|
42
|
+
get: function () { return chunkMGEVSTDX_cjs.schemaVersions; }
|
|
43
43
|
});
|
|
44
44
|
Object.defineProperty(exports, "tables", {
|
|
45
45
|
enumerable: true,
|
|
46
|
-
get: function () { return
|
|
46
|
+
get: function () { return chunkMGEVSTDX_cjs.tables; }
|
|
47
47
|
});
|
|
48
48
|
Object.defineProperty(exports, "uniques", {
|
|
49
49
|
enumerable: true,
|
|
50
|
-
get: function () { return
|
|
50
|
+
get: function () { return chunkMGEVSTDX_cjs.uniques; }
|
|
51
51
|
});
|
|
52
52
|
//# sourceMappingURL=index.cjs.map
|
|
53
53
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -10,9 +10,20 @@ import '../../types-C8Ra3ROE.cjs';
|
|
|
10
10
|
import '../../ast-Bh2NDeaK.cjs';
|
|
11
11
|
import 'drizzle-orm/pg-core';
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Controls how the backend manages SQLite transactions.
|
|
15
|
+
*
|
|
16
|
+
* - `"sql"`: TypeGraph issues BEGIN / COMMIT / ROLLBACK SQL directly.
|
|
17
|
+
* Default for sync drivers (better-sqlite3, bun:sqlite).
|
|
18
|
+
* - `"drizzle"`: Delegates to Drizzle's `db.transaction()` method.
|
|
19
|
+
* Default for async drivers (libsql, sql.js).
|
|
20
|
+
* - `"none"`: Transactions disabled.
|
|
21
|
+
* Default for Cloudflare D1 and Durable Objects.
|
|
22
|
+
*/
|
|
23
|
+
type SqliteTransactionMode = "sql" | "drizzle" | "none";
|
|
13
24
|
type SqliteExecutionProfileHints = Readonly<{
|
|
14
|
-
isD1?: boolean;
|
|
15
25
|
isSync?: boolean;
|
|
26
|
+
transactionMode?: SqliteTransactionMode;
|
|
16
27
|
}>;
|
|
17
28
|
type AnySqliteDatabase = BaseSQLiteDatabase<"sync" | "async", unknown>;
|
|
18
29
|
|
|
@@ -27,10 +38,11 @@ type SqliteBackendOptions = Readonly<{
|
|
|
27
38
|
tables?: SqliteTables;
|
|
28
39
|
/**
|
|
29
40
|
* Optional execution profile hints used to avoid runtime driver reflection.
|
|
30
|
-
* Set `
|
|
41
|
+
* Set `transactionMode: "none"` for drivers that do not support transactions
|
|
42
|
+
* (e.g. Cloudflare D1, Durable Objects).
|
|
31
43
|
*/
|
|
32
44
|
executionProfile?: SqliteExecutionProfileHints;
|
|
33
45
|
}>;
|
|
34
46
|
declare function createSqliteBackend(db: AnySqliteDatabase, options?: SqliteBackendOptions): GraphBackend;
|
|
35
47
|
|
|
36
|
-
export { type SqliteBackendOptions, SqliteTables, createSqliteBackend };
|
|
48
|
+
export { type SqliteBackendOptions, SqliteTables, type SqliteTransactionMode, createSqliteBackend };
|
|
@@ -10,9 +10,20 @@ import '../../types-CC8eB0PB.js';
|
|
|
10
10
|
import '../../ast-COMyNeMn.js';
|
|
11
11
|
import 'drizzle-orm/pg-core';
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Controls how the backend manages SQLite transactions.
|
|
15
|
+
*
|
|
16
|
+
* - `"sql"`: TypeGraph issues BEGIN / COMMIT / ROLLBACK SQL directly.
|
|
17
|
+
* Default for sync drivers (better-sqlite3, bun:sqlite).
|
|
18
|
+
* - `"drizzle"`: Delegates to Drizzle's `db.transaction()` method.
|
|
19
|
+
* Default for async drivers (libsql, sql.js).
|
|
20
|
+
* - `"none"`: Transactions disabled.
|
|
21
|
+
* Default for Cloudflare D1 and Durable Objects.
|
|
22
|
+
*/
|
|
23
|
+
type SqliteTransactionMode = "sql" | "drizzle" | "none";
|
|
13
24
|
type SqliteExecutionProfileHints = Readonly<{
|
|
14
|
-
isD1?: boolean;
|
|
15
25
|
isSync?: boolean;
|
|
26
|
+
transactionMode?: SqliteTransactionMode;
|
|
16
27
|
}>;
|
|
17
28
|
type AnySqliteDatabase = BaseSQLiteDatabase<"sync" | "async", unknown>;
|
|
18
29
|
|
|
@@ -27,10 +38,11 @@ type SqliteBackendOptions = Readonly<{
|
|
|
27
38
|
tables?: SqliteTables;
|
|
28
39
|
/**
|
|
29
40
|
* Optional execution profile hints used to avoid runtime driver reflection.
|
|
30
|
-
* Set `
|
|
41
|
+
* Set `transactionMode: "none"` for drivers that do not support transactions
|
|
42
|
+
* (e.g. Cloudflare D1, Durable Objects).
|
|
31
43
|
*/
|
|
32
44
|
executionProfile?: SqliteExecutionProfileHints;
|
|
33
45
|
}>;
|
|
34
46
|
declare function createSqliteBackend(db: AnySqliteDatabase, options?: SqliteBackendOptions): GraphBackend;
|
|
35
47
|
|
|
36
|
-
export { type SqliteBackendOptions, SqliteTables, createSqliteBackend };
|
|
48
|
+
export { type SqliteBackendOptions, SqliteTables, type SqliteTransactionMode, createSqliteBackend };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { createSqliteBackend } from '../../chunk-
|
|
2
|
-
export { createSqliteTables, edges, embeddings, generateSqliteDDL, generateSqliteMigrationSQL, nodes, schemaVersions, tables, uniques } from '../../chunk-
|
|
1
|
+
export { createSqliteBackend } from '../../chunk-KP2HKVXU.js';
|
|
2
|
+
export { createSqliteTables, edges, embeddings, generateSqliteDDL, generateSqliteMigrationSQL, nodes, schemaVersions, tables, uniques } from '../../chunk-X3OXNIMH.js';
|
|
3
3
|
import '../../chunk-SJ2QMDXY.js';
|
|
4
4
|
import '../../chunk-U3452TEU.js';
|
|
5
5
|
import '../../chunk-54WJF3DW.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkFXZOTO6F_cjs = require('../../chunk-FXZOTO6F.cjs');
|
|
4
|
+
var chunkMGEVSTDX_cjs = require('../../chunk-MGEVSTDX.cjs');
|
|
5
5
|
var chunk44SXEVF4_cjs = require('../../chunk-44SXEVF4.cjs');
|
|
6
6
|
require('../../chunk-JQDWEX6V.cjs');
|
|
7
7
|
require('../../chunk-2WVFEIHR.cjs');
|
|
@@ -53,16 +53,15 @@ function createDatabase(path) {
|
|
|
53
53
|
}
|
|
54
54
|
function createLocalSqliteBackend(options = {}) {
|
|
55
55
|
const path = options.path ?? ":memory:";
|
|
56
|
-
const tables2 = options.tables ??
|
|
56
|
+
const tables2 = options.tables ?? chunkMGEVSTDX_cjs.tables;
|
|
57
57
|
const sqlite = createDatabase(path);
|
|
58
58
|
const db = betterSqlite3.drizzle(sqlite);
|
|
59
|
-
const ddlStatements =
|
|
59
|
+
const ddlStatements = chunkMGEVSTDX_cjs.generateSqliteDDL(tables2);
|
|
60
60
|
for (const statement of ddlStatements) {
|
|
61
61
|
sqlite.exec(statement);
|
|
62
62
|
}
|
|
63
|
-
const backend =
|
|
63
|
+
const backend = chunkFXZOTO6F_cjs.createSqliteBackend(db, {
|
|
64
64
|
executionProfile: {
|
|
65
|
-
isD1: false,
|
|
66
65
|
isSync: true
|
|
67
66
|
},
|
|
68
67
|
tables: tables2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/backend/sqlite/local.ts"],"names":["Database","ConfigurationError","tables","drizzle","generateSqliteDDL","createSqliteBackend"],"mappings":";;;;;;;;;;;;;;;AA+CA,SAAS,uBAAuB,KAAA,EAAwB;AACtD,EAAA,IAAI,KAAA,YAAiB,KAAA,EAAO,OAAO,KAAA,CAAM,OAAA;AACzC,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AAEA,SAAS,sCACP,OAAA,EACuC;AACvC,EAAA,MAAM,MAAA,GACJ,kFAAA;AACF,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA;AACjC,EAAA,IAAI,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAO,MAAA;AAE3B,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,QAAQ,CAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,QAAQ,CAAA;AAE7C,EAAA,IAAI,CAAC,OAAO,QAAA,CAAS,QAAQ,KAAK,CAAC,MAAA,CAAO,SAAS,QAAQ,CAAA;AACzD,IAAA,OAAO,MAAA;AAET,EAAA,OAAO,EAAE,UAAU,QAAA,EAAS;AAC9B;AAEA,SAAS,eAAe,IAAA,EAAiC;AACvD,EAAA,IAAI;AACF,IAAA,OAAO,IAAIA,0BAAS,IAAI,CAAA;AAAA,EAC1B,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,OAAA,GAAU,uBAAuB,KAAK,CAAA;AAC5C,IAAA,MAAM,QAAA,GAAW,sCAAsC,OAAO,CAAA;AAC9D,IAAA,IAAI,CAAC,UAAU,MAAM,KAAA;AAErB,IAAA,MAAM,IAAIC,oCAAA;AAAA,MACR;AAAA,QACE,6CAAA;AAAA,QACA,CAAA,wCAAA,EAA2C,QAAA,CAAS,QAAQ,CAAA,oCAAA,EAAuC,SAAS,QAAQ,CAAA,CAAA,CAAA;AAAA,QACpH,4FAAA;AAAA,QACA;AAAA,OACF,CAAE,KAAK,GAAG,CAAA;AAAA,MACV;AAAA,QACE,aAAa,OAAA,CAAQ,OAAA;AAAA,QACrB,iBAAA,EAAmB,QAAQ,QAAA,CAAS,OAAA;AAAA,QACpC,2BAA2B,QAAA,CAAS,QAAA;AAAA,QACpC,2BAA2B,QAAA,CAAS;AAAA,OACtC;AAAA,MACA,EAAE,OAAO,KAAA;AAAM,KACjB;AAAA,EACF;AACF;AAmEO,SAAS,wBAAA,CACd,OAAA,GAAqC,EAAC,EACZ;AAC1B,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAA,IAAQ,UAAA;AAC7B,EAAA,MAAMC,OAAAA,GAAS,QAAQ,MAAA,IAAUA,wBAAA;AAEjC,EAAA,MAAM,MAAA,GAAS,eAAe,IAAI,CAAA;AAClC,EAAA,MAAM,EAAA,GAAKC,sBAAQ,MAAM,CAAA;AAGzB,EAAA,MAAM,aAAA,GAAgBC,oCAAkBF,OAAM,CAAA;AAC9C,EAAA,KAAA,MAAW,aAAa,aAAA,EAAe;AACrC,IAAA,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,EACvB;AAEA,EAAA,MAAM,OAAA,GAAUG,sCAAoB,EAAA,EAAI;AAAA,IACtC,gBAAA,EAAkB;AAAA,MAChB,
|
|
1
|
+
{"version":3,"sources":["../../../src/backend/sqlite/local.ts"],"names":["Database","ConfigurationError","tables","drizzle","generateSqliteDDL","createSqliteBackend"],"mappings":"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","file":"local.cjs","sourcesContent":["/**\n * Local SQLite backend using better-sqlite3.\n *\n * This module depends on the `better-sqlite3` native addon and should only\n * be imported in Node.js environments. For bundler-friendly SQLite DDL\n * generation and Drizzle backend creation, import from `@nicia-ai/typegraph/sqlite`.\n *\n * @example In-memory database (default)\n * ```typescript\n * import { createLocalSqliteBackend } from \"@nicia-ai/typegraph/sqlite/local\";\n *\n * const { backend, db } = createLocalSqliteBackend();\n * const store = createStore(graph, backend);\n * ```\n *\n * @example File-based database for persistent local development\n * ```typescript\n * import { createLocalSqliteBackend } from \"@nicia-ai/typegraph/sqlite/local\";\n *\n * const { backend, db } = createLocalSqliteBackend({ path: \"./dev.db\" });\n * const store = createStore(graph, backend);\n * ```\n */\nimport Database from \"better-sqlite3\";\nimport {\n type BetterSQLite3Database,\n drizzle,\n} from \"drizzle-orm/better-sqlite3\";\n\nimport { ConfigurationError } from \"../../errors\";\nimport { generateSqliteDDL } from \"../drizzle/ddl\";\nimport {\n createSqliteBackend,\n type SqliteTables,\n tables as defaultTables,\n} from \"../drizzle/sqlite\";\nimport type { GraphBackend } from \"../types\";\n\n// ============================================================\n// Native Addon Helpers\n// ============================================================\n\ntype NodeModuleVersionMismatch = Readonly<{\n compiled: number;\n required: number;\n}>;\n\nfunction getUnknownErrorMessage(error: unknown): string {\n if (error instanceof Error) return error.message;\n return String(error);\n}\n\nfunction parseNodeModuleVersionMismatchMessage(\n message: string,\n): NodeModuleVersionMismatch | undefined {\n const regexp =\n /NODE_MODULE_VERSION (?<compiled>\\d+)[\\s\\S]*?NODE_MODULE_VERSION (?<required>\\d+)/;\n const match = regexp.exec(message);\n if (!match?.groups) return undefined;\n\n const compiled = Number(match.groups.compiled);\n const required = Number(match.groups.required);\n\n if (!Number.isFinite(compiled) || !Number.isFinite(required))\n return undefined;\n\n return { compiled, required };\n}\n\nfunction createDatabase(path: string): Database.Database {\n try {\n return new Database(path);\n } catch (error) {\n const message = getUnknownErrorMessage(error);\n const mismatch = parseNodeModuleVersionMismatchMessage(message);\n if (!mismatch) throw error;\n\n throw new ConfigurationError(\n [\n \"Failed to load better-sqlite3 native addon.\",\n `It was compiled for NODE_MODULE_VERSION ${mismatch.compiled}, but this Node.js runtime requires ${mismatch.required}.`,\n \"This usually happens after switching Node versions without rebuilding native dependencies.\",\n \"Rebuild with: pnpm rebuild better-sqlite3 (or npm rebuild better-sqlite3).\",\n ].join(\" \"),\n {\n nodeVersion: process.version,\n nodeModuleVersion: process.versions.modules,\n compiledNodeModuleVersion: mismatch.compiled,\n requiredNodeModuleVersion: mismatch.required,\n },\n { cause: error },\n );\n }\n}\n\n// ============================================================\n// Types\n// ============================================================\n\n/**\n * Options for creating a local SQLite backend.\n */\nexport type LocalSqliteBackendOptions = Readonly<{\n /**\n * Path to the SQLite database file.\n * Defaults to \":memory:\" for an in-memory database.\n */\n path?: string;\n\n /**\n * Custom table definitions.\n * Defaults to standard TypeGraph table names.\n */\n tables?: SqliteTables;\n}>;\n\n/**\n * Result of creating a local SQLite backend.\n */\nexport type LocalSqliteBackendResult = Readonly<{\n /**\n * The GraphBackend instance for use with createStore.\n */\n backend: GraphBackend;\n\n /**\n * The underlying Drizzle database instance.\n * Useful for direct SQL access or cleanup.\n */\n db: BetterSQLite3Database;\n}>;\n\n// ============================================================\n// Factory Function\n// ============================================================\n\n/**\n * Creates a SQLite backend with minimal configuration.\n *\n * This is a convenience function for local development and testing.\n * It handles database creation, schema migration, and backend setup.\n *\n * For production deployments or custom configurations, use createSqliteBackend\n * directly with your own Drizzle database instance.\n *\n * @param options - Configuration options\n * @returns Backend and database instances\n *\n * @example In-memory database (default)\n * ```typescript\n * const { backend } = createLocalSqliteBackend();\n * const store = createStore(graph, backend);\n * ```\n *\n * @example File-based database\n * ```typescript\n * const { backend, db } = createLocalSqliteBackend({ path: \"./data.db\" });\n * const store = createStore(graph, backend);\n * ```\n */\nexport function createLocalSqliteBackend(\n options: LocalSqliteBackendOptions = {},\n): LocalSqliteBackendResult {\n const path = options.path ?? \":memory:\";\n const tables = options.tables ?? defaultTables;\n\n const sqlite = createDatabase(path);\n const db = drizzle(sqlite);\n\n // Generate and execute DDL from schema\n const ddlStatements = generateSqliteDDL(tables);\n for (const statement of ddlStatements) {\n sqlite.exec(statement);\n }\n\n const backend = createSqliteBackend(db, {\n executionProfile: {\n isSync: true,\n },\n tables,\n });\n let isClosed = false;\n\n function close(): Promise<void> {\n if (isClosed) return Promise.resolve();\n isClosed = true;\n sqlite.close();\n return Promise.resolve();\n }\n\n const managedBackend: GraphBackend = { ...backend, close };\n\n return { backend: managedBackend, db };\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createSqliteBackend } from '../../chunk-
|
|
2
|
-
import { tables, generateSqliteDDL } from '../../chunk-
|
|
1
|
+
import { createSqliteBackend } from '../../chunk-KP2HKVXU.js';
|
|
2
|
+
import { tables, generateSqliteDDL } from '../../chunk-X3OXNIMH.js';
|
|
3
3
|
import { ConfigurationError } from '../../chunk-SJ2QMDXY.js';
|
|
4
4
|
import '../../chunk-U3452TEU.js';
|
|
5
5
|
import '../../chunk-54WJF3DW.js';
|
|
@@ -56,7 +56,6 @@ function createLocalSqliteBackend(options = {}) {
|
|
|
56
56
|
}
|
|
57
57
|
const backend = createSqliteBackend(db, {
|
|
58
58
|
executionProfile: {
|
|
59
|
-
isD1: false,
|
|
60
59
|
isSync: true
|
|
61
60
|
},
|
|
62
61
|
tables: tables2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/backend/sqlite/local.ts"],"names":["tables"],"mappings":";;;;;;;;;AA+CA,SAAS,uBAAuB,KAAA,EAAwB;AACtD,EAAA,IAAI,KAAA,YAAiB,KAAA,EAAO,OAAO,KAAA,CAAM,OAAA;AACzC,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AAEA,SAAS,sCACP,OAAA,EACuC;AACvC,EAAA,MAAM,MAAA,GACJ,kFAAA;AACF,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA;AACjC,EAAA,IAAI,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAO,MAAA;AAE3B,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,QAAQ,CAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,QAAQ,CAAA;AAE7C,EAAA,IAAI,CAAC,OAAO,QAAA,CAAS,QAAQ,KAAK,CAAC,MAAA,CAAO,SAAS,QAAQ,CAAA;AACzD,IAAA,OAAO,MAAA;AAET,EAAA,OAAO,EAAE,UAAU,QAAA,EAAS;AAC9B;AAEA,SAAS,eAAe,IAAA,EAAiC;AACvD,EAAA,IAAI;AACF,IAAA,OAAO,IAAI,SAAS,IAAI,CAAA;AAAA,EAC1B,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,OAAA,GAAU,uBAAuB,KAAK,CAAA;AAC5C,IAAA,MAAM,QAAA,GAAW,sCAAsC,OAAO,CAAA;AAC9D,IAAA,IAAI,CAAC,UAAU,MAAM,KAAA;AAErB,IAAA,MAAM,IAAI,kBAAA;AAAA,MACR;AAAA,QACE,6CAAA;AAAA,QACA,CAAA,wCAAA,EAA2C,QAAA,CAAS,QAAQ,CAAA,oCAAA,EAAuC,SAAS,QAAQ,CAAA,CAAA,CAAA;AAAA,QACpH,4FAAA;AAAA,QACA;AAAA,OACF,CAAE,KAAK,GAAG,CAAA;AAAA,MACV;AAAA,QACE,aAAa,OAAA,CAAQ,OAAA;AAAA,QACrB,iBAAA,EAAmB,QAAQ,QAAA,CAAS,OAAA;AAAA,QACpC,2BAA2B,QAAA,CAAS,QAAA;AAAA,QACpC,2BAA2B,QAAA,CAAS;AAAA,OACtC;AAAA,MACA,EAAE,OAAO,KAAA;AAAM,KACjB;AAAA,EACF;AACF;AAmEO,SAAS,wBAAA,CACd,OAAA,GAAqC,EAAC,EACZ;AAC1B,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAA,IAAQ,UAAA;AAC7B,EAAA,MAAMA,OAAAA,GAAS,QAAQ,MAAA,IAAU,MAAA;AAEjC,EAAA,MAAM,MAAA,GAAS,eAAe,IAAI,CAAA;AAClC,EAAA,MAAM,EAAA,GAAK,QAAQ,MAAM,CAAA;AAGzB,EAAA,MAAM,aAAA,GAAgB,kBAAkBA,OAAM,CAAA;AAC9C,EAAA,KAAA,MAAW,aAAa,aAAA,EAAe;AACrC,IAAA,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,EACvB;AAEA,EAAA,MAAM,OAAA,GAAU,oBAAoB,EAAA,EAAI;AAAA,IACtC,gBAAA,EAAkB;AAAA,MAChB,
|
|
1
|
+
{"version":3,"sources":["../../../src/backend/sqlite/local.ts"],"names":["tables"],"mappings":";;;;;;;;;AA+CA,SAAS,uBAAuB,KAAA,EAAwB;AACtD,EAAA,IAAI,KAAA,YAAiB,KAAA,EAAO,OAAO,KAAA,CAAM,OAAA;AACzC,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AAEA,SAAS,sCACP,OAAA,EACuC;AACvC,EAAA,MAAM,MAAA,GACJ,kFAAA;AACF,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA;AACjC,EAAA,IAAI,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAO,MAAA;AAE3B,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,QAAQ,CAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,QAAQ,CAAA;AAE7C,EAAA,IAAI,CAAC,OAAO,QAAA,CAAS,QAAQ,KAAK,CAAC,MAAA,CAAO,SAAS,QAAQ,CAAA;AACzD,IAAA,OAAO,MAAA;AAET,EAAA,OAAO,EAAE,UAAU,QAAA,EAAS;AAC9B;AAEA,SAAS,eAAe,IAAA,EAAiC;AACvD,EAAA,IAAI;AACF,IAAA,OAAO,IAAI,SAAS,IAAI,CAAA;AAAA,EAC1B,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,OAAA,GAAU,uBAAuB,KAAK,CAAA;AAC5C,IAAA,MAAM,QAAA,GAAW,sCAAsC,OAAO,CAAA;AAC9D,IAAA,IAAI,CAAC,UAAU,MAAM,KAAA;AAErB,IAAA,MAAM,IAAI,kBAAA;AAAA,MACR;AAAA,QACE,6CAAA;AAAA,QACA,CAAA,wCAAA,EAA2C,QAAA,CAAS,QAAQ,CAAA,oCAAA,EAAuC,SAAS,QAAQ,CAAA,CAAA,CAAA;AAAA,QACpH,4FAAA;AAAA,QACA;AAAA,OACF,CAAE,KAAK,GAAG,CAAA;AAAA,MACV;AAAA,QACE,aAAa,OAAA,CAAQ,OAAA;AAAA,QACrB,iBAAA,EAAmB,QAAQ,QAAA,CAAS,OAAA;AAAA,QACpC,2BAA2B,QAAA,CAAS,QAAA;AAAA,QACpC,2BAA2B,QAAA,CAAS;AAAA,OACtC;AAAA,MACA,EAAE,OAAO,KAAA;AAAM,KACjB;AAAA,EACF;AACF;AAmEO,SAAS,wBAAA,CACd,OAAA,GAAqC,EAAC,EACZ;AAC1B,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAA,IAAQ,UAAA;AAC7B,EAAA,MAAMA,OAAAA,GAAS,QAAQ,MAAA,IAAU,MAAA;AAEjC,EAAA,MAAM,MAAA,GAAS,eAAe,IAAI,CAAA;AAClC,EAAA,MAAM,EAAA,GAAK,QAAQ,MAAM,CAAA;AAGzB,EAAA,MAAM,aAAA,GAAgB,kBAAkBA,OAAM,CAAA;AAC9C,EAAA,KAAA,MAAW,aAAa,aAAA,EAAe;AACrC,IAAA,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,EACvB;AAEA,EAAA,MAAM,OAAA,GAAU,oBAAoB,EAAA,EAAI;AAAA,IACtC,gBAAA,EAAkB;AAAA,MAChB,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,MAAA,EAAAA;AAAA,GACD,CAAA;AACD,EAAA,IAAI,QAAA,GAAW,KAAA;AAEf,EAAA,SAAS,KAAA,GAAuB;AAC9B,IAAA,IAAI,QAAA,EAAU,OAAO,OAAA,CAAQ,OAAA,EAAQ;AACrC,IAAA,QAAA,GAAW,IAAA;AACX,IAAA,MAAA,CAAO,KAAA,EAAM;AACb,IAAA,OAAO,QAAQ,OAAA,EAAQ;AAAA,EACzB;AAEA,EAAA,MAAM,cAAA,GAA+B,EAAE,GAAG,OAAA,EAAS,KAAA,EAAM;AAEzD,EAAA,OAAO,EAAE,OAAA,EAAS,cAAA,EAAgB,EAAA,EAAG;AACvC","file":"local.js","sourcesContent":["/**\n * Local SQLite backend using better-sqlite3.\n *\n * This module depends on the `better-sqlite3` native addon and should only\n * be imported in Node.js environments. For bundler-friendly SQLite DDL\n * generation and Drizzle backend creation, import from `@nicia-ai/typegraph/sqlite`.\n *\n * @example In-memory database (default)\n * ```typescript\n * import { createLocalSqliteBackend } from \"@nicia-ai/typegraph/sqlite/local\";\n *\n * const { backend, db } = createLocalSqliteBackend();\n * const store = createStore(graph, backend);\n * ```\n *\n * @example File-based database for persistent local development\n * ```typescript\n * import { createLocalSqliteBackend } from \"@nicia-ai/typegraph/sqlite/local\";\n *\n * const { backend, db } = createLocalSqliteBackend({ path: \"./dev.db\" });\n * const store = createStore(graph, backend);\n * ```\n */\nimport Database from \"better-sqlite3\";\nimport {\n type BetterSQLite3Database,\n drizzle,\n} from \"drizzle-orm/better-sqlite3\";\n\nimport { ConfigurationError } from \"../../errors\";\nimport { generateSqliteDDL } from \"../drizzle/ddl\";\nimport {\n createSqliteBackend,\n type SqliteTables,\n tables as defaultTables,\n} from \"../drizzle/sqlite\";\nimport type { GraphBackend } from \"../types\";\n\n// ============================================================\n// Native Addon Helpers\n// ============================================================\n\ntype NodeModuleVersionMismatch = Readonly<{\n compiled: number;\n required: number;\n}>;\n\nfunction getUnknownErrorMessage(error: unknown): string {\n if (error instanceof Error) return error.message;\n return String(error);\n}\n\nfunction parseNodeModuleVersionMismatchMessage(\n message: string,\n): NodeModuleVersionMismatch | undefined {\n const regexp =\n /NODE_MODULE_VERSION (?<compiled>\\d+)[\\s\\S]*?NODE_MODULE_VERSION (?<required>\\d+)/;\n const match = regexp.exec(message);\n if (!match?.groups) return undefined;\n\n const compiled = Number(match.groups.compiled);\n const required = Number(match.groups.required);\n\n if (!Number.isFinite(compiled) || !Number.isFinite(required))\n return undefined;\n\n return { compiled, required };\n}\n\nfunction createDatabase(path: string): Database.Database {\n try {\n return new Database(path);\n } catch (error) {\n const message = getUnknownErrorMessage(error);\n const mismatch = parseNodeModuleVersionMismatchMessage(message);\n if (!mismatch) throw error;\n\n throw new ConfigurationError(\n [\n \"Failed to load better-sqlite3 native addon.\",\n `It was compiled for NODE_MODULE_VERSION ${mismatch.compiled}, but this Node.js runtime requires ${mismatch.required}.`,\n \"This usually happens after switching Node versions without rebuilding native dependencies.\",\n \"Rebuild with: pnpm rebuild better-sqlite3 (or npm rebuild better-sqlite3).\",\n ].join(\" \"),\n {\n nodeVersion: process.version,\n nodeModuleVersion: process.versions.modules,\n compiledNodeModuleVersion: mismatch.compiled,\n requiredNodeModuleVersion: mismatch.required,\n },\n { cause: error },\n );\n }\n}\n\n// ============================================================\n// Types\n// ============================================================\n\n/**\n * Options for creating a local SQLite backend.\n */\nexport type LocalSqliteBackendOptions = Readonly<{\n /**\n * Path to the SQLite database file.\n * Defaults to \":memory:\" for an in-memory database.\n */\n path?: string;\n\n /**\n * Custom table definitions.\n * Defaults to standard TypeGraph table names.\n */\n tables?: SqliteTables;\n}>;\n\n/**\n * Result of creating a local SQLite backend.\n */\nexport type LocalSqliteBackendResult = Readonly<{\n /**\n * The GraphBackend instance for use with createStore.\n */\n backend: GraphBackend;\n\n /**\n * The underlying Drizzle database instance.\n * Useful for direct SQL access or cleanup.\n */\n db: BetterSQLite3Database;\n}>;\n\n// ============================================================\n// Factory Function\n// ============================================================\n\n/**\n * Creates a SQLite backend with minimal configuration.\n *\n * This is a convenience function for local development and testing.\n * It handles database creation, schema migration, and backend setup.\n *\n * For production deployments or custom configurations, use createSqliteBackend\n * directly with your own Drizzle database instance.\n *\n * @param options - Configuration options\n * @returns Backend and database instances\n *\n * @example In-memory database (default)\n * ```typescript\n * const { backend } = createLocalSqliteBackend();\n * const store = createStore(graph, backend);\n * ```\n *\n * @example File-based database\n * ```typescript\n * const { backend, db } = createLocalSqliteBackend({ path: \"./data.db\" });\n * const store = createStore(graph, backend);\n * ```\n */\nexport function createLocalSqliteBackend(\n options: LocalSqliteBackendOptions = {},\n): LocalSqliteBackendResult {\n const path = options.path ?? \":memory:\";\n const tables = options.tables ?? defaultTables;\n\n const sqlite = createDatabase(path);\n const db = drizzle(sqlite);\n\n // Generate and execute DDL from schema\n const ddlStatements = generateSqliteDDL(tables);\n for (const statement of ddlStatements) {\n sqlite.exec(statement);\n }\n\n const backend = createSqliteBackend(db, {\n executionProfile: {\n isSync: true,\n },\n tables,\n });\n let isClosed = false;\n\n function close(): Promise<void> {\n if (isClosed) return Promise.resolve();\n isClosed = true;\n sqlite.close();\n return Promise.resolve();\n }\n\n const managedBackend: GraphBackend = { ...backend, close };\n\n return { backend: managedBackend, db };\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkNI2GV74U_cjs = require('./chunk-NI2GV74U.cjs');
|
|
4
4
|
var chunk44SXEVF4_cjs = require('./chunk-44SXEVF4.cjs');
|
|
5
5
|
var zod = require('zod');
|
|
6
6
|
|
|
@@ -889,7 +889,7 @@ function serializeSchema(graph, version) {
|
|
|
889
889
|
return {
|
|
890
890
|
graphId: graph.id,
|
|
891
891
|
version,
|
|
892
|
-
generatedAt:
|
|
892
|
+
generatedAt: chunkNI2GV74U_cjs.nowIso(),
|
|
893
893
|
nodes,
|
|
894
894
|
edges,
|
|
895
895
|
ontology,
|
|
@@ -901,7 +901,7 @@ function serializeSchema(graph, version) {
|
|
|
901
901
|
}
|
|
902
902
|
function serializeNodes(graph) {
|
|
903
903
|
const result = {};
|
|
904
|
-
for (const kindName of
|
|
904
|
+
for (const kindName of chunkNI2GV74U_cjs.getNodeKinds(graph)) {
|
|
905
905
|
const registration = graph.nodes[kindName];
|
|
906
906
|
if (registration === void 0) continue;
|
|
907
907
|
result[kindName] = serializeNodeDef(registration);
|
|
@@ -964,7 +964,7 @@ function deserializeWherePredicate(serialized) {
|
|
|
964
964
|
}
|
|
965
965
|
function serializeEdges(graph) {
|
|
966
966
|
const result = {};
|
|
967
|
-
for (const kindName of
|
|
967
|
+
for (const kindName of chunkNI2GV74U_cjs.getEdgeKinds(graph)) {
|
|
968
968
|
const registration = graph.edges[kindName];
|
|
969
969
|
if (registration === void 0) continue;
|
|
970
970
|
result[kindName] = serializeEdgeDef(registration);
|
|
@@ -1260,5 +1260,5 @@ exports.validateEdgeProps = validateEdgeProps;
|
|
|
1260
1260
|
exports.validateNodeProps = validateNodeProps;
|
|
1261
1261
|
exports.validateProps = validateProps;
|
|
1262
1262
|
exports.wrapZodError = wrapZodError;
|
|
1263
|
-
//# sourceMappingURL=chunk-
|
|
1264
|
-
//# sourceMappingURL=chunk-
|
|
1263
|
+
//# sourceMappingURL=chunk-7VITUTRA.cjs.map
|
|
1264
|
+
//# sourceMappingURL=chunk-7VITUTRA.cjs.map
|