@warlock.js/cascade 4.0.132 → 4.0.133

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 (53) hide show
  1. package/cjs/contracts/migration-driver.contract.d.ts +70 -1
  2. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -1
  3. package/cjs/drivers/mongodb/mongodb-driver.d.ts +12 -0
  4. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -1
  5. package/cjs/drivers/mongodb/mongodb-driver.js +26 -4
  6. package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -1
  7. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +39 -1
  8. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -1
  9. package/cjs/drivers/mongodb/mongodb-migration-driver.js +68 -0
  10. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -1
  11. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +52 -1
  12. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -1
  13. package/cjs/drivers/postgres/postgres-migration-driver.js +226 -27
  14. package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -1
  15. package/cjs/migration/column-builder.d.ts +201 -1
  16. package/cjs/migration/column-builder.d.ts.map +1 -1
  17. package/cjs/migration/column-builder.js +295 -0
  18. package/cjs/migration/column-builder.js.map +1 -1
  19. package/cjs/migration/foreign-key-builder.d.ts +10 -17
  20. package/cjs/migration/foreign-key-builder.d.ts.map +1 -1
  21. package/cjs/migration/foreign-key-builder.js +11 -19
  22. package/cjs/migration/foreign-key-builder.js.map +1 -1
  23. package/cjs/migration/migration.d.ts +223 -15
  24. package/cjs/migration/migration.d.ts.map +1 -1
  25. package/cjs/migration/migration.js +249 -29
  26. package/cjs/migration/migration.js.map +1 -1
  27. package/esm/contracts/migration-driver.contract.d.ts +70 -1
  28. package/esm/contracts/migration-driver.contract.d.ts.map +1 -1
  29. package/esm/drivers/mongodb/mongodb-driver.d.ts +12 -0
  30. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -1
  31. package/esm/drivers/mongodb/mongodb-driver.js +26 -4
  32. package/esm/drivers/mongodb/mongodb-driver.js.map +1 -1
  33. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +39 -1
  34. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -1
  35. package/esm/drivers/mongodb/mongodb-migration-driver.js +68 -0
  36. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -1
  37. package/esm/drivers/postgres/postgres-migration-driver.d.ts +52 -1
  38. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -1
  39. package/esm/drivers/postgres/postgres-migration-driver.js +226 -27
  40. package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -1
  41. package/esm/migration/column-builder.d.ts +201 -1
  42. package/esm/migration/column-builder.d.ts.map +1 -1
  43. package/esm/migration/column-builder.js +295 -0
  44. package/esm/migration/column-builder.js.map +1 -1
  45. package/esm/migration/foreign-key-builder.d.ts +10 -17
  46. package/esm/migration/foreign-key-builder.d.ts.map +1 -1
  47. package/esm/migration/foreign-key-builder.js +11 -19
  48. package/esm/migration/foreign-key-builder.js.map +1 -1
  49. package/esm/migration/migration.d.ts +223 -15
  50. package/esm/migration/migration.d.ts.map +1 -1
  51. package/esm/migration/migration.js +249 -29
  52. package/esm/migration/migration.js.map +1 -1
  53. package/package.json +4 -4
@@ -103,6 +103,15 @@ class PostgresMigrationDriver {
103
103
  const quotedTo = this.driver.dialect.quoteIdentifier(to);
104
104
  await this.execute(`ALTER TABLE ${quotedFrom} RENAME TO ${quotedTo}`);
105
105
  }
106
+ /**
107
+ * Truncate a table — remove all rows efficiently.
108
+ *
109
+ * @param table - Table name
110
+ */
111
+ async truncateTable(table) {
112
+ const quotedTable = this.driver.dialect.quoteIdentifier(table);
113
+ await this.execute(`TRUNCATE TABLE ${quotedTable}`);
114
+ }
106
115
  /**
107
116
  * Check if a table exists.
108
117
  *
@@ -111,12 +120,53 @@ class PostgresMigrationDriver {
111
120
  */
112
121
  async tableExists(table) {
113
122
  const result = await this.driver.query(`SELECT EXISTS (
114
- SELECT FROM information_schema.tables
115
- WHERE table_schema = 'public'
123
+ SELECT FROM information_schema.tables
124
+ WHERE table_schema = 'public'
116
125
  AND table_name = $1
117
126
  )`, [table]);
118
127
  return result.rows[0]?.exists ?? false;
119
128
  }
