@fragno-dev/db 0.1.3 → 0.1.6
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/.turbo/turbo-build.log +43 -30
- package/CHANGELOG.md +19 -0
- package/dist/adapters/adapters.js +1 -0
- package/dist/adapters/drizzle/drizzle-adapter.d.ts +1 -1
- package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
- package/dist/adapters/drizzle/drizzle-adapter.js +9 -2
- package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
- package/dist/adapters/drizzle/generate.js +1 -1
- package/dist/adapters/drizzle/generate.js.map +1 -1
- package/dist/adapters/kysely/kysely-adapter.d.ts +1 -1
- package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -1
- package/dist/adapters/kysely/kysely-adapter.js +47 -27
- package/dist/adapters/kysely/kysely-adapter.js.map +1 -1
- package/dist/adapters/kysely/kysely-query-compiler.js +2 -2
- package/dist/adapters/kysely/kysely-query-compiler.js.map +1 -1
- package/dist/adapters/kysely/kysely-query.js +2 -1
- package/dist/adapters/kysely/kysely-query.js.map +1 -1
- package/dist/adapters/kysely/kysely-uow-compiler.js +2 -2
- package/dist/adapters/kysely/kysely-uow-compiler.js.map +1 -1
- package/dist/adapters/kysely/migration/execute-base.js +128 -0
- package/dist/adapters/kysely/migration/execute-base.js.map +1 -0
- package/dist/adapters/kysely/migration/execute-factory.js +28 -0
- package/dist/adapters/kysely/migration/execute-factory.js.map +1 -0
- package/dist/adapters/kysely/migration/execute-mssql.js +112 -0
- package/dist/adapters/kysely/migration/execute-mssql.js.map +1 -0
- package/dist/adapters/kysely/migration/execute-mysql.js +93 -0
- package/dist/adapters/kysely/migration/execute-mysql.js.map +1 -0
- package/dist/adapters/kysely/migration/execute-postgres.js +104 -0
- package/dist/adapters/kysely/migration/execute-postgres.js.map +1 -0
- package/dist/adapters/kysely/migration/execute-sqlite.js +123 -0
- package/dist/adapters/kysely/migration/execute-sqlite.js.map +1 -0
- package/dist/adapters/kysely/migration/execute.js +23 -168
- package/dist/adapters/kysely/migration/execute.js.map +1 -1
- package/dist/migration-engine/shared.d.ts +24 -5
- package/dist/migration-engine/shared.d.ts.map +1 -1
- package/dist/migration-engine/shared.js.map +1 -1
- package/dist/query/query.d.ts +4 -4
- package/dist/query/query.d.ts.map +1 -1
- package/dist/query/unit-of-work.d.ts +22 -22
- package/dist/query/unit-of-work.d.ts.map +1 -1
- package/dist/schema/create.d.ts +41 -41
- package/dist/schema/create.d.ts.map +1 -1
- package/package.json +7 -2
- package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +1 -1
- package/src/adapters/drizzle/drizzle-adapter.ts +13 -3
- package/src/adapters/drizzle/generate.test.ts +97 -0
- package/src/adapters/drizzle/generate.ts +3 -2
- package/src/adapters/kysely/kysely-adapter.ts +64 -35
- package/src/adapters/kysely/kysely-query-compiler.ts +3 -1
- package/src/adapters/kysely/kysely-query.ts +3 -1
- package/src/adapters/kysely/kysely-uow-compiler.ts +4 -2
- package/src/adapters/kysely/migration/execute-base.ts +256 -0
- package/src/adapters/kysely/migration/execute-factory.ts +32 -0
- package/src/adapters/kysely/migration/execute-mssql.ts +250 -0
- package/src/adapters/kysely/migration/execute-mysql.ts +211 -0
- package/src/adapters/kysely/migration/execute-postgres.ts +234 -0
- package/src/adapters/kysely/migration/execute-sqlite.test.ts +1363 -0
- package/src/adapters/kysely/migration/execute-sqlite.ts +247 -0
- package/src/adapters/kysely/migration/execute.ts +33 -396
- package/src/adapters/kysely/migration/kysely-migrator.test.ts +84 -2
- package/src/migration-engine/shared.ts +29 -11
- package/tsdown.config.ts +1 -0
package/dist/schema/create.d.ts
CHANGED
|
@@ -58,36 +58,36 @@ interface ForeignKey {
|
|
|
58
58
|
referencedTable: AnyTable;
|
|
59
59
|
referencedColumns: AnyColumn[];
|
|
60
60
|
}
|
|
61
|
-
declare class RelationInit<TRelationType
|
|
62
|
-
type: TRelationType
|
|
63
|
-
referencedTable: TTables[TTableName
|
|
61
|
+
declare class RelationInit<TRelationType extends RelationType, TTables extends Record<string, AnyTable>, TTableName extends keyof TTables> {
|
|
62
|
+
type: TRelationType;
|
|
63
|
+
referencedTable: TTables[TTableName];
|
|
64
64
|
referencer: AnyTable;
|
|
65
65
|
on: [string, string][];
|
|
66
|
-
constructor(type: TRelationType
|
|
66
|
+
constructor(type: TRelationType, referencedTable: TTables[TTableName], referencer: AnyTable);
|
|
67
67
|
}
|
|
68
|
-
interface Index<TColumns
|
|
68
|
+
interface Index<TColumns extends AnyColumn[] = AnyColumn[], TColumnNames extends readonly string[] = readonly string[]> {
|
|
69
69
|
name: string;
|
|
70
|
-
columns: TColumns
|
|
71
|
-
columnNames: TColumnNames
|
|
70
|
+
columns: TColumns;
|
|
71
|
+
columnNames: TColumnNames;
|
|
72
72
|
unique: boolean;
|
|
73
73
|
}
|
|
74
|
-
declare class ExplicitRelationInit<TRelationType
|
|
75
|
-
init(ormName: string): Relation<TRelationType
|
|
74
|
+
declare class ExplicitRelationInit<TRelationType extends RelationType, TTables extends Record<string, AnyTable>, TTableName extends keyof TTables> extends RelationInit<TRelationType, TTables, TTableName> {
|
|
75
|
+
init(ormName: string): Relation<TRelationType, TTables[TTableName]>;
|
|
76
76
|
}
|
|
77
|
-
interface Relation<TRelationType
|
|
77
|
+
interface Relation<TRelationType extends RelationType = RelationType, TTable extends AnyTable = AnyTable> {
|
|
78
78
|
id: string;
|
|
79
79
|
name: string;
|
|
80
|
-
type: TRelationType
|
|
80
|
+
type: TRelationType;
|
|
81
81
|
table: TTable;
|
|
82
82
|
referencer: AnyTable;
|
|
83
83
|
on: [string, string][];
|
|
84
84
|
}
|
|
85
|
-
interface Table<TColumns
|
|
85
|
+
interface Table<TColumns extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation> = Record<string, AnyRelation>, TIndexes extends Record<string, Index> = Record<string, Index>> {
|
|
86
86
|
name: string;
|
|
87
87
|
ormName: string;
|
|
88
|
-
columns: TColumns
|
|
89
|
-
relations: TRelations
|
|
90
|
-
indexes: TIndexes
|
|
88
|
+
columns: TColumns;
|
|
89
|
+
relations: TRelations;
|
|
90
|
+
indexes: TIndexes;
|
|
91
91
|
/**
|
|
92
92
|
* Get column by name
|
|
93
93
|
*/
|
|
@@ -144,24 +144,24 @@ type TypeMap = {
|
|
|
144
144
|
date: Date;
|
|
145
145
|
timestamp: Date;
|
|
146
146
|
} & Record<`varchar(${number})`, string>;
|
|
147
|
-
declare class Column<TType
|
|
148
|
-
type: TType
|
|
147
|
+
declare class Column<TType extends keyof TypeMap, TIn = unknown, TOut = unknown> {
|
|
148
|
+
type: TType;
|
|
149
149
|
name: string;
|
|
150
150
|
ormName: string;
|
|
151
151
|
isNullable: boolean;
|
|
152
152
|
role: "external-id" | "internal-id" | "version" | "reference" | "regular";
|
|
153
153
|
isHidden: boolean;
|
|
154
154
|
default?: {
|
|
155
|
-
value: TypeMap[TType
|
|
155
|
+
value: TypeMap[TType];
|
|
156
156
|
} | {
|
|
157
157
|
dbSpecial: "now";
|
|
158
158
|
} | {
|
|
159
|
-
runtime: "cuid" | "now" | (() => TypeMap[TType
|
|
159
|
+
runtime: "cuid" | "now" | (() => TypeMap[TType]);
|
|
160
160
|
};
|
|
161
161
|
tableName: string;
|
|
162
|
-
constructor(type: TType
|
|
163
|
-
nullable<TNullable extends boolean = true>(nullable?: TNullable): Column<TType
|
|
164
|
-
hidden<THidden extends boolean = true>(hidden?: THidden): Column<TType
|
|
162
|
+
constructor(type: TType);
|
|
163
|
+
nullable<TNullable extends boolean = true>(nullable?: TNullable): Column<TType, TNullable extends true ? TIn | null : Exclude<TIn, null>, TNullable extends true ? TOut | null : Exclude<TOut, null>>;
|
|
164
|
+
hidden<THidden extends boolean = true>(hidden?: THidden): Column<TType, null, null>;
|
|
165
165
|
/**
|
|
166
166
|
* Generate default value at runtime in application code (not in the database).
|
|
167
167
|
*
|
|
@@ -184,7 +184,7 @@ declare class Column<TType$1 extends keyof TypeMap, TIn = unknown, TOut = unknow
|
|
|
184
184
|
* column("integer").defaultTo$((b) => Math.floor(Math.random() * 100)) // Custom function
|
|
185
185
|
* ```
|
|
186
186
|
*/
|
|
187
|
-
defaultTo$(value: TypeMap[TType
|
|
187
|
+
defaultTo$(value: TypeMap[TType] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType])): Column<TType, TIn | null, TOut>;
|
|
188
188
|
/**
|
|
189
189
|
* Set a database-level default value (generated by the database, not application code).
|
|
190
190
|
*
|
|
@@ -207,13 +207,13 @@ declare class Column<TType$1 extends keyof TypeMap, TIn = unknown, TOut = unknow
|
|
|
207
207
|
* column("timestamp").defaultTo((b) => b.now())
|
|
208
208
|
* ```
|
|
209
209
|
*/
|
|
210
|
-
defaultTo(value: TypeMap[TType
|
|
210
|
+
defaultTo(value: TypeMap[TType] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType])): Column<TType, TIn | null, TOut>;
|
|
211
211
|
/**
|
|
212
212
|
* Generate default value for the column at runtime.
|
|
213
213
|
* Used for both runtime defaults (defaultTo$) and fallback generation for
|
|
214
214
|
* database defaults (defaultTo) when the database doesn't support them.
|
|
215
215
|
*/
|
|
216
|
-
generateDefaultValue(): TypeMap[TType
|
|
216
|
+
generateDefaultValue(): TypeMap[TType] | undefined;
|
|
217
217
|
/**
|
|
218
218
|
* @description This is used for type inference only. Runtime value will be undefined.
|
|
219
219
|
* @internal
|
|
@@ -225,10 +225,10 @@ declare class Column<TType$1 extends keyof TypeMap, TIn = unknown, TOut = unknow
|
|
|
225
225
|
*/
|
|
226
226
|
get $out(): TOut;
|
|
227
227
|
}
|
|
228
|
-
declare class IdColumn<TType
|
|
228
|
+
declare class IdColumn<TType extends IdColumnType = IdColumnType, TIn = unknown, TOut = unknown> extends Column<TType, TIn, TOut> {
|
|
229
229
|
id: boolean;
|
|
230
|
-
defaultTo$(value: TypeMap[TType
|
|
231
|
-
defaultTo(value: TypeMap[TType
|
|
230
|
+
defaultTo$(value: TypeMap[TType] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType])): IdColumn<TType, TIn | null, TOut>;
|
|
231
|
+
defaultTo(value: TypeMap[TType] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType])): IdColumn<TType, TIn | null, TOut>;
|
|
232
232
|
}
|
|
233
233
|
/**
|
|
234
234
|
* Internal ID column - used for database-native joins and foreign keys.
|
|
@@ -246,7 +246,7 @@ declare class VersionColumn<TIn = unknown, TOut = unknown> extends Column<"integ
|
|
|
246
246
|
role: "version";
|
|
247
247
|
constructor();
|
|
248
248
|
}
|
|
249
|
-
declare function column<TType
|
|
249
|
+
declare function column<TType extends keyof TypeMap>(type: TType): Column<TType, TypeMap[TType], TypeMap[TType]>;
|
|
250
250
|
/**
|
|
251
251
|
* Create a reference column that points to another table's internal ID.
|
|
252
252
|
* This is used for foreign key relationships.
|
|
@@ -329,32 +329,32 @@ declare class FragnoReference {
|
|
|
329
329
|
get internalId(): bigint;
|
|
330
330
|
}
|
|
331
331
|
type RelationType = "one" | "many";
|
|
332
|
-
declare class TableBuilder<TColumns
|
|
332
|
+
declare class TableBuilder<TColumns extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation> = Record<string, AnyRelation>, TIndexes extends Record<string, Index> = Record<string, Index>> {
|
|
333
333
|
#private;
|
|
334
334
|
constructor(name: string);
|
|
335
|
-
setColumns(columns: TColumns
|
|
336
|
-
setRelations(relations: TRelations
|
|
337
|
-
setIndexes(indexes: TIndexes
|
|
335
|
+
setColumns(columns: TColumns): void;
|
|
336
|
+
setRelations(relations: TRelations): void;
|
|
337
|
+
setIndexes(indexes: TIndexes): void;
|
|
338
338
|
getIndexes(): Index[];
|
|
339
339
|
getColumnOrder(): string[];
|
|
340
340
|
/**
|
|
341
341
|
* Add a column to the table.
|
|
342
342
|
*/
|
|
343
|
-
addColumn<TColumnName extends string, TColumn extends AnyColumn>(ormName: TColumnName, col: TColumn): TableBuilder<TColumns
|
|
343
|
+
addColumn<TColumnName extends string, TColumn extends AnyColumn>(ormName: TColumnName, col: TColumn): TableBuilder<TColumns & Record<TColumnName, TColumn>, TRelations, TIndexes>;
|
|
344
344
|
/**
|
|
345
345
|
* Add a column to the table with simplified syntax.
|
|
346
346
|
*/
|
|
347
|
-
addColumn<TColumnName extends string, TType extends keyof TypeMap>(ormName: TColumnName, type: TType): TableBuilder<TColumns
|
|
347
|
+
addColumn<TColumnName extends string, TType extends keyof TypeMap>(ormName: TColumnName, type: TType): TableBuilder<TColumns & Record<TColumnName, Column<TType, TypeMap[TType], TypeMap[TType]>>, TRelations, TIndexes>;
|
|
348
348
|
/**
|
|
349
349
|
* Create an index on the specified columns.
|
|
350
350
|
*/
|
|
351
|
-
createIndex<TIndexName extends string, const TColumnNames extends readonly (string & keyof TColumns
|
|
351
|
+
createIndex<TIndexName extends string, const TColumnNames extends readonly (string & keyof TColumns)[]>(name: TIndexName, columns: TColumnNames, options?: {
|
|
352
352
|
unique?: boolean;
|
|
353
|
-
}): TableBuilder<TColumns
|
|
353
|
+
}): TableBuilder<TColumns, TRelations, TIndexes & Record<TIndexName, Index<ColumnsToTuple<TColumns, TColumnNames>, TColumnNames>>>;
|
|
354
354
|
/**
|
|
355
355
|
* Build the final table. This should be called after all columns are added.
|
|
356
356
|
*/
|
|
357
|
-
build(): Table<TColumns
|
|
357
|
+
build(): Table<TColumns, TRelations, TIndexes>;
|
|
358
358
|
}
|
|
359
359
|
interface Schema<TTables extends Record<string, AnyTable> = Record<string, AnyTable>> {
|
|
360
360
|
/**
|
|
@@ -373,16 +373,16 @@ interface Schema<TTables extends Record<string, AnyTable> = Record<string, AnyTa
|
|
|
373
373
|
* Utility type for updating a single table's relations in a schema.
|
|
374
374
|
* Used to properly type the return value of addReference.
|
|
375
375
|
*/
|
|
376
|
-
type UpdateTableRelations<TTables extends Record<string, AnyTable>, TTableName
|
|
376
|
+
type UpdateTableRelations<TTables extends Record<string, AnyTable>, TTableName extends keyof TTables, TReferenceName extends string, TReferencedTableName extends keyof TTables, TRelationType extends RelationType = RelationType> = { [K in keyof TTables]: K extends TTableName ? Table<TTables[TTableName]["columns"], TTables[TTableName]["relations"] & Record<TReferenceName, Relation<TRelationType, TTables[TReferencedTableName]>>, TTables[TTableName]["indexes"]> : TTables[K] };
|
|
377
377
|
/**
|
|
378
378
|
* Utility type for updating a single table in a schema.
|
|
379
379
|
* Used to properly type the return value of alterTable.
|
|
380
380
|
*/
|
|
381
|
-
type UpdateTable<TTables extends Record<string, AnyTable>, TTableName
|
|
381
|
+
type UpdateTable<TTables extends Record<string, AnyTable>, TTableName extends keyof TTables, TNewColumns extends Record<string, AnyColumn>, TNewRelations extends Record<string, AnyRelation>, TNewIndexes extends Record<string, Index>> = { [K in keyof TTables]: K extends TTableName ? Table<TNewColumns, TNewRelations, TNewIndexes> : TTables[K] };
|
|
382
382
|
/**
|
|
383
383
|
* Map an array of column names to a tuple of their actual column types
|
|
384
384
|
*/
|
|
385
|
-
type ColumnsToTuple<TColumns
|
|
385
|
+
type ColumnsToTuple<TColumns extends Record<string, AnyColumn>, TColumnNames extends readonly (keyof TColumns)[]> = { [K in keyof TColumnNames]: TColumnNames[K] extends keyof TColumns ? TColumns[TColumnNames[K]] : never } & AnyColumn[];
|
|
386
386
|
declare class SchemaBuilder<TTables extends Record<string, AnyTable> = {}> {
|
|
387
387
|
#private;
|
|
388
388
|
constructor(existingSchema?: Schema<TTables>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","names":[],"sources":["../../src/schema/create.ts"],"sourcesContent":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.d.ts","names":[],"sources":["../../src/schema/create.ts"],"sourcesContent":[],"mappings":";KAEY,SAAA,GAAY,OAAO,eAAe;AAAlC,KAEA,WAAA,GAAc,QAFL;AAAyB,KAIlC,QAAA,GAAW,KAJuB;AAAf,KAMnB,SAAA,GACR,MAP2B,CAAA,MAOd,OAPc,EAAA,OAAA,EAAA,OAAA,CAAA,GAQ3B,QAR2B,CAQlB,YARkB,EAAA,OAAA,EAAA,OAAA,CAAA,GAS3B,gBAT2B,CAAA,OAAA,EAAA,OAAA,CAAA,GAU3B,aAV2B,CAAA,OAAA,EAAA,OAAA,CAAA;;;AAE/B;AAEA;AAEY,KASA,iBAAA,GATS;EACJ,IAAA,EAAA,YAAA;EAAb,UAAA,EAAA,MAAA;EACS,MAAA,EAQyC,SARzC;CAAT,GAAA;EACA,IAAA,EAAA,WAAA;EACA,IAAA,EAAA,MAAA;EAAa,OAAA,EAAA,MAAA,EAAA;EAKL,MAAA,EAAA,OAAA;AAeZ,CAAA,GAAY;EAsBK,IAAA,EAAA,iBAAU;EAElB,IAAA,EAAA,MAAA;EACE,OAAA,EAAA,MAAA,EAAA;EAEQ,eAAA,EAAA,MAAA;EACE,iBAAA,EAAA,MAAA,EAAA;CAAS;AAC7B;;;;AAK0B,KAlCf,eAAA,GAkCe;EAEnB,IAAA,EAAA,WAAA;EACW,SAAA,EAAA,MAAA;EAAQ,UAAA,EAjCT,iBAiCS,EAAA;CACb,GAAA;EAGM,IAAA,EAAA,aAAA;EAAgC,SAAA,EAAA,MAAA;EAAQ,UAAA,EAhC1C,iBAgC0C,EAAA;CAAyB,GAAA;EAAQ,IAAA,EAAA,eAAA;EAO5E,SAAK,EAAA,MAAA;EACH,aAAA,EAAA,MAAA;EAAc,MAAA,EAAA;IAItB,IAAA,EAAA,KAAA,GAAA,MAAA;IACI,IAAA,EAAA;MAAY,KAAA,EAAA,MAAA;MAId,MAAA,EAAA,MAAA;IACW,CAAA;IACS,EAAA,EAAA;MAAf,KAAA,EAAA,MAAA;MACS,MAAA,EAAA,MAAA;IACJ,CAAA;EAAe,CAAA;CAAS;AACb,UAzCjB,UAAA,CAyCiB;EAAe,IAAA,EAAA,MAAA;EAAQ,KAAA,EAvChD,QAuCgD;EAAhC,OAAA,EAtCd,SAsCc,EAAA;EADf,eAAA,EAnCS,QAmCT;EAAY,iBAAA,EAlCD,SAkCC,EAAA;AAetB;cA9CM,YA+CkB,CAAA,sBA9CA,YA8CA,EAAA,gBA7CN,MA6CM,CAAA,MAAA,EA7CS,QA6CT,CAAA,EAAA,mBAAA,MA5CG,OA4CH,CAAA,CAAA;EAAe,IAAA,EA1C/B,aA0C+B;EACtB,eAAA,EA1CE,OA0CF,CA1CU,UA0CV,CAAA;EAAW,UAAA,EAzCd,QAyCc;EAIpB,EAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA;EAEC,WAAA,CAAA,IAAA,EA5CW,aA4CX,EAAA,eAAA,EA5C2C,OA4C3C,CA5CmD,UA4CnD,CAAA,EAAA,UAAA,EA5C4E,QA4C5E;;AACa,UAtCL,KAsCK,CAAA,iBArCH,SAqCG,EAAA,GArCW,SAqCX,EAAA,EAAA,qBAAA,SAAA,MAAA,EAAA,GAAA,SAAA,MAAA,EAAA,CAAA,CAAA;EAKL,IAAA,EAAA,MAAK;EACY,OAAA,EAvCvB,QAuCuB;EAAf,WAAA,EAtCJ,YAsCI;EAA2C,MAAA,EAAA,OAAA;;AAC1B,cAnCvB,oBAmCuB,CAAA,sBAlCZ,YAkCY,EAAA,gBAjClB,MAiCkB,CAAA,MAAA,EAjCH,QAiCG,CAAA,EAAA,mBAAA,MAhCT,OAgCS,CAAA,SA/B1B,YA+B0B,CA/Bb,aA+Ba,EA/BE,OA+BF,EA/BW,UA+BX,CAAA,CAAA;EAAf,IAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EA9BI,QA8BJ,CA9Ba,aA8Bb,EA9B4B,OA8B5B,CA9BoC,UA8BpC,CAAA,CAAA;;AAA8B,UAhBlC,QAgBkC,CAAA,sBAf3B,YAe2B,GAfZ,YAeY,EAAA,eAdlC,QAckC,GAdvB,QAcuB,CAAA,CAAA;EACjB,EAAA,EAAA,MAAA;EAAf,IAAA,EAAA,MAAA;EAAuC,IAAA,EAXlD,aAWkD;EAAf,KAAA,EATlC,MASkC;EAKhC,UAAA,EAbG,QAaH;EACE,EAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA;;AAMwB,UAfpB,KAeoB,CAAA,iBAdlB,MAckB,CAAA,MAAA,EAdH,SAcG,CAAA,GAdU,MAcV,CAAA,MAAA,EAdyB,SAczB,CAAA,EAAA,mBAbhB,MAagB,CAAA,MAAA,EAbD,WAaC,CAAA,GAbc,MAad,CAAA,MAAA,EAb6B,WAa7B,CAAA,EAAA,iBAZlB,MAYkB,CAAA,MAAA,EAZH,KAYG,CAAA,GAZM,MAYN,CAAA,MAAA,EAZqB,KAYrB,CAAA,CAAA,CAAA;EAIhB,IAAA,EAAA,MAAA;EAIQ,OAAA,EAAA,MAAA;EAIH,OAAA,EAnBf,QAmBe;EAAS,SAAA,EAlBtB,UAkBsB;EAG9B,OAAA,EApBM,QAoBG;EACT;AAKL;AAQA;EAgBK,eAAY,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,GA7CoB,SA6CpB,GAAA,SAAA;EAEL;;;EAYC,WAAA,EAAA,GAAA,GAvDQ,SAuDR;EACT;;AAEJ;EAAwC,mBAAA,EAAA,GAAA,GAtDX,SAsDW;EAChC;;;EAUiC,gBAAA,EAAA,GAAA,GA7Df,SA6De;;KA1DpC,SAAA,GA8De;EAIoC,GAAA,EAAA,SAAA;EAIlD,KAAA,EAAA,KAAA;CACA;KAtED,cAAA,GAsE0B;EAAqB,GAAA,EAAA,SAAA;EAAR,KAAA,EAAA,MAAA,GAAA,KAAA;CACtC;;;;AAHa,UA/DF,cAAA,CA+DE;EAO+B;EAExB,GAAA,EAAA,EAtEjB,SAsEiB;;;;;AA0BuC,UA1FhD,qBAAA,CA0FgD;EAAiB;EAAQ,IAAA,EAAA,EAxFhF,cAwFgF;EAC9E;EAAO,GAAA,EAAA,EAvFV,cAuFU;;KA3Ed,YAAA,GA2EA,WAAA,MAAA,GAAA;AA6CM,KAtHC,OAAA,GAsHD;EAAQ,MAAA,EAAA,MAAA;EAAoB,MAAA,EAAA,MAAA;EAAmB,OAAA,EAAA,MAAA;EAAY,OAAA,EAAA,MAAA;EAAQ,IAAA,EAAA,OAAA;EAClE,IAAA,EAAA,OAAA;EAAO;;;EAyBO,MAAA,EAtIhB,UAsIgB;EAAQ,IAAA,EArI1B,IAqI0B;EAiCrB,SAAA,EArKA,IAqKA;CAQC,GA5KV,MA4KU,CAAA,WAAA,MAAA,GAAA,EAAA,MAAA,CAAA;AAAI,cA1KL,MA0KK,CAAA,cAAA,MA1KsB,OA0KtB,EAAA,MAAA,OAAA,EAAA,OAAA,OAAA,CAAA,CAAA;EAKL,IAAA,EA9KL,KA8Ka;EACL,IAAA,EAAA,MAAA;EAAe,OAAA,EAAA,MAAA;EAGd,UAAA,EAAA,OAAA;EAAO,IAAA,EAAA,aAAA,GAAA,aAAA,GAAA,SAAA,GAAA,WAAA,GAAA,SAAA;EAAK,QAAA,EAAA,OAAA;EAIlB,OAAA,CAAA,EAAA;IAAQ,KAAA,EA9KJ,OA8KI,CA9KI,KA8KJ,CAAA;EAAoB,CAAA,GAAA;IAA0B,SAAA,EAAA,KAAA;EAAiB,CAAA,GAAA;IAAQ,OAAA,EAAA,MAAA,GAAA,KAAA,GAAA,CAAA,GAAA,GA5KjD,OA4KiD,CA5KzC,KA4KyC,CAAA,CAAA;EAE3C,CAAA;EAAO,SAAA,EAAA,MAAA;EAAY,WAAA,CAAA,IAAA,EA1K9C,KA0K8C;EAA5B,QAAA,CAAA,kBAAA,OAAA,GAAA,IAAA,CAAA,CAAA,QAAA,CAAA,EAtKkB,SAsKlB,CAAA,EAnKnB,MAmKmB,CAlKhC,KAkKgC,EAjKhC,SAiKgC,SAAA,IAAA,GAjKP,GAiKO,GAAA,IAAA,GAjKM,OAiKN,CAjKc,GAiKd,EAAA,IAAA,CAAA,EAhKhC,SAgKgC,SAAA,IAAA,GAhKP,IAgKO,GAAA,IAAA,GAhKO,OAgKP,CAhKe,IAgKf,EAAA,IAAA,CAAA,CAAA;EAI3B,MAAA,CAAA,gBAAA,OAAA,GAAA,IAAA,CAAA,CAAA,MAAA,CAAA,EAhKuC,OAgKvC,CAAA,EA9JQ,MA8JR,CA9Je,KA8Jf,EAAA,IAAA,EAAA,IAAA,CAAA;EAAQ;;;;;;;;;;;AAUnB;;;;;AAaA;;;;;AASA;EAA2C,UAAA,CAAA,KAAA,EApKhC,OAoKgC,CApKxB,KAoKwB,CAAA,GAAA,CAAA,CAAA,OAAA,EApKJ,qBAoKI,EAAA,GApKsB,cAoKtB,GApKuC,OAoKvC,CApK+C,KAoK/C,CAAA,CAAA,CAAA,EAnKtC,MAmKsC,CAnK/B,KAmK+B,EAnKxB,GAmKwB,GAAA,IAAA,EAnKZ,IAmKY,CAAA;EACnC;;;;;;;;AAUR;;;;;;AAiBA;;;;;AAYA;AAWA;AAcA;EAMI,SAAA,CAAA,KAAA,EA7LO,OA6LP,CA7Le,KA6Lf,CAAA,GAAA,CAAA,CAAA,OAAA,EA7LmC,cA6LnC,EAAA,GA7LsD,SA6LtD,GA7LkE,OA6LlE,CA7L0E,KA6L1E,CAAA,CAAA,CAAA,EA5LC,MA4LD,CA5LQ,KA4LR,EA5Le,GA4Lf,GAAA,IAAA,EA5L2B,IA4L3B,CAAA;EACA;;;;AAgEJ;EAsBK,oBAAY,CAAA,CAAA,EA1PS,OA0PT,CA1PiB,KA0PjB,CAAA,GAAA,SAAA;EAEJ;;;;EACkC,IAAA,GAAA,CAAA,CAAA,EA5NlC,GA4NkC;EACX;;;;EACF,IAAA,IAAA,CAAA,CAAA,EAtNpB,IAsNoB;;AAAwB,cAjN7C,QAiN6C,CAAA,cAhN1C,YAgN0C,GAhN3B,YAgN2B,EAAA,MAAA,OAAA,EAAA,OAAA,OAAA,CAAA,SA7MhD,MA6MgD,CA7MzC,KA6MyC,EA7MlC,GA6MkC,EA7M7B,IA6M6B,CAAA,CAAA;EAAf,EAAA,EAAA,OAAA;EAiBrB,UAAA,CAAA,KAAA,EA1NX,OA0NW,CA1NH,KA0NG,CAAA,GAAA,CAAA,CAAA,OAAA,EA1NiB,qBA0NjB,EAAA,GA1N2C,cA0N3C,GA1N4D,OA0N5D,CA1NoE,KA0NpE,CAAA,CAAA,CAAA,EAxNgB,QAwNhB,CAxNyB,KAwNzB,EAxNgC,GAwNhC,GAAA,IAAA,EAxN4C,IAwN5C,CAAA;EAII,SAAA,CAAA,KAAA,EAxNf,OAwNe,CAxNP,KAwNO,CAAA,GAAA,CAAA,CAAA,OAAA,EAxNa,cAwNb,EAAA,GAxNgC,SAwNhC,GAxN4C,OAwN5C,CAxNoD,KAwNpD,CAAA,CAAA,CAAA,EAtNW,QAsNX,CAtNoB,KAsNpB,EAtN2B,GAsN3B,GAAA,IAAA,EAtNuC,IAsNvC,CAAA;;;;;;AAuBR,cArOL,gBAqOK,CAAA,MAAA,OAAA,EAAA,OAAA,OAAA,CAAA,SArOmD,MAqOnD,CAAA,QAAA,EArOoE,GAqOpE,EArOyE,IAqOzE,CAAA,CAAA;EAAkB,IAAA,EAAA,aAAA;EAAa,WAAA,CAAA;;;;;;AAMpC,cA9NA,aA8NA,CAAA,MAAA,OAAA,EAAA,OAAA,OAAA,CAAA,SA9NqD,MA8NrD,CAAA,SAAA,EA9NuE,GA8NvE,EA9N4E,IA8N5E,CAAA,CAAA;EACH,IAAA,EAAA,SAAA;EAEN,WAAA,CAAA;;AAAsC,iBAxN1B,MAwN0B,CAAA,cAAA,MAxNC,OAwND,CAAA,CAAA,IAAA,EAvNlC,KAuNkC,CAAA,EAtNvC,MAsNuC,CAtNhC,KAsNgC,EAtNzB,OAsNyB,CAtNjB,KAsNiB,CAAA,EAtNT,OAsNS,CAtND,KAsNC,CAAA,CAAA;;;;;;AAA3B,iBA7MC,eAAA,CAAA,CA6MD,EA7MoB,MA6MpB,CAAA,QAAA,EAAA,MAAA,GAAA,MAAA,GA3MK,QA2ML,GA3MgB,eA2MhB,EA1Mb,eA0Ma,CAAA;;;;;;AAmCF,iBA/NG,QAAA,CAAA,CA+NH,EA/Ne,QA+Nf,CAAA,aAAA,EAAA,MAAA,GA/NgD,QA+NhD,GAAA,IAAA,EA/NiE,QA+NjE,CAAA;;;;;;AAKoD,iBAxNjD,gBAAA,CAAA,CAwNiD,EAxN7B,gBAwN6B,CAAA,IAAA,EAAA,MAAA,CAAA;;;;;AAH5D,iBA1MW,aAAA,CAAA,CA0MX,EA1M4B,aA0M5B,CAAA,IAAA,EAAA,MAAA,CAAA;;;;;;AAgHL;;AAAwC,cA5S3B,QAAA,CA4S2B;EAA0C,CAAA,OAAA;EAAf,WAAA,CAAA;IAAA,UAAA;IAAA,UAAA;IAAA;EAYpD,CAZoD,EAAA;IAKzD,UAAA,EAAA,MAAA;IAKI,UAAA,CAAA,EAAA,MAAA;IAEQ,OAAA,EAAA,MAAA;EAAP,CAAA;EAAM;AACpB;;EAOiB,OAAA,YAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EA1S0C,QA0S1C;EACS,IAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAEU,IAAA,UAAA,CAAA,CAAA,EAAA,MAAA;EACb,IAAA,UAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAe;;;;EAI/B,IAAA,UAAA,CAAA,CAAA,EAAA,MAAA,GAAA,MAAA;EAAQ;;;EAEC,MAAA,CAAA,CAAA,EAAA;IAAyB,UAAA,EAAA,MAAA;IAAe,UAAA,CAAA,EAAA,MAAA;EAAQ,CAAA;EAAhC,QAAA,CAAA,CAAA,EAAA,MAAA;EAAvB,OAAA,CAAA,CAAA,EAAA,MAAA;;;;;;;AAGK;AAQkB,cA9QpB,eAAA,CA8QoB;EAAf,CAAA,OAAA;EACS,WAAA,CAAA,UAAA,EAAA,MAAA;EACU;;;EACb,OAAA,YAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAvQmB,eAuQnB;EACa;;;EAEb,IAAA,UAAA,CAAA,CAAA,EAAA,MAAA;;KA9PnB,YAAA,GA+PO,KAAA,GAAA,MAAA;AAAa,cA7PZ,YA6PY,CAAA,iBA5PN,MA4PM,CAAA,MAAA,EA5PS,SA4PT,CAAA,GA5PsB,MA4PtB,CAAA,MAAA,EA5PqC,SA4PrC,CAAA,EAAA,mBA3PJ,MA2PI,CAAA,MAAA,EA3PW,WA2PX,CAAA,GA3P0B,MA2P1B,CAAA,MAAA,EA3PyC,WA2PzC,CAAA,EAAA,iBA1PN,MA0PM,CAAA,MAAA,EA1PS,KA0PT,CAAA,GA1PkB,MA0PlB,CAAA,MAAA,EA1PiC,KA0PjC,CAAA,CAAA,CAAA;EAAe,CAAA,OAAA;EAAlC,WAAA,CAAA,IAAA,EAAA,MAAA;EACA,UAAA,CAAA,OAAA,EA1OgB,QA0OhB,CAAA,EAAA,IAAA;EAAQ,YAAA,CAAA,SAAA,EAtOY,UAsOZ,CAAA,EAAA,IAAA;EAAC,UAAA,CAAA,OAAA,EAlOO,QAkOP,CAAA,EAAA,IAAA;EAMV,UAAA,CAAA,CAAA,EAnOW,KAmOG,EAAA;EACe,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA;EAAf;;;EAGU,SAAA,CAAA,oBAAA,MAAA,EAAA,gBA5N2B,SA4N3B,CAAA,CAAA,OAAA,EA3NhB,WA2NgB,EAAA,GAAA,EA1NpB,OA0NoB,CAAA,EAzNxB,YAyNwB,CAzNX,QAyNW,GAzNA,MAyNA,CAzNO,WAyNP,EAzNoB,OAyNpB,CAAA,EAzN8B,UAyN9B,EAzN0C,QAyN1C,CAAA;EAAa;;;EAC3B,SAAA,CAAA,oBAAA,MAAA,EAAA,cAAA,MArN6C,OAqN7C,CAAA,CAAA,OAAA,EApNF,WAoNE,EAAA,IAAA,EAnNL,KAmNK,CAAA,EAlNV,YAkNU,CAjNX,QAiNW,GAjNA,MAiNA,CAjNO,WAiNP,EAjNoB,MAiNpB,CAjN2B,KAiN3B,EAjNkC,OAiNlC,CAjN0C,KAiN1C,CAAA,EAjNkD,OAiNlD,CAjN0D,KAiN1D,CAAA,CAAA,CAAA,EAhNX,UAgNW,EA/MX,QA+MW,CAAA;EAAa;;;EAIf,WAAA,CAAA,mBAAa,MAAA,EAAA,2BAAA,SAAA,CAAA,MAAA,GAAA,MArL8B,QAqL9B,CAAA,EAAA,CAAA,CAAA,IAAA,EAnLhB,UAmLgB,EAAA,OAAA,EAlLb,YAkLa,EAAA,OAAiB,CAAjB,EAAA;IAAgC,MAAA,CAAA,EAAA,OAAA;EAAf,CAAA,CAAA,EAhLtC,YAgLsC,CA/KvC,QA+KuC,EA9KvC,UA8KuC,EA7KvC,QA6KuC,GA7K5B,MA6K4B,CA7KrB,UA6KqB,EA7KT,KA6KS,CA7KH,cA6KG,CA7KY,QA6KZ,EA7KsB,YA6KtB,CAAA,EA7KqC,YA6KrC,CAAA,CAAA,CAAA;EAKL;;;EAsBO,KAAA,CAAA,CAAA,EA3KlC,KA2KkC,CA3K5B,QA2K4B,EA3KlB,UA2KkB,EA3KN,QA2KM,CAAA;;AACjC,UA5FK,MA4FL,CAAA,gBA5F4B,MA4F5B,CAAA,MAAA,EA5F2C,QA4F3C,CAAA,GA5FuD,MA4FvD,CAAA,MAAA,EA5FsE,QA4FtE,CAAA,CAAA,CAAA;EACO;;;EAaiB,OAAA,EAAA,MAAA;EAAf,MAAA,EArGX,OAqGW;EACiB;;;;EACsB,UAAA,EAlG9C,eAkG8C,EAAA;EAAf,KAAA,EAAA,GAAA,GAhG9B,MAgG8B,CAhGvB,OAgGuB,CAAA;;;;;;KAzFxC,oBAgGkB,CAAA,gBA/FL,MA+FK,CAAA,MAAA,EA/FU,QA+FV,CAAA,EAAA,mBAAA,MA9FI,OA8FJ,EAAA,uBAAA,MAAA,EAAA,6BAAA,MA5Fc,OA4Fd,EAAA,sBA3FC,YA2FD,GA3FgB,YA2FhB,CAAA,GAAA,QAAf,MAzFM,OAyFN,GAzFgB,CAyFhB,SAzF0B,UAyF1B,GAxFF,KAwFE,CAvFA,OAuFA,CAvFQ,UAuFR,CAAA,CAAA,SAAA,CAAA,EAtFA,OAsFA,CAtFQ,UAsFR,CAAA,CAAA,WAAA,CAAA,GArFE,MAqFF,CArFS,cAqFT,EArFyB,QAqFzB,CArFkC,aAqFlC,EArFiD,OAqFjD,CArFyD,oBAqFzD,CAAA,CAAA,CAAA,EApFA,OAoFA,CApFQ,UAoFR,CAAA,CAAA,SAAA,CAAA,CAAA,GAlFF,OAkFE,CAlFM,CAkFN,CAAA,EAHO;;;;;KAxEV,WA8Ec,CAAA,gBA7ED,MA6EC,CAAA,MAAA,EA7Ec,QA6Ed,CAAA,EAAA,mBAAA,MA5EQ,OA4ER,EAAA,oBA3EG,MA2EH,CAAA,MAAA,EA3EkB,SA2ElB,CAAA,EAAA,sBA1EK,MA0EL,CAAA,MAAA,EA1EoB,WA0EpB,CAAA,EAAA,oBAzEG,MAyEH,CAAA,MAAA,EAzEkB,KAyElB,CAAA,CAAA,GAAA,QAAiB,MAvEtB,OAuEsB,GAvEZ,CAuEY,SAvEF,UAuEE,GAtE9B,KAsE8B,CAtExB,WAsEwB,EAtEX,aAsEW,EAtEI,WAsEJ,CAAA,GArE9B,OAqE8B,CArEtB,CAqEsB,CAAA,EAAkB;;;;KA/DjD,cA+DwB,CAAA,iBA9DV,MA8DU,CAAA,MAAA,EA9DK,SA8DL,CAAA,EAAA,qBAAA,SAAA,CAAA,MA7DU,QA6DV,CAAA,EAAA,CAAA,GAAA,QAAxB,MA3DS,YA2DT,GA3DwB,YA2DxB,CA3DqC,CA2DrC,CAAA,SAAA,MA3DsD,QA2DtD,GA1DC,QA0DD,CA1DU,YA0DV,CA1DuB,CA0DvB,CAAA,CAAA,GAAA,KAAA,EAqGqC,GA7JtC,SA6JsC,EAAA;AACF,cA5J3B,aA4J2B,CAAA,gBA5JG,MA4JH,CAAA,MAAA,EA5JkB,QA4JlB,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA;EAEd,CAAA,OAAA;EAEP,WAAA,CAAA,cAAA,CAAA,EA3JY,MA2JZ,CA3JmB,OA2JnB,CAAA;EAEP;;;;;;;;;;;;EAWR,uBAAA,CAAA,mBAlJyC,MAkJzC,CAAA,MAAA,EAlJwD,QAkJxD,CAAA,CAAA,CAAA,MAAA,EAjJQ,MAiJR,CAjJe,UAiJf,CAAA,CAAA,EAhJC,aAgJD,CAhJe,OAgJf,GAhJyB,UAgJzB,CAAA;EADC;;;EAyFmB,QAAA,CAAA,mBAAA,MAAA,EAAA,iBA3NH,MA2NG,CAAA,MAAA,EA3NY,SA2NZ,CAAA,EAAA,mBA1ND,MA0NC,CAAA,MAAA,EA1Nc,WA0Nd,CAAA,EAAA,iBAzNH,MAyNG,CAAA,MAAA,EAzNY,KAyNZ,CAAA,GAzNqB,MAyNrB,CAAA,MAAA,EAzNoC,KAyNpC,CAAA,CAAA,CAAA,OAAA,EAvNX,UAuNW,EAAA,QAAA,EAAA,CAAA,OAAA,EArNT,YAqNS,CApNhB,MAoNgB,CAAA,MAAA,EApND,SAoNC,CAAA,EAnNhB,MAmNgB,CAAA,MAAA,EAnND,WAmNC,CAAA,EAlNhB,MAkNgB,CAAA,MAAA,EAlND,KAkNC,CAAA,CAAA,EAAA,GAhNf,YAgNe,CAhNF,QAgNE,EAhNQ,UAgNR,EAhNoB,QAgNpB,CAAA,CAAA,EA/MnB,aA+MmB,CA/ML,OA+MK,GA/MK,MA+ML,CA/MY,UA+MZ,EA/MwB,KA+MxB,CA/M8B,QA+M9B,EA/MwC,UA+MxC,EA/MoD,QA+MpD,CAAA,CAAA,CAAA;EACiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+JzC;;;;;;;;EAES,YAAA,CAAA,uBAAA,MAAA,GAAA,MA5QiC,OA4QjC,EAAA,qBAAA,MAAA,GAAA,MA3Q+B,OA2Q/B,EAAA,uBAAA,MAAA,EAAA,sBAzQiB,YAyQjB,CAAA,CAAA,aAAA,EAvQU,cAuQV,EAAA,MAAA,EAAA;IAIO,IAAA,EAzQJ,aAyQqB;;aAvQlB;oBACO,QAAQ;;;aAGf;oBACO,QAAQ;;MAGzB,cACD,qBAAqB,SAAS,gBAAgB,gBAAgB,cAAc;;;;;;;;;;;;;;;;;;;;;;+CAuF1C,6BACd,eAAe,kCACb,eAAe,kCACjB,eAAe,SAAS,eAAe,mBAEhD,gCAEA,aACP,QAAQ,wBACR,QAAQ,0BACR,eAAe,YAEd,aAAa,aAAa,eAAe,eAC7C,cAAc,YAAY,SAAS,YAAY,aAAa,eAAe;;;;WA+ErE,OAAO;;;;;;;;;iBAqEF,6BAA6B,eAAe,oCACtC,sBAAsB,cAAc,WACvD,OAAO;iBAIM,iBAAA,MAAuB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fragno-dev/db",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
"types": "./dist/query/query.d.ts",
|
|
24
24
|
"default": "./dist/query/query.js"
|
|
25
25
|
},
|
|
26
|
+
"./adapters": {
|
|
27
|
+
"development": "./src/adapters/adapters.ts",
|
|
28
|
+
"types": "./dist/adapters/adapters.d.ts",
|
|
29
|
+
"default": "./dist/adapters/adapters.js"
|
|
30
|
+
},
|
|
26
31
|
"./adapters/kysely": {
|
|
27
32
|
"development": "./src/adapters/kysely/kysely-adapter.ts",
|
|
28
33
|
"types": "./dist/adapters/kysely/kysely-adapter.d.ts",
|
|
@@ -65,7 +70,7 @@
|
|
|
65
70
|
"kysely-pglite": "^0.6.1",
|
|
66
71
|
"vitest": "^3.2.4",
|
|
67
72
|
"zod": "^4.1.12",
|
|
68
|
-
"@fragno-dev/core": "0.1.
|
|
73
|
+
"@fragno-dev/core": "0.1.3",
|
|
69
74
|
"@fragno-private/typescript-config": "0.0.1",
|
|
70
75
|
"@fragno-private/vitest-config": "0.0.0"
|
|
71
76
|
},
|
|
@@ -9,7 +9,7 @@ import { createSettingsManager, settingsSchema } from "../../shared/settings-sch
|
|
|
9
9
|
import { sql } from "drizzle-orm";
|
|
10
10
|
|
|
11
11
|
export interface DrizzleConfig {
|
|
12
|
-
db: unknown;
|
|
12
|
+
db: unknown | (() => unknown);
|
|
13
13
|
provider: "sqlite" | "mysql" | "postgresql";
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -24,9 +24,14 @@ export class DrizzleAdapter implements DatabaseAdapter<DrizzleUOWConfig> {
|
|
|
24
24
|
return this.#drizzleConfig.provider;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
#getDb(): DBType {
|
|
28
|
+
const db = this.#drizzleConfig.db;
|
|
29
|
+
return (typeof db === "function" ? db() : db) as DBType;
|
|
30
|
+
}
|
|
31
|
+
|
|
27
32
|
async isConnectionHealthy(): Promise<boolean> {
|
|
28
33
|
try {
|
|
29
|
-
const result = await
|
|
34
|
+
const result = await this.#getDb().execute(sql`SELECT 1 as healthy`);
|
|
30
35
|
|
|
31
36
|
// Handle different result formats across providers
|
|
32
37
|
// PostgreSQL/MySQL: { rows: [...] }
|
|
@@ -57,7 +62,12 @@ export class DrizzleAdapter implements DatabaseAdapter<DrizzleUOWConfig> {
|
|
|
57
62
|
): AbstractQuery<TSchema, DrizzleUOWConfig> {
|
|
58
63
|
// Only create mapper if namespace is non-empty
|
|
59
64
|
const mapper = namespace ? createTableNameMapper(namespace) : undefined;
|
|
60
|
-
|
|
65
|
+
// Resolve the db instance if it's a function
|
|
66
|
+
const resolvedConfig: DrizzleConfig = {
|
|
67
|
+
db: this.#getDb(),
|
|
68
|
+
provider: this.#drizzleConfig.provider,
|
|
69
|
+
};
|
|
70
|
+
return fromDrizzle(schema, resolvedConfig, mapper);
|
|
61
71
|
}
|
|
62
72
|
|
|
63
73
|
createSchemaGenerator(
|
|
@@ -1063,4 +1063,101 @@ describe("generateSchema", () => {
|
|
|
1063
1063
|
`);
|
|
1064
1064
|
});
|
|
1065
1065
|
});
|
|
1066
|
+
|
|
1067
|
+
describe("namespace sanitization", () => {
|
|
1068
|
+
it("should sanitize namespace with special characters in foreign key references", () => {
|
|
1069
|
+
const generated = generateSchema(
|
|
1070
|
+
[{ namespace: "my-fragment-v2", schema: testSchema }],
|
|
1071
|
+
"postgresql",
|
|
1072
|
+
);
|
|
1073
|
+
|
|
1074
|
+
// Should generate valid JavaScript identifiers (underscores instead of hyphens)
|
|
1075
|
+
expect(generated).toContain("export const users_my_fragment_v2 =");
|
|
1076
|
+
expect(generated).toContain("export const posts_my_fragment_v2 =");
|
|
1077
|
+
|
|
1078
|
+
// Foreign key should reference sanitized table name
|
|
1079
|
+
expect(generated).toContain("foreignColumns: [users_my_fragment_v2._internalId]");
|
|
1080
|
+
|
|
1081
|
+
// Relations should also use sanitized names
|
|
1082
|
+
expect(generated).toContain("author: one(users_my_fragment_v2");
|
|
1083
|
+
expect(generated).toContain("fields: [posts_my_fragment_v2.userId]");
|
|
1084
|
+
expect(generated).toContain("references: [users_my_fragment_v2._internalId]");
|
|
1085
|
+
|
|
1086
|
+
// Physical table names in the database can keep hyphens
|
|
1087
|
+
expect(generated).toContain('pgTable("users_my-fragment-v2"');
|
|
1088
|
+
expect(generated).toContain('pgTable("posts_my-fragment-v2"');
|
|
1089
|
+
|
|
1090
|
+
expect(generated).toMatchInlineSnapshot(`
|
|
1091
|
+
"import { pgTable, varchar, text, bigserial, integer, uniqueIndex, index, bigint, foreignKey } from "drizzle-orm/pg-core"
|
|
1092
|
+
import { createId } from "@fragno-dev/db/id"
|
|
1093
|
+
import { relations } from "drizzle-orm"
|
|
1094
|
+
|
|
1095
|
+
// ============================================================================
|
|
1096
|
+
// Settings Table (shared across all fragments)
|
|
1097
|
+
// ============================================================================
|
|
1098
|
+
|
|
1099
|
+
export const fragno_db_settings = pgTable("fragno_db_settings", {
|
|
1100
|
+
id: varchar("id", { length: 30 }).notNull().$defaultFn(() => createId()),
|
|
1101
|
+
key: text("key").notNull(),
|
|
1102
|
+
value: text("value").notNull(),
|
|
1103
|
+
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
1104
|
+
_version: integer("_version").notNull().default(0)
|
|
1105
|
+
}, (table) => [
|
|
1106
|
+
uniqueIndex("unique_key").on(table.key)
|
|
1107
|
+
])
|
|
1108
|
+
|
|
1109
|
+
export const fragnoDbSettingSchemaVersion = 1;
|
|
1110
|
+
|
|
1111
|
+
// ============================================================================
|
|
1112
|
+
// Fragment: my-fragment-v2
|
|
1113
|
+
// ============================================================================
|
|
1114
|
+
|
|
1115
|
+
export const users_my_fragment_v2 = pgTable("users_my-fragment-v2", {
|
|
1116
|
+
id: varchar("id", { length: 30 }).notNull().$defaultFn(() => createId()),
|
|
1117
|
+
name: text("name").notNull(),
|
|
1118
|
+
email: text("email").notNull(),
|
|
1119
|
+
age: integer("age"),
|
|
1120
|
+
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
1121
|
+
_version: integer("_version").notNull().default(0)
|
|
1122
|
+
}, (table) => [
|
|
1123
|
+
uniqueIndex("idx_email_my-fragment-v2").on(table.email),
|
|
1124
|
+
index("idx_name_my-fragment-v2").on(table.name)
|
|
1125
|
+
])
|
|
1126
|
+
|
|
1127
|
+
export const posts_my_fragment_v2 = pgTable("posts_my-fragment-v2", {
|
|
1128
|
+
id: varchar("id", { length: 30 }).notNull().$defaultFn(() => createId()),
|
|
1129
|
+
title: text("title").notNull(),
|
|
1130
|
+
content: text("content").notNull(),
|
|
1131
|
+
userId: bigint("userId", { mode: "number" }).notNull(),
|
|
1132
|
+
viewCount: integer("viewCount").notNull().default(0),
|
|
1133
|
+
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
1134
|
+
_version: integer("_version").notNull().default(0)
|
|
1135
|
+
}, (table) => [
|
|
1136
|
+
foreignKey({
|
|
1137
|
+
columns: [table.userId],
|
|
1138
|
+
foreignColumns: [users_my_fragment_v2._internalId],
|
|
1139
|
+
name: "fk_posts_users_author_my-fragment-v2"
|
|
1140
|
+
}),
|
|
1141
|
+
index("idx_user_my-fragment-v2").on(table.userId),
|
|
1142
|
+
index("idx_title_my-fragment-v2").on(table.title)
|
|
1143
|
+
])
|
|
1144
|
+
|
|
1145
|
+
export const posts_my_fragment_v2Relations = relations(posts_my_fragment_v2, ({ one }) => ({
|
|
1146
|
+
author: one(users_my_fragment_v2, {
|
|
1147
|
+
relationName: "posts_users",
|
|
1148
|
+
fields: [posts_my_fragment_v2.userId],
|
|
1149
|
+
references: [users_my_fragment_v2._internalId]
|
|
1150
|
+
})
|
|
1151
|
+
}));
|
|
1152
|
+
|
|
1153
|
+
export const my_fragment_v2_schema = {
|
|
1154
|
+
"users_my-fragment-v2": users_my_fragment_v2,
|
|
1155
|
+
users: users_my_fragment_v2,
|
|
1156
|
+
"posts_my-fragment-v2": posts_my_fragment_v2,
|
|
1157
|
+
posts: posts_my_fragment_v2,
|
|
1158
|
+
schemaVersion: 3
|
|
1159
|
+
}"
|
|
1160
|
+
`);
|
|
1161
|
+
});
|
|
1162
|
+
});
|
|
1066
1163
|
});
|
|
@@ -338,8 +338,9 @@ function generateForeignKeys(ctx: GeneratorContext, table: AnyTable, namespace?:
|
|
|
338
338
|
foreignColumns.push(`table.${actualRefCol}`);
|
|
339
339
|
} else {
|
|
340
340
|
// Suffix the foreign table reference with namespace if provided
|
|
341
|
-
const foreignTableRef =
|
|
342
|
-
|
|
341
|
+
const foreignTableRef = namespace
|
|
342
|
+
? `${relation.table.ormName}_${sanitizeNamespace(namespace)}`
|
|
343
|
+
: relation.table.ormName;
|
|
343
344
|
foreignColumns.push(`${foreignTableRef}.${actualRefCol}`);
|
|
344
345
|
}
|
|
345
346
|
}
|
|
@@ -4,7 +4,7 @@ import type { DatabaseAdapter } from "../adapters";
|
|
|
4
4
|
import { createMigrator, type Migrator } from "../../migration-engine/create";
|
|
5
5
|
import type { AnySchema } from "../../schema/create";
|
|
6
6
|
import type { CustomOperation, MigrationOperation } from "../../migration-engine/shared";
|
|
7
|
-
import { execute } from "./migration/execute";
|
|
7
|
+
import { execute, preprocessOperations } from "./migration/execute";
|
|
8
8
|
import type { AbstractQuery } from "../../query/query";
|
|
9
9
|
import { fromKysely } from "./kysely-query";
|
|
10
10
|
import { createTableNameMapper } from "./kysely-shared";
|
|
@@ -15,7 +15,7 @@ import { SETTINGS_TABLE_NAME } from "../../shared/settings-schema";
|
|
|
15
15
|
type KyselyAny = Kysely<any>;
|
|
16
16
|
|
|
17
17
|
export interface KyselyConfig {
|
|
18
|
-
db: KyselyAny;
|
|
18
|
+
db: KyselyAny | (() => KyselyAny);
|
|
19
19
|
provider: SQLProvider;
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -26,17 +26,26 @@ export class KyselyAdapter implements DatabaseAdapter {
|
|
|
26
26
|
this.#kyselyConfig = config;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
#getDb(): KyselyAny {
|
|
30
|
+
const db = this.#kyselyConfig.db;
|
|
31
|
+
return typeof db === "function" ? db() : db;
|
|
32
|
+
}
|
|
33
|
+
|
|
29
34
|
createQueryEngine<T extends AnySchema>(schema: T, namespace: string): AbstractQuery<T> {
|
|
30
35
|
// Only create mapper if namespace is non-empty
|
|
31
36
|
const mapper = namespace ? createTableNameMapper(namespace) : undefined;
|
|
32
|
-
|
|
37
|
+
// Resolve the db instance if it's a function
|
|
38
|
+
const resolvedConfig: KyselyConfig = {
|
|
39
|
+
db: this.#getDb(),
|
|
40
|
+
provider: this.#kyselyConfig.provider,
|
|
41
|
+
};
|
|
42
|
+
return fromKysely(schema, resolvedConfig, mapper);
|
|
33
43
|
}
|
|
34
44
|
|
|
35
45
|
async isConnectionHealthy(): Promise<boolean> {
|
|
36
46
|
try {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
);
|
|
47
|
+
const db = this.#getDb();
|
|
48
|
+
const result = await db.executeQuery(sql`SELECT 1 as healthy`.compile(db));
|
|
40
49
|
return (result.rows[0] as Record<string, unknown>)["healthy"] === 1;
|
|
41
50
|
} catch {
|
|
42
51
|
return false;
|
|
@@ -44,43 +53,54 @@ export class KyselyAdapter implements DatabaseAdapter {
|
|
|
44
53
|
}
|
|
45
54
|
|
|
46
55
|
createMigrationEngine(schema: AnySchema, namespace: string): Migrator {
|
|
47
|
-
const manager = createSettingsManager(this.#
|
|
56
|
+
const manager = createSettingsManager(this.#getDb(), namespace);
|
|
48
57
|
const mapper = namespace ? createTableNameMapper(namespace) : undefined;
|
|
49
58
|
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return {
|
|
54
|
-
compile() {
|
|
55
|
-
return statement.compile(db);
|
|
56
|
-
},
|
|
57
|
-
execute() {
|
|
58
|
-
return statement.execute(db);
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
};
|
|
59
|
+
const preprocessMigrationOperations = (operations: MigrationOperation[]) => {
|
|
60
|
+
let preprocessed = preprocessOperations(operations, this.#kyselyConfig);
|
|
62
61
|
|
|
63
|
-
const preprocess = (operations: MigrationOperation[], db: KyselyAny) => {
|
|
64
62
|
if (this.#kyselyConfig.provider === "mysql") {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
} else if (this.#kyselyConfig.provider === "sqlite") {
|
|
68
|
-
operations.unshift({
|
|
69
|
-
type: "custom",
|
|
70
|
-
sql: "PRAGMA defer_foreign_keys = ON",
|
|
71
|
-
});
|
|
63
|
+
preprocessed.unshift({ type: "custom", sql: "SET FOREIGN_KEY_CHECKS = 0" });
|
|
64
|
+
preprocessed.push({ type: "custom", sql: "SET FOREIGN_KEY_CHECKS = 1" });
|
|
72
65
|
}
|
|
73
66
|
|
|
67
|
+
return preprocessed;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// Convert operations to executable nodes bound to specific db instance
|
|
71
|
+
const toExecutableNodes = (operations: MigrationOperation[], db: KyselyAny) => {
|
|
72
|
+
const onCustomNode = (node: CustomOperation, db: KyselyAny) => {
|
|
73
|
+
const statement = sql.raw(node["sql"] as string);
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
compile() {
|
|
77
|
+
return statement.compile(db);
|
|
78
|
+
},
|
|
79
|
+
execute() {
|
|
80
|
+
return statement.execute(db);
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const dbConfig: KyselyConfig = { db, provider: this.#kyselyConfig.provider };
|
|
74
86
|
return operations.flatMap((op) =>
|
|
75
|
-
execute(op,
|
|
87
|
+
execute(op, dbConfig, (node) => onCustomNode(node, db), mapper),
|
|
76
88
|
);
|
|
77
89
|
};
|
|
78
90
|
|
|
79
91
|
const migrator = createMigrator({
|
|
80
92
|
schema,
|
|
81
93
|
executor: async (operations) => {
|
|
82
|
-
|
|
83
|
-
|
|
94
|
+
const db = this.#getDb();
|
|
95
|
+
// For SQLite, execute PRAGMA defer_foreign_keys BEFORE transaction
|
|
96
|
+
if (this.#kyselyConfig.provider === "sqlite") {
|
|
97
|
+
await sql.raw("PRAGMA defer_foreign_keys = ON").execute(db);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
await db.transaction().execute(async (tx) => {
|
|
101
|
+
const preprocessed = preprocessMigrationOperations(operations);
|
|
102
|
+
const nodes = toExecutableNodes(preprocessed, tx);
|
|
103
|
+
for (const node of nodes) {
|
|
84
104
|
try {
|
|
85
105
|
await node.execute();
|
|
86
106
|
} catch (e) {
|
|
@@ -92,11 +112,20 @@ export class KyselyAdapter implements DatabaseAdapter {
|
|
|
92
112
|
},
|
|
93
113
|
sql: {
|
|
94
114
|
toSql: (operations) => {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
115
|
+
const parts: string[] = [];
|
|
116
|
+
|
|
117
|
+
// Add SQLite PRAGMA at the beginning
|
|
118
|
+
if (this.#kyselyConfig.provider === "sqlite") {
|
|
119
|
+
parts.push("PRAGMA defer_foreign_keys = ON;");
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const preprocessed = preprocessMigrationOperations(operations);
|
|
123
|
+
const nodes = toExecutableNodes(preprocessed, this.#getDb());
|
|
124
|
+
const compiled = nodes.map((node) => `${node.compile().sql};`);
|
|
125
|
+
|
|
126
|
+
parts.push(...compiled);
|
|
98
127
|
|
|
99
|
-
return
|
|
128
|
+
return parts.join("\n\n");
|
|
100
129
|
},
|
|
101
130
|
},
|
|
102
131
|
|
|
@@ -123,7 +152,7 @@ export class KyselyAdapter implements DatabaseAdapter {
|
|
|
123
152
|
}
|
|
124
153
|
|
|
125
154
|
getSchemaVersion(namespace: string) {
|
|
126
|
-
const manager = createSettingsManager(this.#
|
|
155
|
+
const manager = createSettingsManager(this.#getDb(), namespace);
|
|
127
156
|
|
|
128
157
|
return manager.get(`schema_version`);
|
|
129
158
|
}
|
|
@@ -30,7 +30,9 @@ export function createKyselyQueryCompiler<T extends AnySchema>(
|
|
|
30
30
|
config: KyselyConfig,
|
|
31
31
|
mapper?: TableNameMapper,
|
|
32
32
|
): KyselyQueryCompiler {
|
|
33
|
-
const { db
|
|
33
|
+
const { db, provider } = config;
|
|
34
|
+
// Resolve the db instance if it's a function
|
|
35
|
+
const kysely = typeof db === "function" ? db() : db;
|
|
34
36
|
const queryBuilder = createKyselyQueryBuilder(kysely, provider, mapper);
|
|
35
37
|
|
|
36
38
|
function toTable(name: unknown): AnyTable {
|
|
@@ -39,7 +39,9 @@ export function fromKysely<T extends AnySchema>(
|
|
|
39
39
|
config: KyselyConfig,
|
|
40
40
|
mapper?: TableNameMapper,
|
|
41
41
|
): AbstractQuery<T> {
|
|
42
|
-
const { db
|
|
42
|
+
const { db, provider } = config;
|
|
43
|
+
// Resolve the db instance if it's a function
|
|
44
|
+
const kysely = typeof db === "function" ? db() : db;
|
|
43
45
|
const uowCompiler = createKyselyUOWCompiler(schema, config, mapper);
|
|
44
46
|
|
|
45
47
|
function createUOW(name?: string): UnitOfWork<T, []> {
|
|
@@ -31,8 +31,10 @@ export function createKyselyUOWCompiler<TSchema extends AnySchema>(
|
|
|
31
31
|
mapper?: TableNameMapper,
|
|
32
32
|
): UOWCompiler<TSchema, CompiledQuery> {
|
|
33
33
|
const queryCompiler = createKyselyQueryCompiler(schema, config, mapper);
|
|
34
|
-
const
|
|
35
|
-
|
|
34
|
+
const { db, provider } = config;
|
|
35
|
+
// Resolve the db instance if it's a function
|
|
36
|
+
const kysely = typeof db === "function" ? db() : db;
|
|
37
|
+
const queryBuilder = createKyselyQueryBuilder(kysely, provider, mapper);
|
|
36
38
|
|
|
37
39
|
function toTable(name: unknown) {
|
|
38
40
|
const table = schema.tables[name as string];
|