@zauso-ai/capstan-db 0.1.4 → 1.0.0-beta.1
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/client.d.ts +28 -12
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +112 -15
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migrate.d.ts +46 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +96 -0
- package/dist/migrate.js.map +1 -1
- package/dist/schema.d.ts +18 -3
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +135 -25
- package/dist/schema.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +10 -2
package/dist/client.d.ts
CHANGED
|
@@ -6,24 +6,40 @@ export interface DatabaseInstance {
|
|
|
6
6
|
close: () => void;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
|
-
* Create a Drizzle database instance backed by better-sqlite3
|
|
9
|
+
* Create a Drizzle database instance backed by better-sqlite3 (SQLite),
|
|
10
|
+
* node-postgres (PostgreSQL), or mysql2 (MySQL).
|
|
10
11
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* will not work until the peer dependencies are
|
|
12
|
+
* All driver dependencies are optional peer dependencies and are loaded lazily
|
|
13
|
+
* so that `@zauso-ai/capstan-db` can be installed even when native compilation
|
|
14
|
+
* of `better-sqlite3` fails or `pg`/`mysql2` are not needed. The actual
|
|
15
|
+
* database features will not work until the appropriate peer dependencies are
|
|
16
|
+
* installed.
|
|
15
17
|
*
|
|
16
|
-
* @param config - Database configuration.
|
|
17
|
-
*
|
|
18
|
-
*
|
|
18
|
+
* @param config - Database configuration.
|
|
19
|
+
* - `provider: "sqlite"` — `url` should be a file path (or `:memory:`).
|
|
20
|
+
* - `provider: "postgres"` — `url` should be a PostgreSQL connection string
|
|
21
|
+
* (e.g. `postgres://user:pass@host:5432/db`).
|
|
22
|
+
* - `provider: "mysql"` — `url` should be a MySQL connection string
|
|
23
|
+
* (e.g. `mysql://user:pass@host:3306/db`).
|
|
19
24
|
*
|
|
20
|
-
* @throws If
|
|
21
|
-
* error with installation instructions.
|
|
25
|
+
* @throws If the required driver or `drizzle-orm` adapter is not installed,
|
|
26
|
+
* throws an error with installation instructions.
|
|
22
27
|
*
|
|
23
28
|
* @example
|
|
29
|
+
* // SQLite
|
|
24
30
|
* const { db, close } = createDatabase({ provider: "sqlite", url: "./data.db" });
|
|
25
|
-
*
|
|
26
|
-
*
|
|
31
|
+
*
|
|
32
|
+
* // PostgreSQL
|
|
33
|
+
* const { db, close } = createDatabase({
|
|
34
|
+
* provider: "postgres",
|
|
35
|
+
* url: "postgres://user:pass@localhost:5432/mydb",
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* // MySQL
|
|
39
|
+
* const { db, close } = createDatabase({
|
|
40
|
+
* provider: "mysql",
|
|
41
|
+
* url: "mysql://user:pass@localhost:3306/mydb",
|
|
42
|
+
* });
|
|
27
43
|
*/
|
|
28
44
|
export declare function createDatabase(config: DatabaseConfig): DatabaseInstance;
|
|
29
45
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,EAAE,EAAE,OAAO,CAAC;IACZ,gDAAgD;IAChD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,EAAE,EAAE,OAAO,CAAC;IACZ,gDAAgD;IAChD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAevE"}
|
package/dist/client.js
CHANGED
|
@@ -1,29 +1,59 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
2
|
const require = createRequire(import.meta.url);
|
|
3
3
|
/**
|
|
4
|
-
* Create a Drizzle database instance backed by better-sqlite3
|
|
4
|
+
* Create a Drizzle database instance backed by better-sqlite3 (SQLite),
|
|
5
|
+
* node-postgres (PostgreSQL), or mysql2 (MySQL).
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* will not work until the peer dependencies are
|
|
7
|
+
* All driver dependencies are optional peer dependencies and are loaded lazily
|
|
8
|
+
* so that `@zauso-ai/capstan-db` can be installed even when native compilation
|
|
9
|
+
* of `better-sqlite3` fails or `pg`/`mysql2` are not needed. The actual
|
|
10
|
+
* database features will not work until the appropriate peer dependencies are
|
|
11
|
+
* installed.
|
|
10
12
|
*
|
|
11
|
-
* @param config - Database configuration.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
13
|
+
* @param config - Database configuration.
|
|
14
|
+
* - `provider: "sqlite"` — `url` should be a file path (or `:memory:`).
|
|
15
|
+
* - `provider: "postgres"` — `url` should be a PostgreSQL connection string
|
|
16
|
+
* (e.g. `postgres://user:pass@host:5432/db`).
|
|
17
|
+
* - `provider: "mysql"` — `url` should be a MySQL connection string
|
|
18
|
+
* (e.g. `mysql://user:pass@host:3306/db`).
|
|
14
19
|
*
|
|
15
|
-
* @throws If
|
|
16
|
-
* error with installation instructions.
|
|
20
|
+
* @throws If the required driver or `drizzle-orm` adapter is not installed,
|
|
21
|
+
* throws an error with installation instructions.
|
|
17
22
|
*
|
|
18
23
|
* @example
|
|
24
|
+
* // SQLite
|
|
19
25
|
* const { db, close } = createDatabase({ provider: "sqlite", url: "./data.db" });
|
|
20
|
-
*
|
|
21
|
-
*
|
|
26
|
+
*
|
|
27
|
+
* // PostgreSQL
|
|
28
|
+
* const { db, close } = createDatabase({
|
|
29
|
+
* provider: "postgres",
|
|
30
|
+
* url: "postgres://user:pass@localhost:5432/mydb",
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* // MySQL
|
|
34
|
+
* const { db, close } = createDatabase({
|
|
35
|
+
* provider: "mysql",
|
|
36
|
+
* url: "mysql://user:pass@localhost:3306/mydb",
|
|
37
|
+
* });
|
|
22
38
|
*/
|
|
23
39
|
export function createDatabase(config) {
|
|
24
|
-
|
|
25
|
-
|
|
40
|
+
switch (config.provider) {
|
|
41
|
+
case "sqlite":
|
|
42
|
+
return createSqliteDatabase(config.url);
|
|
43
|
+
case "postgres":
|
|
44
|
+
return createPostgresDatabase(config.url);
|
|
45
|
+
case "mysql":
|
|
46
|
+
return createMysqlDatabase(config.url);
|
|
47
|
+
default: {
|
|
48
|
+
const _exhaustive = config.provider;
|
|
49
|
+
throw new Error(`@zauso-ai/capstan-db: Unsupported database provider "${String(_exhaustive)}".`);
|
|
50
|
+
}
|
|
26
51
|
}
|
|
52
|
+
}
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// SQLite (better-sqlite3)
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
function createSqliteDatabase(url) {
|
|
27
57
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
58
|
let BetterSqlite3;
|
|
29
59
|
try {
|
|
@@ -45,7 +75,7 @@ export function createDatabase(config) {
|
|
|
45
75
|
throw new Error(`@zauso-ai/capstan-db: "drizzle-orm" is required for database support but is not installed.\n` +
|
|
46
76
|
`Install it with: npm install drizzle-orm`);
|
|
47
77
|
}
|
|
48
|
-
const sqlite = new BetterSqlite3(
|
|
78
|
+
const sqlite = new BetterSqlite3(url);
|
|
49
79
|
// Enable WAL mode for better concurrent read performance.
|
|
50
80
|
sqlite.pragma("journal_mode = WAL");
|
|
51
81
|
const db = drizzle({ client: sqlite });
|
|
@@ -56,4 +86,71 @@ export function createDatabase(config) {
|
|
|
56
86
|
},
|
|
57
87
|
};
|
|
58
88
|
}
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// PostgreSQL (node-postgres / pg)
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
function createPostgresDatabase(url) {
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
|
+
let Pool;
|
|
95
|
+
try {
|
|
96
|
+
const pgModule = require("pg");
|
|
97
|
+
Pool = pgModule.Pool;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
throw new Error(`@zauso-ai/capstan-db: "pg" (node-postgres) is required for PostgreSQL support but is not installed.\n` +
|
|
101
|
+
`Install it with: npm install pg`);
|
|
102
|
+
}
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
104
|
+
let drizzle;
|
|
105
|
+
try {
|
|
106
|
+
const drizzleModule = require("drizzle-orm/node-postgres");
|
|
107
|
+
drizzle = drizzleModule.drizzle;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
throw new Error(`@zauso-ai/capstan-db: "drizzle-orm/node-postgres" adapter is required for PostgreSQL support but is not installed.\n` +
|
|
111
|
+
`Install it with: npm install drizzle-orm`);
|
|
112
|
+
}
|
|
113
|
+
const pool = new Pool({ connectionString: url });
|
|
114
|
+
const db = drizzle({ client: pool });
|
|
115
|
+
return {
|
|
116
|
+
db,
|
|
117
|
+
close() {
|
|
118
|
+
pool.end();
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
// MySQL (mysql2)
|
|
124
|
+
// ---------------------------------------------------------------------------
|
|
125
|
+
function createMysqlDatabase(url) {
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
127
|
+
let createPool;
|
|
128
|
+
try {
|
|
129
|
+
const mysql2 = require("mysql2/promise");
|
|
130
|
+
createPool = mysql2.createPool;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
throw new Error(`@zauso-ai/capstan-db: "mysql2" is required for MySQL support but is not installed.\n` +
|
|
134
|
+
`Install it with: npm install mysql2`);
|
|
135
|
+
}
|
|
136
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
137
|
+
let drizzle;
|
|
138
|
+
try {
|
|
139
|
+
const drizzleModule = require("drizzle-orm/mysql2");
|
|
140
|
+
drizzle = drizzleModule.drizzle;
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
throw new Error(`@zauso-ai/capstan-db: "drizzle-orm/mysql2" adapter is required for MySQL support but is not installed.\n` +
|
|
144
|
+
`Install it with: npm install drizzle-orm`);
|
|
145
|
+
}
|
|
146
|
+
const pool = createPool({ uri: url });
|
|
147
|
+
const db = drizzle({ client: pool });
|
|
148
|
+
return {
|
|
149
|
+
db,
|
|
150
|
+
close() {
|
|
151
|
+
// The interface is synchronous; fire-and-forget the async pool shutdown.
|
|
152
|
+
void pool.end();
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
}
|
|
59
156
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAS/C
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +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 {
|
|
4
|
+
export type { DatabaseInstance } from "./client.js";
|
|
5
|
+
export { generateMigration, applyMigration, ensureTrackingTable, getAppliedMigrations, getMigrationStatus, applyTrackedMigrations, } from "./migrate.js";
|
|
6
|
+
export type { MigrationDbClient, MigrationStatus } from "./migrate.js";
|
|
5
7
|
export { generateCrudRoutes, pluralize } from "./crud.js";
|
|
6
8
|
export type { CrudRouteFiles } from "./crud.js";
|
|
7
|
-
export type { ModelDefinition, FieldDefinition, RelationDefinition, IndexDefinition, DatabaseConfig, ScalarType, } from "./types.js";
|
|
9
|
+
export type { ModelDefinition, FieldDefinition, RelationDefinition, IndexDefinition, DatabaseConfig, DbProvider, ScalarType, } from "./types.js";
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,OAAO,EAAE,iBAAiB,EAAE,
|
|
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,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvE,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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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";
|
|
4
|
+
export { generateMigration, applyMigration, ensureTrackingTable, getAppliedMigrations, getMigrationStatus, applyTrackedMigrations, } from "./migrate.js";
|
|
5
5
|
export { generateCrudRoutes, pluralize } from "./crud.js";
|
|
6
6
|
//# 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;
|
|
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,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/migrate.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ModelDefinition } from "./types.js";
|
|
1
|
+
import type { ModelDefinition, DbProvider } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Generate SQL migration statements that transform `fromModels` into
|
|
4
4
|
* `toModels`. This is a forward-only diff: it creates new tables, adds new
|
|
@@ -26,4 +26,49 @@ export declare function applyMigration(db: {
|
|
|
26
26
|
exec: (sql: string) => void;
|
|
27
27
|
};
|
|
28
28
|
}, sql: string[]): void;
|
|
29
|
+
/** A database client that can execute and query SQL (SQLite via better-sqlite3). */
|
|
30
|
+
export interface MigrationDbClient {
|
|
31
|
+
exec: (sql: string) => void;
|
|
32
|
+
prepare: (sql: string) => {
|
|
33
|
+
all: (...params: unknown[]) => unknown[];
|
|
34
|
+
run: (...params: unknown[]) => unknown;
|
|
35
|
+
get: (...params: unknown[]) => unknown;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Ensure the `_capstan_migrations` tracking table exists.
|
|
40
|
+
*/
|
|
41
|
+
export declare function ensureTrackingTable(client: MigrationDbClient, provider?: DbProvider): void;
|
|
42
|
+
/**
|
|
43
|
+
* Get the list of migration names that have already been applied.
|
|
44
|
+
*/
|
|
45
|
+
export declare function getAppliedMigrations(client: MigrationDbClient): string[];
|
|
46
|
+
export interface MigrationStatus {
|
|
47
|
+
applied: Array<{
|
|
48
|
+
name: string;
|
|
49
|
+
appliedAt: string;
|
|
50
|
+
}>;
|
|
51
|
+
pending: string[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Return which migrations have been applied and which are pending.
|
|
55
|
+
*
|
|
56
|
+
* @param client - The underlying database client (e.g. better-sqlite3 `Database`).
|
|
57
|
+
* @param allMigrationNames - Every migration file name, sorted chronologically.
|
|
58
|
+
* @param provider - The database provider (defaults to `"sqlite"`).
|
|
59
|
+
*/
|
|
60
|
+
export declare function getMigrationStatus(client: MigrationDbClient, allMigrationNames: string[], provider?: DbProvider): MigrationStatus;
|
|
61
|
+
/**
|
|
62
|
+
* Apply migration file SQL against a database, tracking each file in the
|
|
63
|
+
* `_capstan_migrations` table. Only files not yet recorded are executed.
|
|
64
|
+
*
|
|
65
|
+
* @param client - The underlying database client.
|
|
66
|
+
* @param migrations - Array of `{ name, sql }` objects (file name + raw SQL content).
|
|
67
|
+
* @param provider - The database provider (defaults to `"sqlite"`).
|
|
68
|
+
* @returns The list of migration names that were applied in this call.
|
|
69
|
+
*/
|
|
70
|
+
export declare function applyTrackedMigrations(client: MigrationDbClient, migrations: Array<{
|
|
71
|
+
name: string;
|
|
72
|
+
sql: string;
|
|
73
|
+
}>, provider?: DbProvider): string[];
|
|
29
74
|
//# sourceMappingURL=migrate.d.ts.map
|
package/dist/migrate.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgD,UAAU,EAAE,MAAM,YAAY,CAAC;AAyH5G;;;;;;;;;;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;AAiCD,oFAAoF;AACpF,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;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,GAAE,UAAqB,GAAG,IAAI,CAEpG;AAED;;GAEG;AACH,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;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EACzB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,QAAQ,GAAE,UAAqB,GAC9B,eAAe,CAajB;AAED;;;;;;;;GAQG;AACH,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"}
|
package/dist/migrate.js
CHANGED
|
@@ -186,4 +186,100 @@ export function applyMigration(db, sql) {
|
|
|
186
186
|
throw err;
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
// Migration tracking
|
|
191
|
+
// ---------------------------------------------------------------------------
|
|
192
|
+
/**
|
|
193
|
+
* SQL to create the `_capstan_migrations` tracking table, per provider.
|
|
194
|
+
*/
|
|
195
|
+
function createTrackingTableSQL(provider) {
|
|
196
|
+
switch (provider) {
|
|
197
|
+
case "postgres":
|
|
198
|
+
return `CREATE TABLE IF NOT EXISTS _capstan_migrations (
|
|
199
|
+
id SERIAL PRIMARY KEY,
|
|
200
|
+
name TEXT NOT NULL UNIQUE,
|
|
201
|
+
applied_at TIMESTAMP NOT NULL DEFAULT NOW()
|
|
202
|
+
)`;
|
|
203
|
+
case "mysql":
|
|
204
|
+
return `CREATE TABLE IF NOT EXISTS _capstan_migrations (
|
|
205
|
+
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
206
|
+
name VARCHAR(255) NOT NULL UNIQUE,
|
|
207
|
+
applied_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
208
|
+
)`;
|
|
209
|
+
case "sqlite":
|
|
210
|
+
default:
|
|
211
|
+
return `CREATE TABLE IF NOT EXISTS _capstan_migrations (
|
|
212
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
213
|
+
name TEXT NOT NULL UNIQUE,
|
|
214
|
+
applied_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
215
|
+
)`;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Ensure the `_capstan_migrations` tracking table exists.
|
|
220
|
+
*/
|
|
221
|
+
export function ensureTrackingTable(client, provider = "sqlite") {
|
|
222
|
+
client.exec(createTrackingTableSQL(provider));
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Get the list of migration names that have already been applied.
|
|
226
|
+
*/
|
|
227
|
+
export function getAppliedMigrations(client) {
|
|
228
|
+
const rows = client.prepare("SELECT name FROM _capstan_migrations ORDER BY id ASC").all();
|
|
229
|
+
return rows.map((r) => r.name);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Return which migrations have been applied and which are pending.
|
|
233
|
+
*
|
|
234
|
+
* @param client - The underlying database client (e.g. better-sqlite3 `Database`).
|
|
235
|
+
* @param allMigrationNames - Every migration file name, sorted chronologically.
|
|
236
|
+
* @param provider - The database provider (defaults to `"sqlite"`).
|
|
237
|
+
*/
|
|
238
|
+
export function getMigrationStatus(client, allMigrationNames, provider = "sqlite") {
|
|
239
|
+
ensureTrackingTable(client, provider);
|
|
240
|
+
const rows = client.prepare("SELECT name, applied_at FROM _capstan_migrations ORDER BY id ASC").all();
|
|
241
|
+
const appliedSet = new Set(rows.map((r) => r.name));
|
|
242
|
+
return {
|
|
243
|
+
applied: rows.map((r) => ({ name: r.name, appliedAt: r.applied_at })),
|
|
244
|
+
pending: allMigrationNames.filter((n) => !appliedSet.has(n)),
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Apply migration file SQL against a database, tracking each file in the
|
|
249
|
+
* `_capstan_migrations` table. Only files not yet recorded are executed.
|
|
250
|
+
*
|
|
251
|
+
* @param client - The underlying database client.
|
|
252
|
+
* @param migrations - Array of `{ name, sql }` objects (file name + raw SQL content).
|
|
253
|
+
* @param provider - The database provider (defaults to `"sqlite"`).
|
|
254
|
+
* @returns The list of migration names that were applied in this call.
|
|
255
|
+
*/
|
|
256
|
+
export function applyTrackedMigrations(client, migrations, provider = "sqlite") {
|
|
257
|
+
ensureTrackingTable(client, provider);
|
|
258
|
+
const applied = getAppliedMigrations(client);
|
|
259
|
+
const appliedSet = new Set(applied);
|
|
260
|
+
const pending = migrations.filter((m) => !appliedSet.has(m.name));
|
|
261
|
+
if (pending.length === 0)
|
|
262
|
+
return [];
|
|
263
|
+
const executed = [];
|
|
264
|
+
for (const migration of pending) {
|
|
265
|
+
const statements = migration.sql
|
|
266
|
+
.split(";")
|
|
267
|
+
.map((s) => s.trim())
|
|
268
|
+
.filter((s) => s.length > 0 && !s.startsWith("--"));
|
|
269
|
+
client.exec("BEGIN TRANSACTION");
|
|
270
|
+
try {
|
|
271
|
+
for (const stmt of statements) {
|
|
272
|
+
client.exec(stmt);
|
|
273
|
+
}
|
|
274
|
+
client.prepare("INSERT INTO _capstan_migrations (name) VALUES (?)").run(migration.name);
|
|
275
|
+
client.exec("COMMIT");
|
|
276
|
+
executed.push(migration.name);
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
client.exec("ROLLBACK");
|
|
280
|
+
throw err;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return executed;
|
|
284
|
+
}
|
|
189
285
|
//# sourceMappingURL=migrate.js.map
|
package/dist/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
import type { ModelDefinition } from "./types.js";
|
|
1
|
+
import type { ModelDefinition, DbProvider } from "./types.js";
|
|
2
|
+
type Provider = DbProvider;
|
|
2
3
|
/**
|
|
3
4
|
* Generate a Drizzle ORM schema file (as a TypeScript string) from an array
|
|
4
5
|
* of model definitions.
|
|
5
6
|
*
|
|
6
|
-
* The generated code targets
|
|
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.
|
|
7
15
|
*
|
|
8
16
|
* @example
|
|
9
17
|
* const src = generateDrizzleSchema([ticketModel, userModel]);
|
|
10
18
|
* fs.writeFileSync("schema.ts", src);
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* const src = generateDrizzleSchema([ticketModel], "postgres");
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* const src = generateDrizzleSchema([ticketModel], "mysql");
|
|
11
25
|
*/
|
|
12
|
-
export declare function generateDrizzleSchema(models: ModelDefinition[]): string;
|
|
26
|
+
export declare function generateDrizzleSchema(models: ModelDefinition[], provider?: Provider): string;
|
|
27
|
+
export {};
|
|
13
28
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,YAAY,CAAC;
|
|
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"}
|
package/dist/schema.js
CHANGED
|
@@ -30,7 +30,7 @@ function jsString(val) {
|
|
|
30
30
|
}
|
|
31
31
|
return String(val);
|
|
32
32
|
}
|
|
33
|
-
function
|
|
33
|
+
function sqliteColumnMapping(fieldType) {
|
|
34
34
|
switch (fieldType) {
|
|
35
35
|
case "string":
|
|
36
36
|
case "text":
|
|
@@ -47,12 +47,109 @@ function columnMapping(fieldType) {
|
|
|
47
47
|
return { builder: "text", import: "text", config: '{ mode: "json" }' };
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
function pgColumnMapping(fieldType) {
|
|
51
|
+
switch (fieldType) {
|
|
52
|
+
case "string":
|
|
53
|
+
return { builder: "varchar", import: "varchar", config: "{ length: 255 }" };
|
|
54
|
+
case "text":
|
|
55
|
+
return { builder: "text", import: "text" };
|
|
56
|
+
case "date":
|
|
57
|
+
return { builder: "date", import: "date" };
|
|
58
|
+
case "datetime":
|
|
59
|
+
return { builder: "timestamp", import: "timestamp" };
|
|
60
|
+
case "integer":
|
|
61
|
+
return { builder: "integer", import: "integer" };
|
|
62
|
+
case "number":
|
|
63
|
+
return { builder: "doublePrecision", import: "doublePrecision" };
|
|
64
|
+
case "boolean":
|
|
65
|
+
return { builder: "boolean", import: "boolean" };
|
|
66
|
+
case "json":
|
|
67
|
+
return { builder: "jsonb", import: "jsonb" };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function mysqlColumnMapping(fieldType) {
|
|
71
|
+
switch (fieldType) {
|
|
72
|
+
case "string":
|
|
73
|
+
return { builder: "varchar", import: "varchar", config: "{ length: 255 }" };
|
|
74
|
+
case "text":
|
|
75
|
+
return { builder: "text", import: "text" };
|
|
76
|
+
case "date":
|
|
77
|
+
return { builder: "varchar", import: "varchar", config: "{ length: 255 }" };
|
|
78
|
+
case "datetime":
|
|
79
|
+
return { builder: "datetime", import: "datetime" };
|
|
80
|
+
case "integer":
|
|
81
|
+
return { builder: "int", import: "int" };
|
|
82
|
+
case "number":
|
|
83
|
+
return { builder: "double", import: "double" };
|
|
84
|
+
case "boolean":
|
|
85
|
+
return { builder: "boolean", import: "boolean" };
|
|
86
|
+
case "json":
|
|
87
|
+
return { builder: "json", import: "json" };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function columnMapping(fieldType, provider) {
|
|
91
|
+
switch (provider) {
|
|
92
|
+
case "sqlite":
|
|
93
|
+
return sqliteColumnMapping(fieldType);
|
|
94
|
+
case "postgres":
|
|
95
|
+
return pgColumnMapping(fieldType);
|
|
96
|
+
case "mysql":
|
|
97
|
+
return mysqlColumnMapping(fieldType);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function providerMeta(provider) {
|
|
101
|
+
switch (provider) {
|
|
102
|
+
case "sqlite":
|
|
103
|
+
return {
|
|
104
|
+
tableBuilder: "sqliteTable",
|
|
105
|
+
importModule: "drizzle-orm/sqlite-core",
|
|
106
|
+
nowDefault: "(datetime('now'))",
|
|
107
|
+
};
|
|
108
|
+
case "postgres":
|
|
109
|
+
return {
|
|
110
|
+
tableBuilder: "pgTable",
|
|
111
|
+
importModule: "drizzle-orm/pg-core",
|
|
112
|
+
nowDefault: "now()",
|
|
113
|
+
};
|
|
114
|
+
case "mysql":
|
|
115
|
+
return {
|
|
116
|
+
tableBuilder: "mysqlTable",
|
|
117
|
+
importModule: "drizzle-orm/mysql-core",
|
|
118
|
+
nowDefault: "(NOW())",
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
// Auto-ID column expression per provider
|
|
124
|
+
// ---------------------------------------------------------------------------
|
|
125
|
+
/**
|
|
126
|
+
* Build the column expression and required imports for an auto-id primary key
|
|
127
|
+
* field. Each provider uses a slightly different column type:
|
|
128
|
+
* - SQLite: text("col").primaryKey()
|
|
129
|
+
* - Postgres: text("col").primaryKey()
|
|
130
|
+
* - MySQL: varchar("col", { length: 36 }).primaryKey()
|
|
131
|
+
*/
|
|
132
|
+
function autoIdExpr(colName, provider) {
|
|
133
|
+
switch (provider) {
|
|
134
|
+
case "sqlite":
|
|
135
|
+
return { expr: `text("${colName}").primaryKey()`, imports: ["text"] };
|
|
136
|
+
case "postgres":
|
|
137
|
+
return { expr: `text("${colName}").primaryKey()`, imports: ["text"] };
|
|
138
|
+
case "mysql":
|
|
139
|
+
return { expr: `varchar("${colName}", { length: 36 }).primaryKey()`, imports: ["varchar"] };
|
|
140
|
+
}
|
|
141
|
+
}
|
|
50
142
|
// ---------------------------------------------------------------------------
|
|
51
143
|
// Column expression builder
|
|
52
144
|
// ---------------------------------------------------------------------------
|
|
53
|
-
function buildColumnExpr(fieldName, def) {
|
|
145
|
+
function buildColumnExpr(fieldName, def, provider) {
|
|
54
146
|
const colName = toSnakeCase(fieldName);
|
|
55
|
-
|
|
147
|
+
// Auto-id fields get special treatment per provider
|
|
148
|
+
if (def.autoId) {
|
|
149
|
+
const result = autoIdExpr(colName, provider);
|
|
150
|
+
return { expr: result.expr, imports: result.imports, needsSql: false };
|
|
151
|
+
}
|
|
152
|
+
const mapping = columnMapping(def.type, provider);
|
|
56
153
|
let expr;
|
|
57
154
|
if (mapping.config) {
|
|
58
155
|
expr = `${mapping.builder}("${colName}", ${mapping.config})`;
|
|
@@ -60,24 +157,21 @@ function buildColumnExpr(fieldName, def) {
|
|
|
60
157
|
else {
|
|
61
158
|
expr = `${mapping.builder}("${colName}")`;
|
|
62
159
|
}
|
|
63
|
-
//
|
|
64
|
-
if (def.
|
|
65
|
-
expr += ".primaryKey()";
|
|
66
|
-
}
|
|
67
|
-
// NOT NULL for required fields (but not auto-id, which is already implied)
|
|
68
|
-
if (def.required && !def.autoId) {
|
|
160
|
+
// NOT NULL for required fields
|
|
161
|
+
if (def.required) {
|
|
69
162
|
expr += ".notNull()";
|
|
70
163
|
}
|
|
71
164
|
// Unique constraint
|
|
72
|
-
if (def.unique
|
|
165
|
+
if (def.unique) {
|
|
73
166
|
expr += ".unique()";
|
|
74
167
|
}
|
|
75
168
|
// Default values
|
|
169
|
+
let needsSql = false;
|
|
76
170
|
if (def.default !== undefined) {
|
|
77
171
|
if (def.default === "now") {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
172
|
+
const meta = providerMeta(provider);
|
|
173
|
+
expr += `.default(sql\`${meta.nowDefault}\`)`;
|
|
174
|
+
needsSql = true;
|
|
81
175
|
}
|
|
82
176
|
else if (typeof def.default === "string") {
|
|
83
177
|
expr += `.default(${jsString(def.default)})`;
|
|
@@ -92,7 +186,7 @@ function buildColumnExpr(fieldName, def) {
|
|
|
92
186
|
expr += `.default(${jsString(def.default)})`;
|
|
93
187
|
}
|
|
94
188
|
}
|
|
95
|
-
return expr;
|
|
189
|
+
return { expr, imports: [mapping.import], needsSql };
|
|
96
190
|
}
|
|
97
191
|
// ---------------------------------------------------------------------------
|
|
98
192
|
// Public API
|
|
@@ -101,22 +195,38 @@ function buildColumnExpr(fieldName, def) {
|
|
|
101
195
|
* Generate a Drizzle ORM schema file (as a TypeScript string) from an array
|
|
102
196
|
* of model definitions.
|
|
103
197
|
*
|
|
104
|
-
* The generated code targets
|
|
198
|
+
* The generated code targets the specified provider's drizzle package:
|
|
199
|
+
* - `"sqlite"` -> `drizzle-orm/sqlite-core`
|
|
200
|
+
* - `"postgres"` -> `drizzle-orm/pg-core`
|
|
201
|
+
* - `"mysql"` -> `drizzle-orm/mysql-core`
|
|
202
|
+
*
|
|
203
|
+
* @param models - Array of model definitions to generate schema for.
|
|
204
|
+
* @param provider - The database provider. Defaults to `"sqlite"` for
|
|
205
|
+
* backwards compatibility.
|
|
105
206
|
*
|
|
106
207
|
* @example
|
|
107
208
|
* const src = generateDrizzleSchema([ticketModel, userModel]);
|
|
108
209
|
* fs.writeFileSync("schema.ts", src);
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* const src = generateDrizzleSchema([ticketModel], "postgres");
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* const src = generateDrizzleSchema([ticketModel], "mysql");
|
|
109
216
|
*/
|
|
110
|
-
export function generateDrizzleSchema(models) {
|
|
217
|
+
export function generateDrizzleSchema(models, provider = "sqlite") {
|
|
218
|
+
const meta = providerMeta(provider);
|
|
111
219
|
// Collect all drizzle imports we need
|
|
112
|
-
const neededImports = new Set([
|
|
220
|
+
const neededImports = new Set([meta.tableBuilder]);
|
|
113
221
|
let needsSql = false;
|
|
114
222
|
// First pass: determine imports
|
|
115
223
|
for (const model of models) {
|
|
116
|
-
for (const def of Object.
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
224
|
+
for (const [fieldName, def] of Object.entries(model.fields)) {
|
|
225
|
+
const result = buildColumnExpr(fieldName, def, provider);
|
|
226
|
+
for (const imp of result.imports) {
|
|
227
|
+
neededImports.add(imp);
|
|
228
|
+
}
|
|
229
|
+
if (result.needsSql) {
|
|
120
230
|
needsSql = true;
|
|
121
231
|
}
|
|
122
232
|
}
|
|
@@ -124,7 +234,7 @@ export function generateDrizzleSchema(models) {
|
|
|
124
234
|
// Build import line
|
|
125
235
|
const importNames = [...neededImports].sort();
|
|
126
236
|
const lines = [];
|
|
127
|
-
lines.push(`import { ${importNames.join(", ")} } from "
|
|
237
|
+
lines.push(`import { ${importNames.join(", ")} } from "${meta.importModule}";`);
|
|
128
238
|
if (needsSql) {
|
|
129
239
|
lines.push(`import { sql } from "drizzle-orm";`);
|
|
130
240
|
}
|
|
@@ -133,13 +243,13 @@ export function generateDrizzleSchema(models) {
|
|
|
133
243
|
const tableName = pluralise(model.name);
|
|
134
244
|
const varName = tableName;
|
|
135
245
|
lines.push("");
|
|
136
|
-
lines.push(`export const ${varName} =
|
|
246
|
+
lines.push(`export const ${varName} = ${meta.tableBuilder}("${tableName}", {`);
|
|
137
247
|
const fieldEntries = Object.entries(model.fields);
|
|
138
248
|
for (let i = 0; i < fieldEntries.length; i++) {
|
|
139
249
|
const [fieldName, def] = fieldEntries[i];
|
|
140
|
-
const
|
|
250
|
+
const result = buildColumnExpr(fieldName, def, provider);
|
|
141
251
|
const comma = i < fieldEntries.length - 1 ? "," : ",";
|
|
142
|
-
lines.push(` ${fieldName}: ${expr}${comma}`);
|
|
252
|
+
lines.push(` ${fieldName}: ${result.expr}${comma}`);
|
|
143
253
|
}
|
|
144
254
|
lines.push("});");
|
|
145
255
|
}
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACpC,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/F,OAAO,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,GAAG,GAAG,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAY;IAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -32,8 +32,9 @@ export interface ModelDefinition {
|
|
|
32
32
|
relations: Record<string, RelationDefinition>;
|
|
33
33
|
indexes: IndexDefinition[];
|
|
34
34
|
}
|
|
35
|
+
export type DbProvider = "sqlite" | "postgres" | "mysql";
|
|
35
36
|
export interface DatabaseConfig {
|
|
36
|
-
provider:
|
|
37
|
+
provider: DbProvider;
|
|
37
38
|
url: string;
|
|
38
39
|
}
|
|
39
40
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7G,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yBAAyB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7G,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yBAAyB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zauso-ai/capstan-db",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "1.0.0-beta.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"drizzle-orm": "^0.44.0",
|
|
19
|
-
"better-sqlite3": "^11.0.0"
|
|
19
|
+
"better-sqlite3": "^11.0.0",
|
|
20
|
+
"pg": "^8.0.0",
|
|
21
|
+
"mysql2": "^3.0.0"
|
|
20
22
|
},
|
|
21
23
|
"peerDependenciesMeta": {
|
|
22
24
|
"drizzle-orm": {
|
|
@@ -24,6 +26,12 @@
|
|
|
24
26
|
},
|
|
25
27
|
"better-sqlite3": {
|
|
26
28
|
"optional": true
|
|
29
|
+
},
|
|
30
|
+
"pg": {
|
|
31
|
+
"optional": true
|
|
32
|
+
},
|
|
33
|
+
"mysql2": {
|
|
34
|
+
"optional": true
|
|
27
35
|
}
|
|
28
36
|
},
|
|
29
37
|
"description": "Database layer for Capstan — Drizzle ORM, defineModel, auto CRUD generation",
|