129
+ /**
130
+ * List all columns in a table.
131
+ *
132
+ * @param table - Table name
133
+ * @returns Array of column definitions
134
+ */
135
+ async listColumns(table) {
136
+ const result = await this.driver.query(`SELECT
137
+ column_name,
138
+ data_type,
139
+ character_maximum_length,
140
+ numeric_precision,
141
+ numeric_scale,
142
+ is_nullable,
143
+ column_default
144
+ FROM information_schema.columns
145
+ WHERE table_schema = 'public'
146
+ AND table_name = $1
147
+ ORDER BY ordinal_position`, [table]);
148
+ return result.rows.map((row) => ({
149
+ name: row.column_name,
150
+ type: this.mapPostgresTypeToColumnType(row.data_type),
151
+ length: row.character_maximum_length ?? undefined,
152
+ precision: row.numeric_precision ?? undefined,
153
+ scale: row.numeric_scale ?? undefined,
154
+ nullable: row.is_nullable === "YES",
155
+ defaultValue: row.column_default ?? undefined,
156
+ }));
157
+ }
158
+ /**
159
+ * List all tables in the current database.
160
+ *
161
+ * @returns Array of table names
162
+ */
163
+ async listTables() {
164
+ const result = await this.driver.query(`SELECT table_name
165
+ FROM information_schema.tables
166
+ WHERE table_schema = 'public'
167
+ ORDER BY table_name`);
168
+ return result.rows.map((row) => row.table_name);
169
+ }
120
170
  /**
121
171
  * Ensure the migrations tracking table exists.
122
172
  *
@@ -166,28 +216,45 @@ class PostgresMigrationDriver {
166
216
  });
167
217
  }
168
218
  let sql = `ALTER TABLE ${quotedTable} ADD COLUMN ${quotedColumn} ${sqlType}`;
169
- // SERIAL/BIGSERIAL are always NOT NULL, so skip for those
170
- if (!column.autoIncrement && column.nullable === false) {
171
- sql += " NOT NULL";
219
+ // Handle generated columns
220
+ if (column.generated) {
221
+ sql += ` GENERATED ALWAYS AS (${column.generated.expression})`;
222
+ if (column.generated.stored) {
223
+ sql += " STORED";
224
+ }
225
+ // PostgreSQL only supports STORED, not VIRTUAL
226
+ // If virtual is requested, it's simply ignored (PostgreSQL doesn't support it)
172
227
  }
173
- if (column.defaultValue !== undefined) {
174
- if (typeof column.defaultValue === "string") {
175
- sql += ` DEFAULT '${column.defaultValue}'`;
228
+ else {
229
+ // SERIAL/BIGSERIAL are always NOT NULL, so skip for those
230
+ if (!column.autoIncrement && column.nullable === false) {
231
+ sql += " NOT NULL";
176
232
  }
177
- else if (typeof column.defaultValue === "boolean") {
178
- sql += ` DEFAULT ${column.defaultValue ? "TRUE" : "FALSE"}`;
233
+ if (column.defaultValue !== undefined) {
234
+ // Check for special CURRENT_TIMESTAMP marker
235
+ if (typeof column.defaultValue === "object" &&
236
+ column.defaultValue !== null &&
237
+ column.defaultValue.__type === "CURRENT_TIMESTAMP") {
238
+ sql += " DEFAULT NOW()";
239
+ }
240
+ else if (typeof column.defaultValue === "string") {
241
+ sql += ` DEFAULT '${column.defaultValue}'`;
242
+ }
243
+ else if (typeof column.defaultValue === "boolean") {
244
+ sql += ` DEFAULT ${column.defaultValue ? "TRUE" : "FALSE"}`;
245
+ }
246
+ else {
247
+ sql += ` DEFAULT ${column.defaultValue}`;
248
+ }
179
249
  }
180
- else {
181
- sql += ` DEFAULT ${column.defaultValue}`;
250
+ // Handle primary key
251
+ if (column.primary) {
252
+ sql += " PRIMARY KEY";
253
+ }
254
+ // Handle unique constraint
255
+ if (column.unique) {
256
+ sql += " UNIQUE";
182
257
  }
183
- }
184
- // Handle primary key
185
- if (column.primary) {
186
- sql += " PRIMARY KEY";
187
- }
188
- // Handle unique constraint
189
- if (column.unique) {
190
- sql += " UNIQUE";
191
258
  }
192
259
  await this.execute(sql);
193
260
  }
@@ -249,7 +316,19 @@ class PostgresMigrationDriver {
249
316
  await this.execute(`ALTER TABLE ${quotedTable} ALTER COLUMN ${quotedColumn} DROP NOT NULL`);
250
317
  }
251
318
  if (column.defaultValue !== undefined) {
252
- const defaultVal = typeof column.defaultValue === "string" ? `'${column.defaultValue}'` : column.defaultValue;
319
+ let defaultVal;
320
+ // Check for special CURRENT_TIMESTAMP marker
321
+ if (typeof column.defaultValue === "object" &&
322
+ column.defaultValue !== null &&
323
+ column.defaultValue.__type === "CURRENT_TIMESTAMP") {
324
+ defaultVal = "NOW()";
325
+ }
326
+ else if (typeof column.defaultValue === "string") {
327
+ defaultVal = `'${column.defaultValue}'`;
328
+ }
329
+ else {
330
+ defaultVal = String(column.defaultValue);
331
+ }
253
332
  await this.execute(`ALTER TABLE ${quotedTable} ALTER COLUMN ${quotedColumn} SET DEFAULT ${defaultVal}`);
254
333
  }
255
334
  }
@@ -259,6 +338,12 @@ class PostgresMigrationDriver {
259
338
  /**
260
339
  * Create an index on one or more columns.
261
340
  *
341
+ * Supports:
342
+ * - Regular column indexes
343
+ * - Expression-based indexes (e.g., `lower(email)`)
344
+ * - Covering indexes (INCLUDE clause)
345
+ * - Concurrent index creation (CONCURRENTLY keyword)
346
+ *
262
347
  * @param table - Table name
263
348
  * @param index - Index definition
264
349
  */
