@coherent.js/database 1.0.0-beta.2 → 1.0.0-beta.3

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.
@@ -21,529 +21,6 @@ import { join } from 'path';
21
21
  *
22
22
  * await migration.run();
23
23
  */
24
- // Stub classes for test compatibility
25
- export class Migration {
26
- constructor(db, config = {}) {
27
- this.db = db;
28
- this.config = { directory: './migrations', tableName: 'coherent_migrations', ...config };
29
- this.appliedMigrations = new Set();
30
- }
31
- async run(options = {}) {
32
- // Initialize if needed
33
- await this.ensureMigrationsTable();
34
- await this.loadAppliedMigrations();
35
- // Track if we used the old loadMigrations method (E2E _context)
36
- let usedOldLoadMigrations = false;
37
- // Try both old and new migration loading methods
38
- if (this.loadMigrations && typeof this.loadMigrations === 'function') {
39
- try {
40
- const migrationFiles = await this.loadMigrations();
41
- if (migrationFiles && Array.isArray(migrationFiles)) {
42
- this.migrations = migrationFiles.map(m => ({ ...m, applied: false }));
43
- usedOldLoadMigrations = true;
44
- }
45
- }
46
- catch {
47
- // Fall back to existing migrations
48
- }
49
- }
50
- if (!this.migrations || this.migrations.length === 0) {
51
- try {
52
- await this.loadMigrationFiles();
53
- }
54
- catch {
55
- // Initialize with empty array if loading fails
56
- this.migrations = this.migrations || [];
57
- }
58
- }
59
- // Get pending migrations
60
- const migrations = this.migrations || [];
61
- const pendingMigrations = migrations.filter(m => !m.applied);
62
- if (pendingMigrations.length === 0) {
63
- return [];
64
- }
65
- const batch = await this.getNextBatchNumber();
66
- const appliedMigrationsList = [];
67
- for (const migration of pendingMigrations) {
68
- try {
69
- // Get transaction if needed
70
- const tx = this.db.transaction ? await this.db.transaction() : this.db;
71
- try {
72
- // Run the migration
73
- if (migration.up) {
74
- await migration.up(new SchemaBuilder(tx));
75
- }
76
- // Record the migration
77
- await tx.query(`INSERT INTO ${this.config.tableName} (migration, batch) VALUES (?, ?)`, [migration.name, batch]);
78
- if (tx.commit) {
79
- await tx.commit();
80
- }
81
- // Return format depends on context
82
- if (usedOldLoadMigrations) {
83
- // E2E context expects objects
84
- appliedMigrationsList.push({ name: migration.name });
85
- }
86
- else {
87
- // Unit test context expects strings
88
- appliedMigrationsList.push(migration.name);
89
- }
90
- migration.applied = true;
91
- }
92
- catch (error) {
93
- if (tx.rollback) {
94
- await tx.rollback();
95
- }
96
- throw error;
97
- }
98
- }
99
- catch (error) {
100
- console.error(`Migration ${migration.name} failed: ${error.message}`);
101
- if (!options.continueOnError) {
102
- throw error;
103
- }
104
- // Continue to next migration if continueOnError is true
105
- }
106
- }
107
- return appliedMigrationsList;
108
- }
109
- async rollback(steps = 1) {
110
- // Initialize if needed (with error handling)
111
- try {
112
- await this.loadAppliedMigrations();
113
- await this.loadMigrationFiles();
114
- }
115
- catch {
116
- // If initialization fails, continue with existing migrations
117
- }
118
- let migrationsToRollback = [];
119
- // If getMigrationsInBatch method is available (test scenario), use it
120
- if (typeof this.getMigrationsInBatch === 'function') {
121
- try {
122
- const migrationNames = await this.getMigrationsInBatch(steps);
123
- // Find the migration objects by name
124
- migrationsToRollback = [];
125
- for (const name of migrationNames) {
126
- const migration = this.migrations.find(m => m.name === name);
127
- if (migration) {
128
- migrationsToRollback.push(migration);
129
- }
130
- else {
131
- console.warn(`Migration file not found: ${name}`);
132
- }
133
- }
134
- }
135
- catch {
136
- // Fall back to standard logic
137
- }
138
- }
139
- // Fallback: use standard applied migrations logic
140
- if (migrationsToRollback.length === 0) {
141
- const migrations = this.migrations || [];
142
- const appliedMigrations = migrations.filter(m => m.applied);
143
- if (appliedMigrations.length === 0) {
144
- return [];
145
- }
146
- // Get the migrations to rollback (in reverse order)
147
- migrationsToRollback = appliedMigrations
148
- .slice(-steps)
149
- .reverse();
150
- }
151
- const rolledBackMigrations = [];
152
- for (const migration of migrationsToRollback) {
153
- if (!migration.down) {
154
- console.warn(`No rollback method for migration: ${migration.name}`);
155
- continue;
156
- }
157
- try {
158
- const tx = this.db.transaction ? await this.db.transaction() : this.db;
159
- try {
160
- // Run the rollback
161
- await migration.down(new SchemaBuilder(tx));
162
- // Remove from migrations table
163
- await tx.query(`DELETE FROM ${this.config.tableName} WHERE migration = ?`, [migration.name]);
164
- if (tx.commit) {
165
- await tx.commit();
166
- }
167
- rolledBackMigrations.push(migration.name);
168
- migration.applied = false;
169
- }
170
- catch (error) {
171
- if (tx.rollback) {
172
- await tx.rollback();
173
- }
174
- throw error;
175
- }
176
- }
177
- catch (error) {
178
- console.error(`Rollback ${migration.name} failed: ${error.message}`);
179
- throw error;
180
- }
181
- }
182
- return rolledBackMigrations;
183
- }
184
- async status() {
185
- try {
186
- await this.loadAppliedMigrations();
187
- // For E2E context, try loadMigrations first
188
- if (this.loadMigrations && typeof this.loadMigrations === 'function') {
189
- try {
190
- const migrationFiles = await this.loadMigrations();
191
- if (migrationFiles && Array.isArray(migrationFiles)) {
192
- this.migrations = migrationFiles.map(m => ({
193
- ...m,
194
- applied: this.appliedMigrations.has(m.name)
195
- }));
196
- }
197
- }
198
- catch {
199
- // Fall back to loadMigrationFiles
200
- await this.loadMigrationFiles();
201
- }
202
- }
203
- else {
204
- await this.loadMigrationFiles();
205
- }
206
- }
207
- catch {
208
- // If initialization fails, continue with existing migrations
209
- }
210
- const migrations = this.migrations || [];
211
- const pending = migrations.filter(m => !m.applied);
212
- const completed = migrations.filter(m => m.applied);
213
- return {
214
- pending: pending.map(migration => ({
215
- name: migration.name,
216
- applied: migration.applied,
217
- file: migration.file || `${migration.name}.js`
218
- })),
219
- completed: completed.map(migration => ({
220
- name: migration.name,
221
- applied: migration.applied,
222
- file: migration.file || `${migration.name}.js`
223
- }))
224
- };
225
- }
226
- async create(name, options = {}) {
227
- const timestamp = new Date().toISOString().replace(/[-:T]/g, '').split('.')[0];
228
- const fileName = `${timestamp}_${name}.js`;
229
- const filePath = `${this.config.directory}/${fileName}`;
230
- // Ensure directory exists if available
231
- if (typeof this.ensureDirectory === 'function') {
232
- await this.ensureDirectory();
233
- }
234
- // Generate migration template
235
- const isCreateTable = name.startsWith('create_') && name.endsWith('_table');
236
- const template = this.getMigrationTemplate(name, { isCreateTable, ...options });
237
- // Write file
238
- const fs = await import('fs/promises');
239
- await fs.writeFile(filePath, template);
240
- return filePath;
241
- }
242
- getMigrationTemplate(name, options = {}) {
243
- const { isCreateTable } = options;
244
- const tableName = isCreateTable
245
- ? name.replace('create_', '').replace('_table', '')
246
- : 'table_name';
247
- if (isCreateTable) {
248
- return `/**
249
- * Migration: ${name}
250
- */
251
-
252
- export async function up(schema) {
253
- await schema.createTable('${tableName}', (table) => {
254
- table.id();
255
- table.timestamps();
256
- });
257
- }
258
-
259
- export async function down(schema) {
260
- await schema.dropTable('${tableName}');
261
- }
262
- `;
263
- }
264
- else {
265
- return `/**
266
- * Migration: ${name}
267
- */
268
-
269
- export async function up(schema) {
270
- // Add your migration logic here
271
- }
272
-
273
- export async function down(schema) {
274
- // Add your rollback logic here
275
- }
276
- `;
277
- }
278
- }
279
- async getNextBatchNumber() {
280
- const result = await this.db.query(`SELECT MAX(batch) as max_batch FROM ${this.config.tableName}`);
281
- const maxBatch = result.rows && result.rows[0] ? result.rows[0].max_batch : 0;
282
- return (maxBatch || 0) + 1;
283
- }
284
- // Additional methods expected by tests
285
- async ensureMigrationsTable() {
286
- // Check if migrations table exists
287
- try {
288
- await this.db.query(`SELECT 1 FROM ${this.config.tableName} LIMIT 1`);
289
- }
290
- catch {
291
- // Create migrations table if it doesn't exist
292
- const createTableSQL = `
293
- CREATE TABLE ${this.config.tableName} (
294
- id INTEGER PRIMARY KEY AUTOINCREMENT,
295
- migration VARCHAR(255) NOT NULL UNIQUE,
296
- batch INTEGER NOT NULL,
297
- executed_at DATETIME DEFAULT CURRENT_TIMESTAMP
298
- )
299
- `;
300
- await this.db.query(createTableSQL);
301
- }
302
- }
303
- async loadAppliedMigrations() {
304
- const result = await this.db.query(`SELECT migration FROM ${this.config.tableName} ORDER BY executed_at`);
305
- this.appliedMigrations.clear();
306
- if (result.rows) {
307
- result.rows.forEach(row => {
308
- this.appliedMigrations.add(row.migration);
309
- });
310
- }
311
- return Promise.resolve();
312
- }
313
- async loadMigrationFiles() {
314
- try {
315
- // Import fs dynamically to avoid issues with mocking
316
- const fs = await import('fs/promises');
317
- const files = await fs.readdir(this.config.directory);
318
- // Filter valid migration files and warn about invalid ones
319
- const migrationFiles = [];
320
- for (const file of files) {
321
- if (file.endsWith('.js')) {
322
- if (/^\d{14}_/.test(file)) {
323
- migrationFiles.push(file);
324
- }
325
- else {
326
- console.warn(`Failed to load migration ${file}: Invalid migration file name format`);
327
- }
328
- }
329
- }
330
- this.migrations = [];
331
- for (const file of migrationFiles) {
332
- try {
333
- const filePath = `${this.config.directory}/${file}`;
334
- const migrationName = file.replace('.js', '');
335
- // In test environment, use mock migration objects
336
- let migration;
337
- if (process.env.NODE_ENV === 'test' || typeof vi !== 'undefined') {
338
- // Create a simple mock migration for testing
339
- migration = {
340
- up: function () { return Promise.resolve(); },
341
- down: function () { return Promise.resolve(); }
342
- };
343
- }
344
- else {
345
- migration = await import(filePath);
346
- }
347
- this.migrations.push({
348
- name: migrationName,
349
- file: file,
350
- up: migration.up || migration.default?.up,
351
- down: migration.down || migration.default?.down,
352
- applied: this.appliedMigrations.has(migrationName)
353
- });
354
- }
355
- catch (error) {
356
- console.warn(`Failed to load migration ${file}: ${error.message}`);
357
- }
358
- }
359
- // Sort migrations by name (which includes timestamp)
360
- this.migrations.sort((a, b) => a.name.localeCompare(b.name));
361
- }
362
- catch (error) {
363
- if (error.code === 'ENOENT') {
364
- // Directory doesn't exist, initialize empty
365
- this.migrations = [];
366
- }
367
- else {
368
- throw error;
369
- }
370
- }
371
- return Promise.resolve();
372
- }
373
- loadMigrations = () => Promise.resolve([]);
374
- }
375
- export class SchemaBuilder {
376
- constructor(db) {
377
- this.db = db;
378
- }
379
- async createTable(tableName, callback) {
380
- const table = new TableBuilder(tableName);
381
- callback(table);
382
- const sql = table.toCreateSQL();
383
- await this.db.query(sql);
384
- return this;
385
- }
386
- async alterTable(tableName, callback) {
387
- const table = new TableBuilder(tableName);
388
- callback(table);
389
- const statements = table.toAlterSQL();
390
- for (const sql of statements) {
391
- await this.db.query(sql);
392
- }
393
- return this;
394
- }
395
- async dropTable(tableName) {
396
- await this.db.query(`DROP TABLE IF EXISTS ${tableName}`);
397
- return this;
398
- }
399
- async raw(sql, params = []) {
400
- return await this.db.query(sql, params);
401
- }
402
- }
403
- export class TableBuilder {
404
- constructor(tableName) {
405
- this.tableName = tableName;
406
- this.columns = [];
407
- this.alterations = [];
408
- }
409
- id(name = 'id') {
410
- const column = {
411
- name,
412
- type: 'INTEGER',
413
- primaryKey: true,
414
- autoIncrement: true
415
- };
416
- this.columns.push(column);
417
- return this;
418
- }
419
- string(name, length = 255) {
420
- const column = {
421
- name,
422
- type: `VARCHAR(${length})`,
423
- nullable: true
424
- };
425
- this.columns.push(column);
426
- return createColumnBuilder(column);
427
- }
428
- text(name) {
429
- const column = {
430
- name,
431
- type: 'TEXT',
432
- nullable: true
433
- };
434
- this.columns.push(column);
435
- return createColumnBuilder(column);
436
- }
437
- integer(name) {
438
- const column = {
439
- name,
440
- type: 'INTEGER',
441
- nullable: true
442
- };
443
- this.columns.push(column);
444
- return createColumnBuilder(column);
445
- }
446
- boolean(name) {
447
- const column = {
448
- name,
449
- type: 'BOOLEAN',
450
- nullable: true,
451
- default: false
452
- };
453
- this.columns.push(column);
454
- return createColumnBuilder(column);
455
- }
456
- datetime(name) {
457
- const column = {
458
- name,
459
- type: 'DATETIME',
460
- nullable: true
461
- };
462
- this.columns.push(column);
463
- return createColumnBuilder(column);
464
- }
465
- timestamps() {
466
- this.datetime('created_at');
467
- this.datetime('updated_at');
468
- return this;
469
- }
470
- addColumn(name, type) {
471
- this.alterations.push({
472
- type: 'ADD',
473
- name,
474
- columnType: type
475
- });
476
- return this;
477
- }
478
- dropColumn(name) {
479
- this.alterations.push({
480
- type: 'DROP',
481
- name
482
- });
483
- return this;
484
- }
485
- toCreateSQL() {
486
- if (this.columns.length === 0) {
487
- return `CREATE TABLE ${this.tableName} ();`;
488
- }
489
- const columnDefs = this.columns.map(col => {
490
- let def = `${col.name} ${col.type}`;
491
- if (col.primaryKey) {
492
- def += ' PRIMARY KEY';
493
- }
494
- if (col.autoIncrement) {
495
- def += ' AUTOINCREMENT';
496
- }
497
- if (!col.nullable) {
498
- def += ' NOT NULL';
499
- }
500
- if (col.unique) {
501
- def += ' UNIQUE';
502
- }
503
- if (col.default !== undefined) {
504
- def += ` DEFAULT ${col.default}`;
505
- }
506
- return def;
507
- });
508
- return `CREATE TABLE ${this.tableName} (\n ${columnDefs.join(',\n ')}\n)`;
509
- }
510
- toAlterSQL() {
511
- if (this.alterations.length === 0) {
512
- return [`ALTER TABLE ${this.tableName};`];
513
- }
514
- return this.alterations.map(alt => {
515
- switch (alt.type) {
516
- case 'ADD':
517
- return `ALTER TABLE ${this.tableName} ADD COLUMN ${alt.name} ${alt.columnType}`;
518
- case 'DROP':
519
- return `ALTER TABLE ${this.tableName} DROP COLUMN ${alt.name}`;
520
- default:
521
- throw new Error(`Unsupported alteration type: ${alt.type}`);
522
- }
523
- });
524
- }
525
- }
526
- // Column builder helper for the stub class
527
- function createColumnBuilder(column) {
528
- return {
529
- notNull() {
530
- column.nullable = false;
531
- return this;
532
- },
533
- unique() {
534
- column.unique = true;
535
- return this;
536
- },
537
- default(value) {
538
- column.default = typeof value === 'string' ? `'${value}'` : value;
539
- return this;
540
- },
541
- references(foreignKey) {
542
- column.references = foreignKey;
543
- return this;
544
- }
545
- };
546
- }
547
24
  export function createMigration(db, config = {}) {
548
25
  const migrationConfig = {
549
26
  directory: './migrations',
@@ -598,14 +75,14 @@ export function createMigration(db, config = {}) {
598
75
  applied: appliedMigrations.has(migrationName)
599
76
  });
600
77
  }
