@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,208 @@
1
+ const SQLITE_UUID_SQL = "(lower(hex(randomblob(4))) || '-' || lower(hex(randomblob(2))) || '-4' || " +
2
+ "substr(lower(hex(randomblob(2))), 2) || '-' || " +
3
+ "substr('89ab', abs(random()) % 4 + 1, 1) || substr(lower(hex(randomblob(2))), 2) || '-' || " +
4
+ "lower(hex(randomblob(6))))";
5
+ export function providerMeta(provider) {
6
+ switch (provider) {
7
+ case "sqlite":
8
+ case "libsql":
9
+ return {
10
+ tableBuilder: "sqliteTable",
11
+ importModule: "drizzle-orm/sqlite-core",
12
+ nowDefaultSql: "(datetime('now'))",
13
+ };
14
+ case "postgres":
15
+ return {
16
+ tableBuilder: "pgTable",
17
+ importModule: "drizzle-orm/pg-core",
18
+ nowDefaultSql: "now()",
19
+ };
20
+ case "mysql":
21
+ return {
22
+ tableBuilder: "mysqlTable",
23
+ importModule: "drizzle-orm/mysql-core",
24
+ nowDefaultSql: "CURRENT_TIMESTAMP",
25
+ };
26
+ }
27
+ }
28
+ function sqliteColumnMapping(fieldType) {
29
+ switch (fieldType) {
30
+ case "string":
31
+ case "text":
32
+ case "date":
33
+ case "datetime":
34
+ return { builder: "text", import: "text", sqlType: "TEXT" };
35
+ case "integer":
36
+ return { builder: "integer", import: "integer", sqlType: "INTEGER" };
37
+ case "number":
38
+ return { builder: "real", import: "real", sqlType: "REAL" };
39
+ case "boolean":
40
+ return { builder: "integer", import: "integer", config: '{ mode: "boolean" }', sqlType: "INTEGER" };
41
+ case "json":
42
+ return { builder: "text", import: "text", config: '{ mode: "json" }', sqlType: "TEXT" };
43
+ case "vector":
44
+ return { builder: "text", import: "text", config: '{ mode: "json" }', sqlType: "TEXT" };
45
+ }
46
+ }
47
+ function pgColumnMapping(fieldType, dimensions) {
48
+ switch (fieldType) {
49
+ case "string":
50
+ return { builder: "varchar", import: "varchar", config: "{ length: 255 }", sqlType: "VARCHAR(255)" };
51
+ case "text":
52
+ return { builder: "text", import: "text", sqlType: "TEXT" };
53
+ case "date":
54
+ return { builder: "date", import: "date", sqlType: "DATE" };
55
+ case "datetime":
56
+ return { builder: "timestamp", import: "timestamp", sqlType: "TIMESTAMP" };
57
+ case "integer":
58
+ return { builder: "integer", import: "integer", sqlType: "INTEGER" };
59
+ case "number":
60
+ return { builder: "doublePrecision", import: "doublePrecision", sqlType: "DOUBLE PRECISION" };
61
+ case "boolean":
62
+ return { builder: "boolean", import: "boolean", sqlType: "BOOLEAN" };
63
+ case "json":
64
+ return { builder: "jsonb", import: "jsonb", sqlType: "JSONB" };
65
+ case "vector":
66
+ return {
67
+ builder: "vector",
68
+ import: "vector",
69
+ config: `{ dimensions: ${dimensions ?? 1536} }`,
70
+ sqlType: `vector(${dimensions ?? 1536})`,
71
+ };
72
+ }
73
+ }
74
+ function mysqlColumnMapping(fieldType) {
75
+ switch (fieldType) {
76
+ case "string":
77
+ return { builder: "varchar", import: "varchar", config: "{ length: 255 }", sqlType: "VARCHAR(255)" };
78
+ case "text":
79
+ return { builder: "text", import: "text", sqlType: "TEXT" };
80
+ case "date":
81
+ return { builder: "date", import: "date", sqlType: "DATE" };
82
+ case "datetime":
83
+ return { builder: "datetime", import: "datetime", sqlType: "DATETIME" };
84
+ case "integer":
85
+ return { builder: "int", import: "int", sqlType: "INT" };
86
+ case "number":
87
+ return { builder: "double", import: "double", sqlType: "DOUBLE" };
88
+ case "boolean":
89
+ return { builder: "boolean", import: "boolean", sqlType: "BOOLEAN" };
90
+ case "json":
91
+ return { builder: "json", import: "json", sqlType: "JSON" };
92
+ case "vector":
93
+ return { builder: "json", import: "json", sqlType: "JSON" };
94
+ }
95
+ }
96
+ export function columnMapping(fieldType, provider, dimensions) {
97
+ switch (provider) {
98
+ case "sqlite":
99
+ case "libsql":
100
+ return sqliteColumnMapping(fieldType);
101
+ case "postgres":
102
+ return pgColumnMapping(fieldType, dimensions);
103
+ case "mysql":
104
+ return mysqlColumnMapping(fieldType);
105
+ }
106
+ }
107
+ export function columnMappingForReference(targetField, provider) {
108
+ if (targetField.autoId) {
109
+ switch (provider) {
110
+ case "sqlite":
111
+ case "libsql":
112
+ return { builder: "text", import: "text", sqlType: "TEXT" };
113
+ case "postgres":
114
+ return { builder: "uuid", import: "uuid", sqlType: "UUID" };
115
+ case "mysql":
116
+ return { builder: "varchar", import: "varchar", config: "{ length: 36 }", sqlType: "VARCHAR(36)" };
117
+ }
118
+ }
119
+ return columnMapping(targetField.type, provider, targetField.dimensions);
120
+ }
121
+ export function sqlTypeForField(def, provider) {
122
+ if (def.autoId) {
123
+ switch (provider) {
124
+ case "sqlite":
125
+ case "libsql":
126
+ return "TEXT";
127
+ case "postgres":
128
+ return "UUID";
129
+ case "mysql":
130
+ return "VARCHAR(36)";
131
+ }
132
+ }
133
+ return columnMapping(def.type, provider, def.dimensions).sqlType;
134
+ }
135
+ export function sqlTypeForReference(targetField, provider) {
136
+ return columnMappingForReference(targetField, provider).sqlType;
137
+ }
138
+ export function autoIdSchemaExpr(columnName, provider) {
139
+ switch (provider) {
140
+ case "sqlite":
141
+ case "libsql":
142
+ return {
143
+ expr: `text("${columnName}").primaryKey().default(sql\`${SQLITE_UUID_SQL}\`)`,
144
+ imports: ["text"],
145
+ needsSql: true,
146
+ };
147
+ case "postgres":
148
+ return {
149
+ expr: `uuid("${columnName}").primaryKey().defaultRandom()`,
150
+ imports: ["uuid"],
151
+ needsSql: false,
152
+ };
153
+ case "mysql":
154
+ return {
155
+ expr: `varchar("${columnName}", { length: 36 }).primaryKey().default(sql\`(UUID())\`)`,
156
+ imports: ["varchar"],
157
+ needsSql: true,
158
+ };
159
+ }
160
+ }
161
+ export function autoIdSqlDefault(provider) {
162
+ switch (provider) {
163
+ case "sqlite":
164
+ case "libsql":
165
+ return `DEFAULT ${SQLITE_UUID_SQL}`;
166
+ case "postgres":
167
+ return "DEFAULT gen_random_uuid()";
168
+ case "mysql":
169
+ return "DEFAULT (UUID())";
170
+ }
171
+ }
172
+ function sqlStringLiteral(value) {
173
+ return `'${value.replace(/'/g, "''")}'`;
174
+ }
175
+ export function sqlDefaultClause(def, provider) {
176
+ if (def.autoId) {
177
+ return autoIdSqlDefault(provider);
178
+ }
179
+ if (def.updatedAt && def.default === undefined) {
180
+ return `DEFAULT ${providerMeta(provider).nowDefaultSql}`;
181
+ }
182
+ if (def.default === undefined)
183
+ return null;
184
+ if (def.default === "now") {
185
+ return `DEFAULT ${providerMeta(provider).nowDefaultSql}`;
186
+ }
187
+ if (typeof def.default === "string") {
188
+ return `DEFAULT ${sqlStringLiteral(def.default)}`;
189
+ }
190
+ if (typeof def.default === "boolean") {
191
+ switch (provider) {
192
+ case "postgres":
193
+ case "mysql":
194
+ return `DEFAULT ${def.default ? "true" : "false"}`;
195
+ case "sqlite":
196
+ case "libsql":
197
+ return `DEFAULT ${def.default ? "1" : "0"}`;
198
+ }
199
+ }
200
+ if (typeof def.default === "number") {
201
+ return `DEFAULT ${def.default}`;
202
+ }
203
+ if (typeof def.default === "object") {
204
+ return `DEFAULT ${sqlStringLiteral(JSON.stringify(def.default))}`;
205
+ }
206
+ return null;
207
+ }
208
+ //# sourceMappingURL=dialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.js","sourceRoot":"","sources":["../src/dialect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Adapter that converts text into dense vector embeddings.
3
+ *
4
+ * Implementations call an external embedding model (e.g. OpenAI, Cohere,
5
+ * a local ONNX model) and return fixed-length float arrays.
6
+ */
7
+ export interface EmbeddingAdapter {
8
+ /** Generate embeddings for one or more texts (batch). */
9
+ embed(texts: string[]): Promise<number[][]>;
10
+ /** Number of dimensions each embedding vector contains. */
11
+ dimensions: number;
12
+ }
13
+ /**
14
+ * Links a model's text field to a vector field via an embedding adapter so
15
+ * embeddings can be generated automatically on insert / update.
16
+ */
17
+ export interface EmbeddingConfig {
18
+ /** The model field to embed (must be string or text type). */
19
+ sourceField: string;
20
+ /** The vector field to store embeddings in. */
21
+ vectorField: string;
22
+ /** The embedding adapter to use. */
23
+ adapter: EmbeddingAdapter;
24
+ }
25
+ /**
26
+ * Register embedding configuration for a model.
27
+ *
28
+ * @example
29
+ * const articleEmbedding = defineEmbedding("Article", {
30
+ * sourceField: "body",
31
+ * vectorField: "embedding",
32
+ * adapter: openaiEmbeddings({ apiKey: process.env.OPENAI_KEY! }),
33
+ * });
34
+ */
35
+ export declare function defineEmbedding(modelName: string, config: EmbeddingConfig): EmbeddingConfig & {
36
+ modelName: string;
37
+ };
38
+ /** Options for the OpenAI-compatible embedding adapter. */
39
+ export interface OpenAIEmbeddingOptions {
40
+ /** OpenAI (or compatible) API key. */
41
+ apiKey: string;
42
+ /** Model identifier. @default "text-embedding-3-small" */
43
+ model?: string;
44
+ /** Base URL for the embeddings API. @default "https://api.openai.com/v1" */
45
+ baseUrl?: string;
46
+ /** Number of dimensions to request. @default 1536 */
47
+ dimensions?: number;
48
+ }
49
+ /**
50
+ * Create an OpenAI-compatible embedding adapter.
51
+ *
52
+ * Works with any API that implements the OpenAI `/v1/embeddings` contract
53
+ * (OpenAI, Azure OpenAI, Ollama, vLLM, etc.).
54
+ *
55
+ * @example
56
+ * const adapter = openaiEmbeddings({
57
+ * apiKey: process.env.OPENAI_KEY!,
58
+ * model: "text-embedding-3-small",
59
+ * dimensions: 1536,
60
+ * });
61
+ */
62
+ export declare function openaiEmbeddings(opts: OpenAIEmbeddingOptions): EmbeddingAdapter;
63
+ //# sourceMappingURL=embedding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,GACtB,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAEzC;AAMD,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,CAkC/E"}
@@ -0,0 +1,61 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Embedding adapter interface and configuration
3
+ // ---------------------------------------------------------------------------
4
+ // ---------------------------------------------------------------------------
5
+ // defineEmbedding
6
+ // ---------------------------------------------------------------------------
7
+ /**
8
+ * Register embedding configuration for a model.
9
+ *
10
+ * @example
11
+ * const articleEmbedding = defineEmbedding("Article", {
12
+ * sourceField: "body",
13
+ * vectorField: "embedding",
14
+ * adapter: openaiEmbeddings({ apiKey: process.env.OPENAI_KEY! }),
15
+ * });
16
+ */
17
+ export function defineEmbedding(modelName, config) {
18
+ return { ...config, modelName };
19
+ }
20
+ /**
21
+ * Create an OpenAI-compatible embedding adapter.
22
+ *
23
+ * Works with any API that implements the OpenAI `/v1/embeddings` contract
24
+ * (OpenAI, Azure OpenAI, Ollama, vLLM, etc.).
25
+ *
26
+ * @example
27
+ * const adapter = openaiEmbeddings({
28
+ * apiKey: process.env.OPENAI_KEY!,
29
+ * model: "text-embedding-3-small",
30
+ * dimensions: 1536,
31
+ * });
32
+ */
33
+ export function openaiEmbeddings(opts) {
34
+ const dimensions = opts.dimensions ?? 1536;
35
+ const baseUrl = opts.baseUrl ?? "https://api.openai.com/v1";
36
+ const model = opts.model ?? "text-embedding-3-small";
37
+ return {
38
+ dimensions,
39
+ async embed(texts) {
40
+ const res = await fetch(`${baseUrl}/embeddings`, {
41
+ method: "POST",
42
+ headers: {
43
+ "Authorization": `Bearer ${opts.apiKey}`,
44
+ "Content-Type": "application/json",
45
+ },
46
+ body: JSON.stringify({
47
+ model,
48
+ input: texts,
49
+ dimensions,
50
+ }),
51
+ });
52
+ if (!res.ok) {
53
+ const body = await res.text();
54
+ throw new Error(`Embedding request failed (${res.status}): ${body}`);
55
+ }
56
+ const data = (await res.json());
57
+ return data.data.map((d) => d.embedding);
58
+ },
59
+ };
60
+ }
61
+ //# sourceMappingURL=embedding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gDAAgD;AAChD,8EAA8E;AA4B9E,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAiB,EACjB,MAAuB;IAEvB,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC;AAkBD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA4B;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,2BAA2B,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,wBAAwB,CAAC;IAErD,OAAO;QACL,UAAU;QACV,KAAK,CAAC,KAAK,CAAC,KAAe;YACzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,aAAa,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACxC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK;oBACL,KAAK,EAAE,KAAK;oBACZ,UAAU;iBACX,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,6BAA6B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CACpD,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAE7B,CAAC;YACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,8 +2,17 @@ export { defineModel, field, relation } from "./model.js";
2
2
  export { generateDrizzleSchema } from "./schema.js";
