@orchestr-sh/orchestr 1.5.11 → 1.6.0

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 (94) hide show
  1. package/README.md +199 -0
  2. package/dist/Console/Command.d.ts +59 -0
  3. package/dist/Console/Command.d.ts.map +1 -0
  4. package/dist/Console/Command.js +68 -0
  5. package/dist/Console/Command.js.map +1 -0
  6. package/dist/Console/Commands/MakeMigrationCommand.d.ts +15 -0
  7. package/dist/Console/Commands/MakeMigrationCommand.d.ts.map +1 -0
  8. package/dist/Console/Commands/MakeMigrationCommand.js +41 -0
  9. package/dist/Console/Commands/MakeMigrationCommand.js.map +1 -0
  10. package/dist/Console/Commands/MakeSeederCommand.d.ts +23 -0
  11. package/dist/Console/Commands/MakeSeederCommand.d.ts.map +1 -0
  12. package/dist/Console/Commands/MakeSeederCommand.js +109 -0
  13. package/dist/Console/Commands/MakeSeederCommand.js.map +1 -0
  14. package/dist/Console/Commands/MigrateCommand.d.ts +15 -0
  15. package/dist/Console/Commands/MigrateCommand.d.ts.map +1 -0
  16. package/dist/Console/Commands/MigrateCommand.js +48 -0
  17. package/dist/Console/Commands/MigrateCommand.js.map +1 -0
  18. package/dist/Console/Commands/MigrateFreshCommand.d.ts +15 -0
  19. package/dist/Console/Commands/MigrateFreshCommand.d.ts.map +1 -0
  20. package/dist/Console/Commands/MigrateFreshCommand.js +54 -0
  21. package/dist/Console/Commands/MigrateFreshCommand.js.map +1 -0
  22. package/dist/Console/Commands/MigrateRefreshCommand.d.ts +15 -0
  23. package/dist/Console/Commands/MigrateRefreshCommand.d.ts.map +1 -0
  24. package/dist/Console/Commands/MigrateRefreshCommand.js +52 -0
  25. package/dist/Console/Commands/MigrateRefreshCommand.js.map +1 -0
  26. package/dist/Console/Commands/MigrateResetCommand.d.ts +15 -0
  27. package/dist/Console/Commands/MigrateResetCommand.d.ts.map +1 -0
  28. package/dist/Console/Commands/MigrateResetCommand.js +46 -0
  29. package/dist/Console/Commands/MigrateResetCommand.js.map +1 -0
  30. package/dist/Console/Commands/MigrateRollbackCommand.d.ts +15 -0
  31. package/dist/Console/Commands/MigrateRollbackCommand.d.ts.map +1 -0
  32. package/dist/Console/Commands/MigrateRollbackCommand.js +49 -0
  33. package/dist/Console/Commands/MigrateRollbackCommand.js.map +1 -0
  34. package/dist/Console/Commands/MigrateStatusCommand.d.ts +15 -0
  35. package/dist/Console/Commands/MigrateStatusCommand.d.ts.map +1 -0
  36. package/dist/Console/Commands/MigrateStatusCommand.js +58 -0
  37. package/dist/Console/Commands/MigrateStatusCommand.js.map +1 -0
  38. package/dist/Console/Commands/SeedCommand.d.ts +15 -0
  39. package/dist/Console/Commands/SeedCommand.d.ts.map +1 -0
  40. package/dist/Console/Commands/SeedCommand.js +44 -0
  41. package/dist/Console/Commands/SeedCommand.js.map +1 -0
  42. package/dist/Console/ConsoleKernel.d.ts +45 -0
  43. package/dist/Console/ConsoleKernel.d.ts.map +1 -0
  44. package/dist/Console/ConsoleKernel.js +109 -0
  45. package/dist/Console/ConsoleKernel.js.map +1 -0
  46. package/dist/Console/orchestr.d.ts +8 -0
  47. package/dist/Console/orchestr.d.ts.map +1 -0
  48. package/dist/Console/orchestr.js +45 -0
  49. package/dist/Console/orchestr.js.map +1 -0
  50. package/dist/Database/Migrations/Blueprint.d.ts +166 -0
  51. package/dist/Database/Migrations/Blueprint.d.ts.map +1 -0
  52. package/dist/Database/Migrations/Blueprint.js +318 -0
  53. package/dist/Database/Migrations/Blueprint.js.map +1 -0
  54. package/dist/Database/Migrations/ColumnDefinition.d.ts +62 -0
  55. package/dist/Database/Migrations/ColumnDefinition.d.ts.map +1 -0
  56. package/dist/Database/Migrations/ColumnDefinition.js +95 -0
  57. package/dist/Database/Migrations/ColumnDefinition.js.map +1 -0
  58. package/dist/Database/Migrations/ForeignKeyDefinition.d.ts +32 -0
  59. package/dist/Database/Migrations/ForeignKeyDefinition.d.ts.map +1 -0
  60. package/dist/Database/Migrations/ForeignKeyDefinition.js +50 -0
  61. package/dist/Database/Migrations/ForeignKeyDefinition.js.map +1 -0
  62. package/dist/Database/Migrations/Migration.d.ts +17 -0
  63. package/dist/Database/Migrations/Migration.d.ts.map +1 -0
  64. package/dist/Database/Migrations/Migration.js +12 -0
  65. package/dist/Database/Migrations/Migration.js.map +1 -0
  66. package/dist/Database/Migrations/MigrationCreator.d.ts +42 -0
  67. package/dist/Database/Migrations/MigrationCreator.d.ts.map +1 -0
  68. package/dist/Database/Migrations/MigrationCreator.js +184 -0
  69. package/dist/Database/Migrations/MigrationCreator.js.map +1 -0
  70. package/dist/Database/Migrations/MigrationRepository.d.ts +65 -0
  71. package/dist/Database/Migrations/MigrationRepository.d.ts.map +1 -0
  72. package/dist/Database/Migrations/MigrationRepository.js +135 -0
  73. package/dist/Database/Migrations/MigrationRepository.js.map +1 -0
  74. package/dist/Database/Migrations/Migrator.d.ts +84 -0
  75. package/dist/Database/Migrations/Migrator.d.ts.map +1 -0
  76. package/dist/Database/Migrations/Migrator.js +239 -0
  77. package/dist/Database/Migrations/Migrator.js.map +1 -0
  78. package/dist/Database/Migrations/SchemaBuilder.d.ts +136 -0
  79. package/dist/Database/Migrations/SchemaBuilder.d.ts.map +1 -0
  80. package/dist/Database/Migrations/SchemaBuilder.js +515 -0
  81. package/dist/Database/Migrations/SchemaBuilder.js.map +1 -0
  82. package/dist/Database/Seeders/Seeder.d.ts +29 -0
  83. package/dist/Database/Seeders/Seeder.d.ts.map +1 -0
  84. package/dist/Database/Seeders/Seeder.js +41 -0
  85. package/dist/Database/Seeders/Seeder.js.map +1 -0
  86. package/dist/Database/Seeders/SeederRunner.d.ts +41 -0
  87. package/dist/Database/Seeders/SeederRunner.d.ts.map +1 -0
  88. package/dist/Database/Seeders/SeederRunner.js +134 -0
  89. package/dist/Database/Seeders/SeederRunner.js.map +1 -0
  90. package/dist/index.d.ts +24 -0
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +48 -0
  93. package/dist/index.js.map +1 -1
  94. package/package.json +4 -1
