@uql/core 3.7.14 → 3.8.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.
Files changed (215) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/README.md +12 -5
  3. package/dist/browser/uql-browser.min.js +16 -15
  4. package/dist/browser/uql-browser.min.js.map +1 -1
  5. package/dist/dialect/abstractDialect.d.ts +7 -2
  6. package/dist/dialect/abstractDialect.d.ts.map +1 -1
  7. package/dist/dialect/abstractDialect.js +9 -1
  8. package/dist/dialect/abstractDialect.js.map +1 -1
  9. package/dist/dialect/abstractSqlDialect.d.ts +6 -6
  10. package/dist/dialect/abstractSqlDialect.d.ts.map +1 -1
  11. package/dist/dialect/abstractSqlDialect.js +14 -13
  12. package/dist/dialect/abstractSqlDialect.js.map +1 -1
  13. package/dist/dialect/dialectConfig.d.ts +23 -0
  14. package/dist/dialect/dialectConfig.d.ts.map +1 -0
  15. package/dist/dialect/dialectConfig.js +96 -0
  16. package/dist/dialect/dialectConfig.js.map +1 -0
  17. package/dist/dialect/index.d.ts +1 -0
  18. package/dist/dialect/index.d.ts.map +1 -1
  19. package/dist/dialect/index.js +1 -0
  20. package/dist/dialect/index.js.map +1 -1
  21. package/dist/entity/decorator/definition.d.ts.map +1 -1
  22. package/dist/entity/decorator/definition.js +2 -1
  23. package/dist/entity/decorator/definition.js.map +1 -1
  24. package/dist/entity/decorator/index-decorator.d.ts +36 -0
  25. package/dist/entity/decorator/index-decorator.d.ts.map +1 -0
  26. package/dist/entity/decorator/index-decorator.js +51 -0
  27. package/dist/entity/decorator/index-decorator.js.map +1 -0
  28. package/dist/entity/decorator/index.d.ts +1 -0
  29. package/dist/entity/decorator/index.d.ts.map +1 -1
  30. package/dist/entity/decorator/index.js +1 -0
  31. package/dist/entity/decorator/index.js.map +1 -1
  32. package/dist/maria/mariaDialect.d.ts +2 -1
  33. package/dist/maria/mariaDialect.d.ts.map +1 -1
  34. package/dist/maria/mariaDialect.js +3 -0
  35. package/dist/maria/mariaDialect.js.map +1 -1
  36. package/dist/migrate/builder/columnBuilder.d.ts +79 -0
  37. package/dist/migrate/builder/columnBuilder.d.ts.map +1 -0
  38. package/dist/migrate/builder/columnBuilder.js +159 -0
  39. package/dist/migrate/builder/columnBuilder.js.map +1 -0
  40. package/dist/migrate/builder/expressions.d.ts +87 -0
  41. package/dist/migrate/builder/expressions.d.ts.map +1 -0
  42. package/dist/migrate/builder/expressions.js +150 -0
  43. package/dist/migrate/builder/expressions.js.map +1 -0
  44. package/dist/migrate/builder/index.d.ts +6 -0
  45. package/dist/migrate/builder/index.d.ts.map +1 -0
  46. package/dist/migrate/builder/index.js +6 -0
  47. package/dist/migrate/builder/index.js.map +1 -0
  48. package/dist/migrate/builder/migrationBuilder.d.ts +109 -0
  49. package/dist/migrate/builder/migrationBuilder.d.ts.map +1 -0
  50. package/dist/migrate/builder/migrationBuilder.js +453 -0
  51. package/dist/migrate/builder/migrationBuilder.js.map +1 -0
  52. package/dist/migrate/builder/tableBuilder.d.ts +51 -0
  53. package/dist/migrate/builder/tableBuilder.d.ts.map +1 -0
  54. package/dist/migrate/builder/tableBuilder.js +291 -0
  55. package/dist/migrate/builder/tableBuilder.js.map +1 -0
  56. package/dist/migrate/builder/types.d.ts +466 -0
  57. package/dist/migrate/builder/types.d.ts.map +1 -0
  58. package/dist/migrate/builder/types.js +8 -0
  59. package/dist/migrate/builder/types.js.map +1 -0
  60. package/dist/migrate/cli.d.ts +4 -6
  61. package/dist/migrate/cli.d.ts.map +1 -1
  62. package/dist/migrate/cli.js +166 -23
  63. package/dist/migrate/cli.js.map +1 -1
  64. package/dist/migrate/codegen/entityCodeGenerator.d.ts +137 -0
  65. package/dist/migrate/codegen/entityCodeGenerator.d.ts.map +1 -0
  66. package/dist/migrate/codegen/entityCodeGenerator.js +401 -0
  67. package/dist/migrate/codegen/entityCodeGenerator.js.map +1 -0
  68. package/dist/migrate/codegen/entityMerger.d.ts +111 -0
  69. package/dist/migrate/codegen/entityMerger.d.ts.map +1 -0
  70. package/dist/migrate/codegen/entityMerger.js +291 -0
  71. package/dist/migrate/codegen/entityMerger.js.map +1 -0
  72. package/dist/migrate/codegen/index.d.ts +10 -0
  73. package/dist/migrate/codegen/index.d.ts.map +1 -0
  74. package/dist/migrate/codegen/index.js +14 -0
  75. package/dist/migrate/codegen/index.js.map +1 -0
  76. package/dist/migrate/codegen/migrationCodeGenerator.d.ts +62 -0
  77. package/dist/migrate/codegen/migrationCodeGenerator.d.ts.map +1 -0
  78. package/dist/migrate/codegen/migrationCodeGenerator.js +356 -0
  79. package/dist/migrate/codegen/migrationCodeGenerator.js.map +1 -0
  80. package/dist/migrate/codegen/smartRelationDetector.d.ts +48 -0
  81. package/dist/migrate/codegen/smartRelationDetector.d.ts.map +1 -0
  82. package/dist/migrate/codegen/smartRelationDetector.js +135 -0
  83. package/dist/migrate/codegen/smartRelationDetector.js.map +1 -0
  84. package/dist/migrate/drift/driftDetector.d.ts +81 -0
  85. package/dist/migrate/drift/driftDetector.d.ts.map +1 -0
  86. package/dist/migrate/drift/driftDetector.js +248 -0
  87. package/dist/migrate/drift/driftDetector.js.map +1 -0
  88. package/dist/migrate/drift/index.d.ts +7 -0
  89. package/dist/migrate/drift/index.d.ts.map +1 -0
  90. package/dist/migrate/drift/index.js +7 -0
  91. package/dist/migrate/drift/index.js.map +1 -0
  92. package/dist/migrate/generator/index.d.ts +1 -3
  93. package/dist/migrate/generator/index.d.ts.map +1 -1
  94. package/dist/migrate/generator/index.js +1 -3
  95. package/dist/migrate/generator/index.js.map +1 -1
  96. package/dist/migrate/generator/mongoSchemaGenerator.d.ts +29 -3
  97. package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +1 -1
  98. package/dist/migrate/generator/mongoSchemaGenerator.js +86 -4
  99. package/dist/migrate/generator/mongoSchemaGenerator.js.map +1 -1
  100. package/dist/migrate/index.d.ts +7 -8
  101. package/dist/migrate/index.d.ts.map +1 -1
  102. package/dist/migrate/index.js +11 -9
  103. package/dist/migrate/index.js.map +1 -1
  104. package/dist/migrate/introspection/baseSqlIntrospector.d.ts +28 -0
  105. package/dist/migrate/introspection/baseSqlIntrospector.d.ts.map +1 -0
  106. package/dist/migrate/introspection/baseSqlIntrospector.js +135 -0
  107. package/dist/migrate/introspection/baseSqlIntrospector.js.map +1 -0
  108. package/dist/migrate/introspection/mongoIntrospector.d.ts +6 -0
  109. package/dist/migrate/introspection/mongoIntrospector.d.ts.map +1 -1
  110. package/dist/migrate/introspection/mongoIntrospector.js +54 -0
  111. package/dist/migrate/introspection/mongoIntrospector.js.map +1 -1
  112. package/dist/migrate/introspection/mysqlIntrospector.d.ts +3 -1
  113. package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +1 -1
  114. package/dist/migrate/introspection/mysqlIntrospector.js +20 -11
  115. package/dist/migrate/introspection/mysqlIntrospector.js.map +1 -1
  116. package/dist/migrate/introspection/postgresIntrospector.d.ts +3 -2
  117. package/dist/migrate/introspection/postgresIntrospector.d.ts.map +1 -1
  118. package/dist/migrate/introspection/postgresIntrospector.js +23 -14
  119. package/dist/migrate/introspection/postgresIntrospector.js.map +1 -1
  120. package/dist/migrate/introspection/sqliteIntrospector.d.ts +2 -2
  121. package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +1 -1
  122. package/dist/migrate/introspection/sqliteIntrospector.js +15 -13
  123. package/dist/migrate/introspection/sqliteIntrospector.js.map +1 -1
  124. package/dist/migrate/migrator.d.ts +29 -0
  125. package/dist/migrate/migrator.d.ts.map +1 -1
  126. package/dist/migrate/migrator.js +31 -23
  127. package/dist/migrate/migrator.js.map +1 -1
  128. package/dist/migrate/schemaGenerator.d.ts +72 -22
  129. package/dist/migrate/schemaGenerator.d.ts.map +1 -1
  130. package/dist/migrate/schemaGenerator.js +389 -153
  131. package/dist/migrate/schemaGenerator.js.map +1 -1
  132. package/dist/migrate/sync/index.d.ts +7 -0
  133. package/dist/migrate/sync/index.d.ts.map +1 -0
  134. package/dist/migrate/sync/index.js +7 -0
  135. package/dist/migrate/sync/index.js.map +1 -0
  136. package/dist/migrate/sync/schemaSync.d.ts +132 -0
  137. package/dist/migrate/sync/schemaSync.d.ts.map +1 -0
  138. package/dist/migrate/sync/schemaSync.js +260 -0
  139. package/dist/migrate/sync/schemaSync.js.map +1 -0
  140. package/dist/mongo/mongoDialect.d.ts +2 -1
  141. package/dist/mongo/mongoDialect.d.ts.map +1 -1
  142. package/dist/mongo/mongoDialect.js +3 -0
  143. package/dist/mongo/mongoDialect.js.map +1 -1
  144. package/dist/mysql/mysqlDialect.d.ts +2 -0
  145. package/dist/mysql/mysqlDialect.d.ts.map +1 -1
  146. package/dist/mysql/mysqlDialect.js +3 -0
  147. package/dist/mysql/mysqlDialect.js.map +1 -1
  148. package/dist/postgres/postgresDialect.js +1 -1
  149. package/dist/postgres/postgresDialect.js.map +1 -1
  150. package/dist/schema/canonicalType.d.ts +42 -0
  151. package/dist/schema/canonicalType.d.ts.map +1 -0
  152. package/dist/schema/canonicalType.js +524 -0
  153. package/dist/schema/canonicalType.js.map +1 -0
  154. package/dist/schema/index.d.ts +28 -0
  155. package/dist/schema/index.d.ts.map +1 -0
  156. package/dist/schema/index.js +29 -0
  157. package/dist/schema/index.js.map +1 -0
  158. package/dist/schema/schemaAST.d.ts +155 -0
  159. package/dist/schema/schemaAST.d.ts.map +1 -0
  160. package/dist/schema/schemaAST.js +496 -0
  161. package/dist/schema/schemaAST.js.map +1 -0
  162. package/dist/schema/schemaASTBuilder.d.ts +58 -0
  163. package/dist/schema/schemaASTBuilder.d.ts.map +1 -0
  164. package/dist/schema/schemaASTBuilder.js +193 -0
  165. package/dist/schema/schemaASTBuilder.js.map +1 -0
  166. package/dist/schema/schemaASTDiffer.d.ts +84 -0
  167. package/dist/schema/schemaASTDiffer.d.ts.map +1 -0
  168. package/dist/schema/schemaASTDiffer.js +431 -0
  169. package/dist/schema/schemaASTDiffer.js.map +1 -0
  170. package/dist/schema/types.d.ts +347 -0
  171. package/dist/schema/types.d.ts.map +1 -0
  172. package/dist/schema/types.js +11 -0
  173. package/dist/schema/types.js.map +1 -0
  174. package/dist/sqlite/sqliteDialect.js +1 -1
  175. package/dist/sqlite/sqliteDialect.js.map +1 -1
  176. package/dist/sqlite/sqliteQuerierPool.js.map +1 -1
  177. package/dist/type/config.d.ts +6 -0
  178. package/dist/type/config.d.ts.map +1 -1
  179. package/dist/type/entity.d.ts +24 -0
  180. package/dist/type/entity.d.ts.map +1 -1
  181. package/dist/type/migration.d.ts +54 -4
  182. package/dist/type/migration.d.ts.map +1 -1
  183. package/dist/type/querier.d.ts +2 -5
  184. package/dist/type/querier.d.ts.map +1 -1
  185. package/dist/type/querier.js.map +1 -1
  186. package/dist/type/query.d.ts +8 -0
  187. package/dist/type/query.d.ts.map +1 -1
  188. package/dist/util/field.util.d.ts +0 -1
  189. package/dist/util/field.util.d.ts.map +1 -1
  190. package/dist/util/field.util.js +8 -2
  191. package/dist/util/field.util.js.map +1 -1
  192. package/dist/util/logger.d.ts.map +1 -1
  193. package/dist/util/logger.js +2 -1
  194. package/dist/util/logger.js.map +1 -1
  195. package/dist/util/string.util.d.ts +24 -0
  196. package/dist/util/string.util.d.ts.map +1 -1
  197. package/dist/util/string.util.js +57 -0
  198. package/dist/util/string.util.js.map +1 -1
  199. package/package.json +2 -2
  200. package/dist/migrate/generator/mysqlSchemaGenerator.d.ts +0 -15
  201. package/dist/migrate/generator/mysqlSchemaGenerator.d.ts.map +0 -1
  202. package/dist/migrate/generator/mysqlSchemaGenerator.js +0 -88
  203. package/dist/migrate/generator/mysqlSchemaGenerator.js.map +0 -1
  204. package/dist/migrate/generator/postgresSchemaGenerator.d.ts +0 -19
  205. package/dist/migrate/generator/postgresSchemaGenerator.d.ts.map +0 -1
  206. package/dist/migrate/generator/postgresSchemaGenerator.js +0 -115
  207. package/dist/migrate/generator/postgresSchemaGenerator.js.map +0 -1
  208. package/dist/migrate/generator/sqliteSchemaGenerator.d.ts +0 -16
  209. package/dist/migrate/generator/sqliteSchemaGenerator.d.ts.map +0 -1
  210. package/dist/migrate/generator/sqliteSchemaGenerator.js +0 -74
  211. package/dist/migrate/generator/sqliteSchemaGenerator.js.map +0 -1
  212. package/dist/migrate/type.d.ts +0 -2
  213. package/dist/migrate/type.d.ts.map +0 -1
  214. package/dist/migrate/type.js +0 -2
  215. package/dist/migrate/type.js.map +0 -1