@@ -267,12 +352,30 @@ class PostgresMigrationDriver {
267
352
  const indexName = index.name ?? `idx_${table}_${index.columns.join("_")}`;
268
353
  const quotedIndexName = this.driver.dialect.quoteIdentifier(indexName);
269
354
  const uniqueKeyword = index.unique ? "UNIQUE " : "";
270
- const columns = index.columns.map((col, i) => {
271
- const quotedCol = this.driver.dialect.quoteIdentifier(col);
272
- const direction = index.directions?.[i]?.toUpperCase() ?? "";
273
- return direction ? `${quotedCol} ${direction}` : quotedCol;
274
- });
275
- let sql = `CREATE ${uniqueKeyword}INDEX ${quotedIndexName} ON ${quotedTable} (${columns.join(", ")})`;
355
+ const concurrentlyKeyword = index.concurrently ? "CONCURRENTLY " : "";
356
+ let columnsPart;
357
+ // Handle expression-based indexes
358
+ if (index.expressions && index.expressions.length > 0) {
359
+ // Wrap each expression in parentheses
360
+ columnsPart = index.expressions.map((expr) => `(${expr})`).join(", ");
361
+ }
362
+ else {
363
+ // Regular column indexes
364
+ const columns = index.columns.map((col, i) => {
365
+ const quotedCol = this.driver.dialect.quoteIdentifier(col);
366
+ const direction = index.directions?.[i]?.toUpperCase() ?? "";
367
+ return direction ? `${quotedCol} ${direction}` : quotedCol;
368
+ });
369
+ columnsPart = columns.join(", ");
370
+ }
371
+ let sql = `CREATE ${uniqueKeyword}INDEX ${concurrentlyKeyword}${quotedIndexName} ON ${quotedTable} (${columnsPart})`;
372
+ // Add INCLUDE clause for covering indexes
373
+ if (index.include && index.include.length > 0) {
374
+ const includeCols = index.include
375
+ .map((col) => this.driver.dialect.quoteIdentifier(col))
376
+ .join(", ");
377
+ sql += ` INCLUDE (${includeCols})`;
378
+ }
276
379
  // Add partial index condition
277
380
  if (index.where && Object.keys(index.where).length > 0) {
278
381
  const conditions = Object.entries(index.where)
@@ -435,6 +538,40 @@ class PostgresMigrationDriver {
435
538
  async dropTTLIndex(table, column) {
436
539
  await this.dropIndex(table, `idx_${table}_ttl_${column}`);
437
540
  }
541
+ /**
542
+ * List all indexes on a table.
543
+ *
544
+ * @param table - Table name
545
+ * @returns Array of index metadata
546
+ */
547
+ async listIndexes(table) {
548
+ const result = await this.driver.query(`SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = 'public' AND tablename = $1`, [table]);
549
+ return result.rows.map((row) => {
550
+ const isUnique = row.indexdef.includes("UNIQUE");
551
+ const isPrimary = row.indexname.endsWith("_pkey");
552
+ const columnsMatch = row.indexdef.match(/\(([^)]+)\)/);
553
+ const columns = columnsMatch
554
+ ? columnsMatch[1].split(",").map((c) => c.trim().replace(/"/g, ""))
555
+ : [];
556
+ let type = "btree";
557
+ if (row.indexdef.includes("USING GIN"))
558
+ type = "gin";
559
+ else if (row.indexdef.includes("USING GIST"))
560
+ type = "gist";
561
+ else if (row.indexdef.includes("USING HASH"))
562
+ type = "hash";
563
+ else if (row.indexdef.includes("USING ivfflat"))
564
+ type = "ivfflat";
565
+ return {
566
+ name: row.indexname,
567
+ columns,
568
+ type,
569
+ unique: isUnique || isPrimary,
570
+ partial: row.indexdef.includes("WHERE"),
571
+ options: { primary: isPrimary, definition: row.indexdef },
572
+ };
573
+ });
574
+ }
438
575
  // ============================================================================
439
576
  // CONSTRAINTS
440
577
  // ============================================================================
@@ -495,6 +632,30 @@ class PostgresMigrationDriver {
495
632
  const quotedConstraint = this.driver.dialect.quoteIdentifier(constraintName);
496
633
  await this.execute(`ALTER TABLE ${quotedTable} DROP CONSTRAINT ${quotedConstraint}`);
497
634
  }
635
+ /**
636
+ * Add a CHECK constraint.
637
+ *
638
+ * @param table - Table name
639
+ * @param name - Constraint name
640
+ * @param expression - SQL CHECK expression
641
+ */
642
+ async addCheck(table, name, expression) {
643
+ const quotedTable = this.driver.dialect.quoteIdentifier(table);
644
+ const quotedName = this.driver.dialect.quoteIdentifier(name);
645
+ const sql = `ALTER TABLE ${quotedTable} ADD CONSTRAINT ${quotedName} CHECK (${expression})`;
646
+ await this.execute(sql);
647
+ }
648
+ /**
649
+ * Drop a CHECK constraint.
650
+ *
651
+ * @param table - Table name
652
+ * @param name - Constraint name
653
+ */
654
+ async dropCheck(table, name) {
655
+ const quotedTable = this.driver.dialect.quoteIdentifier(table);
656
+ const quotedName = this.driver.dialect.quoteIdentifier(name);
657
+ await this.execute(`ALTER TABLE ${quotedTable} DROP CONSTRAINT ${quotedName}`);
658
+ }
498
659
  // ============================================================================
499
660
  // SCHEMA VALIDATION (NOT APPLICABLE FOR PostgreSQL)
500
661
  // ============================================================================
@@ -575,4 +736,42 @@ class PostgresMigrationDriver {
575
736
  };
576
737
  return mapping[action] ?? "NO ACTION";
577
738
  }
739
+ /**
740
+ * Map PostgreSQL data type to ColumnType.
741
+ */
742
+ mapPostgresTypeToColumnType(pgType) {
743
+ const typeMap = {
744
+ "character varying": "string",
745
+ varchar: "string",
746
+ character: "char",
747
+ char: "char",
748
+ text: "text",
749
+ integer: "integer",
750
+ int: "integer",
751
+ smallint: "smallInteger",
752
+ bigint: "bigInteger",
753
+ real: "float",
754
+ "double precision": "double",
755
+ numeric: "decimal",
756
+ decimal: "decimal",
757
+ boolean: "boolean",
758
+ date: "date",
759
+ timestamp: "dateTime",
760
+ "timestamp without time zone": "dateTime",
761
+ "timestamp with time zone": "timestamp",
762
+ time: "time",
763
+ "time without time zone": "time",
764
+ json: "json",
765
+ jsonb: "json",
766
+ bytea: "binary",
767
+ uuid: "uuid",
768
+ inet: "ipAddress",
769
+ macaddr: "macAddress",
770
+ point: "point",
771
+ polygon: "polygon",
772
+ line: "lineString",
773
+ geometry: "geometry",
774
+ };
775
+ return typeMap[pgType.toLowerCase()] ?? "string";
776
+ }
578
777
  }export{PostgresMigrationDriver};//# sourceMappingURL=postgres-migration-driver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-migration-driver.js","sources":["../../../src/drivers/postgres/postgres-migration-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-migration-driver.js","sources":["../../../src/drivers/postgres/postgres-migration-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ColumnDefinition, ColumnType } from "../contracts/migration-driver.contract";
1
+ import type { ColumnDefinition, ColumnType, ForeignKeyDefinition } from "../contracts/migration-driver.contract";
2
2
  /**
3
3
  * Reference to the Migration type to avoid circular imports.
4
4
  * The actual type is injected at runtime.
@@ -8,6 +8,7 @@ type MigrationLike = {
8
8
  columns: string[];
9
9
  unique?: boolean;
10
10
  }): void;
11
+ addForeignKeyOperation(fk: ForeignKeyDefinition): void;
11
12
  };
12
13
  /**
13
14
  * Fluent builder for defining column properties.
@@ -35,6 +36,10 @@ export declare class ColumnBuilder {
35
36
  private readonly migration;
36
37
  /** Mutable column definition being accumulated */
37
38
  private readonly definition;
39
+ /** Mutable foreign key definition, set when .references() is called */
40
+ private fkDefinition?;
41
+ /** Temporary storage for generated expression before .stored() or .virtual() is called */
42
+ private generatedExpression?;
38
43
  /**
39
44
  * Create a new column builder.
40
45
  *
@@ -76,6 +81,32 @@ export declare class ColumnBuilder {
76
81
  * ```
77
82
  */
78
83
  default(value: unknown): this;
84
+ /**
85
+ * Set default value to the current timestamp.
86
+ *
87
+ * Database-agnostic. Generates NOW() / CURRENT_TIMESTAMP / GETDATE() based on driver.
88
+ *
89
+ * @returns This builder for chaining
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * this.timestamp("created_at").useCurrent();
94
+ * ```
95
+ */
96
+ useCurrent(): this;
97
+ /**
98
+ * Set column to update to current timestamp on row update.
99
+ *
100
+ * MySQL only. Other databases ignore this.
101
+ *
102
+ * @returns This builder for chaining
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * this.timestamp("updated_at").useCurrent().useCurrentOnUpdate();
107
+ * ```
108
+ */
109
+ useCurrentOnUpdate(): this;
79
110
  /**
80
111
  * Add unique constraint/index on this column.
81
112
  *
@@ -154,6 +185,175 @@ export declare class ColumnBuilder {
154
185
  * ```
155
186
  */
156
187
  comment(text: string): this;
188
+ /**
189
+ * Add a CHECK constraint scoped to this column.
190
+ *
191
+ * @param expression - SQL CHECK expression (can reference the column by name)
192
+ * @param name - Constraint name (defaults to `check_<column>`)
193
+ * @returns This builder for chaining
194
+ */
195
+ check(expression: string, name?: string): this;
196
+ /**
197
+ * Position this column after another column.
198
+ *
199
+ * MySQL/MariaDB only. Ignored by PostgreSQL and NoSQL drivers.
200
+ *
201
+ * @param columnName - Column to position after
202
+ * @returns This builder for chaining
203
+ *
204
+ * @example
205
+ * ```typescript
206
+ * this.string("middle_name").after("first_name");
207
+ * ```
208
+ */
209
+ after(columnName: string): this;
210
+ /**
211
+ * Position this column as the first column in the table.
212
+ *
213
+ * MySQL/MariaDB only. Ignored by PostgreSQL and NoSQL drivers.
214
+ *
215
+ * @returns This builder for chaining
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * this.integer("id").primary().first();
220
+ * ```
221
+ */
222
+ first(): this;
223
+ /**
224
+ * Declare a foreign key constraint on this column.
225
+ *
226
+ * Pushes an `addForeignKey` operation immediately using a mutable reference —
227
+ * subsequent `.on()`, `.onDelete()`, `.onUpdate()` calls mutate the same
228
+ * definition that is already queued, so no `.add()` terminator is needed.
229
+ *
230
+ * Referenced column defaults to `"id"` — use `.on()` to override.
231
+ *
232
+ * @param table - Referenced table name
233
+ * @returns This builder for chaining
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * this.integer("user_id").references("users");
238
+ * this.integer("user_id").references("users").on("custom_id").onDelete("cascade");
239
+ * ```
240
+ */
241
+ references(table: string): this;
242
+ /**
243
+ * Set the referenced column for the foreign key.
244
+ *
245
+ * Only meaningful after `.references()`. Defaults to `"id"` if omitted.
246
+ *
247
+ * @param column - Referenced column name
248
+ * @returns This builder for chaining
249
+ *
250
+ * @example
251
+ * ```typescript
252
+ * this.integer("user_id").references("users").on("custom_id");
253
+ * ```
254
+ */
255
+ on(column: string): this;
256
+ /**
257
+ * Set the ON DELETE action for the foreign key.
258
+ *
259
+ * Only meaningful after `.references()`.
260
+ *
261
+ * @param action - Action when the referenced row is deleted
262
+ * @returns This builder for chaining
263
+ *
264
+ * @example
265
+ * ```typescript
266
+ * this.integer("user_id").references("users").onDelete("cascade");
267
+ * ```
268
+ */
269
+ onDelete(action: ForeignKeyDefinition["onDelete"]): this;
270
+ /**
271
+ * Set the ON UPDATE action for the foreign key.
272
+ *
273
+ * Only meaningful after `.references()`.
274
+ *
275
+ * @param action - Action when the referenced row's key is updated
276
+ * @returns This builder for chaining
277
+ *
278
+ * @example
279
+ * ```typescript
280
+ * this.integer("user_id").references("users").onUpdate("cascade");
281
+ * ```
282
+ */
283
+ onUpdate(action: ForeignKeyDefinition["onUpdate"]): this;
284
+ /**
285
+ * Shorthand for `.onDelete("cascade").onUpdate("cascade")`.
286
+ *
287
+ * Only meaningful after `.references()`.
288
+ *
289
+ * @returns This builder for chaining
290
+ *
291
+ * @example
292
+ * ```typescript
293
+ * this.integer("user_id").references("users").cascadeAll();
294
+ * ```
295
+ */
296
+ cascadeAll(): this;
297
+ /**
298
+ * Mark this column definition as a modification of an existing column.
299
+ *
300
+ * Pushes a `modifyColumn` operation instead of `addColumn`.
301
+ * This method breaks the builder chain and returns the parent migration.
302
+ *
303
+ * @returns The parent migration instance (breaks builder chain)
304
+ *
305
+ * @example
306
+ * ```typescript
307
+ * // Make email nullable
308
+ * this.string("email").nullable().change();
309
+ *
310
+ * // Increase length
311
+ * this.string("name", 255).change();
312
+ *
313
+ * // Change type
314
+ * this.text("description").change();
315
+ * ```
316
+ */
317
+ change(): unknown;
318
+ /**
319
+ * Mark this column as a generated column with the given SQL expression.
320
+ *
321
+ * Must be followed by `.stored()` or `.virtual()` to specify storage type.
322
+ *
323
+ * PostgreSQL: GENERATED ALWAYS AS (...) STORED
324
+ * MySQL: GENERATED ALWAYS AS (...) STORED | VIRTUAL
325
+ *
326
+ * @param expression - SQL expression to compute the value
327
+ * @returns This builder for chaining
328
+ *
329
+ * @example
330
+ * ```typescript
331
+ * this.string("full_name")
332
+ * .generatedAs("CONCAT(first_name, ' ', last_name)")
333
+ * .stored();
334
+ *
335
+ * this.decimal("price_with_tax")
336
+ * .generatedAs("price * 1.2")
337
+ * .virtual();
338
+ * ```
339
+ */
340
+ generatedAs(expression: string): this;
341
+ /**
342
+ * Mark the generated column as stored (computed and persisted to disk).
343
+ *
344
+ * Must be called after `.generatedAs()`.
345
+ *
346
+ * @returns This builder for chaining
347
+ */
348
+ stored(): this;
349
+ /**
350
+ * Mark the generated column as virtual (computed on read, not stored).
351
+ *
352
+ * Must be called after `.generatedAs()`. Not supported by PostgreSQL.
353
+ *
354
+ * @returns This builder for chaining
355
+ */
356
+ virtual(): this;
157
357
  /**
158
358
  * Get the built column definition.
159
359
  *
@@ -1 +1 @@
1
- {"version":3,"file":"column-builder.d.ts","sourceRoot":"","sources":["../../src/migration/column-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAE3F;;;GAGG;AACH,KAAK,aAAa,GAAG;IACnB,eAAe,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACvE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAa;IAatB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAZ5B,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C;;;;;;;OAOG;gBAEgB,SAAS,EAAE,aAAa,EACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,OAAO,CACd,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC,CAC9E;IAcR;;;;;;;;;OASG;IACI,QAAQ,IAAI,IAAI;IAKvB;;;;;;OAMG;IACI,WAAW,IAAI,IAAI;IAS1B;;;;;;;;;;;OAWG;IACI,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IASpC;;;;;;;;;;;OAWG;IACI,MAAM,IAAI,IAAI;IAQrB;;;;;;;;;;;OAWG;IACI,KAAK,IAAI,IAAI;IAWpB;;;;;;;;;OASG;IACI,OAAO,IAAI,IAAI;IAKtB;;;;;;;;;;;;OAYG;IACI,aAAa,IAAI,IAAI;IAS5B;;;;;;;;;;;OAWG;IACI,QAAQ,IAAI,IAAI;IASvB;;;;;;;;;;;;OAYG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASlC;;;;;;OAMG;IACI,aAAa,IAAI,gBAAgB;CAGzC"}
1
+ {"version":3,"file":"column-builder.d.ts","sourceRoot":"","sources":["../../src/migration/column-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAEjH;;;GAGG;AACH,KAAK,aAAa,GAAG;IACnB,eAAe,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACtE,sBAAsB,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACxD,CAAC;AAcF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAa;IAmBtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAlB5B,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C,uEAAuE;IACvE,OAAO,CAAC,YAAY,CAAC,CAA8B;IAEnD,0FAA0F;IAC1F,OAAO,CAAC,mBAAmB,CAAC,CAAS;IAErC;;;;;;;OAOG;gBAEgB,SAAS,EAAE,aAAa,EACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,OAAO,CACd,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC,CAC9E;IAcR;;;;;;;;;OASG;IACI,QAAQ,IAAI,IAAI;IAKvB;;;;;;OAMG;IACI,WAAW,IAAI,IAAI;IAS1B;;;;;;;;;;;OAWG;IACI,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAKpC;;;;;;;;;;;OAWG;IACI,UAAU,IAAI,IAAI;IAKzB;;;;;;;;;;;OAWG;IACI,kBAAkB,IAAI,IAAI;IASjC;;;;;;;;;;;OAWG;IACI,MAAM,IAAI,IAAI;IAQrB;;;;;;;;;;;OAWG;IACI,KAAK,IAAI,IAAI;IAWpB;;;;;;;;;OASG;IACI,OAAO,IAAI,IAAI;IAKtB;;;;;;;;;;;;OAYG;IACI,aAAa,IAAI,IAAI;IAS5B;;;;;;;;;;;OAWG;IACI,QAAQ,IAAI,IAAI;IASvB;;;;;;;;;;;;OAYG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASlC;;;;;;OAMG;IACI,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAYrD;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKtC;;;;;;;;;;;OAWG;IACI,KAAK,IAAI,IAAI;IASpB;;;;;;;;;;;;;;;;;OAiBG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAYtC;;;;;;;;;;;;OAYG;IACI,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO/B;;;;;;;;;;;;OAYG;IACI,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,IAAI;IAO/D;;;;;;;;;;;;OAYG;IACI,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,IAAI;IAO/D;;;;;;;;;;;OAWG;IACI,UAAU,IAAI,IAAI;IAYzB;;;;;;;;;;;;;;;;;;;OAmBG;IACI,MAAM,IAAI,OAAO;IAsBxB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK5C;;;;;;OAMG;IACI,MAAM,IAAI,IAAI;IAUrB;;;;;;OAMG;IACI,OAAO,IAAI,IAAI;IActB;;;;;;OAMG;IACI,aAAa,IAAI,gBAAgB;CAGzC"}