@savestate/cli 0.7.0 → 0.8.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 (89) hide show
  1. package/dist/cli/__tests__/progress.test.d.ts +5 -0
  2. package/dist/cli/__tests__/progress.test.d.ts.map +1 -0
  3. package/dist/cli/__tests__/progress.test.js +212 -0
  4. package/dist/cli/__tests__/progress.test.js.map +1 -0
  5. package/dist/cli/__tests__/signal-handler.test.d.ts +5 -0
  6. package/dist/cli/__tests__/signal-handler.test.d.ts.map +1 -0
  7. package/dist/cli/__tests__/signal-handler.test.js +99 -0
  8. package/dist/cli/__tests__/signal-handler.test.js.map +1 -0
  9. package/dist/cli/__tests__/summary.test.d.ts +5 -0
  10. package/dist/cli/__tests__/summary.test.d.ts.map +1 -0
  11. package/dist/cli/__tests__/summary.test.js +242 -0
  12. package/dist/cli/__tests__/summary.test.js.map +1 -0
  13. package/dist/cli/index.d.ts +10 -0
  14. package/dist/cli/index.d.ts.map +1 -0
  15. package/dist/cli/index.js +10 -0
  16. package/dist/cli/index.js.map +1 -0
  17. package/dist/cli/progress.d.ts +86 -0
  18. package/dist/cli/progress.d.ts.map +1 -0
  19. package/dist/cli/progress.js +205 -0
  20. package/dist/cli/progress.js.map +1 -0
  21. package/dist/cli/prompts.d.ts +49 -0
  22. package/dist/cli/prompts.d.ts.map +1 -0
  23. package/dist/cli/prompts.js +266 -0
  24. package/dist/cli/prompts.js.map +1 -0
  25. package/dist/cli/signal-handler.d.ts +63 -0
  26. package/dist/cli/signal-handler.d.ts.map +1 -0
  27. package/dist/cli/signal-handler.js +165 -0
  28. package/dist/cli/signal-handler.js.map +1 -0
  29. package/dist/cli/summary.d.ts +33 -0
  30. package/dist/cli/summary.d.ts.map +1 -0
  31. package/dist/cli/summary.js +296 -0
  32. package/dist/cli/summary.js.map +1 -0
  33. package/dist/cli.js +7 -1
  34. package/dist/cli.js.map +1 -1
  35. package/dist/commands/migrate.d.ts +18 -4
  36. package/dist/commands/migrate.d.ts.map +1 -1
  37. package/dist/commands/migrate.js +324 -163
  38. package/dist/commands/migrate.js.map +1 -1
  39. package/dist/migrate/__tests__/capabilities.test.d.ts +7 -0
  40. package/dist/migrate/__tests__/capabilities.test.d.ts.map +1 -0
  41. package/dist/migrate/__tests__/capabilities.test.js +90 -0
  42. package/dist/migrate/__tests__/capabilities.test.js.map +1 -0
  43. package/dist/migrate/__tests__/chatgpt-loader.test.d.ts +7 -0
  44. package/dist/migrate/__tests__/chatgpt-loader.test.d.ts.map +1 -0
  45. package/dist/migrate/__tests__/chatgpt-loader.test.js +889 -0
  46. package/dist/migrate/__tests__/chatgpt-loader.test.js.map +1 -0
  47. package/dist/migrate/__tests__/edge-cases.test.d.ts +7 -0
  48. package/dist/migrate/__tests__/edge-cases.test.d.ts.map +1 -0
  49. package/dist/migrate/__tests__/edge-cases.test.js +787 -0
  50. package/dist/migrate/__tests__/edge-cases.test.js.map +1 -0
  51. package/dist/migrate/__tests__/error-recovery.test.d.ts +7 -0
  52. package/dist/migrate/__tests__/error-recovery.test.d.ts.map +1 -0
  53. package/dist/migrate/__tests__/error-recovery.test.js +461 -0
  54. package/dist/migrate/__tests__/error-recovery.test.js.map +1 -0
  55. package/dist/migrate/__tests__/integration.test.d.ts +7 -0
  56. package/dist/migrate/__tests__/integration.test.d.ts.map +1 -0
  57. package/dist/migrate/__tests__/integration.test.js +536 -0
  58. package/dist/migrate/__tests__/integration.test.js.map +1 -0
  59. package/dist/migrate/__tests__/performance.test.d.ts +7 -0
  60. package/dist/migrate/__tests__/performance.test.d.ts.map +1 -0
  61. package/dist/migrate/__tests__/performance.test.js +478 -0
  62. package/dist/migrate/__tests__/performance.test.js.map +1 -0
  63. package/dist/migrate/__tests__/registry.test.d.ts +7 -0
  64. package/dist/migrate/__tests__/registry.test.d.ts.map +1 -0
  65. package/dist/migrate/__tests__/registry.test.js +167 -0
  66. package/dist/migrate/__tests__/registry.test.js.map +1 -0
  67. package/dist/migrate/compatibility.d.ts +47 -0
  68. package/dist/migrate/compatibility.d.ts.map +1 -0
  69. package/dist/migrate/compatibility.js +468 -0
  70. package/dist/migrate/compatibility.js.map +1 -0
  71. package/dist/migrate/extractors/__tests__/claude.test.d.ts +12 -0
  72. package/dist/migrate/extractors/__tests__/claude.test.d.ts.map +1 -0
  73. package/dist/migrate/extractors/__tests__/claude.test.js +789 -0
  74. package/dist/migrate/extractors/__tests__/claude.test.js.map +1 -0
  75. package/dist/migrate/extractors/claude.d.ts +69 -0
  76. package/dist/migrate/extractors/claude.d.ts.map +1 -0
  77. package/dist/migrate/extractors/claude.js +1136 -0
  78. package/dist/migrate/extractors/claude.js.map +1 -0
  79. package/dist/migrate/extractors/registry.js +3 -2
  80. package/dist/migrate/extractors/registry.js.map +1 -1
  81. package/dist/migrate/loaders/chatgpt.d.ts +72 -0
  82. package/dist/migrate/loaders/chatgpt.d.ts.map +1 -0
  83. package/dist/migrate/loaders/chatgpt.js +691 -0
  84. package/dist/migrate/loaders/chatgpt.js.map +1 -0
  85. package/dist/migrate/loaders/registry.js +3 -2
  86. package/dist/migrate/loaders/registry.js.map +1 -1
  87. package/dist/migrate/types.d.ts +2 -0
  88. package/dist/migrate/types.d.ts.map +1 -1
  89. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-cases.test.js","sourceRoot":"","sources":["../../../src/migrate/__tests__/edge-cases.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Error Recovery Tests for Migration Wizard