@@ -0,0 +1,347 @@
1
+ /**
2
+ * Schema AST Types
3
+ *
4
+ * A unified graph representation of database schema with relationships as first-class citizens.
5
+ * Enables reliable diffing, smart relation detection, and dialect-agnostic schema operations.
6
+ */
7
+ /**
8
+ * Type categories universal across SQL dialects.
9
+ * These represent logical/semantic types, not specific SQL types.
10
+ */
11
+ export type TypeCategory = 'integer' | 'float' | 'decimal' | 'string' | 'boolean' | 'date' | 'time' | 'timestamp' | 'json' | 'uuid' | 'blob' | 'vector';
12
+ /**
13
+ * Size variants for types that support different sizes.
14
+ */
15
+ export type SizeVariant = 'tiny' | 'small' | 'medium' | 'big';
16
+ /**
17
+ * Dialect-agnostic type representation.
18
+ * Used for comparing types across different database engines.
19
+ */
20
+ export interface CanonicalType {
21
+ /** The semantic category of the type */
22
+ readonly category: TypeCategory;
23
+ /** Size variant for types with multiple sizes (tinyint, smallint, bigint, etc.) */
24
+ readonly size?: SizeVariant;
25
+ /** Character/string length (e.g., VARCHAR(255)) */
26
+ readonly length?: number;
27
+ /** Numeric precision for decimal types */
28
+ readonly precision?: number;
29
+ /** Numeric scale for decimal types */
30
+ readonly scale?: number;
31
+ /** Whether the numeric type is unsigned */
32
+ readonly unsigned?: boolean;
33
+ /** Pass-through for explicit/raw SQL types */
34
+ readonly raw?: string;
35
+ /** Whether this type has timezone info (for timestamp types) */
36
+ readonly withTimezone?: boolean;
37
+ }
38
+ /**
39
+ * Actions for foreign key ON DELETE and ON UPDATE clauses.
40
+ */
41
+ export type ForeignKeyAction = 'CASCADE' | 'SET NULL' | 'SET DEFAULT' | 'RESTRICT' | 'NO ACTION';
42
+ /**
43
+ * Default action for foreign key ON DELETE and ON UPDATE clauses.
44
+ */
45
+ export declare const DEFAULT_FOREIGN_KEY_ACTION: ForeignKeyAction;
46
+ /**
47
+ * Relationship cardinality types.
48
+ */
49
+ export type RelationshipType = 'OneToOne' | 'OneToMany' | 'ManyToOne' | 'ManyToMany';
50
+ /**
51
+ * Source of how a relationship was detected.
52
+ */
53
+ export type RelationshipSource = 'explicit_fk' | 'entity_decorator' | 'naming_pattern' | 'junction_table' | 'unique_fk';
54
+ /**
55
+ * Index algorithm/type supported by various databases.
56
+ */
57
+ export type IndexType = 'btree' | 'hash' | 'gin' | 'gist' | 'brin' | 'fulltext';
58
+ /**
59
+ * Source of where an index was defined.
60
+ */
61
+ export type IndexSource = 'entity' | 'database' | 'both';
62
+ /**
63
+ * Sync status for indexes.
64
+ */
65
+ export type IndexSyncStatus = 'in_sync' | 'entity_only' | 'db_only' | 'mismatch';
66
+ /**
67
+ * Column node in the schema graph.
68
+ * Represents a single column in a database table.
69
+ */
70
+ export interface ColumnNode {
71
+ /** Column name in the database */
72
+ readonly name: string;
73
+ /** Canonical (dialect-agnostic) type */
74
+ readonly type: CanonicalType;
75
+ /** Whether the column allows NULL values */
76
+ readonly nullable: boolean;
77
+ /** Default value expression or literal */
78
+ readonly defaultValue?: unknown;
79
+ /** Whether this column is part of the primary key */
80
+ readonly isPrimaryKey: boolean;
81
+ /** Whether this column auto-increments */
82
+ readonly isAutoIncrement: boolean;
83
+ /** Whether this column has a unique constraint */
84
+ readonly isUnique: boolean;
85
+ /** Column comment/description */
86
+ readonly comment?: string;
87
+ /** Reference to the parent table */
88
+ table: TableNode;
89
+ /** Relationships where this column is referenced (FKs pointing TO this column) */
90
+ referencedBy: RelationshipNode[];
91
+ /** Relationship where this column is the foreign key (FK this column points FROM) */
92
+ references?: RelationshipNode;
93
+ }
94
+ /**
95
+ * Table node in the schema graph.
96
+ * Represents a database table with all its columns, indexes, and relationships.
97
+ */
98
+ export interface TableNode {
99
+ /** Table name in the database */
100
+ readonly name: string;
101
+ /** Map of column name to column node */
102
+ readonly columns: Map<string, ColumnNode>;
103
+ /** Primary key columns (supports composite keys) */
104
+ readonly primaryKey: ColumnNode[];
105
+ /** Indexes on this table */
106
+ readonly indexes: IndexNode[];
107
+ /** Optional table comment */
108
+ readonly comment?: string;
109
+ /** Reference to the parent schema */
110
+ schema: SchemaAST;
111
+ /** Relationships pointing TO this table (other tables referencing this one) */
112
+ incomingRelations: RelationshipNode[];
113
+ /** Relationships pointing FROM this table (this table referencing others) */
114
+ outgoingRelations: RelationshipNode[];
115
+ }
116
+ /**
117
+ * Relationship node - a first-class citizen in the schema graph.
118
+ * Represents a foreign key relationship between tables.
119
+ */
120
+ export interface RelationshipNode {
121
+ /** Constraint name (e.g., fk_posts_author_id) */
122
+ readonly name: string;
123
+ /** Type of relationship */
124
+ readonly type: RelationshipType;
125
+ /** Source side of the relationship (table with the FK column) */
126
+ readonly from: {
127
+ readonly table: TableNode;
128
+ readonly columns: ColumnNode[];
129
+ };
130
+ /** Target side of the relationship (referenced table) */
131
+ readonly to: {
132
+ readonly table: TableNode;
133
+ readonly columns: ColumnNode[];
134
+ };
135
+ /** Junction table for ManyToMany relationships */
136
+ readonly through?: TableNode;
137
+ /** Action on delete of referenced row */
138
+ readonly onDelete?: ForeignKeyAction;
139
+ /** Action on update of referenced row */
140
+ readonly onUpdate?: ForeignKeyAction;
141
+ /** Confidence level (0-1) for inferred relationships */
142
+ readonly confidence?: number;
143
+ /** How this relationship was detected */
144
+ readonly inferredFrom?: RelationshipSource;
145
+ }
146
+ /**
147
+ * Index node in the schema graph.
148
+ * Represents a database index on one or more columns.
149
+ */
150
+ export interface IndexNode {
151
+ /** Index name */
152
+ readonly name: string;
153
+ /** Reference to the table this index belongs to */
154
+ readonly table: TableNode;
155
+ /** Columns included in the index (order matters) */
156
+ readonly columns: ColumnNode[];
157
+ /** Whether this is a unique index */
158
+ readonly unique: boolean;
159
+ /** Index algorithm/type */
160
+ readonly type?: IndexType;
161
+ /** Partial index condition (WHERE clause) */
162
+ readonly where?: string;
163
+ /** Where this index was defined */
164
+ readonly source?: IndexSource;
165
+ /** Current sync status */
166
+ readonly syncStatus?: IndexSyncStatus;
167
+ }
168
+ /**
169
+ * Root of the schema graph.
170
+ * Contains all tables, relationships, and provides graph operations.
171
+ */
172
+ export interface SchemaAST {
173
+ /** Map of table name to table node */
174
+ readonly tables: Map<string, TableNode>;
175
+ /** All relationships in the schema */
176
+ readonly relationships: RelationshipNode[];
177
+ /** All indexes (also accessible via TableNode.indexes) */
178
+ readonly indexes: IndexNode[];
179
+ }
180
+ /**
181
+ * Difference between two column definitions.
182
+ */
183
+ export interface ColumnDiff {
184
+ readonly table: string;
185
+ readonly column: string;
186
+ readonly type: 'add' | 'drop' | 'alter';
187
+ readonly expected?: ColumnNode;
188
+ readonly actual?: ColumnNode;
189
+ /** Whether this change could cause data loss */
190
+ readonly isBreaking?: boolean;
191
+ /** Human-readable description of the change */
192
+ readonly description?: string;
193
+ }
194
+ /**
195
+ * Difference between two table definitions.
196
+ */
197
+ export interface TableDiff {
198
+ readonly name: string;
199
+ readonly type: 'create' | 'drop' | 'alter';
200
+ readonly columnDiffs?: ColumnDiff[];
201
+ readonly indexDiffs?: IndexDiff[];
202
+ }
203
+ /**
204
+ * Difference between two index definitions.
205
+ */
206
+ export interface IndexDiff {
207
+ readonly name: string;
208
+ readonly table: string;
209
+ readonly type: 'create' | 'drop' | 'alter';
210
+ readonly expected?: IndexNode;
211
+ readonly actual?: IndexNode;
212
+ }
213
+ /**
214
+ * Difference between two relationship definitions.
215
+ */
216
+ export interface RelationshipDiff {
217
+ readonly name: string;
218
+ readonly fromTable: string;
219
+ readonly toTable: string;
220
+ readonly type: 'create' | 'drop' | 'alter';
221
+ readonly expected?: RelationshipNode;
222
+ readonly actual?: RelationshipNode;
223
+ }
224
+ /**
225
+ * Complete diff between two schemas.
226
+ */
227
+ export interface SchemaDiffResult {
228
+ /** Tables that need to be created */
229
+ readonly tablesToCreate: TableNode[];
230
+ /** Tables that need to be dropped */
231
+ readonly tablesToDrop: TableNode[];
232
+ /** Tables that need alterations */
233
+ readonly tablesToAlter: TableDiff[];
234
+ /** All column-level diffs */
235
+ readonly columnDiffs: ColumnDiff[];
236
+ /** All index diffs */
237
+ readonly indexDiffs: IndexDiff[];
238
+ /** All relationship/FK diffs */
239
+ readonly relationshipDiffs: RelationshipDiff[];
240
+ /** Whether there are any differences */
241
+ readonly hasDifferences: boolean;
242
+ /** Whether any changes are breaking (could cause data loss) */
243
+ readonly hasBreakingChanges: boolean;
244
+ }
245
+ /**
246
+ * Type of schema validation error.
247
+ */
248
+ export type ValidationErrorType = 'missing_fk_target' | 'circular_dependency' | 'orphan_column' | 'duplicate_index' | 'invalid_type';
249
+ /**
250
+ * Schema validation error.
251
+ */
252
+ export interface ValidationError {
253
+ readonly type: ValidationErrorType;
254
+ readonly message: string;
255
+ readonly table?: TableNode;
256
+ readonly column?: ColumnNode;
257
+ readonly relationship?: RelationshipNode;
258
+ readonly tables?: TableNode[];
259
+ }
260
+ /**
261
+ * A detected/inferred relationship with confidence score.
262
+ */
263
+ export interface DetectedRelation {
264
+ readonly type: RelationshipType;
265
+ readonly from: {
266
+ readonly table: TableNode;
267
+ readonly columns: ColumnNode[];
268
+ };
269
+ readonly to: {
270
+ readonly table: TableNode;
271
+ readonly columns: ColumnNode[];
272
+ };
273
+ readonly through?: TableNode;
274
+ /** Confidence level (0-1) */
275
+ readonly confidence: number;
276
+ /** How this relation was detected */
277
+ readonly source: RelationshipSource;
278
+ /** Suggested constraint name */
279
+ readonly suggestedName?: string;
280
+ }
281
+ /**
282
+ * Severity level for schema drift issues.
283
+ */
284
+ export type DriftSeverity = 'critical' | 'warning' | 'info';
285
+ /**
286
+ * Type of schema drift.
287
+ */
288
+ export type DriftType = 'missing_table' | 'unexpected_table' | 'missing_column' | 'unexpected_column' | 'type_mismatch' | 'constraint_mismatch' | 'missing_index' | 'unexpected_index' | 'missing_relationship' | 'unexpected_relationship';
289
+ /**
290
+ * A single schema drift issue.
291
+ */
292
+ export interface Drift {
293
+ readonly type: DriftType;
294
+ readonly severity: DriftSeverity;
295
+ readonly table?: string;
296
+ readonly column?: string;
297
+ readonly index?: string;
298
+ readonly relationship?: string;
299
+ readonly expected?: unknown;
300
+ readonly actual?: unknown;
301
+ readonly details: string;
302
+ readonly suggestion: string;
303
+ }
304
+ /**
305
+ * Overall drift status.
306
+ */
307
+ export type DriftStatus = 'in_sync' | 'drifted' | 'critical';
308
+ /**
309
+ * Complete drift detection report.
310
+ */
311
+ export interface DriftReport {
312
+ readonly status: DriftStatus;
313
+ readonly drifts: Drift[];
314
+ readonly generatedAt: Date;
315
+ /** Count by severity */
316
+ readonly summary: {
317
+ readonly critical: number;
318
+ readonly warning: number;
319
+ readonly info: number;
320
+ };
321
+ }
322
+ /**
323
+ * Direction for schema synchronization.
324
+ */
325
+ export type SyncDirection = 'bidirectional' | 'entity-to-db' | 'db-to-entity';
326
+ /**
327
+ * Strategy for resolving conflicts in bidirectional sync.
328
+ */
329
+ export type ConflictResolution = 'prompt' | 'entity-wins' | 'db-wins' | 'skip';
330
+ /**
331
+ * Options for sync operations.
332
+ */
333
+ export interface SyncOptions {
334
+ /** Direction of synchronization */
335
+ readonly direction?: SyncDirection;
336
+ /** How to resolve conflicts (for bidirectional) */
337
+ readonly conflictResolution?: ConflictResolution;
338
+ /** Prevent destructive changes (DROP, type narrowing) */
339
+ readonly safe?: boolean;
340
+ /** Include indexes in sync */
341
+ readonly includeIndexes?: boolean;
342
+ /** Include foreign keys in sync */
343
+ readonly includeForeignKeys?: boolean;
344
+ /** Dry run - report changes without applying */
345
+ readonly dryRun?: boolean;
346
+ }
347
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Schema AST Types
3
+ *
4
+ * A unified graph representation of database schema with relationships as first-class citizens.
5
+ * Enables reliable diffing, smart relation detection, and dialect-agnostic schema operations.
6
+ */
7
+ /**
8
+ * Default action for foreign key ON DELETE and ON UPDATE clauses.
9
+ */
10
+ export const DEFAULT_FOREIGN_KEY_ACTION = 'NO ACTION';
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6DH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAqB,WAAW,CAAC"}
@@ -3,7 +3,7 @@ import { AbstractSqlDialect } from '../dialect/index.js';
3
3
  import { getMeta } from '../entity/index.js';