3
3
  export { createDatabase } from "./client.js";
4
4
  export type { DatabaseInstance } from "./client.js";
5
- export { generateMigration, applyMigration } from "./migrate.js";
6
- export { generateCrudRoutes, pluralize } from "./crud.js";
7
- export type { CrudRouteFiles } from "./crud.js";
5
+ export { planMigration, generateMigration, applyMigration, ensureTrackingTable, getAppliedMigrations, getMigrationStatus, applyTrackedMigrations, } from "./migrate.js";
6
+ export type { MigrationDbClient, MigrationIssue, MigrationIssueCode, MigrationOptions, MigrationPlan, MigrationStatus } from "./migrate.js";
7
+ export { createDatabaseRuntime } from "./runtime.js";
8
+ export type { DatabaseRuntime, FindManyOptions, ModelRepository, QueryOrder, SqlMutationResult, SqlRuntimeAdapter } from "./runtime.js";
9
+ export { createCrudRepository, createCrudRuntime, generateCrudRoutes, pluralize } from "./crud.js";
10
+ export type { CrudQueryOptions, CrudRouteFiles, CrudRuntime } from "./crud.js";
11
+ export { defineEmbedding, openaiEmbeddings } from "./embedding.js";
12
+ export type { EmbeddingAdapter, EmbeddingConfig, OpenAIEmbeddingOptions } from "./embedding.js";
13
+ export { cosineDistance, findNearest, hybridSearch } from "./search.js";
14
+ export type { VectorItem, ScoredResult, HybridItem, HybridSearchOptions } from "./search.js";
15
+ export { prepareCreateData, prepareUpdateData } from "./write.js";
16
+ export type { PrepareWriteOptions } from "./write.js";
8
17
  export type { ModelDefinition, FieldDefinition, RelationDefinition, IndexDefinition, DatabaseConfig, DbProvider, ScalarType, } from "./types.js";