@@ -0,0 +1,515 @@
1
+ "use strict";
2
+ /**
3
+ * SchemaBuilder
4
+ *
5
+ * Builds and executes schema migrations with support for multiple database drivers
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.SchemaBuilder = void 0;
9
+ const Blueprint_1 = require("./Blueprint");
10
+ class SchemaBuilder {
11
+ connection;
12
+ driver;
13
+ constructor(connection) {
14
+ this.connection = connection;
15
+ this.driver = connection.getConfig().driver;
16
+ }
17
+ /**
18
+ * Create a new table
19
+ */
20
+ async create(tableName, callback) {
21
+ const blueprint = new Blueprint_1.Blueprint(tableName);
22
+ blueprint.isCreate = true;
23
+ callback(blueprint);
24
+ const sql = this.compileCreate(blueprint);
25
+ await this.connection.query(sql);
26
+ // Create indexes
27
+ for (const index of blueprint.indexes) {
28
+ const indexSql = this.compileIndex(tableName, index);
29
+ if (indexSql) {
30
+ await this.connection.query(indexSql);
31
+ }
32
+ }
33
+ // Create foreign keys
34
+ for (const fk of blueprint.foreignKeys) {
35
+ const fkSql = this.compileForeignKey(tableName, fk);
36
+ if (fkSql) {
37
+ await this.connection.query(fkSql);
38
+ }
39
+ }
40
+ }
41
+ /**
42
+ * Drop a table
43
+ */
44
+ async drop(tableName) {
45
+ const sql = `DROP TABLE ${this.wrapTable(tableName)}`;
46
+ await this.connection.query(sql);
47
+ }
48
+ /**
49
+ * Drop a table if it exists
50
+ */
51
+ async dropIfExists(tableName) {
52
+ const sql = `DROP TABLE IF EXISTS ${this.wrapTable(tableName)}`;
53
+ await this.connection.query(sql);
54
+ }
55
+ /**
56
+ * Rename a table
57
+ */
58
+ async rename(from, to) {
59
+ const sql = this.compileRename(from, to);
60
+ await this.connection.query(sql);
61
+ }
62
+ /**
63
+ * Determine if a table exists
64
+ */
65
+ async hasTable(tableName) {
66
+ const sql = this.compileHasTable(tableName);
67
+ const results = await this.connection.select(sql);
68
+ return results.length > 0;
69
+ }
70
+ /**
71
+ * Determine if a column exists on a table
72
+ */
73
+ async hasColumn(tableName, columnName) {
74
+ const sql = this.compileHasColumn(tableName, columnName);
75
+ const results = await this.connection.select(sql);
76
+ return results.length > 0;
77
+ }
78
+ /**
79
+ * Modify an existing table
80
+ */
81
+ async table(tableName, callback) {
82
+ const blueprint = new Blueprint_1.Blueprint(tableName);
83
+ blueprint.isCreate = false;
84
+ callback(blueprint);
85
+ // Add new columns
86
+ for (const column of blueprint.columns) {
87
+ const sql = this.compileAddColumn(tableName, column);
88
+ await this.connection.query(sql);
89
+ }
90
+ // Execute commands (drop, rename, etc.)
91
+ for (const command of blueprint.commands) {
92
+ const sql = this.compileCommand(tableName, command);
93
+ if (sql) {
94
+ await this.connection.query(sql);
95
+ }
96
+ }
97
+ // Create indexes
98
+ for (const index of blueprint.indexes) {
99
+ const indexSql = this.compileIndex(tableName, index);
100
+ if (indexSql) {
101
+ await this.connection.query(indexSql);
102
+ }
103
+ }
104
+ // Create foreign keys
105
+ for (const fk of blueprint.foreignKeys) {
106
+ const fkSql = this.compileForeignKey(tableName, fk);
107
+ if (fkSql) {
108
+ await this.connection.query(fkSql);
109
+ }
110
+ }
111
+ }
112
+ /**
113
+ * Compile CREATE TABLE statement
114
+ */
115
+ compileCreate(blueprint) {
116
+ const columns = blueprint.columns.map((col) => this.compileColumnDefinition(col)).join(', ');
117
+ let sql = `CREATE TABLE ${this.wrapTable(blueprint.table)} (${columns}`;
118
+ // Add primary key if defined in indexes
119
+ const primaryKey = blueprint.indexes.find((idx) => idx.type === 'primary');
120
+ if (primaryKey) {
121
+ sql += `, PRIMARY KEY (${primaryKey.columns.map((c) => this.wrap(c)).join(', ')})`;
122
+ }
123
+ sql += ')';
124
+ return sql;
125
+ }
126
+ /**
127
+ * Compile column definition
128
+ */
129
+ compileColumnDefinition(column) {
130
+ let sql = this.wrap(column.name) + ' ' + this.getColumnType(column);
131
+ if (column.isAutoIncrement) {
132
+ sql += this.getAutoIncrementClause(column);
133
+ }
134
+ if (!column.isNullable && !column.isAutoIncrement) {
135
+ sql += ' NOT NULL';
136
+ }
137
+ if (column.defaultValue !== undefined) {
138
+ sql += ' DEFAULT ' + this.getDefaultValue(column.defaultValue);
139
+ }
140
+ return sql;
141
+ }
142
+ /**
143
+ * Get column type SQL
144
+ */
145
+ getColumnType(column) {
146
+ switch (this.driver) {
147
+ case 'sqlite':
148
+ return this.getSQLiteColumnType(column);
149
+ case 'postgres':
150
+ case 'postgresql':
151
+ return this.getPostgresColumnType(column);
152
+ case 'mysql':
153
+ return this.getMySQLColumnType(column);
154
+ default:
155
+ return this.getSQLiteColumnType(column);
156
+ }
157
+ }
158
+ /**
159
+ * Get SQLite column type
160
+ */
161
+ getSQLiteColumnType(column) {
162
+ switch (column.type) {
163
+ case 'bigIncrements':
164
+ case 'increments':
165
+ return 'INTEGER';
166
+ case 'bigInteger':
167
+ case 'integer':
168
+ case 'smallInteger':
169
+ case 'tinyInteger':
170
+ return 'INTEGER';
171
+ case 'string':
172
+ case 'uuid':
173
+ return column.length ? `VARCHAR(${column.length})` : 'VARCHAR(255)';
174
+ case 'text':
175
+ case 'mediumText':
176
+ case 'longText':
177
+ return 'TEXT';
178
+ case 'decimal':
179
+ case 'float':
180
+ case 'double':
181
+ return 'REAL';
182
+ case 'boolean':
183
+ return 'INTEGER';
184
+ case 'date':
185
+ return 'DATE';
186
+ case 'datetime':
187
+ case 'timestamp':
188
+ return 'DATETIME';
189
+ case 'json':
190
+ case 'jsonb':
191
+ return 'TEXT';
192
+ case 'binary':
193
+ return 'BLOB';
194
+ case 'enum':
195
+ return 'TEXT';
196
+ default:
197
+ return 'TEXT';
198
+ }
199
+ }
200
+ /**
201
+ * Get PostgreSQL column type
202
+ */
203
+ getPostgresColumnType(column) {
204
+ switch (column.type) {
205
+ case 'bigIncrements':
206
+ return 'BIGSERIAL';
207
+ case 'increments':
208
+ return 'SERIAL';
209
+ case 'bigInteger':
210
+ return 'BIGINT';
211
+ case 'integer':
212
+ return 'INTEGER';
213
+ case 'smallInteger':
214
+ return 'SMALLINT';
215
+ case 'tinyInteger':
216
+ return 'SMALLINT';
217
+ case 'string':
218
+ return column.length ? `VARCHAR(${column.length})` : 'VARCHAR(255)';
219
+ case 'uuid':
220
+ return 'UUID';
221
+ case 'text':
222
+ return 'TEXT';
223
+ case 'mediumText':
224
+ case 'longText':
225
+ return 'TEXT';
226
+ case 'decimal':
227
+ return column.precision && column.scale
228
+ ? `DECIMAL(${column.precision}, ${column.scale})`
229
+ : 'DECIMAL(8, 2)';
230
+ case 'float':
231
+ return 'REAL';
232
+ case 'double':
233
+ return 'DOUBLE PRECISION';
234
+ case 'boolean':
235
+ return 'BOOLEAN';
236
+ case 'date':
237
+ return 'DATE';
238
+ case 'datetime':
239
+ return column.precision ? `TIMESTAMP(${column.precision})` : 'TIMESTAMP';
240
+ case 'timestamp':
241
+ return column.precision ? `TIMESTAMP(${column.precision})` : 'TIMESTAMP';
242
+ case 'json':
243
+ return 'JSON';
244
+ case 'jsonb':
245
+ return 'JSONB';
246
+ case 'binary':
247
+ return 'BYTEA';
248
+ case 'enum':
249
+ // PostgreSQL enums would need to be created separately, use VARCHAR for simplicity
250
+ return 'VARCHAR(255)';
251
+ default:
252
+ return 'TEXT';
253
+ }
254
+ }
255
+ /**
256
+ * Get MySQL column type
257
+ */
258
+ getMySQLColumnType(column) {
259
+ switch (column.type) {
260
+ case 'bigIncrements':
261
+ return 'BIGINT UNSIGNED AUTO_INCREMENT';
262
+ case 'increments':
263
+ return 'INT UNSIGNED AUTO_INCREMENT';
264
+ case 'bigInteger':
265
+ return column.isUnsigned ? 'BIGINT UNSIGNED' : 'BIGINT';
266
+ case 'integer':
267
+ return column.isUnsigned ? 'INT UNSIGNED' : 'INT';
268
+ case 'smallInteger':
269
+ return column.isUnsigned ? 'SMALLINT UNSIGNED' : 'SMALLINT';
270
+ case 'tinyInteger':
271
+ return column.isUnsigned ? 'TINYINT UNSIGNED' : 'TINYINT';
272
+ case 'string':
273
+ return column.length ? `VARCHAR(${column.length})` : 'VARCHAR(255)';
274
+ case 'uuid':
275
+ return 'CHAR(36)';
276
+ case 'text':
277
+ return 'TEXT';
278
+ case 'mediumText':
279
+ return 'MEDIUMTEXT';
280
+ case 'longText':
281
+ return 'LONGTEXT';
282
+ case 'decimal':
283
+ return column.precision && column.scale
284
+ ? `DECIMAL(${column.precision}, ${column.scale})`
285
+ : 'DECIMAL(8, 2)';
286
+ case 'float':
287
+ return column.precision && column.scale
288
+ ? `FLOAT(${column.precision}, ${column.scale})`
289
+ : 'FLOAT';
290
+ case 'double':
291
+ return column.precision && column.scale
292
+ ? `DOUBLE(${column.precision}, ${column.scale})`
293
+ : 'DOUBLE';
294
+ case 'boolean':
295
+ return 'TINYINT(1)';
296
+ case 'date':
297
+ return 'DATE';
298
+ case 'datetime':
299
+ return column.precision ? `DATETIME(${column.precision})` : 'DATETIME';
300
+ case 'timestamp':
301
+ return column.precision ? `TIMESTAMP(${column.precision})` : 'TIMESTAMP';
302
+ case 'json':
303
+ return 'JSON';
304
+ case 'jsonb':
305
+ return 'JSON';
306
+ case 'binary':
307
+ return 'BLOB';
308
+ case 'enum':
309
+ return column.enumValues
310
+ ? `ENUM(${column.enumValues.map((v) => `'${v}'`).join(', ')})`
311
+ : 'VARCHAR(255)';
312
+ default:
313
+ return 'TEXT';
314
+ }
315
+ }
316
+ /**
317
+ * Get auto increment clause
318
+ */
319
+ getAutoIncrementClause(column) {
320
+ switch (this.driver) {
321
+ case 'sqlite':
322
+ return column.isPrimary ? ' PRIMARY KEY AUTOINCREMENT' : '';
323
+ case 'postgres':
324
+ case 'postgresql':
325
+ return ''; // Already handled in type (SERIAL/BIGSERIAL)
326
+ case 'mysql':
327
+ return ''; // Already handled in type
328
+ default:
329
+ return column.isPrimary ? ' PRIMARY KEY AUTOINCREMENT' : '';
330
+ }
331
+ }
332
+ /**
333
+ * Get default value SQL
334
+ */
335
+ getDefaultValue(value) {
336
+ if (value === null) {
337
+ return 'NULL';
338
+ }
339
+ if (typeof value === 'string') {
340
+ return `'${value}'`;
341
+ }
342
+ if (typeof value === 'boolean') {
343
+ if (this.driver === 'postgres' || this.driver === 'postgresql') {
344
+ return value ? 'TRUE' : 'FALSE';
345
+ }
346
+ return value ? '1' : '0';
347
+ }
348
+ return String(value);
349
+ }
350
+ /**
351
+ * Compile ADD COLUMN statement
352
+ */
353
+ compileAddColumn(tableName, column) {
354
+ const columnDef = this.compileColumnDefinition(column);
355
+ return `ALTER TABLE ${this.wrapTable(tableName)} ADD COLUMN ${columnDef}`;
356
+ }
357
+ /**
358
+ * Compile command (drop, rename, etc.)
359
+ */
360
+ compileCommand(tableName, command) {
361
+ switch (command.type) {
362
+ case 'dropColumn':
363
+ return this.compileDropColumn(tableName, command.columns);
364
+ case 'dropIndex':
365
+ return this.compileDropIndex(tableName, command.name);
366
+ case 'dropForeign':
367
+ return this.compileDropForeign(tableName, command.name);
368
+ case 'renameColumn':
369
+ return this.compileRenameColumn(tableName, command.from, command.to);
370
+ default:
371
+ return null;
372
+ }
373
+ }
374
+ /**
375
+ * Compile DROP COLUMN statement
376
+ */
377
+ compileDropColumn(tableName, columns) {
378
+ const cols = columns.map((col) => `DROP COLUMN ${this.wrap(col)}`).join(', ');
379
+ return `ALTER TABLE ${this.wrapTable(tableName)} ${cols}`;
380
+ }
381
+ /**
382
+ * Compile DROP INDEX statement
383
+ */
384
+ compileDropIndex(tableName, indexName) {
385
+ if (this.driver === 'mysql') {
386
+ return `ALTER TABLE ${this.wrapTable(tableName)} DROP INDEX ${this.wrap(indexName)}`;
387
+ }
388
+ return `DROP INDEX ${this.wrap(indexName)}`;
389
+ }
390
+ /**
391
+ * Compile DROP FOREIGN KEY statement
392
+ */
393
+ compileDropForeign(tableName, keyName) {
394
+ return `ALTER TABLE ${this.wrapTable(tableName)} DROP FOREIGN KEY ${this.wrap(keyName)}`;
395
+ }
396
+ /**
397
+ * Compile RENAME COLUMN statement
398
+ */
399
+ compileRenameColumn(tableName, from, to) {
400
+ if (this.driver === 'sqlite') {
401
+ // SQLite doesn't support RENAME COLUMN directly in older versions
402
+ return `ALTER TABLE ${this.wrapTable(tableName)} RENAME COLUMN ${this.wrap(from)} TO ${this.wrap(to)}`;
403
+ }
404
+ return `ALTER TABLE ${this.wrapTable(tableName)} RENAME COLUMN ${this.wrap(from)} TO ${this.wrap(to)}`;
405
+ }
406
+ /**
407
+ * Compile index creation
408
+ */
409
+ compileIndex(tableName, index) {
410
+ if (index.type === 'primary') {
411
+ // Primary keys are handled in CREATE TABLE
412
+ return null;
413
+ }
414
+ const columns = index.columns.map((col) => this.wrap(col)).join(', ');
415
+ const indexName = index.name || this.createIndexName(tableName, index.columns, index.type);
416
+ if (index.type === 'unique') {
417
+ return `CREATE UNIQUE INDEX ${this.wrap(indexName)} ON ${this.wrapTable(tableName)} (${columns})`;
418
+ }
419
+ return `CREATE INDEX ${this.wrap(indexName)} ON ${this.wrapTable(tableName)} (${columns})`;
420
+ }
421
+ /**
422
+ * Compile foreign key creation
423
+ */
424
+ compileForeignKey(tableName, fk) {
425
+ if (!fk.referencedTable || !fk.referencedColumns) {
426
+ return null;
427
+ }
428
+ const columns = fk.columns.map((col) => this.wrap(col)).join(', ');
429
+ const refColumns = fk.referencedColumns.map((col) => this.wrap(col)).join(', ');
430
+ const keyName = fk.name || this.createForeignKeyName(tableName, fk.columns);
431
+ let sql = `ALTER TABLE ${this.wrapTable(tableName)} ADD CONSTRAINT ${this.wrap(keyName)} `;
432
+ sql += `FOREIGN KEY (${columns}) REFERENCES ${this.wrapTable(fk.referencedTable)} (${refColumns})`;
433
+ if (fk.onDeleteAction) {
434
+ sql += ` ON DELETE ${fk.onDeleteAction.toUpperCase()}`;
435
+ }
436
+ if (fk.onUpdateAction) {
437
+ sql += ` ON UPDATE ${fk.onUpdateAction.toUpperCase()}`;
438
+ }
439
+ return sql;
440
+ }
441
+ /**
442
+ * Compile RENAME TABLE statement
443
+ */
444
+ compileRename(from, to) {
445
+ return `ALTER TABLE ${this.wrapTable(from)} RENAME TO ${this.wrapTable(to)}`;
446
+ }
447
+ /**
448
+ * Compile has table check
449
+ */
450
+ compileHasTable(tableName) {
451
+ switch (this.driver) {
452
+ case 'sqlite':
453
+ return `SELECT name FROM sqlite_master WHERE type='table' AND name='${tableName}'`;
454
+ case 'postgres':
455
+ case 'postgresql':
456
+ return `SELECT tablename FROM pg_tables WHERE tablename='${tableName}'`;
457
+ case 'mysql':
458
+ return `SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME='${tableName}'`;
459
+ default:
460
+ return `SELECT name FROM sqlite_master WHERE type='table' AND name='${tableName}'`;
461
+ }
462
+ }
463
+ /**
464
+ * Compile has column check
465
+ */
466
+ compileHasColumn(tableName, columnName) {
467
+ switch (this.driver) {
468
+ case 'sqlite':
469
+ return `PRAGMA table_info(${tableName})`;
470
+ case 'postgres':
471
+ case 'postgresql':
472
+ return `SELECT column_name FROM information_schema.columns WHERE table_name='${tableName}' AND column_name='${columnName}'`;
473
+ case 'mysql':
474
+ return `SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME='${tableName}' AND COLUMN_NAME='${columnName}'`;
475
+ default:
476
+ return `PRAGMA table_info(${tableName})`;
477
+ }
478
+ }
479
+ /**
480
+ * Create index name
481
+ */
482
+ createIndexName(tableName, columns, type) {
483
+ const suffix = type === 'unique' ? 'unique' : 'index';
484
+ return `${tableName}_${columns.join('_')}_${suffix}`;
485
+ }
486
+ /**
487
+ * Create foreign key name
488
+ */
489
+ createForeignKeyName(tableName, columns) {
490
+ return `${tableName}_${columns.join('_')}_foreign`;
491
+ }
492
+ /**
493
+ * Wrap a table name
494
+ */
495
+ wrapTable(table) {
496
+ return this.wrap(table);
497
+ }
498
+ /**
499
+ * Wrap an identifier
500
+ */
501
+ wrap(value) {
502
+ switch (this.driver) {
503
+ case 'postgres':
504
+ case 'postgresql':
505
+ return `"${value}"`;
506
+ case 'mysql':
507
+ return `\`${value}\``;
508
+ case 'sqlite':
509
+ default:
510
+ return `"${value}"`;
511
+ }
512
+ }
513
+ }
514
+ exports.SchemaBuilder = SchemaBuilder;
515
+ //# sourceMappingURL=SchemaBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaBuilder.js","sourceRoot":"","sources":["../../../src/Database/Migrations/SchemaBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Seeder
3
+ *
4
+ * Base class for all database seeders
5
+ */
6
+ import { Connection } from '../Connection';
7
+ export declare abstract class Seeder {
8
+ /**
9
+ * The database connection
10
+ */
11
+ protected connection?: Connection;
12
+ /**
13
+ * Set the database connection
14
+ */
15
+ setConnection(connection: Connection): this;
16
+ /**
17
+ * Run the database seeds
18
+ */
19
+ abstract run(): Promise<void>;
20
+ /**
21
+ * Call another seeder
22
+ */
23
+ protected call(seederClass: new () => Seeder): Promise<void>;
24
+ /**
25
+ * Call multiple seeders
26
+ */
27
+ protected callMany(seederClasses: (new () => Seeder)[]): Promise<void>;
28
+ }
29
+ //# sourceMappingURL=Seeder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Seeder.d.ts","sourceRoot":"","sources":["../../../src/Database/Seeders/Seeder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,8BAAsB,MAAM;IAC1B;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAElC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAK3C;;OAEG;IACH,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAE7B;;OAEG;cACa,IAAI,CAAC,WAAW,EAAE,UAAU,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE;;OAEG;cACa,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAK7E"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * Seeder
4
+ *
5
+ * Base class for all database seeders
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.Seeder = void 0;
9
+ class Seeder {
10
+ /**
11
+ * The database connection
12
+ */
13
+ connection;
14
+ /**
15
+ * Set the database connection
16
+ */
17
+ setConnection(connection) {
18
+ this.connection = connection;
19
+ return this;
20
+ }
21
+ /**
22
+ * Call another seeder
23
+ */
24
+ async call(seederClass) {
25
+ const seeder = new seederClass();
26
+ if (this.connection) {
27
+ seeder.setConnection(this.connection);
28
+ }
29
+ await seeder.run();
30
+ }
31
+ /**
32
+ * Call multiple seeders
33
+ */
34
+ async callMany(seederClasses) {
35
+ for (const seederClass of seederClasses) {
36
+ await this.call(seederClass);
37
+ }
38
+ }
39
+ }
40
+ exports.Seeder = Seeder;
41
+ //# sourceMappingURL=Seeder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Seeder.js","sourceRoot":"","sources":["../../../src/Database/Seeders/Seeder.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,MAAsB,MAAM;IAC1B;;OAEG;IACO,UAAU,CAAc;IAElC;;OAEG;IACH,aAAa,CAAC,UAAsB;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAOD;;OAEG;IACO,KAAK,CAAC,IAAI,CAAC,WAA6B;QAChD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,QAAQ,CAAC,aAAmC;QAC1D,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AAxCD,wBAwCC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * SeederRunner
3
+ *
4
+ * Runs database seeders
5
+ */
6
+ import { Connection } from '../Connection';
7
+ import { Seeder } from './Seeder';
8
+ export declare class SeederRunner {
9
+ protected connection: Connection;
10
+ protected paths: string[];
11
+ constructor(connection: Connection, paths: string[]);
12
+ /**
13
+ * Run a specific seeder class
14
+ */
15
+ run(seederClass?: new () => Seeder): Promise<void>;
16
+ /**
17
+ * Run a seeder by name
18
+ */
19
+ runByName(name: string): Promise<void>;
20
+ /**
21
+ * Resolve the DatabaseSeeder class
22
+ */
23
+ protected resolveDatabaseSeeder(): Promise<new () => Seeder>;
24
+ /**
25
+ * Resolve a seeder class by name
26
+ */
27
+ protected resolveSeeder(name: string): Promise<new () => Seeder>;
28
+ /**
29
+ * Import a seeder file
30
+ */
31
+ protected importSeeder(filePath: string): Promise<new () => Seeder>;
32
+ /**
33
+ * Set the seeder paths
34
+ */
35
+ setPaths(paths: string[]): void;
36
+ /**
37
+ * Get the seeder paths
38
+ */
39
+ getPaths(): string[];
40
+ }
41
+ //# sourceMappingURL=SeederRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeederRunner.d.ts","sourceRoot":"","sources":["../../../src/Database/Seeders/SeederRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,qBAAa,YAAY;IAErB,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;gBADf,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EAAE;IAG3B;;OAEG;IACG,GAAG,CAAC,WAAW,CAAC,EAAE,UAAU,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexD;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C;;OAEG;cACa,qBAAqB,IAAI,OAAO,CAAC,UAAU,MAAM,CAAC;IAkBlE;;OAEG;cACa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,CAAC;IAkBtE;;OAEG;cACa,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,CAAC;IAazE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAI/B;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;CAGrB"}