@zauso-ai/capstan-db 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 (67) hide show
  1. package/dist/client.d.ts +3 -6
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +206 -27
  4. package/dist/client.js.map +1 -1
  5. package/dist/crud.d.ts +14 -0
  6. package/dist/crud.d.ts.map +1 -1
  7. package/dist/crud.js +49 -39
  8. package/dist/crud.js.map +1 -1
  9. package/dist/dialect.d.ts +25 -0
  10. package/dist/dialect.d.ts.map +1 -0
  11. package/dist/dialect.js +208 -0
  12. package/dist/dialect.js.map +1 -0
  13. package/dist/embedding.d.ts +63 -0
  14. package/dist/embedding.d.ts.map +1 -0
  15. package/dist/embedding.js +61 -0
  16. package/dist/embedding.js.map +1 -0
  17. package/dist/index.d.ts +12 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +6 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/migrate.d.ts +44 -23
  22. package/dist/migrate.d.ts.map +1 -1
  23. package/dist/migrate.js +308 -125
  24. package/dist/migrate.js.map +1 -1
  25. package/dist/model.d.ts +9 -0
  26. package/dist/model.d.ts.map +1 -1
  27. package/dist/model.js +13 -0
  28. package/dist/model.js.map +1 -1
  29. package/dist/naming.d.ts +37 -0
  30. package/dist/naming.d.ts.map +1 -0
  31. package/dist/naming.js +196 -0
  32. package/dist/naming.js.map +1 -0
  33. package/dist/runtime.d.ts +51 -0
  34. package/dist/runtime.d.ts.map +1 -0
  35. package/dist/runtime.js +490 -0
  36. package/dist/runtime.js.map +1 -0
  37. package/dist/schema.d.ts +2 -27
  38. package/dist/schema.d.ts.map +1 -1
  39. package/dist/schema.js +181 -197
  40. package/dist/schema.js.map +1 -1
  41. package/dist/search.d.ts +52 -0
  42. package/dist/search.d.ts.map +1 -0
  43. package/dist/search.js +110 -0
  44. package/dist/search.js.map +1 -0
  45. package/dist/types.d.ts +4 -2
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/vector-store-memory.d.ts +31 -0
  48. package/dist/vector-store-memory.d.ts.map +1 -0
  49. package/dist/vector-store-memory.js +125 -0
  50. package/dist/vector-store-memory.js.map +1 -0
  51. package/dist/vector-store-pgvector.d.ts +46 -0
  52. package/dist/vector-store-pgvector.d.ts.map +1 -0
  53. package/dist/vector-store-pgvector.js +215 -0
  54. package/dist/vector-store-pgvector.js.map +1 -0
  55. package/dist/vector-store-sqlite.d.ts +51 -0
  56. package/dist/vector-store-sqlite.d.ts.map +1 -0
  57. package/dist/vector-store-sqlite.js +203 -0
  58. package/dist/vector-store-sqlite.js.map +1 -0
  59. package/dist/vector-store.d.ts +79 -0
  60. package/dist/vector-store.d.ts.map +1 -0
  61. package/dist/vector-store.js +5 -0
  62. package/dist/vector-store.js.map +1 -0
  63. package/dist/write.d.ts +15 -0
  64. package/dist/write.d.ts.map +1 -0
  65. package/dist/write.js +156 -0
  66. package/dist/write.js.map +1 -0
  67. package/package.json +9 -4