3
+ *
4
+ * Tests checkpoint/resume capability from various failure points.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=error-recovery.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-recovery.test.d.ts","sourceRoot":"","sources":["../../../src/migrate/__tests__/error-recovery.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,461 @@
1
+ /**
2
+ * Error Recovery Tests for Migration Wizard
3
+ *
4
+ * Tests checkpoint/resume capability from various failure points.
5
+ */
6
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
7
+ import { existsSync } from 'node:fs';
8
+ import { rm, mkdir, readFile, writeFile } from 'node:fs/promises';
9
+ import { join } from 'node:path';
10
+ import { tmpdir } from 'node:os';
11
+ import { MigrationOrchestrator } from '../orchestrator.js';
12
+ import { registerMockPlugins } from '../testing/index.js';
13
+ import { ChatGPTToClaudeTransformer } from '../transformers/chatgpt-to-claude.js';
14
+ import { registerTransformer } from '../transformers/registry.js';
15
+ describe('Error Recovery Tests', () => {
16
+ let testWorkDir;
17
+ beforeEach(async () => {
18
+ testWorkDir = join(tmpdir(), `savestate-recovery-${Date.now()}-${Math.random().toString(36).slice(2)}`);
19
+ await mkdir(testWorkDir, { recursive: true });
20
+ });
21
+ afterEach(async () => {
22
+ if (existsSync(testWorkDir)) {
23
+ await rm(testWorkDir, { recursive: true, force: true });
24
+ }
25
+ });
26
+ describe('Resume from Extract Phase Failure', () => {
27
+ it('should resume after extraction failure and complete migration', async () => {
28
+ const workDir = join(testWorkDir, 'migration-resume-extract');
29
+ // First attempt: fail during extraction
30
+ registerMockPlugins({
31
+ extractors: {
32
+ chatgpt: {
33
+ shouldFail: true,
34
+ failureMessage: 'Network timeout during extraction',
35
+ },
36
+ },
37
+ });
38
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
39
+ const migrationId = orchestrator1.getState().id;
40
+ await expect(orchestrator1.run()).rejects.toThrow('Network timeout');
41
+ let state = orchestrator1.getState();
42
+ expect(state.phase).toBe('failed');
43
+ expect(state.checkpoints.length).toBe(0); // No checkpoint before extraction completes
44
+ // Second attempt: fix the issue and retry
45
+ registerMockPlugins({
46
+ extractors: {
47
+ chatgpt: { shouldFail: false },
48
+ },
49
+ });
50
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
51
+ const result = await orchestrator2.continue();
52
+ expect(result.success).toBe(true);
53
+ expect(orchestrator2.getState().phase).toBe('complete');
54
+ });
55
+ it('should preserve migration ID across resume attempts', async () => {
56
+ const workDir = join(testWorkDir, 'migration-preserve-id');
57
+ registerMockPlugins({
58
+ extractors: {
59
+ chatgpt: { shouldFail: true, failureMessage: 'First attempt failed' },
60
+ },
61
+ });
62
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
63
+ const originalId = orchestrator1.getState().id;
64
+ try {
65
+ await orchestrator1.run();
66
+ }
67
+ catch {
68
+ // Expected failure
69
+ }
70
+ // Resume should have the same ID
71
+ registerMockPlugins();
72
+ const orchestrator2 = await MigrationOrchestrator.resume(originalId, workDir);
73
+ expect(orchestrator2.getState().id).toBe(originalId);
74
+ });
75
+ });
76
+ describe('Resume from Transform Phase Failure', () => {
77
+ it('should resume from transform checkpoint after failure', async () => {
78
+ const workDir = join(testWorkDir, 'migration-resume-transform');
79
+ // First attempt: succeed extraction, fail during transformation
80
+ registerMockPlugins({
81
+ transformers: {
82
+ 'chatgpt->claude': {
83
+ shouldFail: true,
84
+ failureMessage: 'Transform validation failed',
85
+ },
86
+ },
87
+ });
88
+ registerTransformer('chatgpt', 'claude', () => new ChatGPTToClaudeTransformer());
89
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
90
+ const migrationId = orchestrator1.getState().id;
91
+ // Just extract first
92
+ await orchestrator1.extract();
93
+ expect(orchestrator1.getState().checkpoints.length).toBe(1);
94
+ // Now try the full run with failing transformer
95
+ const { transformers } = registerMockPlugins({
96
+ transformers: {
97
+ 'chatgpt->claude': {
98
+ shouldFail: true,
99
+ failureMessage: 'Transform failed',
100
+ },
101
+ },
102
+ });
103
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
104
+ await expect(orchestrator2.continue()).rejects.toThrow('Transform failed');
105
+ let state = orchestrator2.getState();
106
+ expect(state.phase).toBe('failed');
107
+ // Third attempt: fix transformer and resume
108
+ registerMockPlugins();
109
+ const orchestrator3 = await MigrationOrchestrator.resume(migrationId, workDir);
110
+ const result = await orchestrator3.continue();
111
+ expect(result.success).toBe(true);
112
+ });
113
+ it('should not re-extract when resuming from transform checkpoint', async () => {
114
+ const workDir = join(testWorkDir, 'migration-skip-extract');
115
+ let extractCount = 0;
116
+ // Track extraction calls
117
+ const mockBundle = {
118
+ version: '1.0',
119
+ id: 'tracked_bundle',
120
+ source: {
121
+ platform: 'chatgpt',
122
+ extractedAt: new Date().toISOString(),
123
+ extractorVersion: '1.0.0',
124
+ },
125
+ contents: {
126
+ instructions: { content: 'Test instructions', length: 20 },
127
+ },
128
+ metadata: {
129
+ totalItems: 1,
130
+ itemCounts: {
131
+ instructions: 1,
132
+ memories: 0,
133
+ conversations: 0,
134
+ files: 0,
135
+ customBots: 0,
136
+ },
137
+ warnings: [],
138
+ errors: [],
139
+ },
140
+ };
141
+ registerMockPlugins({
142
+ extractors: { chatgpt: { customBundle: mockBundle } },
143
+ });
144
+ // First: complete extraction
145
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
146
+ const migrationId = orchestrator1.getState().id;
147
+ await orchestrator1.extract();
148
+ // Verify checkpoint exists
149
+ expect(orchestrator1.getState().checkpoints.length).toBe(1);
150
+ expect(orchestrator1.getState().checkpoints[0].phase).toBe('extracting');
151
+ // Resume - extraction should be skipped
152
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
153
+ // The bundle should already be loaded
154
+ expect(orchestrator2.getBundle()).not.toBeNull();
155
+ });
156
+ });
157
+ describe('Resume from Load Phase Failure', () => {
158
+ it('should resume from load checkpoint after failure', async () => {
159
+ const workDir = join(testWorkDir, 'migration-resume-load');
160
+ // First attempt: succeed extraction and transform, fail during load
161
+ registerMockPlugins({
162
+ loaders: {
163
+ claude: {
164
+ shouldFail: true,
165
+ failureMessage: 'API rate limit exceeded',
166
+ },
167
+ },
168
+ });
169
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
170
+ const migrationId = orchestrator1.getState().id;
171
+ await expect(orchestrator1.run()).rejects.toThrow('rate limit');
172
+ let state = orchestrator1.getState();
173
+ expect(state.phase).toBe('failed');
174
+ // Should have extract and transform checkpoints
175
+ expect(state.checkpoints.length).toBe(2);
176
+ // Second attempt: fix loader and resume
177
+ registerMockPlugins();
178
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
179
+ const result = await orchestrator2.continue();
180
+ expect(result.success).toBe(true);
181
+ expect(orchestrator2.getState().phase).toBe('complete');
182
+ });
183
+ it('should not re-transform when resuming from load checkpoint', async () => {
184
+ const workDir = join(testWorkDir, 'migration-skip-transform');
185
+ // Run until load phase, then fail
186
+ registerMockPlugins({
187
+ loaders: {
188
+ claude: {
189
+ shouldFail: true,
190
+ failureMessage: 'Load failed',
191
+ },
192
+ },
193
+ });
194
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
195
+ const migrationId = orchestrator1.getState().id;
196
+ try {
197
+ await orchestrator1.run();
198
+ }
199
+ catch {
200
+ // Expected
201
+ }
202
+ const checkpoints = orchestrator1.getState().checkpoints;
203
+ expect(checkpoints.some((c) => c.phase === 'transforming')).toBe(true);
204
+ // Resume - transform should be skipped
205
+ registerMockPlugins();
206
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
207
+ const bundle = orchestrator2.getBundle();
208
+ // Bundle should already have target info from previous transform
209
+ expect(bundle?.target?.platform).toBe('claude');
210
+ const result = await orchestrator2.continue();
211
+ expect(result.success).toBe(true);
212
+ });
213
+ });
214
+ describe('Checkpoint Integrity', () => {
215
+ it('should detect corrupted checkpoint files', async () => {
216
+ const workDir = join(testWorkDir, 'migration-corrupted');
217
+ // Create a successful extraction checkpoint
218
+ registerMockPlugins();
219
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
220
+ const migrationId = orchestrator1.getState().id;
221
+ await orchestrator1.extract();
222
+ const checkpoints = orchestrator1.getState().checkpoints;
223
+ expect(checkpoints.length).toBe(1);
224
+ // Corrupt the checkpoint file
225
+ const checkpointPath = checkpoints[0].dataPath;
226
+ await writeFile(checkpointPath, 'corrupted data that is not valid JSON');
227
+ // Resume should detect corruption
228
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
229
+ // Attempting to continue from corrupted checkpoint should fail
230
+ await expect(orchestrator2.continue()).rejects.toThrow();
231
+ });
232
+ it('should verify checksum before loading checkpoint', async () => {
233
+ const workDir = join(testWorkDir, 'migration-checksum');
234
+ registerMockPlugins();
235
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
236
+ const migrationId = orchestrator1.getState().id;
237
+ await orchestrator1.extract();
238
+ const checkpoints = orchestrator1.getState().checkpoints;
239
+ const originalChecksum = checkpoints[0].checksum;
240
+ // Modify checkpoint content slightly
241
+ const checkpointPath = checkpoints[0].dataPath;
242
+ const content = await readFile(checkpointPath, 'utf-8');
243
+ const modified = content.replace('"version"', '"VERSION"');
244
+ await writeFile(checkpointPath, modified);
245
+ // Resume should detect checksum mismatch
246
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
247
+ await expect(orchestrator2.continue()).rejects.toThrow(/checksum|corrupted/i);
248
+ });
249
+ });
250
+ describe('State Persistence', () => {
251
+ it('should persist error state to disk', async () => {
252
+ const workDir = join(testWorkDir, 'migration-persist-error');
253
+ registerMockPlugins({
254
+ extractors: {
255
+ chatgpt: {
256
+ shouldFail: true,
257
+ failureMessage: 'Persistent error message',
258
+ },
259
+ },
260
+ });
261
+ const orchestrator = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
262
+ try {
263
+ await orchestrator.run();
264
+ }
265
+ catch {
266
+ // Expected
267
+ }
268
+ // Check state file on disk
269
+ const statePath = join(workDir, 'state.json');
270
+ expect(existsSync(statePath)).toBe(true);
271
+ const savedState = JSON.parse(await readFile(statePath, 'utf-8'));
272
+ expect(savedState.phase).toBe('failed');
273
+ expect(savedState.error).toContain('Persistent error message');
274
+ });
275
+ it('should restore state correctly after process restart simulation', async () => {
276
+ const workDir = join(testWorkDir, 'migration-restart');
277
+ registerMockPlugins();
278
+ // Start migration and complete extraction
279
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
280
+ const migrationId = orchestrator1.getState().id;
281
+ await orchestrator1.extract();
282
+ const originalState = orchestrator1.getState();
283
+ // Simulate process restart by loading from disk
284
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
285
+ const restoredState = orchestrator2.getState();
286
+ // Key state should be preserved
287
+ expect(restoredState.id).toBe(originalState.id);
288
+ expect(restoredState.source).toBe(originalState.source);
289
+ expect(restoredState.target).toBe(originalState.target);
290
+ expect(restoredState.checkpoints.length).toBe(originalState.checkpoints.length);
291
+ });
292
+ });
293
+ describe('Multiple Failure Recovery', () => {
294
+ it('should handle multiple consecutive failures', async () => {
295
+ const workDir = join(testWorkDir, 'migration-multi-fail');
296
+ // Failure 1: Extraction
297
+ registerMockPlugins({
298
+ extractors: { chatgpt: { shouldFail: true, failureMessage: 'Failure 1' } },
299
+ });
300
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
301
+ const migrationId = orchestrator1.getState().id;
302
+ try {
303
+ await orchestrator1.run();
304
+ }
305
+ catch {
306
+ // Expected
307
+ }
308
+ // Failure 2: Transform
309
+ registerMockPlugins({
310
+ transformers: { 'chatgpt->claude': { shouldFail: true, failureMessage: 'Failure 2' } },
311
+ });
312
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
313
+ try {
314
+ await orchestrator2.continue();
315
+ }
316
+ catch {
317
+ // Expected
318
+ }
319
+ // Failure 3: Load
320
+ registerMockPlugins({
321
+ loaders: { claude: { shouldFail: true, failureMessage: 'Failure 3' } },
322
+ });
323
+ const orchestrator3 = await MigrationOrchestrator.resume(migrationId, workDir);
324
+ try {
325
+ await orchestrator3.continue();
326
+ }
327
+ catch {
328
+ // Expected
329
+ }
330
+ // Finally succeed
331
+ registerMockPlugins();
332
+ const orchestrator4 = await MigrationOrchestrator.resume(migrationId, workDir);
333
+ const result = await orchestrator4.continue();
334
+ expect(result.success).toBe(true);
335
+ });
336
+ it('should accumulate warnings across recovery attempts', async () => {
337
+ const workDir = join(testWorkDir, 'migration-warnings');
338
+ // First attempt with partial issues
339
+ registerMockPlugins({
340
+ loaders: {
341
+ claude: {
342
+ partialFailure: { memories: true },
343
+ },
344
+ },
345
+ });
346
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
347
+ const result = await orchestrator1.run();
348
+ expect(result.success).toBe(true);
349
+ expect(result.warnings.length).toBeGreaterThan(0);
350
+ });
351
+ });
352
+ describe('Rollback After Recovery', () => {
353
+ it('should support rollback after resumed migration completes', async () => {
354
+ const workDir = join(testWorkDir, 'migration-rollback-resume');
355
+ // Fail during load first
356
+ registerMockPlugins({
357
+ loaders: { claude: { shouldFail: true, failureMessage: 'First load attempt' } },
358
+ });
359
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
360
+ const migrationId = orchestrator1.getState().id;
361
+ try {
362
+ await orchestrator1.run();
363
+ }
364
+ catch {
365
+ // Expected
366
+ }
367
+ // Resume and complete
368
+ registerMockPlugins();
369
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
370
+ const result = await orchestrator2.continue();
371
+ expect(result.success).toBe(true);
372
+ expect(orchestrator2.canRollback()).toBe(true);
373
+ // Rollback should work
374
+ const rollbackResult = await orchestrator2.rollback();
375
+ expect(rollbackResult.success).toBe(true);
376
+ });
377
+ it('should not have rollback available for failed migrations', async () => {
378
+ const workDir = join(testWorkDir, 'migration-no-rollback');
379
+ registerMockPlugins({
380
+ loaders: { claude: { shouldFail: true, failureMessage: 'Permanent failure' } },
381
+ });
382
+ const orchestrator = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
383
+ try {
384
+ await orchestrator.run();
385
+ }
386
+ catch {
387
+ // Expected
388
+ }
389
+ expect(orchestrator.canRollback()).toBe(false);
390
+ });
391
+ });
392
+ describe('Progress Tracking During Recovery', () => {
393
+ it('should emit progress events during resumed migration', async () => {
394
+ const workDir = join(testWorkDir, 'migration-progress-resume');
395
+ // Complete extraction with delays to generate progress events
396
+ registerMockPlugins({
397
+ extractors: { chatgpt: { delayMs: 50 } },
398
+ transformers: { 'chatgpt->claude': { delayMs: 100 } },
399
+ loaders: { claude: { delayMs: 100 } },
400
+ });
401
+ const orchestrator1 = new MigrationOrchestrator('chatgpt', 'claude', { workDir });
402
+ const migrationId = orchestrator1.getState().id;
403
+ await orchestrator1.extract();
404
+ // Resume with delays and track progress
405
+ registerMockPlugins({
406
+ transformers: { 'chatgpt->claude': { delayMs: 100 } },
407
+ loaders: { claude: { delayMs: 100 } },
408
+ });
409
+ const orchestrator2 = await MigrationOrchestrator.resume(migrationId, workDir);
410
+ const events = [];
411
+ orchestrator2.on((e) => events.push(e));
412
+ await orchestrator2.continue();
413
+ // Should have progress events for transform and load phases
414
+ const progressEvents = events.filter((e) => e.type === 'progress');
415
+ expect(progressEvents.length).toBeGreaterThan(0);
416
+ // Should have completion event
417
+ const completeEvent = events.find((e) => e.type === 'complete');
418
+ expect(completeEvent).toBeDefined();
419
+ });
420
+ });
421
+ describe('Edge Cases in Recovery', () => {
422
+ it('should handle resume of non-existent migration', async () => {
423
+ await expect(MigrationOrchestrator.resume('mig_nonexistent', testWorkDir)).rejects.toThrow(/not found/);
424
+ });
425
+ it('should handle resume when state file is missing', async () => {
426
+ const workDir = join(testWorkDir, 'migration-missing-state');
427
+ await mkdir(workDir, { recursive: true });
428
+ // Create directory structure but no state file
429
+ await expect(MigrationOrchestrator.resume('mig_test', workDir)).rejects.toThrow(/not found/);
430
+ });
431
+ it('should handle resume when bundle file is missing', async () => {
432
+ const workDir = join(testWorkDir, 'mig_missing_bundle');
433
+ await mkdir(workDir, { recursive: true });
434
+ // Create state file pointing to non-existent bundle
435
+ const state = {
436
+ id: 'mig_missing_bundle',
437
+ phase: 'extracting',
438
+ source: 'chatgpt',
439
+ target: 'claude',
440
+ startedAt: new Date().toISOString(),
441
+ phaseStartedAt: new Date().toISOString(),
442
+ checkpoints: [
443
+ {
444
+ phase: 'extracting',
445
+ timestamp: new Date().toISOString(),
446
+ dataPath: join(workDir, 'missing_checkpoint.json'),
447
+ checksum: 'abc123',
448
+ },
449
+ ],
450
+ progress: 33,
451
+ bundlePath: join(workDir, 'nonexistent_bundle.json'),
452
+ options: {},
453
+ };
454
+ await writeFile(join(workDir, 'state.json'), JSON.stringify(state));
455
+ const orchestrator = await MigrationOrchestrator.resume('mig_missing_bundle', workDir);
456
+ // Bundle should be null since file doesn't exist
457
+ expect(orchestrator.getBundle()).toBeNull();
458
+ });
459
+ });
460
+ });
461
+ //# sourceMappingURL=error-recovery.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-recovery.test.js","sourceRoot":"","sources":["../../../src/migrate/__tests__/error-recovery.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAuB,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,WAAmB,CAAC;IAExB,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,WAAW,GAAG,IAAI,CAChB,MAAM,EAAE,EACR,sBAAsB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAC1E,CAAC;QACF,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACjD,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;YAE9D,wCAAwC;YACxC,mBAAmB,CAAC;gBAClB,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,mCAAmC;qBACpD;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAEhD,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAErE,IAAI,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4C;YAEtF,0CAA0C;YAC1C,mBAAmB,CAAC;gBAClB,UAAU,EAAE;oBACV,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;iBAC/B;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YAE3D,mBAAmB,CAAC;gBAClB,UAAU,EAAE;oBACV,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,sBAAsB,EAAE;iBACtE;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAE/C,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;YAED,iCAAiC;YACjC,mBAAmB,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC9E,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACnD,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;YAEhE,gEAAgE;YAChE,mBAAmB,CAAC;gBAClB,YAAY,EAAE;oBACZ,iBAAiB,EAAE;wBACjB,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,6BAA6B;qBAC9C;iBACF;aACF,CAAC,CAAC;YACH,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;YAEjF,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAEhD,qBAAqB;YACrB,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE5D,gDAAgD;YAChD,MAAM,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC;gBAC3C,YAAY,EAAE;oBACZ,iBAAiB,EAAE;wBACjB,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,kBAAkB;qBACnC;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE/E,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAE3E,IAAI,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEnC,4CAA4C;YAC5C,mBAAmB,EAAE,CAAC;YAEtB,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;YAC5D,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,yBAAyB;YACzB,MAAM,UAAU,GAAoB;gBAClC,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,gBAAgB;gBACpB,MAAM,EAAE;oBACN,QAAQ,EAAE,SAAS;oBACnB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACrC,gBAAgB,EAAE,OAAO;iBAC1B;gBACD,QAAQ,EAAE;oBACR,YAAY,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,EAAE;iBAC3D;gBACD,QAAQ,EAAE;oBACR,UAAU,EAAE,CAAC;oBACb,UAAU,EAAE;wBACV,YAAY,EAAE,CAAC;wBACf,QAAQ,EAAE,CAAC;wBACX,aAAa,EAAE,CAAC;wBAChB,KAAK,EAAE,CAAC;wBACR,UAAU,EAAE,CAAC;qBACd;oBACD,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE,EAAE;iBACX;aACF,CAAC;YAEF,mBAAmB,CAAC;gBAClB,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE;aACtD,CAAC,CAAC;YAEH,6BAA6B;YAC7B,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAChD,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;YAE9B,2BAA2B;YAC3B,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEzE,wCAAwC;YACxC,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE/E,sCAAsC;YACtC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YAE3D,oEAAoE;YACpE,mBAAmB,CAAC;gBAClB,OAAO,EAAE;oBACP,MAAM,EAAE;wBACN,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,yBAAyB;qBAC1C;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAEhD,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEhE,IAAI,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,gDAAgD;YAChD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEzC,wCAAwC;YACxC,mBAAmB,EAAE,CAAC;YAEtB,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;YAE9D,kCAAkC;YAClC,mBAAmB,CAAC;gBAClB,OAAO,EAAE;oBACP,MAAM,EAAE;wBACN,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,aAAa;qBAC9B;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAEhD,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YAED,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC;YACzD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEvE,uCAAuC;YACvC,mBAAmB,EAAE,CAAC;YAEtB,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;YAEzC,iEAAiE;YACjE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEhD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;YAEzD,4CAA4C;YAC5C,mBAAmB,EAAE,CAAC;YAEtB,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAChD,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;YAE9B,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC;YACzD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEnC,8BAA8B;YAC9B,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/C,MAAM,SAAS,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;YAEzE,kCAAkC;YAClC,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE/E,+DAA+D;YAC/D,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YAExD,mBAAmB,EAAE,CAAC;YAEtB,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAChD,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;YAE9B,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC;YACzD,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEjD,qCAAqC;YACrC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAC3D,MAAM,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAE1C,yCAAyC;YACzC,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;YAE7D,mBAAmB,CAAC;gBAClB,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,0BAA0B;qBAC3C;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEjF,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YAED,2BAA2B;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAmB,CAAC;YACpF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;YAEvD,mBAAmB,EAAE,CAAC;YAEtB,0CAA0C;YAC1C,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAChD,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;YAE9B,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YAE/C,gDAAgD;YAChD,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YAE/C,gCAAgC;YAChC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;YAE1D,wBAAwB;YACxB,mBAAmB,CAAC;gBAClB,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE;aAC3E,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAEhD,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YAED,uBAAuB;YACvB,mBAAmB,CAAC;gBAClB,YAAY,EAAE,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE;aACvF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YAED,kBAAkB;YAClB,mBAAmB,CAAC;gBAClB,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE;aACvE,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YAED,kBAAkB;YAClB,mBAAmB,EAAE,CAAC;YAEtB,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YAExD,oCAAoC;YACpC,mBAAmB,CAAC;gBAClB,OAAO,EAAE;oBACP,MAAM,EAAE;wBACN,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;qBACnC;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;YAE/D,yBAAyB;YACzB,mBAAmB,CAAC;gBAClB,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,oBAAoB,EAAE,EAAE;aAChF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAEhD,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YAED,sBAAsB;YACtB,mBAAmB,EAAE,CAAC;YAEtB,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/C,uBAAuB;YACvB,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YACtD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YAE3D,mBAAmB,CAAC;gBAClB,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE;aAC/E,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEjF,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACjD,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;YAE/D,8DAA8D;YAC9D,mBAAmB,CAAC;gBAClB,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;gBACxC,YAAY,EAAE,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;gBACrD,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;aACtC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAChD,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;YAE9B,wCAAwC;YACxC,mBAAmB,CAAC;gBAClB,YAAY,EAAE,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;gBACrD,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;aACtC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE/E,MAAM,MAAM,GAAqB,EAAE,CAAC;YACpC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAExC,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YAE/B,4DAA4D;YAC5D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YACnE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAEjD,+BAA+B;YAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAChE,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,MAAM,CACV,qBAAqB,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAC7D,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,+CAA+C;YAC/C,MAAM,MAAM,CACV,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAClD,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YACxD,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,oDAAoD;YACpD,MAAM,KAAK,GAAmB;gBAC5B,EAAE,EAAE,oBAAoB;gBACxB,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACxC,WAAW,EAAE;oBACX;wBACE,KAAK,EAAE,YAAY;wBACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACnC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC;wBAClD,QAAQ,EAAE,QAAQ;qBACnB;iBACF;gBACD,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC;gBACpD,OAAO,EAAE,EAAE;aACZ,CAAC;YAEF,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAEpE,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;YAEvF,iDAAiD;YACjD,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Integration Tests for Migration Wizard
3
+ *
4
+ * Tests complete migration paths between platforms with realistic data.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../../../src/migrate/__tests__/integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}