driftsql 1.0.32 → 2.0.0-beta.2
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/README.md +276 -96
- package/dist/index.d.ts +360 -37
- package/dist/index.js +81 -21
- package/dist/postgres-9C7eE0wB.js +5 -0
- package/dist/postgres-DWtAqXNK.js +1 -0
- package/dist/type-generator-Ba8bgnMm.js +7 -0
- package/dist/type-generator-DbcqBk-4.js +1 -0
- package/package.json +37 -24
- package/.prettierrc +0 -5
- package/dist/drivers/bun.d.ts +0 -22
- package/dist/drivers/libsql.d.ts +0 -23
- package/dist/drivers/mysql.d.ts +0 -20
- package/dist/drivers/neon.d.ts +0 -19
- package/dist/drivers/postgres.d.ts +0 -26
- package/dist/drivers/poubelle/client.d.ts +0 -20
- package/dist/drivers/poubelle/poubelle.d.ts +0 -11
- package/dist/drivers/sqlitecloud.d.ts +0 -21
- package/dist/drivers/surreal.d.ts +0 -17
- package/dist/inspect.d.ts +0 -7
- package/dist/pull.d.ts +0 -7
- package/dist/types.d.ts +0 -49
- package/tsconfig.json +0 -34
package/dist/index.d.ts
CHANGED
|
@@ -1,37 +1,360 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
1
|
+
//#region src/types.d.ts
|
|
2
|
+
interface QueryResult<T = any> {
|
|
3
|
+
rows: T[];
|
|
4
|
+
rowCount: number;
|
|
5
|
+
command?: string;
|
|
6
|
+
fields?: QueryField[];
|
|
7
|
+
}
|
|
8
|
+
interface QueryField {
|
|
9
|
+
name: string;
|
|
10
|
+
dataTypeID: number;
|
|
11
|
+
}
|
|
12
|
+
interface DatabaseDriver {
|
|
13
|
+
query<T = any>(sql: string, params?: any[]): Promise<QueryResult<T>>;
|
|
14
|
+
findFirst?(table: string, where?: Record<string, any>): Promise<QueryResult<any> | null>;
|
|
15
|
+
findMany?(table: string, options?: {
|
|
16
|
+
where?: Record<string, any>;
|
|
17
|
+
limit?: number;
|
|
18
|
+
offset?: number;
|
|
19
|
+
}): Promise<QueryResult<any>>;
|
|
20
|
+
insert?(table: string, data: Record<string, any>): Promise<QueryResult<any>>;
|
|
21
|
+
update?(table: string, data: Record<string, any>, where: Record<string, any>): Promise<QueryResult<any>>;
|
|
22
|
+
delete?(table: string, where: Record<string, any>): Promise<number>;
|
|
23
|
+
close(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
interface PreparedStatement {
|
|
26
|
+
execute<T = any>(params?: any[]): Promise<QueryResult<T>>;
|
|
27
|
+
finalize(): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
declare class DatabaseError extends Error {
|
|
30
|
+
readonly driverType: string;
|
|
31
|
+
readonly originalError?: Error | undefined;
|
|
32
|
+
constructor(message: string, driverType: string, originalError?: Error | undefined);
|
|
33
|
+
}
|
|
34
|
+
declare class QueryError extends DatabaseError {
|
|
35
|
+
constructor(driverType: string, sql: string, originalError?: Error);
|
|
36
|
+
}
|
|
37
|
+
declare class ConnectionError extends DatabaseError {
|
|
38
|
+
constructor(driverType: string, originalError?: Error);
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/utils/inspect.d.ts
|
|
42
|
+
interface InspectOptions {
|
|
43
|
+
driver: DatabaseDriver;
|
|
44
|
+
outputFile?: string;
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src/drivers/postgres.d.ts
|
|
48
|
+
interface PostgresDriverConfig {
|
|
49
|
+
connectionString: string;
|
|
50
|
+
max?: number;
|
|
51
|
+
idle_timeout?: number;
|
|
52
|
+
connect_timeout?: number;
|
|
53
|
+
}
|
|
54
|
+
declare class PostgresDriver implements DatabaseDriver {
|
|
55
|
+
private client;
|
|
56
|
+
findFirst?: (table: string, where?: Record<string, any>) => Promise<QueryResult<any> | null>;
|
|
57
|
+
findMany?: (table: string, options?: {
|
|
58
|
+
where?: Record<string, any>;
|
|
59
|
+
limit?: number;
|
|
60
|
+
offset?: number;
|
|
61
|
+
}) => Promise<QueryResult<any>>;
|
|
62
|
+
insert?: (table: string, data: Record<string, any>) => Promise<QueryResult<any>>;
|
|
63
|
+
update?: (table: string, data: Record<string, any>, where: Record<string, any>) => Promise<QueryResult<any>>;
|
|
64
|
+
delete?: (table: string, where: Record<string, any>) => Promise<number>;
|
|
65
|
+
constructor(config: PostgresDriverConfig);
|
|
66
|
+
query<T = any>(sql: string, params?: any[]): Promise<QueryResult<T>>;
|
|
67
|
+
close(): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
//#region src/drivers/helpers/postgres.d.ts
|
|
71
|
+
interface PostgresHelpers {
|
|
72
|
+
findFirst?(table: string, where?: Record<string, any>): Promise<QueryResult<any> | null>;
|
|
73
|
+
findMany?(table: string, options?: {
|
|
74
|
+
where?: Record<string, any>;
|
|
75
|
+
limit?: number;
|
|
76
|
+
offset?: number;
|
|
77
|
+
}): Promise<QueryResult<any>>;
|
|
78
|
+
insert?(table: string, data: Record<string, any>): Promise<QueryResult<any>>;
|
|
79
|
+
update?(table: string, data: Record<string, any>, where: Record<string, any>): Promise<QueryResult<any>>;
|
|
80
|
+
delete?(table: string, where: Record<string, any>): Promise<number>;
|
|
81
|
+
}
|
|
82
|
+
declare function createPostgresHelpers(driver: DatabaseDriver): PostgresHelpers;
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region src/drivers/helpers/mysql.d.ts
|
|
85
|
+
interface MySQLHelpers {
|
|
86
|
+
findFirst?(table: string, where?: Record<string, any>): Promise<QueryResult<any> | null>;
|
|
87
|
+
findMany?(table: string, options?: {
|
|
88
|
+
where?: Record<string, any>;
|
|
89
|
+
limit?: number;
|
|
90
|
+
offset?: number;
|
|
91
|
+
}): Promise<QueryResult<any>>;
|
|
92
|
+
insert?(table: string, data: Record<string, any>): Promise<QueryResult<any>>;
|
|
93
|
+
update?(table: string, data: Record<string, any>, where: Record<string, any>): Promise<QueryResult<any>>;
|
|
94
|
+
delete?(table: string, where: Record<string, any>): Promise<number>;
|
|
95
|
+
}
|
|
96
|
+
declare function createMySQLHelpers(driver: DatabaseDriver): MySQLHelpers;
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/drivers/helpers/sqlite.d.ts
|
|
99
|
+
interface SQLiteHelpers {
|
|
100
|
+
findFirst?(table: string, where?: Record<string, any>): Promise<QueryResult<any> | null>;
|
|
101
|
+
findMany?(table: string, options?: {
|
|
102
|
+
where?: Record<string, any>;
|
|
103
|
+
limit?: number;
|
|
104
|
+
offset?: number;
|
|
105
|
+
}): Promise<QueryResult<any>>;
|
|
106
|
+
insert?(table: string, data: Record<string, any>): Promise<QueryResult<any>>;
|
|
107
|
+
update?(table: string, data: Record<string, any>, where: Record<string, any>): Promise<QueryResult<any>>;
|
|
108
|
+
delete?(table: string, where: Record<string, any>): Promise<number>;
|
|
109
|
+
}
|
|
110
|
+
declare function createSQLiteHelpers(driver: DatabaseDriver): SQLiteHelpers;
|
|
111
|
+
//#endregion
|
|
112
|
+
//#region src/schema/types.d.ts
|
|
113
|
+
type ColumnType = 'serial' | 'bigserial' | 'integer' | 'bigint' | 'smallint' | 'text' | 'varchar' | 'char' | 'boolean' | 'timestamp' | 'timestamptz' | 'date' | 'time' | 'json' | 'jsonb' | 'uuid' | 'decimal' | 'numeric' | 'real' | 'double precision' | 'bytea';
|
|
114
|
+
interface ColumnDefinition {
|
|
115
|
+
name: string;
|
|
116
|
+
type: ColumnType;
|
|
117
|
+
length?: number;
|
|
118
|
+
precision?: number;
|
|
119
|
+
scale?: number;
|
|
120
|
+
primaryKey?: boolean;
|
|
121
|
+
notNull?: boolean;
|
|
122
|
+
unique?: boolean;
|
|
123
|
+
default?: string | number | boolean;
|
|
124
|
+
references?: {
|
|
125
|
+
table: string;
|
|
126
|
+
column: string;
|
|
127
|
+
onDelete?: 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION';
|
|
128
|
+
onUpdate?: 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION';
|
|
129
|
+
};
|
|
130
|
+
check?: string;
|
|
131
|
+
}
|
|
132
|
+
interface IndexDefinition {
|
|
133
|
+
name: string;
|
|
134
|
+
columns: string[];
|
|
135
|
+
unique?: boolean;
|
|
136
|
+
type?: 'btree' | 'hash' | 'gist' | 'gin';
|
|
137
|
+
}
|
|
138
|
+
interface TableDefinition {
|
|
139
|
+
name: string;
|
|
140
|
+
columns: ColumnDefinition[];
|
|
141
|
+
indexes?: IndexDefinition[];
|
|
142
|
+
primaryKey?: string[];
|
|
143
|
+
checks?: Array<{
|
|
144
|
+
name: string;
|
|
145
|
+
expression: string;
|
|
146
|
+
}>;
|
|
147
|
+
}
|
|
148
|
+
interface Migration {
|
|
149
|
+
version: string;
|
|
150
|
+
name: string;
|
|
151
|
+
up: string[];
|
|
152
|
+
down: string[];
|
|
153
|
+
}
|
|
154
|
+
type SQLDialect = 'postgres' | 'mysql' | 'sqlite';
|
|
155
|
+
//#endregion
|
|
156
|
+
//#region src/schema/column.d.ts
|
|
157
|
+
declare class Column {
|
|
158
|
+
private definition;
|
|
159
|
+
constructor(name: string, type: ColumnType);
|
|
160
|
+
length(len: number): this;
|
|
161
|
+
precision(p: number, s?: number): this;
|
|
162
|
+
primaryKey(): this;
|
|
163
|
+
notNull(): this;
|
|
164
|
+
unique(): this;
|
|
165
|
+
default(value: string | number | boolean): this;
|
|
166
|
+
references(table: string, column?: string): this;
|
|
167
|
+
onDelete(action: 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION'): this;
|
|
168
|
+
onUpdate(action: 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION'): this;
|
|
169
|
+
check(expression: string): this;
|
|
170
|
+
getDefinition(): ColumnDefinition;
|
|
171
|
+
}
|
|
172
|
+
declare function serial(name: string): Column;
|
|
173
|
+
declare function bigserial(name: string): Column;
|
|
174
|
+
declare function integer(name: string): Column;
|
|
175
|
+
declare function bigint(name: string): Column;
|
|
176
|
+
declare function smallint(name: string): Column;
|
|
177
|
+
declare function text(name: string): Column;
|
|
178
|
+
declare function varchar(name: string, length?: number): Column;
|
|
179
|
+
declare function char(name: string, length?: number): Column;
|
|
180
|
+
declare function boolean(name: string): Column;
|
|
181
|
+
declare function timestamp(name: string): Column;
|
|
182
|
+
declare function timestamptz(name: string): Column;
|
|
183
|
+
declare function date(name: string): Column;
|
|
184
|
+
declare function time(name: string): Column;
|
|
185
|
+
declare function json(name: string): Column;
|
|
186
|
+
declare function jsonb(name: string): Column;
|
|
187
|
+
declare function uuid(name: string): Column;
|
|
188
|
+
declare function decimal(name: string, precision?: number, scale?: number): Column;
|
|
189
|
+
declare function numeric(name: string, precision?: number, scale?: number): Column;
|
|
190
|
+
declare function real(name: string): Column;
|
|
191
|
+
declare function doublePrecision(name: string): Column;
|
|
192
|
+
declare function bytea(name: string): Column;
|
|
193
|
+
//#endregion
|
|
194
|
+
//#region src/schema/table.d.ts
|
|
195
|
+
declare class Table {
|
|
196
|
+
private definition;
|
|
197
|
+
constructor(name: string);
|
|
198
|
+
column(column: Column): this;
|
|
199
|
+
primaryKey(...columns: string[]): this;
|
|
200
|
+
index(name: string, columns: string[], options?: {
|
|
201
|
+
unique?: boolean;
|
|
202
|
+
type?: 'btree' | 'hash' | 'gist' | 'gin';
|
|
203
|
+
}): this;
|
|
204
|
+
unique(name: string, ...columns: string[]): this;
|
|
205
|
+
check(name: string, expression: string): this;
|
|
206
|
+
getDefinition(): TableDefinition;
|
|
207
|
+
}
|
|
208
|
+
declare function createTable(name: string, callback: (table: Table) => void): Table;
|
|
209
|
+
//#endregion
|
|
210
|
+
//#region src/schema/migration.d.ts
|
|
211
|
+
declare class MigrationBuilder {
|
|
212
|
+
private upStatements;
|
|
213
|
+
private downStatements;
|
|
214
|
+
private dialect;
|
|
215
|
+
constructor(dialect?: SQLDialect);
|
|
216
|
+
createTable(table: Table): this;
|
|
217
|
+
dropTable(tableName: string): this;
|
|
218
|
+
addColumn(tableName: string, columnSql: string): this;
|
|
219
|
+
dropColumn(tableName: string, columnName: string): this;
|
|
220
|
+
renameTable(oldName: string, newName: string): this;
|
|
221
|
+
raw(sql: string, downSql?: string): this;
|
|
222
|
+
build(version: string, name: string): Migration;
|
|
223
|
+
private getGenerator;
|
|
224
|
+
}
|
|
225
|
+
declare function createMigration(dialect?: SQLDialect): MigrationBuilder;
|
|
226
|
+
//#endregion
|
|
227
|
+
//#region src/schema/runner.d.ts
|
|
228
|
+
declare class MigrationRunner {
|
|
229
|
+
private client;
|
|
230
|
+
constructor(client: SQLClient);
|
|
231
|
+
ensureMigrationsTable(): Promise<void>;
|
|
232
|
+
getAppliedMigrations(): Promise<string[]>;
|
|
233
|
+
up(migration: Migration): Promise<void>;
|
|
234
|
+
down(migration: Migration): Promise<void>;
|
|
235
|
+
upAll(migrations: Migration[]): Promise<void>;
|
|
236
|
+
downAll(migrations: Migration[]): Promise<void>;
|
|
237
|
+
reset(migrations: Migration[]): Promise<void>;
|
|
238
|
+
}
|
|
239
|
+
//#endregion
|
|
240
|
+
//#region src/schema/differ.d.ts
|
|
241
|
+
interface SchemaChange {
|
|
242
|
+
type: 'create_table' | 'drop_table' | 'add_column' | 'drop_column' | 'modify_column' | 'create_index' | 'drop_index';
|
|
243
|
+
table: string;
|
|
244
|
+
details?: any;
|
|
245
|
+
}
|
|
246
|
+
declare class SchemaDiffer {
|
|
247
|
+
private dialect;
|
|
248
|
+
constructor(dialect?: SQLDialect);
|
|
249
|
+
detectChanges(oldSchema: TableDefinition[], newSchema: TableDefinition[]): SchemaChange[];
|
|
250
|
+
private detectColumnChanges;
|
|
251
|
+
private detectIndexChanges;
|
|
252
|
+
private hasColumnChanged;
|
|
253
|
+
generateMigration(changes: SchemaChange[], version: string, name: string): MigrationBuilder;
|
|
254
|
+
private generateColumnSQL;
|
|
255
|
+
private generateIndexSQL;
|
|
256
|
+
private formatDefault;
|
|
257
|
+
private getGenerator;
|
|
258
|
+
}
|
|
259
|
+
declare function detectChanges(oldSchema: TableDefinition[], newSchema: TableDefinition[], dialect?: SQLDialect): SchemaChange[];
|
|
260
|
+
declare function generateMigrationFromChanges(changes: SchemaChange[], version: string, name: string, dialect?: SQLDialect): MigrationBuilder;
|
|
261
|
+
//#endregion
|
|
262
|
+
//#region src/schema/snapshot.d.ts
|
|
263
|
+
interface SchemaSnapshot {
|
|
264
|
+
version: string;
|
|
265
|
+
timestamp: number;
|
|
266
|
+
tables: TableDefinition[];
|
|
267
|
+
}
|
|
268
|
+
declare class SnapshotManager {
|
|
269
|
+
private snapshotPath;
|
|
270
|
+
constructor(snapshotPath?: string);
|
|
271
|
+
save(tables: TableDefinition[]): Promise<void>;
|
|
272
|
+
load(): Promise<SchemaSnapshot | null>;
|
|
273
|
+
exists(): Promise<boolean>;
|
|
274
|
+
}
|
|
275
|
+
//#endregion
|
|
276
|
+
//#region src/schema/type-generator.d.ts
|
|
277
|
+
declare class TypeGenerator {
|
|
278
|
+
generateTypes(tables: TableDefinition[]): string;
|
|
279
|
+
private generateTableInterface;
|
|
280
|
+
private generateDatabaseInterface;
|
|
281
|
+
private columnToTypeScript;
|
|
282
|
+
private pascalCase;
|
|
283
|
+
writeToFile(tables: TableDefinition[], filePath: string): Promise<void>;
|
|
284
|
+
}
|
|
285
|
+
declare function generateTypesFromSchema(tables: TableDefinition[], outputPath: string): Promise<void>;
|
|
286
|
+
//#endregion
|
|
287
|
+
//#region src/schema/generators/postgres.d.ts
|
|
288
|
+
declare class PostgresGenerator {
|
|
289
|
+
generateCreateTable(table: TableDefinition): string;
|
|
290
|
+
generateDropTable(tableName: string): string;
|
|
291
|
+
private generateColumnDefinition;
|
|
292
|
+
private getColumnType;
|
|
293
|
+
private formatDefault;
|
|
294
|
+
private generateIndex;
|
|
295
|
+
}
|
|
296
|
+
//#endregion
|
|
297
|
+
//#region src/schema/generators/mysql.d.ts
|
|
298
|
+
declare class MySQLGenerator {
|
|
299
|
+
generateCreateTable(table: TableDefinition): string;
|
|
300
|
+
generateDropTable(tableName: string): string;
|
|
301
|
+
private generateColumnDefinition;
|
|
302
|
+
private getColumnType;
|
|
303
|
+
private formatDefault;
|
|
304
|
+
private generateIndex;
|
|
305
|
+
}
|
|
306
|
+
//#endregion
|
|
307
|
+
//#region src/schema/generators/sqlite.d.ts
|
|
308
|
+
declare class SQLiteGenerator {
|
|
309
|
+
generateCreateTable(table: TableDefinition): string;
|
|
310
|
+
generateDropTable(tableName: string): string;
|
|
311
|
+
private generateColumnDefinition;
|
|
312
|
+
private getColumnType;
|
|
313
|
+
private formatDefault;
|
|
314
|
+
private generateIndex;
|
|
315
|
+
}
|
|
316
|
+
//#endregion
|
|
317
|
+
//#region src/index.d.ts
|
|
318
|
+
interface ClientOptions<T extends DatabaseDriver = DatabaseDriver> {
|
|
319
|
+
driver: T;
|
|
320
|
+
fallbackDrivers?: DatabaseDriver[];
|
|
321
|
+
cacheTTL?: number;
|
|
322
|
+
}
|
|
323
|
+
declare class SQLClient<DT = any> {
|
|
324
|
+
private readonly primaryDriver;
|
|
325
|
+
private readonly fallbackDrivers;
|
|
326
|
+
private readonly queryCache;
|
|
327
|
+
private readonly cacheTTL;
|
|
328
|
+
private readonly maxCacheSize;
|
|
329
|
+
constructor(options: ClientOptions);
|
|
330
|
+
private isCacheValid;
|
|
331
|
+
private getCacheKey;
|
|
332
|
+
private maintainCacheSize;
|
|
333
|
+
private cacheResult;
|
|
334
|
+
private tryFallbackDrivers;
|
|
335
|
+
query<T = any>(sql: string, params?: any[]): Promise<QueryResult<T>>;
|
|
336
|
+
transaction<T>(callback: (client: SQLClient<DT>) => Promise<T>): Promise<T>;
|
|
337
|
+
prepare(sql: string): Promise<PreparedStatement>;
|
|
338
|
+
findFirst<K extends keyof DT>(table: K, where?: Partial<DT[K]>): Promise<DT[K] | null>;
|
|
339
|
+
findMany<K extends keyof DT>(table: K, options?: {
|
|
340
|
+
where?: Partial<DT[K]>;
|
|
341
|
+
limit?: number;
|
|
342
|
+
offset?: number;
|
|
343
|
+
}): Promise<DT[K][]>;
|
|
344
|
+
insert<K extends keyof DT>(table: K, data: Partial<DT[K]>): Promise<DT[K]>;
|
|
345
|
+
update<K extends keyof DT>(table: K, data: Partial<DT[K]>, where: Partial<DT[K]>): Promise<DT[K] | null>;
|
|
346
|
+
delete<K extends keyof DT>(table: K, where: Partial<DT[K]>): Promise<number>;
|
|
347
|
+
getDriver(): DatabaseDriver;
|
|
348
|
+
inspectDB(options?: InspectOptions): Promise<void>;
|
|
349
|
+
supportsTransactions(): boolean;
|
|
350
|
+
supportsPreparedStatements(): boolean;
|
|
351
|
+
clearCache(): void;
|
|
352
|
+
getCacheStats(): {
|
|
353
|
+
size: number;
|
|
354
|
+
ttl: number;
|
|
355
|
+
};
|
|
356
|
+
close(): Promise<void>;
|
|
357
|
+
}
|
|
358
|
+
declare const DriftSQLClient: typeof SQLClient;
|
|
359
|
+
//#endregion
|
|
360
|
+
export { ClientOptions, Column, ColumnDefinition, ColumnType, type ConnectionError, type DatabaseDriver, DriftSQLClient, IndexDefinition, Migration, MigrationBuilder, MigrationRunner, MySQLGenerator, MySQLHelpers, PostgresDriver, PostgresGenerator, PostgresHelpers, type QueryError, type QueryField, type QueryResult, SQLClient, SQLDialect, SQLiteGenerator, SQLiteHelpers, SchemaChange, SchemaDiffer, SchemaSnapshot, SnapshotManager, Table, TableDefinition, TypeGenerator, bigint, bigserial, boolean, bytea, char, createMigration, createMySQLHelpers, createPostgresHelpers, createSQLiteHelpers, createTable, date, decimal, detectChanges, doublePrecision, generateMigrationFromChanges, generateTypesFromSchema, integer, json, jsonb, numeric, real, serial, smallint, text, time, timestamp, timestamptz, uuid, varchar };
|