@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 @@
1
+ {"version":3,"file":"migrationBuilder.d.ts","sourceRoot":"","sources":["../../../src/migrate/builder/migrationBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,453 @@
1
+ /**
2
+ * Migration Builder
3
+ *
4
+ * Provides type-safe migration operations with two modes:
5
+ * - OperationRecorder: Record operations only (for code generation)
6
+ * - MigrationBuilder: Execute DDL operations (for integration tests/runtime)
7
+ */
8
+ import { createSchemaGenerator } from '../schemaGenerator.js';
9
+ import { ColumnBuilder } from './columnBuilder.js';
10
+ import { TableBuilder } from './tableBuilder.js';
11
+ /**
12
+ * Builder for altering a table.
13
+ * Delegates to parent builder for operation recording.
14
+ */
15
+ class AlterTableBuilder {
16
+ tableName;
17
+ parentBuilder;
18
+ constructor(tableName, parentBuilder) {
19
+ this.tableName = tableName;
20
+ this.parentBuilder = parentBuilder;
21
+ }
22
+ addColumn(name, callback) {
23
+ const builder = new ColumnBuilder(name, { category: 'string' });
24
+ callback(builder);
25
+ this.parentBuilder.recordOperationSync({
26
+ type: 'addColumn',
27
+ tableName: this.tableName,
28
+ column: builder.build(),
29
+ });
30
+ return this;
31
+ }
32
+ dropColumn(name) {
33
+ this.parentBuilder.recordOperationSync({
34
+ type: 'dropColumn',
35
+ tableName: this.tableName,
36
+ columnName: name,
37
+ });
38
+ return this;
39
+ }
40
+ renameColumn(oldName, newName) {
41
+ this.parentBuilder.recordOperationSync({
42
+ type: 'renameColumn',
43
+ tableName: this.tableName,
44
+ oldName,
45
+ newName,
46
+ });
47
+ return this;
48
+ }
49
+ alterColumn(name, callback) {
50
+ const builder = new ColumnBuilder(name, { category: 'string' });
51
+ callback(builder);
52
+ this.parentBuilder.recordOperationSync({
53
+ type: 'alterColumn',
54
+ tableName: this.tableName,
55
+ columnName: name,
56
+ changes: builder.build(),
57
+ });
58
+ return this;
59
+ }
60
+ addIndex(columns, options) {
61
+ const indexName = options?.name ?? `idx_${this.tableName}_${columns.join('_')}`;
62
+ this.parentBuilder.recordOperationSync({
63
+ type: 'createIndex',
64
+ tableName: this.tableName,
65
+ index: {
66
+ name: indexName,
67
+ columns,
68
+ unique: options?.unique ?? false,
69
+ },
70
+ });
71
+ return this;
72
+ }
73
+ dropIndex(name) {
74
+ this.parentBuilder.recordOperationSync({
75
+ type: 'dropIndex',
76
+ tableName: this.tableName,
77
+ indexName: name,
78
+ });
79
+ return this;
80
+ }
81
+ addForeignKey(columns, target, options) {
82
+ this.parentBuilder.recordOperationSync({
83
+ type: 'addForeignKey',
84
+ tableName: this.tableName,
85
+ foreignKey: {
86
+ name: options?.name,
87
+ columns,
88
+ referencesTable: target.table,
89
+ referencesColumns: target.columns,
90
+ onDelete: options?.onDelete ?? 'NO ACTION',
91
+ onUpdate: options?.onUpdate ?? 'NO ACTION',
92
+ },
93
+ });
94
+ return this;
95
+ }
96
+ dropForeignKey(name) {
97
+ this.parentBuilder.recordOperationSync({
98
+ type: 'dropForeignKey',
99
+ tableName: this.tableName,
100
+ constraintName: name,
101
+ });
102
+ return this;
103
+ }
104
+ }
105
+ /**
106
+ * Records migration operations without executing them.
107
+ * Use for migration code generation and dry-run scenarios.
108
+ */
109
+ export class OperationRecorder {
110
+ operations = [];
111
+ // ============================================================================
112
+ // Table Operations
113
+ // ============================================================================
114
+ async createTable(name, callback) {
115
+ const builder = new TableBuilder(name);
116
+ callback(builder);
117
+ this.recordOperationSync({
118
+ type: 'createTable',
119
+ table: builder.build(),
120
+ });
121
+ }
122
+ async dropTable(name, options = {}) {
123
+ this.recordOperationSync({
124
+ type: 'dropTable',
125
+ tableName: name,
126
+ ifExists: options.ifExists,
127
+ cascade: options.cascade,
128
+ });
129
+ }
130
+ async renameTable(oldName, newName) {
131
+ this.recordOperationSync({
132
+ type: 'renameTable',
133
+ oldName,
134
+ newName,
135
+ });
136
+ }
137
+ async alterTable(name, callback) {
138
+ const builder = new AlterTableBuilder(name, this);
139
+ callback(builder);
140
+ }
141
+ // ============================================================================
142
+ // Column Operations
143
+ // ============================================================================
144
+ async addColumn(tableName, columnName, callback) {
145
+ const builder = new ColumnBuilder(columnName, { category: 'string' });
146
+ callback(builder);
147
+ this.recordOperationSync({
148
+ type: 'addColumn',
149
+ tableName,
150
+ column: builder.build(),
151
+ });
152
+ }
153
+ async dropColumn(tableName, columnName) {
154
+ this.recordOperationSync({
155
+ type: 'dropColumn',
156
+ tableName,
157
+ columnName,
158
+ });
159
+ }
160
+ async alterColumn(tableName, columnName, callback) {
161
+ const builder = new ColumnBuilder(columnName, { category: 'string' });
162
+ callback(builder);
163
+ this.recordOperationSync({
164
+ type: 'alterColumn',
165
+ tableName,
166
+ columnName,
167
+ changes: builder.build(),
168
+ });
169
+ }
170
+ async renameColumn(tableName, oldName, newName) {
171
+ this.recordOperationSync({
172
+ type: 'renameColumn',
173
+ tableName,
174
+ oldName,
175
+ newName,
176
+ });
177
+ }
178
+ // ============================================================================
179
+ // Index Operations
180
+ // ============================================================================
181
+ async createIndex(tableName, columns, options = {}) {
182
+ const indexName = options.name ?? `idx_${tableName}_${columns.join('_')}`;
183
+ this.recordOperationSync({
184
+ type: 'createIndex',
185
+ tableName,
186
+ index: {
187
+ name: indexName,
188
+ columns,
189
+ unique: options.unique ?? false,
190
+ where: options.where,
191
+ },
192
+ });
193
+ }
194
+ async dropIndex(tableName, indexName) {
195
+ this.recordOperationSync({
196
+ type: 'dropIndex',
197
+ tableName,
198
+ indexName,
199
+ });
200
+ }
201
+ // ============================================================================
202
+ // Foreign Key Operations
203
+ // ============================================================================
204
+ async addForeignKey(tableName, columns, target, options = {}) {
205
+ this.recordOperationSync({
206
+ type: 'addForeignKey',
207
+ tableName,
208
+ foreignKey: {
209
+ name: options.name,
210
+ columns,
211
+ referencesTable: target.table,
212
+ referencesColumns: target.columns,
213
+ onDelete: options.onDelete ?? 'NO ACTION',
214
+ onUpdate: options.onUpdate ?? 'NO ACTION',
215
+ },
216
+ });
217
+ }
218
+ async dropForeignKey(tableName, constraintName) {
219
+ this.recordOperationSync({
220
+ type: 'dropForeignKey',
221
+ tableName,
222
+ constraintName,
223
+ });
224
+ }
225
+ // ============================================================================
226
+ // Raw SQL
227
+ // ============================================================================
228
+ async raw(sql) {
229
+ this.recordOperationSync({
230
+ type: 'raw',
231
+ sql,
232
+ });
233
+ }
234
+ // ============================================================================
235
+ // Operation Access
236
+ // ============================================================================
237
+ getOperations() {
238
+ return [...this.operations];
239
+ }
240
+ recordOperationSync(operation) {
241
+ this.operations.push(operation);
242
+ }
243
+ }
244
+ /**
245
+ * Executes DDL operations via a SQL querier.
246
+ * Use for integration tests and runtime schema management.
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * const builder = new MigrationBuilder(querier);
251
+ *
252
+ * await builder.createTable('users', (t) => {
253
+ * t.id();
254
+ * t.string('name');
255
+ * t.timestamps();
256
+ * });
257
+ * ```
258
+ */
259
+ export class MigrationBuilder extends OperationRecorder {
260
+ querier;
261
+ sqlGenerator;
262
+ constructor(querier, options = {}) {
263
+ super();
264
+ this.querier = querier;
265
+ this.sqlGenerator = createSchemaGenerator(querier.dialect.dialect, options.namingStrategy);
266
+ }
267
+ recordOperationSync(operation) {
268
+ super.recordOperationSync(operation);
269
+ // Fire and forget execution - for sync contexts (AlterTableBuilder)
270
+ void this.execute(operation);
271
+ }
272
+ async raw(sql) {
273
+ const operation = {
274
+ type: 'raw',
275
+ sql,
276
+ };
277
+ this.operations.push(operation);
278
+ await this.querier.run(sql);
279
+ }
280
+ // ============================================================================
281
+ // Override async methods to execute immediately
282
+ // ============================================================================
283
+ async createTable(name, callback) {
284
+ const builder = new TableBuilder(name);
285
+ callback(builder);
286
+ const operation = {
287
+ type: 'createTable',
288
+ table: builder.build(),
289
+ };
290
+ this.operations.push(operation);
291
+ await this.execute(operation);
292
+ }
293
+ async dropTable(name, options = {}) {
294
+ const operation = {
295
+ type: 'dropTable',
296
+ tableName: name,
297
+ ifExists: options.ifExists,
298
+ cascade: options.cascade,
299
+ };
300
+ this.operations.push(operation);
301
+ await this.execute(operation);
302
+ }
303
+ async renameTable(oldName, newName) {
304
+ const operation = {
305
+ type: 'renameTable',
306
+ oldName,
307
+ newName,
308
+ };
309
+ this.operations.push(operation);
310
+ await this.execute(operation);
311
+ }
312
+ async addColumn(tableName, columnName, callback) {
313
+ const builder = new ColumnBuilder(columnName, { category: 'string' });
314
+ callback(builder);
315
+ const operation = {
316
+ type: 'addColumn',
317
+ tableName,
318
+ column: builder.build(),
319
+ };
320
+ this.operations.push(operation);
321
+ await this.execute(operation);
322
+ }
323
+ async dropColumn(tableName, columnName) {
324
+ const operation = {
325
+ type: 'dropColumn',
326
+ tableName,
327
+ columnName,
328
+ };
329
+ this.operations.push(operation);
330
+ await this.execute(operation);
331
+ }
332
+ async alterColumn(tableName, columnName, callback) {
333
+ const builder = new ColumnBuilder(columnName, { category: 'string' });
334
+ callback(builder);
335
+ const operation = {
336
+ type: 'alterColumn',
337
+ tableName,
338
+ columnName,
339
+ changes: builder.build(),
340
+ };
341
+ this.operations.push(operation);
342
+ await this.execute(operation);
343
+ }
344
+ async renameColumn(tableName, oldName, newName) {
345
+ const operation = {
346
+ type: 'renameColumn',
347
+ tableName,
348
+ oldName,
349
+ newName,
350
+ };
351
+ this.operations.push(operation);
352
+ await this.execute(operation);
353
+ }
354
+ async createIndex(tableName, columns, options = {}) {
355
+ const indexName = options.name ?? `idx_${tableName}_${columns.join('_')}`;
356
+ const operation = {
357
+ type: 'createIndex',
358
+ tableName,
359
+ index: {
360
+ name: indexName,
361
+ columns,
362
+ unique: options.unique ?? false,
363
+ where: options.where,
364
+ },
365
+ };
366
+ this.operations.push(operation);
367
+ await this.execute(operation);
368
+ }
369
+ async dropIndex(tableName, indexName) {
370
+ const operation = {
371
+ type: 'dropIndex',
372
+ tableName,
373
+ indexName,
374
+ };
375
+ this.operations.push(operation);
376
+ await this.execute(operation);
377
+ }
378
+ async addForeignKey(tableName, columns, target, options = {}) {
379
+ const operation = {
380
+ type: 'addForeignKey',
381
+ tableName,
382
+ foreignKey: {
383
+ name: options.name,
384
+ columns,
385
+ referencesTable: target.table,
386
+ referencesColumns: target.columns,
387
+ onDelete: options.onDelete ?? 'NO ACTION',
388
+ onUpdate: options.onUpdate ?? 'NO ACTION',
389
+ },
390
+ };
391
+ this.operations.push(operation);
392
+ await this.execute(operation);
393
+ }
394
+ async dropForeignKey(tableName, constraintName) {
395
+ const operation = {
396
+ type: 'dropForeignKey',
397
+ tableName,
398
+ constraintName,
399
+ };
400
+ this.operations.push(operation);
401
+ await this.execute(operation);
402
+ }
403
+ // ============================================================================
404
+ // Private Methods
405
+ // ============================================================================
406
+ async execute(operation) {
407
+ const sql = this.operationToSql(operation);
408
+ if (sql) {
409
+ await this.querier.run(sql);
410
+ }
411
+ }
412
+ operationToSql(operation) {
413
+ switch (operation.type) {
414
+ case 'createTable':
415
+ return this.sqlGenerator.generateCreateTableFromDefinition(operation.table);
416
+ case 'dropTable':
417
+ return this.sqlGenerator.generateDropTableSql(operation.tableName, {
418
+ ifExists: operation.ifExists,
419
+ cascade: operation.cascade,
420
+ });
421
+ case 'renameTable':
422
+ return this.sqlGenerator.generateRenameTableSql(operation.oldName, operation.newName);
423
+ case 'addColumn':
424
+ return this.sqlGenerator.generateAddColumnSql(operation.tableName, operation.column);
425
+ case 'dropColumn':
426
+ return this.sqlGenerator.generateDropColumnSql(operation.tableName, operation.columnName);
427
+ case 'renameColumn':
428
+ return this.sqlGenerator.generateRenameColumnSql(operation.tableName, operation.oldName, operation.newName);
429
+ case 'alterColumn':
430
+ return this.sqlGenerator.generateAlterColumnSql(operation.tableName, operation.columnName, operation.changes);
431
+ case 'createIndex':
432
+ return this.sqlGenerator.generateCreateIndexSql(operation.tableName, operation.index);
433
+ case 'dropIndex':
434
+ return this.sqlGenerator.generateDropIndexSql(operation.tableName, operation.indexName);
435
+ case 'addForeignKey':
436
+ return this.sqlGenerator.generateAddForeignKeySql(operation.tableName, operation.foreignKey);
437
+ case 'dropForeignKey':
438
+ return this.sqlGenerator.generateDropForeignKeySql(operation.tableName, operation.constraintName);
439
+ case 'raw':
440
+ return operation.sql;
441
+ default:
442
+ return undefined;
443
+ }
444
+ }
445
+ }
446
+ /**
447
+ * Create an operation recorder for dry-run (recording only).
448
+ * @deprecated Use `new OperationRecorder()` directly
449
+ */
450
+ export function createDryRunBuilder() {
451
+ return new OperationRecorder();
452
+ }
453
+ //# sourceMappingURL=migrationBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrationBuilder.js","sourceRoot":"","sources":["../../../src/migrate/builder/migrationBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Table Builder
3
+ *
4
+ * Fluent API for defining tables in migrations.
5
+ */
6
+ import type { BaseColumnOptions, DecimalColumnOptions, IColumnBuilder, ITableBuilder, ITableForeignKeyBuilder, StringColumnOptions, TableDefinition, VectorColumnOptions } from './types.js';
7
+ /**
8
+ * Builder for table definitions with a fluent API.
9
+ */
10
+ export declare class TableBuilder implements ITableBuilder {
11
+ private _name;
12
+ private _columnBuilders;
13
+ private _primaryKey?;
14
+ private _indexes;
15
+ private _foreignKeyBuilders;
16
+ private _comment?;
17
+ constructor(name: string);
18
+ id(name?: string, options?: BaseColumnOptions): IColumnBuilder;
19
+ integer(name: string, options?: BaseColumnOptions): IColumnBuilder;
20
+ smallint(name: string, options?: BaseColumnOptions): IColumnBuilder;
21
+ bigint(name: string, options?: BaseColumnOptions): IColumnBuilder;
22
+ float(name: string, options?: BaseColumnOptions): IColumnBuilder;
23
+ double(name: string, options?: BaseColumnOptions): IColumnBuilder;
24
+ decimal(name: string, options?: DecimalColumnOptions): IColumnBuilder;
25
+ string(name: string, options?: StringColumnOptions): IColumnBuilder;
26
+ char(name: string, options?: StringColumnOptions): IColumnBuilder;
27
+ text(name: string, options?: BaseColumnOptions): IColumnBuilder;
28
+ boolean(name: string, options?: BaseColumnOptions): IColumnBuilder;
29
+ date(name: string, options?: BaseColumnOptions): IColumnBuilder;
30
+ time(name: string, options?: BaseColumnOptions): IColumnBuilder;
31
+ timestamp(name: string, options?: BaseColumnOptions): IColumnBuilder;
32
+ timestamptz(name: string, options?: BaseColumnOptions): IColumnBuilder;
33
+ json(name: string, options?: BaseColumnOptions): IColumnBuilder;
34
+ jsonb(name: string, options?: BaseColumnOptions): IColumnBuilder;
35
+ uuid(name: string, options?: BaseColumnOptions): IColumnBuilder;
36
+ blob(name: string, options?: BaseColumnOptions): IColumnBuilder;
37
+ vector(name: string, options?: VectorColumnOptions): IColumnBuilder;
38
+ createdAt(): IColumnBuilder;
39
+ updatedAt(): IColumnBuilder;
40
+ timestamps(): void;
41
+ primaryKey(columns: string[]): this;
42
+ unique(columns: string[], name?: string): this;
43
+ index(columns: string[], name?: string): this;
44
+ foreignKey(columns: string[]): ITableForeignKeyBuilder;
45
+ comment(text: string): this;
46
+ /**
47
+ * Build the table definition.
48
+ */
49
+ build(): TableDefinition;
50
+ }
51
+ //# sourceMappingURL=tableBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableBuilder.d.ts","sourceRoot":"","sources":["../../../src/migrate/builder/tableBuilder.ts"],"names":[],"mappings":"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"}