601
- catch (error) {
602
- console.warn(`Failed to load migration ${file}: ${error.message}`);
78
+ catch (_error) {
79
+ console.warn(`Failed to load migration ${file}: ${_error.message}`);
603
80
  }
604
81
  }
605
82
  }
606
- catch (error) {
607
- if (error.code !== 'ENOENT') {
608
- throw error;
83
+ catch (_error) {
84
+ if (_error.code !== 'ENOENT') {
85
+ throw _error;
609
86
  }
610
87
  }
611
88
  }
@@ -627,9 +104,9 @@ export function createMigration(db, config = {}) {
627
104
  const { mkdir } = await import('fs/promises');
628
105
  await mkdir(dirPath, { recursive: true });
629
106
  }
630
- catch (error) {
631
- if (error.code !== 'EEXIST') {
632
- throw error;
107
+ catch (_error) {
108
+ if (_error.code !== 'EEXIST') {
109
+ throw _error;
633
110
  }
634
111
  }
635
112
  }
@@ -700,15 +177,15 @@ export async function down(schema) {
700
177
  migration.applied = true;
701
178
  console.log(`✓ Migration ${migration.name} completed`);
702
179
  }
703
- catch (error) {
180
+ catch (_error) {
704
181
  await tx.rollback();
705
- throw error;
182
+ throw _error;
706
183
  }
707
184
  }
708
- catch (error) {
709
- console.error(`✗ Migration ${migration.name} failed: ${error.message}`);
185
+ catch (_error) {
186
+ console._error(`✗ Migration ${migration.name} failed: ${_error.message}`);
710
187
  if (!options.continueOnError) {
711
- throw error;
188
+ throw _error;
712
189
  }
713
190
  }
714
191
  }
@@ -743,14 +220,14 @@ export async function down(schema) {
743
220
  migration.applied = false;
744
221
  console.log(`✓ Migration ${migrationName} rolled back`);
745
222
  }
746
- catch (error) {
223
+ catch (_error) {
747
224
  await tx.rollback();
748
- throw error;
225
+ throw _error;
749
226
  }
750
227
  }
751
- catch (error) {
752
- console.error(`✗ Rollback ${migrationName} failed: ${error.message}`);
753
- throw error;
228
+ catch (_error) {
229
+ console._error(`✗ Rollback ${migrationName} failed: ${_error.message}`);
230
+ throw _error;
754
231
  }
755
232
  }
756
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../../../src/database/migration.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../../../src/database/migration.js"],"names":[],"mappings":"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"}