9
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5I,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxI,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnG,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,10 @@
1
1
  export { defineModel, field, relation } from "./model.js";
2
2
  export { generateDrizzleSchema } from "./schema.js";
3
3
  export { createDatabase } from "./client.js";
4
- export { generateMigration, applyMigration } from "./migrate.js";
5
- export { generateCrudRoutes, pluralize } from "./crud.js";
4
+ export { planMigration, generateMigration, applyMigration, ensureTrackingTable, getAppliedMigrations, getMigrationStatus, applyTrackedMigrations, } from "./migrate.js";
5
+ export { createDatabaseRuntime } from "./runtime.js";
6
+ export { createCrudRepository, createCrudRuntime, generateCrudRoutes, pluralize } from "./crud.js";
7
+ export { defineEmbedding, openaiEmbeddings } from "./embedding.js";
8
+ export { cosineDistance, findNearest, hybridSearch } from "./search.js";
9
+ export { prepareCreateData, prepareUpdateData } from "./write.js";
6
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
package/dist/migrate.d.ts CHANGED
@@ -1,29 +1,50 @@
1
- import type { ModelDefinition } from "./types.js";
2
- /**
3
- * Generate SQL migration statements that transform `fromModels` into
4
- * `toModels`. This is a forward-only diff: it creates new tables, adds new
5
- * columns, and creates indexes. It does NOT handle column drops, renames, or
6
- * type changes (SQLite has limited ALTER TABLE support).
7
- *
8
- * @param fromModels - The previous set of model definitions (can be empty for
9
- * initial migration).
10
- * @param toModels - The target set of model definitions.
11
- * @returns An array of SQL statements to execute.
12
- */
13
- export declare function generateMigration(fromModels: ModelDefinition[], toModels: ModelDefinition[]): string[];
14
- /**
15
- * Execute an array of SQL migration statements against a database.
16
- *
17
- * The statements are run inside a transaction so that either all succeed or
18
- * none are applied.
19
- *
20
- * @param db - A Drizzle `BetterSQLite3Database` instance (or any object whose
21
- * `$client` property is a better-sqlite3 `Database`).
22
- * @param sql - The SQL statements to execute.
23
- */
1
+ import type { DbProvider, ModelDefinition } from "./types.js";
2
+ export type MigrationIssueCode = "DROP_TABLE" | "DROP_COLUMN" | "ALTER_COLUMN" | "DROP_INDEX" | "RENAME_COLUMN";
3
+ export interface MigrationIssue {
4
+ code: MigrationIssueCode;
5
+ message: string;
6
+ tableName: string;
7
+ fieldName?: string;
8
+ destructive: boolean;
9
+ }
10
+ export interface MigrationPlan {
11
+ provider: DbProvider;
12
+ statements: string[];
13
+ issues: MigrationIssue[];
14
+ safe: boolean;
15
+ }
16
+ export interface MigrationOptions {
17
+ provider?: DbProvider;
18
+ allowDestructive?: boolean;
19
+ strict?: boolean;
20
+ }
21
+ export declare function planMigration(fromModels: ModelDefinition[], toModels: ModelDefinition[], options?: DbProvider | MigrationOptions): MigrationPlan;
22
+ export declare function generateMigration(fromModels: ModelDefinition[], toModels: ModelDefinition[], options?: DbProvider | MigrationOptions): string[];
24
23
  export declare function applyMigration(db: {
25
24
  $client: {
26
25
  exec: (sql: string) => void;
27
26
  };
28
27
  }, sql: string[]): void;