4
4
  export class SqliteDialect extends AbstractSqlDialect {
5
5
  constructor(namingStrategy) {
6
- super(namingStrategy, '`', 'BEGIN TRANSACTION');
6
+ super('sqlite', namingStrategy);
7
7
  }
8
8
  addValue(values, value) {
9
9
  if (value instanceof Date) {
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteDialect.js","sourceRoot":"","sources":["../../src/sqlite/sqliteDialect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqliteDialect.js","sourceRoot":"","sources":["../../src/sqlite/sqliteDialect.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteQuerierPool.js","sourceRoot":"","sources":["../../src/sqlite/sqliteQuerierPool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,kBAAmB,SAAQ,mBAAkC;IAI7D;IACA;IAJH,OAAO,CAAgB;IAE/B,YACW,QAA0B,EAC1B,IAAc,EACvB,KAAoB;QAEpB,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAJd,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,SAAI,GAAJ,IAAI,CAAU;IAIzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,EAAO,CAAC;YACZ,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;gBAChD,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAkB,EAAE,IAAI,CAAC,IAAW,CAAC,CAAC;gBAC7D,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAC7D,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5C,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"sqliteQuerierPool.js","sourceRoot":"","sources":["../../src/sqlite/sqliteQuerierPool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,kBAAmB,SAAQ,mBAAkC;IAI7D;IACA;IAJH,OAAO,CAAgB;IAE/B,YACW,QAA0B,EAC1B,IAAc,EACvB,KAAoB;QAEpB,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAJd,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,SAAI,GAAJ,IAAI,CAAU;IAIzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,EAAO,CAAC;YACZ,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;gBAChD,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAkB,EAAE,IAAI,CAAC,IAA+B,CAAC,CAAC;gBACjF,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAC7D,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5C,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
@@ -1,3 +1,4 @@
1
+ import type { ForeignKeyAction } from '../schema/types.js';
1
2
  import type { NamingStrategy } from './namingStrategy.js';
2
3
  import type { Dialect } from './querier.js';
3
4
  import type { QuerierPool } from './querierPool.js';
@@ -36,5 +37,10 @@ export interface Config {
36
37
  * @default DefaultNamingStrategy (camelCase -> camelCase)
37
38
  */
38
39
  namingStrategy?: NamingStrategy;
40
+ /**
41
+ * Default action for foreign key ON DELETE and ON UPDATE clauses.
42
+ * @default 'NO ACTION'
43
+ */
44
+ defaultForeignKeyAction?: ForeignKeyAction;
39
45
  }
40
46
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/type/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAE3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/type/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAE3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;CAC5C"}
@@ -86,7 +86,14 @@ export type FieldOptions = {
86
86
  readonly name?: string;
87
87
  readonly isId?: true;
88
88
  readonly type?: FieldType;
89
+ /**
90
+ * @deprecated Use 'references' instead for better semantics.
91
+ */
89
92
  readonly reference?: EntityGetter;
93
+ /**
94
+ * Entity that this field references (for foreign keys).
95
+ */
96
+ readonly references?: EntityGetter;
90
97
  readonly virtual?: QueryRaw;
91
98
  readonly updatable?: boolean;
92
99
  readonly eager?: boolean;
@@ -191,8 +198,25 @@ export type EntityMeta<E> = {
191
198
  relations: {
192
199
  [K in RelationKey<E>]?: RelationOptions;
193
200
  };
201
+ /** Composite indexes defined via @Index decorator */
202
+ indexes?: EntityIndexMeta[];
194
203
  processed?: boolean;
195
204
  };
205
+ /**
206
+ * Index metadata from @Index decorator.
207
+ */
208
+ export type EntityIndexMeta = {
209
+ /** Column names in the index */
210
+ columns: string[];
211
+ /** Custom index name */
212
+ name?: string;
213
+ /** Whether index is unique */
214
+ unique: boolean;
215
+ /** Index type (btree, hash, etc.) */
216
+ type?: string;
217
+ /** Partial index condition (WHERE clause) */
218
+ where?: string;
219
+ };
196
220
  export type Primitive = string | number | symbol;
197
221
  export {};
198
222
  //# sourceMappingURL=entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/type/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/type/entity.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ import type { FullColumnDefinition, TableDefinition, TableForeignKeyDefinition } from '../migrate/builder/types.js';
2
+ import type { SchemaAST } from '../schema/schemaAST.js';
3
+ import type { ForeignKeyAction, IndexNode, TableNode } from '../schema/types.js';
1
4
  import type { Dialect, EntityMeta, FieldOptions, LoggingOptions, NamingStrategy, SqlQuerier, Type } from './index.js';
2
5
  /**
3
6
  * Defines a migration using a simple object literal
@@ -73,6 +76,10 @@ export interface MigratorOptions {
73
76
  * Naming strategy for database tables and columns
74
77
  */
75
78
  readonly namingStrategy?: NamingStrategy;
79
+ /**
80
+ * Default action for foreign key ON DELETE and ON UPDATE clauses.
81
+ */
82
+ readonly defaultForeignKeyAction?: ForeignKeyAction;
76
83
  /**
77
84
  * Custom schema generator for DDL operations.
78
85
  * If not provided, it will be inferred from the dialect.
@@ -186,9 +193,9 @@ export interface SchemaGenerator {
186
193
  */
187
194
  getSqlType(fieldOptions: FieldOptions, fieldType?: unknown): string;
188
195
  /**
189
- * Compare two schemas and return the differences
196
+ * Compare an entity with a database table node and return the differences.
190
197
  */
191
- diffSchema<E>(entity: Type<E>, currentSchema: TableSchema | undefined): SchemaDiff | undefined;
198
+ diffSchema<E>(entity: Type<E>, currentTable: TableNode | undefined): SchemaDiff | undefined;
192
199
  /**
193
200
  * Resolve table name using entity and naming strategy
194
201
  */
@@ -197,19 +204,62 @@ export interface SchemaGenerator {
197
204
  * Resolve column name using field options and naming strategy
198
205
  */
199
206
  resolveColumnName(key: string, field: FieldOptions): string;
207
+ /** Generate CREATE TABLE statement from a TableNode */
208
+ generateCreateTableFromNode(table: TableNode, options?: {
209
+ ifNotExists?: boolean;
210
+ }): string;
211
+ /** Generate CREATE INDEX statement from an IndexNode */
212
+ generateCreateIndexFromNode(index: IndexNode, options?: {
213
+ ifNotExists?: boolean;
214
+ }): string;
215
+ /** Generate DROP TABLE statement from a TableNode */
216
+ generateDropTableFromNode(table: TableNode, options?: {
217
+ ifExists?: boolean;
218
+ }): string;
219
+ /** Generate CREATE TABLE statement from a TableDefinition */
220
+ generateCreateTableFromDefinition(table: TableDefinition, options?: {
221
+ ifNotExists?: boolean;
222
+ }): string;
223
+ /** Generate DROP TABLE statement */
224
+ generateDropTableSql(tableName: string, options?: {
225
+ ifExists?: boolean;
226
+ cascade?: boolean;
227
+ }): string;
228
+ /** Generate RENAME TABLE statement */
229
+ generateRenameTableSql(oldName: string, newName: string): string;
230
+ /** Generate ADD COLUMN statement */
231
+ generateAddColumnSql(tableName: string, column: FullColumnDefinition): string;
232
+ /** Generate ALTER COLUMN statement */
233
+ generateAlterColumnSql(tableName: string, columnName: string, column: FullColumnDefinition): string;
234
+ /** Generate DROP COLUMN statement */
235
+ generateDropColumnSql(tableName: string, columnName: string): string;
236
+ /** Generate RENAME COLUMN statement */
237
+ generateRenameColumnSql(tableName: string, oldName: string, newName: string): string;
238
+ /** Generate CREATE INDEX statement from IndexSchema */
239
+ generateCreateIndexSql(tableName: string, index: IndexSchema): string;
240
+ /** Generate DROP INDEX statement */
241
+ generateDropIndexSql(tableName: string, indexName: string): string;
242
+ /** Generate ADD FOREIGN KEY statement */
243
+ generateAddForeignKeySql(tableName: string, foreignKey: TableForeignKeyDefinition): string;
244
+ /** Generate DROP FOREIGN KEY statement */
245
+ generateDropForeignKeySql(tableName: string, constraintName: string): string;
200
246
  }
201
247
  /**
202
248
  * Interface for introspecting the current database schema
203
249
  */
204
250
  export interface SchemaIntrospector {
205
251
  /**
206
- * Get the schema of a specific table
252
+ * Introspect entire database schema and return SchemaAST.
207
253
  */
208
- getTableSchema(tableName: string): Promise<TableSchema | undefined>;
254
+ introspect(): Promise<SchemaAST>;
209
255
  /**
210
256
  * Get all table names in the database
211
257
  */
212
258
  getTableNames(): Promise<string[]>;
259
+ /**
260
+ * Get the schema for a specific table
261
+ */
262
+ getTableSchema(tableName: string): Promise<TableSchema | undefined>;
213
263
  /**
214
264
  * Check if a table exists
215
265
  */
@@ -1 +1 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/type/migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEtH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,mBAAmB;IACpD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9B;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;CACvE;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,EAAE,EAAE,YAAY,CAAA;KAAE,EAAE,CAAC;IACrE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC;IAErF;;OAEG;IACH,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAE9C;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC;IAE/C;;OAEG;IACH,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC;IAEnD;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IAEnE;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhE;;OAEG;IACH,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEpE;;OAEG;IACH,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAE/F;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAElE;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEpE;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnC;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClD"}
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/type/migration.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,14 @@ import type { Db } from 'mongodb';
2
2
  import type { IdValue } from './entity.js';
3
3
  import type { LoggingOptions } from './logger.js';
4
4
  import type { NamingStrategy } from './namingStrategy.js';
5
- import type { Query, QueryConflictPaths, QueryOne, QueryOptions, QuerySearch, QueryUpdateResult, SqlQueryDialect } from './query.js';
5
+ import type { Query, QueryConflictPaths, QueryOne, QueryOptions, QuerySearch, QueryUpdateResult, SqlDialect, SqlQueryDialect } from './query.js';
6
6
  import type { UniversalQuerier } from './universalQuerier.js';
7
7
  import type { Type } from './utility.js';
8
8
  /**
9
9
  * Isolation levels for transactions.
10
10
  */
11
11
  export type IsolationLevel = 'read uncommitted' | 'read committed' | 'repeteable read' | 'serializable';
12
- /**
13
- * Supported SQL dialect identifiers.
14
- */
15
- export type SqlDialect = 'postgres' | 'mysql' | 'mariadb' | 'sqlite';
12
+ export type { SqlDialect };
16
13
  export type Dialect = SqlDialect | 'mongodb';
17
14
  export interface Querier extends UniversalQuerier {
18
15
  findOneById<E>(entity: Type<E>, id: IdValue<E>, q?: QueryOne<E>): Promise<E>;