@studiosonrai/nestjs-migrations 1.1.0 → 1.2.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.
@@ -3,6 +3,7 @@ import { MigrationCoreOptions, MigrationResult, MigrationRunOptions, AppliedMigr
3
3
  export declare class MigrationCore {
4
4
  private readonly dataSource;
5
5
  private readonly migrationsDir;
6
+ private readonly tableName;
6
7
  constructor(dataSource: DataSource, options: MigrationCoreOptions);
7
8
  ensureMigrationsTable(): Promise<void>;
8
9
  calculateFileHash(filePath: string): string;
@@ -11,13 +12,16 @@ export declare class MigrationCore {
11
12
  verifyMigrationHashes(): Promise<void>;
12
13
  getMigrationFiles(): Promise<string[]>;
13
14
  runSingleMigration(file: string, queryRunner: QueryRunner): Promise<void>;
15
+ private recordMigration;
14
16
  runMigrations(options?: MigrationRunOptions): Promise<MigrationResult>;
15
17
  getPendingMigrations(): Promise<string[]>;
16
18
  getStatus(): Promise<{
17
19
  total: number;
18
20
  applied: number;
19
21
  pending: number;
22
+ rerunnable: number;
20
23
  pendingFiles: string[];
24
+ rerunnableFiles: string[];
21
25
  hashMismatches: Array<{
22
26
  name: string;
23
27
  expectedHash: string;
@@ -25,4 +29,6 @@ export declare class MigrationCore {
25
29
  }>;
26
30
  missingFiles: string[];
27
31
  }>;
32
+ private runPendingVersionedMigrations;
33
+ private runRerunnableScripts;
28
34
  }
@@ -38,23 +38,29 @@ const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const crypto = __importStar(require("crypto"));
40
40
  const types_1 = require("./types");
41
- const MIGRATION_TABLE = 'migrations';
41
+ const DEFAULT_MIGRATION_TABLE = 'migrations';
42
42
  class MigrationCore {
43
43
  dataSource;
44
44
  migrationsDir;
45
+ tableName;
45
46
  constructor(dataSource, options) {
46
47
  this.dataSource = dataSource;
47
48
  this.migrationsDir = options.migrationsDir;
49
+ const rawTableName = options.tableName || DEFAULT_MIGRATION_TABLE;
50
+ if (!/^[a-zA-Z0-9_]+$/.test(rawTableName)) {
51
+ throw new Error(`Invalid tableName "${rawTableName}": only alphanumeric characters and underscores are allowed.`);
52
+ }
53
+ this.tableName = rawTableName;
48
54
  }
49
55
  async ensureMigrationsTable() {
50
56
  const tableExists = await this.dataSource.query(`
51
- SELECT COUNT(*) as count FROM sysobjects WHERE name='${MIGRATION_TABLE}' AND xtype='U'
57
+ SELECT COUNT(*) as count FROM sysobjects WHERE name='${this.tableName}' AND xtype='U'
52
58
  `);
53
59
  if (tableExists[0].count === 0) {
54
60
  await this.dataSource.query(`
55
- CREATE TABLE ${MIGRATION_TABLE} (
61
+ CREATE TABLE ${this.tableName} (
56
62
  id INT IDENTITY(1,1) PRIMARY KEY,
57
- name NVARCHAR(255) UNIQUE NOT NULL,
63
+ name NVARCHAR(255) NOT NULL UNIQUE,
58
64
  content_hash NVARCHAR(64) NOT NULL,
59
65
  run_on DATETIME DEFAULT GETDATE() NOT NULL
60
66
  )
@@ -66,11 +72,11 @@ class MigrationCore {
66
72
  return crypto.createHash('sha256').update(content, 'utf8').digest('hex');
67
73
  }
68
74
  async getAppliedMigrationNames() {
69
- const rows = await this.dataSource.query(`SELECT name FROM ${MIGRATION_TABLE}`);
75
+ const rows = await this.dataSource.query(`SELECT name FROM ${this.tableName}`);
70
76
  return rows.map((row) => row.name);
71
77
  }
72
78
  async getAppliedMigrations() {
73
- const rows = await this.dataSource.query(`SELECT name, content_hash, run_on FROM ${MIGRATION_TABLE}`);
79
+ const rows = await this.dataSource.query(`SELECT name, content_hash, run_on FROM ${this.tableName}`);
74
80
  return rows;
75
81
  }
76
82
  async verifyMigrationHashes() {
@@ -85,7 +91,9 @@ class MigrationCore {
85
91
  }
86
92
  const currentHash = this.calculateFileHash(filePath);
87
93
  if (currentHash !== migration.content_hash) {
88
- throw new types_1.HashMismatchError(migration.name, migration.content_hash, currentHash);
94
+ if (!migration.name.startsWith('R__')) {
95
+ throw new types_1.HashMismatchError(migration.name, migration.content_hash, currentHash);
96
+ }
89
97
  }
90
98
  }
91
99
  }
@@ -101,7 +109,6 @@ class MigrationCore {
101
109
  async runSingleMigration(file, queryRunner) {
102
110
  const filePath = path.join(this.migrationsDir, file);
103
111
  const sql = fs.readFileSync(filePath, 'utf8');
104
- const contentHash = this.calculateFileHash(filePath);
105
112
  const batches = sql
106
113
  .split(/^\s*GO\s*$/im)
107
114
  .map((batch) => batch.trim())
@@ -109,7 +116,22 @@ class MigrationCore {
109
116
  for (const batch of batches) {
110
117
  await queryRunner.query(batch);
111
118
  }
112
- await queryRunner.query(`INSERT INTO ${MIGRATION_TABLE} (name, content_hash, run_on) VALUES (@0, @1, GETDATE())`, [file, contentHash]);
119
+ }
120
+ async recordMigration(file, contentHash, queryRunner, isRerunnable) {
121
+ if (isRerunnable) {
122
+ await queryRunner.query(`
123
+ MERGE INTO ${this.tableName} AS target
124
+ USING (SELECT @0 AS name, @1 AS content_hash) AS source
125
+ ON (target.name = source.name)
126
+ WHEN MATCHED THEN
127
+ UPDATE SET content_hash = source.content_hash, run_on = GETDATE()
128
+ WHEN NOT MATCHED THEN
129
+ INSERT (name, content_hash, run_on) VALUES (source.name, source.content_hash, GETDATE());
130
+ `, [file, contentHash]);
131
+ }
132
+ else {
133
+ await queryRunner.query(`INSERT INTO ${this.tableName} (name, content_hash, run_on) VALUES (@0, @1, GETDATE())`, [file, contentHash]);
134
+ }
113
135
  }
114
136
  async runMigrations(options) {
115
137
  const result = {
@@ -117,6 +139,7 @@ class MigrationCore {
117
139
  totalMigrations: 0,
118
140
  appliedMigrations: 0,
119
141
  pendingMigrations: 0,
142
+ rerunnableMigrations: 0,
120
143
  };
121
144
  try {
122
145
  await this.ensureMigrationsTable();
@@ -127,61 +150,42 @@ class MigrationCore {
127
150
  if (options?.verbose) {
128
151
  console.log('✓ All applied migrations have valid hashes');
129
152
  }
130
- const files = await this.getMigrationFiles();
131
- const appliedNames = await this.getAppliedMigrationNames();
132
- result.totalMigrations = files.length;
133
- result.appliedMigrations = appliedNames.length;
153
+ const allFiles = await this.getMigrationFiles();
154
+ const versionedFiles = allFiles.filter((f) => !f.startsWith('R__'));
155
+ const rerunnableFiles = allFiles.filter((f) => f.startsWith('R__'));
156
+ const appliedMigrationRecords = await this.getAppliedMigrations();
157
+ const appliedNames = appliedMigrationRecords.map((m) => m.name);
158
+ result.totalMigrations = allFiles.length;
159
+ result.appliedMigrations = versionedFiles.filter((f) => appliedNames.includes(f)).length;
134
160
  if (options?.verbose) {
135
- console.log(`Found ${files.length} migration files`);
136
- console.log(`${appliedNames.length} migrations already applied`);
161
+ console.log(`Found ${allFiles.length} migration files`);
162
+ console.log(`${result.appliedMigrations} versioned migrations already applied`);
163
+ console.log(`Found ${rerunnableFiles.length} rerunnable scripts`);
137
164
  }
138
- const pendingMigrations = files.filter((file) => !appliedNames.includes(file));
139
- result.pendingMigrations = pendingMigrations.length;
140
- if (pendingMigrations.length === 0) {
165
+ const pendingVersioned = versionedFiles.filter((file) => !appliedNames.includes(file));
166
+ result.pendingMigrations = pendingVersioned.length;
167
+ const changedRerunnables = rerunnableFiles.filter((file) => {
168
+ const currentHash = this.calculateFileHash(path.join(this.migrationsDir, file));
169
+ const applied = appliedMigrationRecords.find((m) => m.name === file);
170
+ return !applied || applied.content_hash !== currentHash;
171
+ });
172
+ if (pendingVersioned.length === 0 && changedRerunnables.length === 0) {
141
173
  if (options?.verbose) {
142
- console.log('No pending migrations to apply');
174
+ console.log('No migrations to apply');
143
175
  }
144
176
  result.success = true;
145
177
  return result;
146
178
  }
147
179
  if (options?.dryRun) {
148
180
  console.log('Dry run mode - would apply:');
149
- pendingMigrations.forEach((file) => console.log(` - ${file}`));
181
+ pendingVersioned.forEach((file) => console.log(` - ${file}`));
182
+ changedRerunnables.forEach((file) => console.log(` - ${file} (rerunnable)`));
150
183
  result.success = true;
151
184
  return result;
152
185
  }
153
- if (options?.verbose) {
154
- console.log(`Running ${pendingMigrations.length} pending migrations...`);
155
- }
156
- for (const file of pendingMigrations) {
157
- if (options?.verbose) {
158
- console.log(`Applying migration: ${file}`);
159
- }
160
- const queryRunner = this.dataSource.createQueryRunner();
161
- await queryRunner.connect();
162
- await queryRunner.startTransaction();
163
- try {
164
- await this.runSingleMigration(file, queryRunner);
165
- await queryRunner.commitTransaction();
166
- if (options?.verbose) {
167
- console.log(`✓ Applied migration: ${file}`);
168
- }
169
- }
170
- catch (error) {
171
- await queryRunner.rollbackTransaction();
172
- if (options?.verbose) {
173
- console.error(`Failed to apply migration ${file}:`, error);
174
- }
175
- result.failedMigration = file;
176
- result.error = error;
177
- throw error;
178
- }
179
- finally {
180
- await queryRunner.release();
181
- }
182
- }
186
+ await this.runPendingVersionedMigrations(pendingVersioned, result, options);
187
+ await this.runRerunnableScripts(rerunnableFiles, result, options);
183
188
  result.success = true;
184
- result.appliedMigrations += pendingMigrations.length;
185
189
  if (options?.verbose) {
186
190
  console.log('All migrations completed successfully!');
187
191
  }
@@ -199,14 +203,16 @@ class MigrationCore {
199
203
  await this.ensureMigrationsTable();
200
204
  const files = await this.getMigrationFiles();
201
205
  const appliedNames = await this.getAppliedMigrationNames();
202
- return files.filter((file) => !appliedNames.includes(file));
206
+ return files.filter((file) => !file.startsWith('R__') && !appliedNames.includes(file));
203
207
  }
204
208
  async getStatus() {
205
209
  await this.ensureMigrationsTable();
206
- const files = await this.getMigrationFiles();
210
+ const allFiles = await this.getMigrationFiles();
211
+ const versionedFiles = allFiles.filter((f) => !f.startsWith('R__'));
212
+ const rerunnableFiles = allFiles.filter((f) => f.startsWith('R__'));
207
213
  const appliedMigrations = await this.getAppliedMigrations();
208
214
  const appliedNames = appliedMigrations.map((m) => m.name);
209
- const pendingFiles = files.filter((file) => !appliedNames.includes(file));
215
+ const pendingFiles = versionedFiles.filter((file) => !appliedNames.includes(file));
210
216
  const hashMismatches = [];
211
217
  const missingFiles = [];
212
218
  for (const migration of appliedMigrations) {
@@ -227,14 +233,103 @@ class MigrationCore {
227
233
  }
228
234
  }
229
235
  return {
230
- total: files.length,
231
- applied: appliedNames.length,
236
+ total: allFiles.length,
237
+ applied: versionedFiles.filter((f) => appliedNames.includes(f)).length,
232
238
  pending: pendingFiles.length,
239
+ rerunnable: rerunnableFiles.length,
233
240
  pendingFiles,
241
+ rerunnableFiles,
234
242
  hashMismatches,
235
243
  missingFiles,
236
244
  };
237
245
  }
246
+ async runPendingVersionedMigrations(pendingFiles, result, options) {
247
+ if (pendingFiles.length === 0)
248
+ return;
249
+ if (options?.verbose) {
250
+ console.log(`Running ${pendingFiles.length} pending versioned migrations...`);
251
+ }
252
+ for (const file of pendingFiles) {
253
+ if (options?.verbose) {
254
+ console.log(`Applying migration: ${file}`);
255
+ }
256
+ const queryRunner = this.dataSource.createQueryRunner();
257
+ const contentHash = this.calculateFileHash(path.join(this.migrationsDir, file));
258
+ await queryRunner.connect();
259
+ await queryRunner.startTransaction();
260
+ try {
261
+ await this.runSingleMigration(file, queryRunner);
262
+ await this.recordMigration(file, contentHash, queryRunner, false);
263
+ await queryRunner.commitTransaction();
264
+ result.appliedMigrations++;
265
+ if (options?.verbose) {
266
+ console.log(`✓ Applied migration: ${file}`);
267
+ }
268
+ }
269
+ catch (error) {
270
+ if (queryRunner.isTransactionActive) {
271
+ await queryRunner.rollbackTransaction();
272
+ }
273
+ if (options?.verbose) {
274
+ console.error(`Failed to apply migration ${file}:`, error);
275
+ }
276
+ result.failedMigration = file;
277
+ result.error = error;
278
+ throw error;
279
+ }
280
+ finally {
281
+ await queryRunner.release();
282
+ }
283
+ }
284
+ }
285
+ async runRerunnableScripts(rerunnableFiles, result, options) {
286
+ if (rerunnableFiles.length === 0)
287
+ return;
288
+ if (options?.verbose) {
289
+ console.log(`Checking ${rerunnableFiles.length} rerunnable scripts...`);
290
+ }
291
+ const appliedMigrations = await this.getAppliedMigrations();
292
+ for (const file of rerunnableFiles) {
293
+ const contentHash = this.calculateFileHash(path.join(this.migrationsDir, file));
294
+ const applied = appliedMigrations.find((m) => m.name === file);
295
+ const isNewOrChanged = !applied || applied.content_hash !== contentHash;
296
+ if (!isNewOrChanged) {
297
+ if (options?.verbose) {
298
+ console.log(`✓ ${file} (no changes, skipping)`);
299
+ }
300
+ continue;
301
+ }
302
+ if (options?.verbose) {
303
+ console.log(`Running rerunnable script: ${file}`);
304
+ }
305
+ const queryRunner = this.dataSource.createQueryRunner();
306
+ await queryRunner.connect();
307
+ await queryRunner.startTransaction();
308
+ try {
309
+ await this.runSingleMigration(file, queryRunner);
310
+ await this.recordMigration(file, contentHash, queryRunner, true);
311
+ await queryRunner.commitTransaction();
312
+ result.rerunnableMigrations++;
313
+ if (options?.verbose) {
314
+ console.log(`✓ Ran rerunnable script: ${file}`);
315
+ }
316
+ }
317
+ catch (error) {
318
+ if (queryRunner.isTransactionActive) {
319
+ await queryRunner.rollbackTransaction();
320
+ }
321
+ if (options?.verbose) {
322
+ console.error(`Failed to run rerunnable script ${file}:`, error);
323
+ }
324
+ result.failedMigration = file;
325
+ result.error = error;
326
+ throw error;
327
+ }
328
+ finally {
329
+ await queryRunner.release();
330
+ }
331
+ }
332
+ }
238
333
  }
239
334
  exports.MigrationCore = MigrationCore;
240
335
  //# sourceMappingURL=migration-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration-core.js","sourceRoot":"","sources":["../../src/migration-core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AACjC,mCAMiB;AAEjB,MAAM,eAAe,GAAG,YAAY,CAAC;AAOrC,MAAa,aAAa;IAIL;IAHF,aAAa,CAAS;IAEvC,YACmB,UAAsB,EACvC,OAA6B;QADZ,eAAU,GAAV,UAAU,CAAY;QAGvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC7C,CAAC;IAMD,KAAK,CAAC,qBAAqB;QACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;6DACS,eAAe;KACvE,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;uBACX,eAAe;;;;;;OAM/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKD,iBAAiB,CAAC,QAAgB;QAChC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IAKD,KAAK,CAAC,wBAAwB;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CACtC,oBAAoB,eAAe,EAAE,CACtC,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAKD,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CACtC,0CAA0C,eAAe,EAAE,CAC5D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,KAAK,CAAC,qBAAqB;QACzB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5D,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;YAE1C,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAG/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,mBAAmB,SAAS,CAAC,IAAI,iEAAiE,CACnG,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAErD,IAAI,WAAW,KAAK,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC3C,MAAM,IAAI,yBAAiB,CACzB,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,YAAY,EACtB,WAAW,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAMD,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,EAAE;aACN,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACjC,IAAI,EAAE,CAAC;IACZ,CAAC;IAMD,KAAK,CAAC,kBAAkB,CACtB,IAAY,EACZ,WAAwB;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAIrD,MAAM,OAAO,GAAG,GAAG;aAChB,KAAK,CAAC,cAAc,CAAC;aACrB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAGvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAGD,MAAM,WAAW,CAAC,KAAK,CACrB,eAAe,eAAe,0DAA0D,EACxF,CAAC,IAAI,EAAE,WAAW,CAAC,CACpB,CAAC;IACJ,CAAC;IAOD,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,MAAM,MAAM,GAAoB;YAC9B,OAAO,EAAE,KAAK;YACd,eAAe,EAAE,CAAC;YAClB,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,CAAC;SACrB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAGnC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACnC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAE3D,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;YACtC,MAAM,CAAC,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC;YAE/C,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,MAAM,kBAAkB,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,6BAA6B,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CACvC,CAAC;YACF,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC;YAEpD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CACT,WAAW,iBAAiB,CAAC,MAAM,wBAAwB,CAC5D,CAAC;YACJ,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;gBACrC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBAGD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACxD,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBAErC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBACjD,MAAM,WAAW,CAAC,iBAAiB,EAAE,CAAC;oBAEtC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;oBAExC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;wBACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC7D,CAAC;oBAED,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC9B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;oBACrB,MAAM,KAAK,CAAC;gBACd,CAAC;wBAAS,CAAC;oBACT,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,CAAC;YAErD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAErB,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAKD,KAAK,CAAC,SAAS;QAYb,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAG1E,MAAM,cAAc,GAIf,EAAE,CAAC;QACR,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAClC,SAAS;YACX,CAAC;YAGD,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,WAAW,KAAK,SAAS,CAAC,YAAY,EAAE,CAAC;oBAC3C,cAAc,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,UAAU,EAAE,WAAW;qBACxB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO,EAAE,YAAY,CAAC,MAAM;YAC5B,OAAO,EAAE,YAAY,CAAC,MAAM;YAC5B,YAAY;YACZ,cAAc;YACd,YAAY;SACb,CAAC;IACJ,CAAC;CACF;AAjUD,sCAiUC"}
1
+ {"version":3,"file":"migration-core.js","sourceRoot":"","sources":["../../src/migration-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};