@@ -0,0 +1,490 @@
1
+ import { findModelByReference, findPrimaryKeyField, inferRelationForeignKey, resolveManyToManyRelation, resolveReferenceField, resolveTargetRelationForeignKey, tableNameForModel, toSnakeCase, } from "./naming.js";
2
+ import { prepareCreateData, prepareUpdateData } from "./write.js";
3
+ function quoteIdentifier(provider, identifier) {
4
+ if (provider === "mysql") {
5
+ return `\`${identifier.replace(/`/g, "``")}\``;
6
+ }
7
+ return `"${identifier.replace(/"/g, '""')}"`;
8
+ }
9
+ function placeholder(provider, index) {
10
+ return provider === "postgres" ? `$${index}` : "?";
11
+ }
12
+ function valuePlaceholderList(provider, start, count) {
13
+ return Array.from({ length: count }, (_, offset) => placeholder(provider, start + offset)).join(", ");
14
+ }
15
+ function encodeFieldValue(field, value, provider) {
16
+ if (value === undefined)
17
+ return value;
18
+ if (value === null)
19
+ return null;
20
+ switch (field.type) {
21
+ case "boolean":
22
+ if (provider === "sqlite" || provider === "libsql") {
23
+ return value ? 1 : 0;
24
+ }
25
+ return value;
26
+ case "json":
27
+ return JSON.stringify(value);
28
+ case "vector":
29
+ if (provider === "postgres") {
30
+ return Array.isArray(value) ? `[${value.join(",")}]` : value;
31
+ }
32
+ return JSON.stringify(value);
33
+ default:
34
+ return value;
35
+ }
36
+ }
37
+ function decodeFieldValue(field, value, provider) {
38
+ if (value === undefined || value === null)
39
+ return value;
40
+ switch (field.type) {
41
+ case "boolean":
42
+ if (provider === "sqlite" || provider === "libsql" || typeof value === "number") {
43
+ return Boolean(value);
44
+ }
45
+ return value;
46
+ case "json":
47
+ if (typeof value === "string") {
48
+ return JSON.parse(value);
49
+ }
50
+ return value;
51
+ case "vector":
52
+ if (Array.isArray(value))
53
+ return value;
54
+ if (typeof value === "string") {
55
+ return JSON.parse(value);
56
+ }
57
+ return value;
58
+ default:
59
+ return value;
60
+ }
61
+ }
62
+ function selectListForModel(model, provider, tableAlias) {
63
+ const prefix = tableAlias ? `${quoteIdentifier(provider, tableAlias)}.` : "";
64
+ return Object.keys(model.fields)
65
+ .map((fieldName) => `${prefix}${quoteIdentifier(provider, toSnakeCase(fieldName))} AS ${quoteIdentifier(provider, fieldName)}`)
66
+ .join(", ");
67
+ }
68
+ function mapRowToModel(model, row, provider) {
69
+ const mapped = {};
70
+ for (const [fieldName, field] of Object.entries(model.fields)) {
71
+ const raw = row[fieldName] ?? row[toSnakeCase(fieldName)];
72
+ mapped[fieldName] = decodeFieldValue(field, raw, provider);
73
+ }
74
+ return mapped;
75
+ }
76
+ function assertField(model, fieldName) {
77
+ const field = model.fields[fieldName];
78
+ if (!field) {
79
+ throw new Error(`Unknown field "${fieldName}" for model "${model.name}".`);
80
+ }
81
+ return field;
82
+ }
83
+ function normalizeWhere(model, where, provider, startIndex = 1, tableAlias) {
84
+ if (!where || Object.keys(where).length === 0) {
85
+ return { clause: "", params: [], nextIndex: startIndex };
86
+ }
87
+ const params = [];
88
+ const parts = [];
89
+ let index = startIndex;
90
+ const prefix = tableAlias ? `${quoteIdentifier(provider, tableAlias)}.` : "";
91
+ for (const [fieldName, rawValue] of Object.entries(where)) {
92
+ if (rawValue === undefined)
93
+ continue;
94
+ const field = assertField(model, fieldName);
95
+ const column = `${prefix}${quoteIdentifier(provider, toSnakeCase(fieldName))}`;
96
+ if (Array.isArray(rawValue)) {
97
+ if (rawValue.length === 0) {
98
+ parts.push("1 = 0");
99
+ continue;
100
+ }
101
+ parts.push(`${column} IN (${valuePlaceholderList(provider, index, rawValue.length)})`);
102
+ for (const value of rawValue) {
103
+ params.push(encodeFieldValue(field, value, provider));
104
+ }
105
+ index += rawValue.length;
106
+ continue;
107
+ }
108
+ parts.push(`${column} = ${placeholder(provider, index)}`);
109
+ params.push(encodeFieldValue(field, rawValue, provider));
110
+ index += 1;
111
+ }
112
+ if (parts.length === 0) {
113
+ return { clause: "", params, nextIndex: index };
114
+ }
115
+ return {
116
+ clause: ` WHERE ${parts.join(" AND ")}`,
117
+ params,
118
+ nextIndex: index,
119
+ };
120
+ }
121
+ function normalizeOrderBy(model, provider, orderBy, tableAlias) {
122
+ if (!orderBy)
123
+ return "";
124
+ const items = Array.isArray(orderBy) ? orderBy : [orderBy];
125
+ if (items.length === 0)
126
+ return "";
127
+ const prefix = tableAlias ? `${quoteIdentifier(provider, tableAlias)}.` : "";
128
+ const clauses = items.map((entry) => {
129
+ assertField(model, entry.field);
130
+ const direction = entry.direction?.toUpperCase() === "DESC" ? "DESC" : "ASC";
131
+ return `${prefix}${quoteIdentifier(provider, toSnakeCase(entry.field))} ${direction}`;
132
+ });
133
+ return clauses.length > 0 ? ` ORDER BY ${clauses.join(", ")}` : "";
134
+ }
135
+ function normalizePagination(limit, offset) {
136
+ const parts = [];
137
+ if (limit !== undefined) {
138
+ parts.push(` LIMIT ${Math.max(0, Math.trunc(limit))}`);
139
+ }
140
+ if (offset !== undefined) {
141
+ if (limit === undefined) {
142
+ parts.push(" LIMIT -1");
143
+ }
144
+ parts.push(` OFFSET ${Math.max(0, Math.trunc(offset))}`);
145
+ }
146
+ return parts.join("");
147
+ }
148
+ function relationModel(relation, modelMap) {
149
+ const model = findModelByReference(relation.model, modelMap);
150
+ if (!model) {
151
+ throw new Error(`Unknown related model "${relation.model}".`);
152
+ }
153
+ return model;
154
+ }
155
+ function buildRelationMetadata(sourceModel, relationName, relation, modelMap) {
156
+ const targetModel = relationModel(relation, modelMap);
157
+ switch (relation.kind) {
158
+ case "belongsTo":
159
+ {
160
+ const foreignKey = inferRelationForeignKey(relation);
161
+ const reference = sourceModel.fields[foreignKey]?.references;
162
+ const targetField = reference
163
+ ? resolveReferenceField(reference, modelMap).fieldName
164
+ : (findPrimaryKeyField(targetModel) ?? "id");
165
+ return {
166
+ targetModel,
167
+ sourceField: foreignKey,
168
+ targetField,
169
+ };
170
+ }
171
+ case "hasMany":
172
+ case "hasOne":
173
+ return {
174
+ targetModel,
175
+ sourceField: findPrimaryKeyField(sourceModel) ?? "id",
176
+ targetField: resolveTargetRelationForeignKey(sourceModel, relation, modelMap),
177
+ };
178
+ case "manyToMany": {
179
+ const through = resolveManyToManyRelation(sourceModel, relation, modelMap);
180
+ if (!through) {
181
+ throw new Error(`Relation "${sourceModel.name}.${relationName}" must resolve an explicit through model with source and target foreign keys.`);
182
+ }
183
+ return {
184
+ targetModel,
185
+ sourceField: through.sourcePrimaryKey,
186
+ targetField: through.targetPrimaryKey,
187
+ through,
188
+ };
189
+ }
190
+ }
191
+ }
192
+ function buildRuntime(db, provider, close, adapter, initialModels) {
193
+ const modelMap = new Map();
194
+ const repositoryMap = new Map();
195
+ const runtime = {};
196
+ function repositoryFor(input) {
197
+ const model = typeof input === "string"
198
+ ? (modelMap.get(input) ?? findModelByReference(input, modelMap))
199
+ : input;
200
+ if (!model) {
201
+ throw new Error(`Model "${String(input)}" is not registered in this database runtime.`);
202
+ }
203
+ if (!repositoryMap.has(model.name)) {
204
+ repositoryMap.set(model.name, createModelRepository(model));
205
+ }
206
+ return repositoryMap.get(model.name);
207
+ }
208
+ function register(models) {
209
+ for (const model of models) {
210
+ modelMap.set(model.name, model);
211
+ }
212
+ return runtime;
213
+ }
214
+ async function loadRelationRows(sourceModel, rows, relationName, relation) {
215
+ if (rows.length === 0)
216
+ return;
217
+ const meta = buildRelationMetadata(sourceModel, relationName, relation, modelMap);
218
+ if (relation.kind === "manyToMany") {
219
+ const through = meta.through;
220
+ const sourceIds = [...new Set(rows.map((row) => row[through.sourcePrimaryKey]).filter((value) => value !== undefined))];
221
+ if (sourceIds.length === 0) {
222
+ for (const row of rows) {
223
+ row[relationName] = [];
224
+ }
225
+ return;
226
+ }
227
+ const throughTable = tableNameForModel(through.throughModel);
228
+ const throughSourceColumn = toSnakeCase(through.sourceForeignKey);
229
+ const throughTargetColumn = toSnakeCase(through.targetForeignKey);
230
+ const joinRows = await adapter.query(`SELECT ${quoteIdentifier(provider, throughSourceColumn)} AS ${quoteIdentifier(provider, "__source")},
231
+ ${quoteIdentifier(provider, throughTargetColumn)} AS ${quoteIdentifier(provider, "__target")}
232
+ FROM ${quoteIdentifier(provider, throughTable)}
233
+ WHERE ${quoteIdentifier(provider, throughSourceColumn)} IN (${valuePlaceholderList(provider, 1, sourceIds.length)})`, sourceIds.map((value) => encodeFieldValue(through.throughModel.fields[through.sourceForeignKey], value, provider)));
234
+ const targetIds = [...new Set(joinRows.map((row) => row.__target).filter((value) => value !== undefined))];
235
+ const targetRows = targetIds.length > 0
236
+ ? await repositoryFor(meta.targetModel).findMany({
237
+ where: { [through.targetPrimaryKey]: targetIds },
238
+ })
239
+ : [];
240
+ const targetMap = new Map(targetRows.map((row) => [row[through.targetPrimaryKey], row]));
241
+ const grouped = new Map();
242
+ for (const joinRow of joinRows) {
243
+ const sourceId = joinRow.__source;
244
+ const target = targetMap.get(joinRow.__target);
245
+ if (!grouped.has(sourceId)) {
246
+ grouped.set(sourceId, []);
247
+ }
248
+ if (target) {
249
+ grouped.get(sourceId).push(target);
250
+ }
251
+ }
252
+ for (const row of rows) {
253
+ row[relationName] = grouped.get(row[through.sourcePrimaryKey]) ?? [];
254
+ }
255
+ return;
256
+ }
257
+ if (relation.kind === "belongsTo") {
258
+ const foreignKeys = [...new Set(rows.map((row) => row[meta.sourceField]).filter((value) => value !== undefined && value !== null))];
259
+ if (foreignKeys.length === 0) {
260
+ for (const row of rows) {
261
+ row[relationName] = null;
262
+ }
263
+ return;
264
+ }
265
+ const targetRows = await repositoryFor(meta.targetModel).findMany({
266
+ where: { [meta.targetField]: foreignKeys },
267
+ });
268
+ const targetMap = new Map(targetRows.map((row) => [row[meta.targetField], row]));
269
+ for (const row of rows) {
270
+ row[relationName] = targetMap.get(row[meta.sourceField]) ?? null;
271
+ }
272
+ return;
273
+ }
274
+ const sourceIds = [...new Set(rows.map((row) => row[meta.sourceField]).filter((value) => value !== undefined && value !== null))];
275
+ if (sourceIds.length === 0) {
276
+ for (const row of rows) {
277
+ row[relationName] = relation.kind === "hasOne" ? null : [];
278
+ }
279
+ return;
280
+ }
281
+ const targetRows = await repositoryFor(meta.targetModel).findMany({
282
+ where: { [meta.targetField]: sourceIds },
283
+ });
284
+ const grouped = new Map();
285
+ for (const targetRow of targetRows) {
286
+ const key = targetRow[meta.targetField];
287
+ if (!grouped.has(key)) {
288
+ grouped.set(key, []);
289
+ }
290
+ grouped.get(key).push(targetRow);
291
+ }
292
+ for (const row of rows) {
293
+ const related = grouped.get(row[meta.sourceField]) ?? [];
294
+ row[relationName] = relation.kind === "hasOne" ? (related[0] ?? null) : related;
295
+ }
296
+ }
297
+ async function attachRelations(model, rows, includes) {
298
+ if (!includes || includes.length === 0 || rows.length === 0) {
299
+ return rows;
300
+ }
301
+ for (const relationName of includes) {
302
+ const relation = model.relations[relationName];
303
+ if (!relation) {
304
+ throw new Error(`Unknown relation "${model.name}.${relationName}".`);
305
+ }
306
+ await loadRelationRows(model, rows, relationName, relation);
307
+ }
308
+ return rows;
309
+ }
310
+ async function loadRelationValue(sourceModel, row, relationName, relation, options) {
311
+ const meta = buildRelationMetadata(sourceModel, relationName, relation, modelMap);
312
+ if (relation.kind === "manyToMany") {
313
+ const through = meta.through;
314
+ const sourceId = row[through.sourcePrimaryKey];
315
+ if (sourceId === undefined || sourceId === null) {
316
+ return [];
317
+ }
318
+ const throughTable = tableNameForModel(through.throughModel);
319
+ const throughTargetColumn = toSnakeCase(through.targetForeignKey);
320
+ const joinRows = await adapter.query(`SELECT ${quoteIdentifier(provider, throughTargetColumn)} AS ${quoteIdentifier(provider, "__target")}
321
+ FROM ${quoteIdentifier(provider, throughTable)}
322
+ WHERE ${quoteIdentifier(provider, toSnakeCase(through.sourceForeignKey))} = ${placeholder(provider, 1)}`, [
323
+ encodeFieldValue(through.throughModel.fields[through.sourceForeignKey], sourceId, provider),
324
+ ]);
325
+ const targetIds = [...new Set(joinRows.map((joinRow) => joinRow.__target).filter((value) => value !== undefined && value !== null))];
326
+ if (targetIds.length === 0) {
327
+ return [];
328
+ }
329
+ return repositoryFor(meta.targetModel).findMany({
330
+ where: { [through.targetPrimaryKey]: targetIds },
331
+ ...(options?.orderBy ? { orderBy: options.orderBy } : {}),
332
+ ...(options?.limit !== undefined ? { limit: options.limit } : {}),
333
+ ...(options?.offset !== undefined ? { offset: options.offset } : {}),
334
+ });
335
+ }
336
+ if (relation.kind === "belongsTo") {
337
+ const foreignKeyValue = row[meta.sourceField];
338
+ if (foreignKeyValue === undefined || foreignKeyValue === null) {
339
+ return null;
340
+ }
341
+ const related = await repositoryFor(meta.targetModel).findMany({
342
+ where: { [meta.targetField]: foreignKeyValue },
343
+ ...(options?.orderBy ? { orderBy: options.orderBy } : {}),
344
+ limit: 1,
345
+ });
346
+ return related[0] ?? null;
347
+ }
348
+ const sourceKeyValue = row[meta.sourceField];
349
+ if (sourceKeyValue === undefined || sourceKeyValue === null) {
350
+ return relation.kind === "hasOne" ? null : [];
351
+ }
352
+ const related = await repositoryFor(meta.targetModel).findMany({
353
+ where: { [meta.targetField]: sourceKeyValue },
354
+ ...(options?.orderBy ? { orderBy: options.orderBy } : {}),
355
+ ...((options?.limit !== undefined || relation.kind === "hasOne")
356
+ ? { limit: options?.limit ?? 1 }
357
+ : {}),
358
+ ...(options?.offset !== undefined ? { offset: options.offset } : {}),
359
+ });
360
+ return relation.kind === "hasOne" ? (related[0] ?? null) : related;
361
+ }
362
+ function createModelRepository(model) {
363
+ const tableName = tableNameForModel(model);
364
+ const primaryKeyField = findPrimaryKeyField(model);
365
+ async function findMany(options) {
366
+ const where = normalizeWhere(model, options?.where, provider);
367
+ const orderBy = normalizeOrderBy(model, provider, options?.orderBy);
368
+ const pagination = normalizePagination(options?.limit, options?.offset);
369
+ const sql = `SELECT ${selectListForModel(model, provider)} FROM ${quoteIdentifier(provider, tableName)}` +
370
+ `${where.clause}${orderBy}${pagination}`;
371
+ const rows = await adapter.query(sql, where.params);
372
+ const mapped = rows.map((row) => mapRowToModel(model, row, provider));
373
+ return attachRelations(model, mapped, options?.with);
374
+ }
375
+ async function findById(id, options) {
376
+ if (!primaryKeyField) {
377
+ throw new Error(`Model "${model.name}" does not expose a stable primary key field.`);
378
+ }
379
+ const query = {
380
+ where: { [primaryKeyField]: id },
381
+ limit: 1,
382
+ };
383
+ if (options?.with) {
384
+ query.with = options.with;
385
+ }
386
+ const rows = await findMany(query);
387
+ return rows[0] ?? null;
388
+ }
389
+ async function count(where) {
390
+ const normalized = normalizeWhere(model, where, provider);
391
+ const rows = await adapter.query(`SELECT COUNT(*) AS ${quoteIdentifier(provider, "count")} FROM ${quoteIdentifier(provider, tableName)}${normalized.clause}`, normalized.params);
392
+ return Number(rows[0]?.count ?? 0);
393
+ }
394
+ async function create(input, options) {
395
+ if (!primaryKeyField) {
396
+ throw new Error(`Model "${model.name}" does not expose a stable primary key field.`);
397
+ }
398
+ const values = await prepareCreateData(model, input, options);
399
+ const entries = Object.entries(values).filter(([, value]) => value !== undefined);
400
+ const columns = entries.map(([fieldName]) => quoteIdentifier(provider, toSnakeCase(fieldName)));
401
+ const params = entries.map(([fieldName, value]) => encodeFieldValue(model.fields[fieldName], value, provider));
402
+ await adapter.execute(`INSERT INTO ${quoteIdentifier(provider, tableName)} (${columns.join(", ")}) VALUES (${valuePlaceholderList(provider, 1, params.length)})`, params);
403
+ return (await findById(values[primaryKeyField]));
404
+ }
405
+ async function update(id, input, options) {
406
+ if (!primaryKeyField) {
407
+ throw new Error(`Model "${model.name}" does not expose a stable primary key field.`);
408
+ }
409
+ const values = await prepareUpdateData(model, input, options);
410
+ const entries = Object.entries(values).filter(([, value]) => value !== undefined);
411
+ if (entries.length === 0) {
412
+ return findById(id);
413
+ }
414
+ const setClause = entries.map(([fieldName], index) => `${quoteIdentifier(provider, toSnakeCase(fieldName))} = ${placeholder(provider, index + 1)}`).join(", ");
415
+ const params = entries.map(([fieldName, value]) => encodeFieldValue(model.fields[fieldName], value, provider));
416
+ params.push(encodeFieldValue(model.fields[primaryKeyField] ?? { type: "string" }, id, provider));
417
+ await adapter.execute(`UPDATE ${quoteIdentifier(provider, tableName)} SET ${setClause} WHERE ${quoteIdentifier(provider, toSnakeCase(primaryKeyField))} = ${placeholder(provider, params.length)}`, params);
418
+ return findById(id);
419
+ }
420
+ async function remove(id) {
421
+ if (!primaryKeyField) {
422
+ throw new Error(`Model "${model.name}" does not expose a stable primary key field.`);
423
+ }
424
+ const result = await adapter.execute(`DELETE FROM ${quoteIdentifier(provider, tableName)} WHERE ${quoteIdentifier(provider, toSnakeCase(primaryKeyField))} = ${placeholder(provider, 1)}`, [encodeFieldValue(model.fields[primaryKeyField] ?? { type: "string" }, id, provider)]);
425
+ return result.affectedRows > 0;
426
+ }
427
+ async function relate(id, relationName, options) {
428
+ if (!primaryKeyField) {
429
+ throw new Error(`Model "${model.name}" does not expose a stable primary key field.`);
430
+ }
431
+ const row = await findById(id);
432
+ if (!row)
433
+ return null;
434
+ const relation = model.relations[relationName];
435
+ if (!relation) {
436
+ throw new Error(`Unknown relation "${model.name}.${relationName}".`);
437
+ }
438
+ return loadRelationValue(model, row, relationName, relation, options);
439
+ }
440
+ return {
441
+ model,
442
+ tableName,
443
+ primaryKeyField,
444
+ count,
445
+ findMany,
446
+ findById,
447
+ create,
448
+ update,
449
+ delete: remove,
450
+ relate,
451
+ };
452
+ }
453
+ runtime.db = db;
454
+ runtime.provider = provider;
455
+ runtime.close = close;
456
+ runtime.query = (sql, params) => adapter.query(sql, params);
457
+ runtime.execute = (sql, params) => adapter.execute(sql, params);
458
+ runtime.applyMigration = async (statements) => {
459
+ if (statements.length === 0)
460
+ return;
461
+ await runtime.transaction(async (tx) => {
462
+ for (const statement of statements) {
463
+ await tx.execute(statement);
464
+ }
465
+ });
466
+ };
467
+ runtime.registerModels = register;
468
+ runtime.model = repositoryFor;
469
+ runtime.transaction = async (fn) => {
470
+ return adapter.transaction(async (transactionAdapter) => {
471
+ const transactionRuntime = buildRuntime(db, provider, close, transactionAdapter, modelMap.values());
472
+ return fn(transactionRuntime);
473
+ });
474
+ };
475
+ Object.defineProperty(runtime, "models", {
476
+ enumerable: true,
477
+ get() {
478
+ const entries = [...modelMap.values()].map((model) => [model.name, repositoryFor(model)]);
479
+ return Object.fromEntries(entries);
480
+ },
481
+ });
482
+ if (initialModels) {
483
+ register([...initialModels]);
484
+ }
485
+ return runtime;
486
+ }
487
+ export function createDatabaseRuntime(db, provider, close, adapter, initialModels) {
488
+ return buildRuntime(db, provider, close, adapter, initialModels);
489
+ }
490
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -1,28 +1,3 @@
1
- import type { ModelDefinition, DbProvider } from "./types.js";
2
- type Provider = DbProvider;
3
- /**
4
- * Generate a Drizzle ORM schema file (as a TypeScript string) from an array
5
- * of model definitions.
6
- *
7
- * The generated code targets the specified provider's drizzle package:
8
- * - `"sqlite"` -> `drizzle-orm/sqlite-core`
9
- * - `"postgres"` -> `drizzle-orm/pg-core`
10
- * - `"mysql"` -> `drizzle-orm/mysql-core`
11
- *
12
- * @param models - Array of model definitions to generate schema for.
13
- * @param provider - The database provider. Defaults to `"sqlite"` for
14
- * backwards compatibility.
15
- *
16
- * @example
17
- * const src = generateDrizzleSchema([ticketModel, userModel]);
18
- * fs.writeFileSync("schema.ts", src);
19
- *
20
- * @example
21
- * const src = generateDrizzleSchema([ticketModel], "postgres");
22
- *
23
- * @example
24
- * const src = generateDrizzleSchema([ticketModel], "mysql");
25
- */
26
- export declare function generateDrizzleSchema(models: ModelDefinition[], provider?: Provider): string;
27
- export {};
1
+ import type { DbProvider, ModelDefinition } from "./types.js";
2
+ export declare function generateDrizzleSchema(models: ModelDefinition[], provider?: DbProvider): string;
28
3
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA+B,UAAU,EAAE,MAAM,YAAY,CAAC;AA0C3F,KAAK,QAAQ,GAAG,UAAU,CAAC;AAyM3B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EAAE,EACzB,QAAQ,GAAE,QAAmB,GAC5B,MAAM,CAgDR"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAmB,eAAe,EAAsB,MAAM,YAAY,CAAC;AAuKnG,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EAAE,EACzB,QAAQ,GAAE,UAAqB,GAC9B,MAAM,CAmHR"}