28
+ export interface MigrationDbClient {
29
+ exec: (sql: string) => void;
30
+ prepare: (sql: string) => {
31
+ all: (...params: unknown[]) => unknown[];
32
+ run: (...params: unknown[]) => unknown;
33
+ get: (...params: unknown[]) => unknown;
34
+ };
35
+ }
36
+ export declare function ensureTrackingTable(client: MigrationDbClient, provider?: DbProvider): void;
37
+ export declare function getAppliedMigrations(client: MigrationDbClient): string[];
38
+ export interface MigrationStatus {
39
+ applied: Array<{
40
+ name: string;
41
+ appliedAt: string;
42
+ }>;
43
+ pending: string[];
44
+ }
45
+ export declare function getMigrationStatus(client: MigrationDbClient, allMigrationNames: string[], provider?: DbProvider): MigrationStatus;
46
+ export declare function applyTrackedMigrations(client: MigrationDbClient, migrations: Array<{
47
+ name: string;
48
+ sql: string;
49
+ }>, provider?: DbProvider): string[];
29
50
  //# sourceMappingURL=migrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgD,MAAM,YAAY,CAAC;AAyHhG;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,eAAe,EAAE,EAC7B,QAAQ,EAAE,eAAe,EAAE,GAC1B,MAAM,EAAE,CA0DV;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAcpG"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAoC,eAAe,EAAE,MAAM,YAAY,CAAC;AAqIhG,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,aAAa,GACb,cAAc,GACd,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA2FD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,eAAe,EAAE,EAC7B,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,CAAC,EAAE,UAAU,GAAG,gBAAgB,GACtC,aAAa,CA0If;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,eAAe,EAAE,EAC7B,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,CAAC,EAAE,UAAU,GAAG,gBAAgB,GACtC,MAAM,EAAE,CAYV;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAcpG;AA2BD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;QACxB,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC;QACzC,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;QACvC,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;KACxC,CAAC;CACH;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,GAAE,UAAqB,GAAG,IAAI,CAEpG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAKxE;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EACzB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,QAAQ,GAAE,UAAqB,GAC9B,eAAe,CAajB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,QAAQ,GAAE,UAAqB,GAC9B,MAAM,EAAE,CAkCV"}