@zauso-ai/capstan-db 1.0.0-beta.7 → 1.0.0-beta.8

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/schema.js CHANGED
@@ -1,240 +1,149 @@
1
- // ---------------------------------------------------------------------------
2
- // Helpers
3
- // ---------------------------------------------------------------------------
4
- /**
5
- * Convert a camelCase name to snake_case for column names.
6
- */
7
- function toSnakeCase(str) {
8
- return str.replace(/[A-Z]/g, (ch) => `_${ch.toLowerCase()}`);
9
- }
10
- /**
11
- * Pluralise a model name for the table name (very simple heuristic).
12
- * "Ticket" -> "tickets", "Category" -> "categories", "Status" -> "statuses"
13
- */
14
- function pluralise(name) {
15
- const lower = name.charAt(0).toLowerCase() + name.slice(1);
16
- if (lower.endsWith("y") && !/[aeiou]y$/i.test(lower)) {
17
- return lower.slice(0, -1) + "ies";
18
- }
19
- if (lower.endsWith("s") || lower.endsWith("x") || lower.endsWith("sh") || lower.endsWith("ch")) {
20
- return lower + "es";
21
- }
22
- return lower + "s";
23
- }
24
- /**
25
- * Escape a JavaScript string value for embedding in generated code.
26
- */
1
+ import { autoIdSchemaExpr, columnMapping, columnMappingForReference, providerMeta } from "./dialect.js";
2
+ import { findPrimaryKeyField, inferRelationForeignKey, resolveManyToManyRelation, resolveReferenceField, resolveTargetRelationForeignKey, tableNameForModel, tableVarForModel, toSnakeCase } from "./naming.js";
27
3
  function jsString(val) {
28
4
  if (typeof val === "string") {
29
5
  return `"${val.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
30
6
  }
31
7
  return String(val);
32
8
  }
33
- function sqliteColumnMapping(fieldType) {
34
- switch (fieldType) {
35
- case "string":
36
- case "text":
37
- case "date":
38
- case "datetime":
39
- return { builder: "text", import: "text" };
40
- case "integer":
41
- return { builder: "integer", import: "integer" };
42
- case "number":
43
- return { builder: "real", import: "real" };
44
- case "boolean":
45
- return { builder: "integer", import: "integer", config: '{ mode: "boolean" }' };
46
- case "json":
47
- return { builder: "text", import: "text", config: '{ mode: "json" }' };
48
- case "vector":
49
- // SQLite has no native vector type; store as JSON-serialised TEXT
50
- return { builder: "text", import: "text", config: '{ mode: "json" }' };
9
+ function runtimeTimestampExpr(field, provider) {
10
+ if (field.type === "date") {
11
+ return `new Date().toISOString().slice(0, 10)`;
51
12
  }
52
- }
53
- function pgColumnMapping(fieldType, dimensions) {
54
- switch (fieldType) {
55
- case "string":
56
- return { builder: "varchar", import: "varchar", config: "{ length: 255 }" };
57
- case "text":
58
- return { builder: "text", import: "text" };
59
- case "date":
60
- return { builder: "date", import: "date" };
61
- case "datetime":
62
- return { builder: "timestamp", import: "timestamp" };
63
- case "integer":
64
- return { builder: "integer", import: "integer" };
65
- case "number":
66
- return { builder: "doublePrecision", import: "doublePrecision" };
67
- case "boolean":
68
- return { builder: "boolean", import: "boolean" };
69
- case "json":
70
- return { builder: "jsonb", import: "jsonb" };
71
- case "vector":
72
- // PostgreSQL uses pgvector's vector(dimensions) column type
73
- return { builder: "vector", import: "vector", config: `{ dimensions: ${dimensions ?? 1536} }` };
13
+ if (provider === "sqlite" || provider === "libsql") {
14
+ return `new Date().toISOString()`;
74
15
  }
16
+ return `new Date()`;
75
17
  }
76
- function mysqlColumnMapping(fieldType) {
77
- switch (fieldType) {
78
- case "string":
79
- return { builder: "varchar", import: "varchar", config: "{ length: 255 }" };
80
- case "text":
81
- return { builder: "text", import: "text" };
82
- case "date":
83
- return { builder: "varchar", import: "varchar", config: "{ length: 255 }" };
84
- case "datetime":
85
- return { builder: "datetime", import: "datetime" };
86
- case "integer":
87
- return { builder: "int", import: "int" };
88
- case "number":
89
- return { builder: "double", import: "double" };
90
- case "boolean":
91
- return { builder: "boolean", import: "boolean" };
92
- case "json":
93
- return { builder: "json", import: "json" };
94
- case "vector":
95
- // MySQL has no native vector type; store as JSON
96
- return { builder: "json", import: "json" };
97
- }
18
+ function indexName(tableName, fields) {
19
+ return `idx_${tableName}_${fields.map(toSnakeCase).join("_")}`;
98
20
  }
99
- function columnMapping(fieldType, provider, dimensions) {
100
- switch (provider) {
101
- case "sqlite":
102
- case "libsql":
103
- return sqliteColumnMapping(fieldType);
104
- case "postgres":
105
- return pgColumnMapping(fieldType, dimensions);
106
- case "mysql":
107
- return mysqlColumnMapping(fieldType);
108
- }
21
+ function buildIndexExpr(tableName, idx, provider) {
22
+ const builder = idx.unique ? "uniqueIndex" : "index";
23
+ const columns = idx.fields.map((fieldName) => {
24
+ if (provider === "postgres" && idx.order) {
25
+ return `table.${fieldName}.${idx.order}()`;
26
+ }
27
+ return `table.${fieldName}`;
28
+ });
29
+ return `${builder}("${indexName(tableName, idx.fields)}").on(${columns.join(", ")})`;
109
30
  }
110
- function providerMeta(provider) {
111
- switch (provider) {
112
- case "sqlite":
113
- case "libsql":
114
- return {
115
- tableBuilder: "sqliteTable",
116
- importModule: "drizzle-orm/sqlite-core",
117
- nowDefault: "(datetime('now'))",
118
- };
119
- case "postgres":
120
- return {
121
- tableBuilder: "pgTable",
122
- importModule: "drizzle-orm/pg-core",
123
- nowDefault: "now()",
124
- };
125
- case "mysql":
126
- return {
127
- tableBuilder: "mysqlTable",
128
- importModule: "drizzle-orm/mysql-core",
129
- nowDefault: "(NOW())",
130
- };
31
+ function buildRelationExpr(sourceModel, sourceVar, relationName, relation, modelMap) {
32
+ const targetModel = modelMap.get(relation.model);
33
+ if (!targetModel)
34
+ return null;
35
+ const targetVar = tableVarForModel(targetModel);
36
+ switch (relation.kind) {
37
+ case "belongsTo": {
38
+ const foreignKey = inferRelationForeignKey(relation);
39
+ if (!(foreignKey in sourceModel.fields)) {
40
+ return null;
41
+ }
42
+ const targetField = sourceModel.fields[foreignKey]?.references
43
+ ? resolveReferenceField(sourceModel.fields[foreignKey].references, modelMap).fieldName
44
+ : (findPrimaryKeyField(targetModel) ?? "id");
45
+ return `${relationName}: one(${targetVar}, { fields: [${sourceVar}.${foreignKey}], references: [${targetVar}.${targetField}] })`;
46
+ }
47
+ case "hasMany":
48
+ return `${relationName}: many(${targetVar})`;
49
+ case "hasOne":
50
+ return `${relationName}: one(${targetVar})`;
51
+ case "manyToMany":
52
+ return null;
131
53
  }
132
54
  }
133
- // ---------------------------------------------------------------------------
134
- // Auto-ID column expression per provider
135
- // ---------------------------------------------------------------------------
136
- /**
137
- * Build the column expression and required imports for an auto-id primary key
138
- * field. Each provider uses a slightly different column type:
139
- * - SQLite: text("col").primaryKey()
140
- * - Postgres: text("col").primaryKey()
141
- * - MySQL: varchar("col", { length: 36 }).primaryKey()
142
- */
143
- function autoIdExpr(colName, provider) {
144
- switch (provider) {
145
- case "sqlite":
146
- case "libsql":
147
- return { expr: `text("${colName}").primaryKey()`, imports: ["text"] };
148
- case "postgres":
149
- return { expr: `text("${colName}").primaryKey()`, imports: ["text"] };
150
- case "mysql":
151
- return { expr: `varchar("${colName}", { length: 36 }).primaryKey()`, imports: ["varchar"] };
55
+ function buildRelationMetadataExpr(sourceModel, relationName, relation, modelMap) {
56
+ const targetModel = modelMap.get(relation.model);
57
+ if (!targetModel && relation.kind !== "manyToMany") {
58
+ return null;
59
+ }
60
+ switch (relation.kind) {
61
+ case "belongsTo":
62
+ {
63
+ const foreignKey = inferRelationForeignKey(relation);
64
+ const targetField = sourceModel.fields[foreignKey]?.references
65
+ ? resolveReferenceField(sourceModel.fields[foreignKey].references, modelMap).fieldName
66
+ : (findPrimaryKeyField(targetModel) ?? "id");
67
+ return `${relationName}: { kind: "belongsTo", model: "${relation.model}", foreignKey: "${foreignKey}", targetKey: "${targetField}" }`;
68
+ }
69
+ case "hasMany":
70
+ return `${relationName}: { kind: "hasMany", model: "${relation.model}", foreignKey: "${resolveTargetRelationForeignKey(sourceModel, relation, modelMap)}", sourceKey: "${findPrimaryKeyField(sourceModel) ?? "id"}" }`;
71
+ case "hasOne":
72
+ return `${relationName}: { kind: "hasOne", model: "${relation.model}", foreignKey: "${resolveTargetRelationForeignKey(sourceModel, relation, modelMap)}", sourceKey: "${findPrimaryKeyField(sourceModel) ?? "id"}" }`;
73
+ case "manyToMany": {
74
+ const resolved = resolveManyToManyRelation(sourceModel, relation, modelMap);
75
+ if (!resolved) {
76
+ return `${relationName}: { kind: "manyToMany", model: "${relation.model}", through: ${relation.through ? `"${relation.through}"` : "null"}, resolved: false }`;
77
+ }
78
+ return `${relationName}: { kind: "manyToMany", model: "${relation.model}", through: "${resolved.throughModel.name}", throughTable: "${tableNameForModel(resolved.throughModel)}", sourceForeignKey: "${resolved.sourceForeignKey}", targetForeignKey: "${resolved.targetForeignKey}", sourceKey: "${resolved.sourcePrimaryKey}", targetKey: "${resolved.targetPrimaryKey}", resolved: true }`;
79
+ }
152
80
  }
153
81
  }
154
- // ---------------------------------------------------------------------------
155
- // Column expression builder
156
- // ---------------------------------------------------------------------------
157
- function buildColumnExpr(fieldName, def, provider) {
82
+ function buildColumnExpr(fieldName, def, provider, modelMap) {
158
83
  const colName = toSnakeCase(fieldName);
159
- // Auto-id fields get special treatment per provider
160
84
  if (def.autoId) {
161
- const result = autoIdExpr(colName, provider);
162
- return { expr: result.expr, imports: result.imports, needsSql: false };
163
- }
164
- const mapping = columnMapping(def.type, provider, def.dimensions);
165
- let expr;
166
- if (mapping.config) {
167
- expr = `${mapping.builder}("${colName}", ${mapping.config})`;
168
- }
169
- else {
170
- expr = `${mapping.builder}("${colName}")`;
171
- }
172
- // NOT NULL for required fields
173
- if (def.required) {
85
+ return autoIdSchemaExpr(colName, provider);
86
+ }
87
+ const referencedField = def.references
88
+ ? (() => {
89
+ const target = resolveReferenceField(def.references, modelMap);
90
+ return modelMap.get(target.modelName)?.fields[target.fieldName];
91
+ })()
92
+ : undefined;
93
+ const mapping = referencedField
94
+ ? columnMappingForReference(referencedField, provider)
95
+ : columnMapping(def.type, provider, def.dimensions);
96
+ let expr = mapping.config
97
+ ? `${mapping.builder}("${colName}", ${mapping.config})`
98
+ : `${mapping.builder}("${colName}")`;
99
+ if (def.required || def.updatedAt) {
174
100
  expr += ".notNull()";
175
101
  }
176
- // Unique constraint
177
102
  if (def.unique) {
178
103
  expr += ".unique()";
179
104
  }
180
- // Default values
105
+ if (def.references) {
106
+ const target = resolveReferenceField(def.references, modelMap);
107
+ const targetVar = tableVarForModel(target.modelName);
108
+ expr += `.references(() => ${targetVar}.${target.fieldName})`;
109
+ }
181
110
  let needsSql = false;
182
111
  if (def.default !== undefined) {
183
112
  if (def.default === "now") {
184
- const meta = providerMeta(provider);
185
- expr += `.default(sql\`${meta.nowDefault}\`)`;
113
+ expr += `.default(sql\`${providerMeta(provider).nowDefaultSql}\`)`;
186
114
  needsSql = true;
187
115
  }
188
116
  else if (typeof def.default === "string") {
189
117
  expr += `.default(${jsString(def.default)})`;
190
118
  }
191
- else if (typeof def.default === "boolean") {
192
- expr += `.default(${def.default})`;
119
+ else if (typeof def.default === "boolean" || typeof def.default === "number") {
120
+ expr += `.default(${String(def.default)})`;
193
121
  }
194
- else if (typeof def.default === "number") {
195
- expr += `.default(${def.default})`;
122
+ else if (typeof def.default === "object") {
123
+ expr += `.default(${jsString(JSON.stringify(def.default))})`;
196
124
  }
197
125
  else {
198
126
  expr += `.default(${jsString(def.default)})`;
199
127
  }
200
128
  }
129
+ if (def.updatedAt) {
130
+ if (def.default === undefined) {
131
+ expr += `.$defaultFn(() => ${runtimeTimestampExpr(def, provider)})`;
132
+ }
133
+ expr += `.$onUpdateFn(() => ${runtimeTimestampExpr(def, provider)})`;
134
+ }
201
135
  return { expr, imports: [mapping.import], needsSql };
202
136
  }
203
- // ---------------------------------------------------------------------------
204
- // Public API
205
- // ---------------------------------------------------------------------------
206
- /**
207
- * Generate a Drizzle ORM schema file (as a TypeScript string) from an array
208
- * of model definitions.
209
- *
210
- * The generated code targets the specified provider's drizzle package:
211
- * - `"sqlite"` -> `drizzle-orm/sqlite-core`
212
- * - `"postgres"` -> `drizzle-orm/pg-core`
213
- * - `"mysql"` -> `drizzle-orm/mysql-core`
214
- *
215
- * @param models - Array of model definitions to generate schema for.
216
- * @param provider - The database provider. Defaults to `"sqlite"` for
217
- * backwards compatibility.
218
- *
219
- * @example
220
- * const src = generateDrizzleSchema([ticketModel, userModel]);
221
- * fs.writeFileSync("schema.ts", src);
222
- *
223
- * @example
224
- * const src = generateDrizzleSchema([ticketModel], "postgres");
225
- *
226
- * @example
227
- * const src = generateDrizzleSchema([ticketModel], "mysql");
228
- */
229
137
  export function generateDrizzleSchema(models, provider = "sqlite") {
230
138
  const meta = providerMeta(provider);
231
- // Collect all drizzle imports we need
139
+ const modelMap = new Map(models.map((model) => [model.name, model]));
232
140
  const neededImports = new Set([meta.tableBuilder]);
233
141
  let needsSql = false;
234
- // First pass: determine imports
142
+ let needsRelations = false;
143
+ let hasRelationComments = false;
235
144
  for (const model of models) {
236
145
  for (const [fieldName, def] of Object.entries(model.fields)) {
237
- const result = buildColumnExpr(fieldName, def, provider);
146
+ const result = buildColumnExpr(fieldName, def, provider, modelMap);
238
147
  for (const imp of result.imports) {
239
148
  neededImports.add(imp);
240
149
  }
@@ -242,28 +151,91 @@ export function generateDrizzleSchema(models, provider = "sqlite") {
242
151
  needsSql = true;
243
152
  }
244
153
  }
154
+ if (model.indexes.length > 0) {
155
+ neededImports.add("index");
156
+ neededImports.add("uniqueIndex");
157
+ }
158
+ for (const relation of Object.values(model.relations)) {
159
+ if (relation.kind === "manyToMany") {
160
+ hasRelationComments = true;
161
+ }
162
+ else {
163
+ needsRelations = true;
164
+ }
165
+ }
245
166
  }
246
- // Build import line
247
- const importNames = [...neededImports].sort();
248
167
  const lines = [];
249
- lines.push(`import { ${importNames.join(", ")} } from "${meta.importModule}";`);
250
- if (needsSql) {
251
- lines.push(`import { sql } from "drizzle-orm";`);
168
+ lines.push(`import { ${[...neededImports].sort().join(", ")} } from "${meta.importModule}";`);
169
+ if (needsSql || models.some((model) => Object.values(model.fields).some((field) => field.autoId))) {
170
+ lines.push(`import { sql${needsRelations ? ", relations" : ""} } from "drizzle-orm";`);
171
+ }
172
+ else if (needsRelations) {
173
+ lines.push(`import { relations } from "drizzle-orm";`);
252
174
  }
253
- // Generate each table
254
175
  for (const model of models) {
255
- const tableName = pluralise(model.name);
256
- const varName = tableName;
176
+ const tableName = tableNameForModel(model);
177
+ const varName = tableVarForModel(model);
257
178
  lines.push("");
258
- lines.push(`export const ${varName} = ${meta.tableBuilder}("${tableName}", {`);
259
- const fieldEntries = Object.entries(model.fields);
260
- for (let i = 0; i < fieldEntries.length; i++) {
261
- const [fieldName, def] = fieldEntries[i];
262
- const result = buildColumnExpr(fieldName, def, provider);
263
- const comma = i < fieldEntries.length - 1 ? "," : ",";
264
- lines.push(` ${fieldName}: ${result.expr}${comma}`);
179
+ const fields = Object.entries(model.fields);
180
+ if (model.indexes.length > 0) {
181
+ lines.push(`export const ${varName} = ${meta.tableBuilder}("${tableName}", {`);
182
+ }
183
+ else {
184
+ lines.push(`export const ${varName} = ${meta.tableBuilder}("${tableName}", {`);
185
+ }
186
+ for (const [fieldName, def] of fields) {
187
+ const result = buildColumnExpr(fieldName, def, provider, modelMap);
188
+ lines.push(` ${fieldName}: ${result.expr},`);
189
+ }
190
+ if (model.indexes.length === 0) {
191
+ lines.push("});");
192
+ }
193
+ else {
194
+ lines.push("}, (table) => [");
195
+ for (const idx of model.indexes) {
196
+ lines.push(` ${buildIndexExpr(tableName, idx, provider)},`);
197
+ }
198
+ lines.push("]);");
199
+ }
200
+ }
201
+ if (needsRelations || hasRelationComments) {
202
+ for (const model of models) {
203
+ const varName = tableVarForModel(model);
204
+ const relationLines = [];
205
+ const relationMetadataLines = [];
206
+ let skippedManyToMany = false;
207
+ for (const [relationName, relation] of Object.entries(model.relations)) {
208
+ const line = buildRelationExpr(model, varName, relationName, relation, modelMap);
209
+ if (line) {
210
+ relationLines.push(` ${line},`);
211
+ }
212
+ else if (relation.kind === "manyToMany") {
213
+ skippedManyToMany = true;
214
+ }
215
+ const metadataLine = buildRelationMetadataExpr(model, relationName, relation, modelMap);
216
+ if (metadataLine) {
217
+ relationMetadataLines.push(` ${metadataLine},`);
218
+ }
219
+ }
220
+ if (relationLines.length === 0 && !skippedManyToMany && relationMetadataLines.length === 0) {
221
+ continue;
222
+ }
223
+ lines.push("");
224
+ if (skippedManyToMany) {
225
+ lines.push(`// ${model.name}: many-to-many relations require an explicit join model and are not generated automatically.`);
226
+ }
227
+ if (relationMetadataLines.length > 0) {
228
+ lines.push(`export const ${varName}RelationMetadata = {`);
229
+ lines.push(...relationMetadataLines);
230
+ lines.push("} as const;");
231
+ lines.push("");
232
+ }
233
+ if (relationLines.length > 0) {
234
+ lines.push(`export const ${varName}Relations = relations(${varName}, ({ one, many }) => ({`);
235
+ lines.push(...relationLines);
236
+ lines.push("}));");
237
+ }
265
238
  }
266
- lines.push("});");
267
239
  }
268
240
  return lines.join("\n") + "\n";
269
241
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { EmbeddingConfig } from "./embedding.js";
2
+ import type { ModelDefinition } from "./types.js";
3
+ export interface PrepareWriteOptions {
4
+ now?: Date;
5
+ embeddings?: Array<EmbeddingConfig & {
6
+ modelName?: string;
7
+ }> | (EmbeddingConfig & {
8
+ modelName?: string;
9
+ });
10
+ }
11
+ type RecordInput = Record<string, unknown>;
12
+ export declare function prepareCreateData(model: ModelDefinition, input: RecordInput, options?: PrepareWriteOptions): Promise<RecordInput>;
13
+ export declare function prepareUpdateData(model: ModelDefinition, input: RecordInput, options?: PrepareWriteOptions): Promise<RecordInput>;
14
+ export {};
15
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../src/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,UAAU,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,CAAC,eAAe,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3G;AAED,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA4L3C,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAEtB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAEtB"}