wfu-migrate 0.1.1

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 (110) hide show
  1. package/README.md +199 -0
  2. package/dist/commands/cleanup.d.ts +10 -0
  3. package/dist/commands/cleanup.d.ts.map +1 -0
  4. package/dist/commands/cleanup.js +231 -0
  5. package/dist/commands/cleanup.js.map +1 -0
  6. package/dist/commands/config.d.ts +15 -0
  7. package/dist/commands/config.d.ts.map +1 -0
  8. package/dist/commands/config.js +285 -0
  9. package/dist/commands/config.js.map +1 -0
  10. package/dist/commands/doctor.d.ts +15 -0
  11. package/dist/commands/doctor.d.ts.map +1 -0
  12. package/dist/commands/doctor.js +234 -0
  13. package/dist/commands/doctor.js.map +1 -0
  14. package/dist/commands/env-migrate.d.ts +37 -0
  15. package/dist/commands/env-migrate.d.ts.map +1 -0
  16. package/dist/commands/env-migrate.js +703 -0
  17. package/dist/commands/env-migrate.js.map +1 -0
  18. package/dist/commands/migrate.d.ts +19 -0
  19. package/dist/commands/migrate.d.ts.map +1 -0
  20. package/dist/commands/migrate.js +374 -0
  21. package/dist/commands/migrate.js.map +1 -0
  22. package/dist/index.d.ts +15 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +31 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/lib/compress.d.ts +86 -0
  27. package/dist/lib/compress.d.ts.map +1 -0
  28. package/dist/lib/compress.js +203 -0
  29. package/dist/lib/compress.js.map +1 -0
  30. package/dist/lib/config-manager.d.ts +34 -0
  31. package/dist/lib/config-manager.d.ts.map +1 -0
  32. package/dist/lib/config-manager.js +332 -0
  33. package/dist/lib/config-manager.js.map +1 -0
  34. package/dist/lib/database.d.ts +460 -0
  35. package/dist/lib/database.d.ts.map +1 -0
  36. package/dist/lib/database.js +1267 -0
  37. package/dist/lib/database.js.map +1 -0
  38. package/dist/lib/docker.d.ts +240 -0
  39. package/dist/lib/docker.d.ts.map +1 -0
  40. package/dist/lib/docker.js +653 -0
  41. package/dist/lib/docker.js.map +1 -0
  42. package/dist/lib/health.d.ts +99 -0
  43. package/dist/lib/health.d.ts.map +1 -0
  44. package/dist/lib/health.js +139 -0
  45. package/dist/lib/health.js.map +1 -0
  46. package/dist/lib/logger.d.ts +105 -0
  47. package/dist/lib/logger.d.ts.map +1 -0
  48. package/dist/lib/logger.js +259 -0
  49. package/dist/lib/logger.js.map +1 -0
  50. package/dist/lib/migration-engine.d.ts +130 -0
  51. package/dist/lib/migration-engine.d.ts.map +1 -0
  52. package/dist/lib/migration-engine.js +1175 -0
  53. package/dist/lib/migration-engine.js.map +1 -0
  54. package/dist/lib/parallel.d.ts +85 -0
  55. package/dist/lib/parallel.d.ts.map +1 -0
  56. package/dist/lib/parallel.js +138 -0
  57. package/dist/lib/parallel.js.map +1 -0
  58. package/dist/lib/progress.d.ts +101 -0
  59. package/dist/lib/progress.d.ts.map +1 -0
  60. package/dist/lib/progress.js +179 -0
  61. package/dist/lib/progress.js.map +1 -0
  62. package/dist/lib/prompt.d.ts +71 -0
  63. package/dist/lib/prompt.d.ts.map +1 -0
  64. package/dist/lib/prompt.js +116 -0
  65. package/dist/lib/prompt.js.map +1 -0
  66. package/dist/lib/retry.d.ts +61 -0
  67. package/dist/lib/retry.d.ts.map +1 -0
  68. package/dist/lib/retry.js +136 -0
  69. package/dist/lib/retry.js.map +1 -0
  70. package/dist/lib/s3.d.ts +238 -0
  71. package/dist/lib/s3.d.ts.map +1 -0
  72. package/dist/lib/s3.js +507 -0
  73. package/dist/lib/s3.js.map +1 -0
  74. package/dist/lib/serialized.d.ts +114 -0
  75. package/dist/lib/serialized.d.ts.map +1 -0
  76. package/dist/lib/serialized.js +236 -0
  77. package/dist/lib/serialized.js.map +1 -0
  78. package/dist/lib/shutdown.d.ts +78 -0
  79. package/dist/lib/shutdown.d.ts.map +1 -0
  80. package/dist/lib/shutdown.js +153 -0
  81. package/dist/lib/shutdown.js.map +1 -0
  82. package/dist/lib/site-filter.d.ts +98 -0
  83. package/dist/lib/site-filter.d.ts.map +1 -0
  84. package/dist/lib/site-filter.js +213 -0
  85. package/dist/lib/site-filter.js.map +1 -0
  86. package/dist/lib/spinner.d.ts +174 -0
  87. package/dist/lib/spinner.d.ts.map +1 -0
  88. package/dist/lib/spinner.js +273 -0
  89. package/dist/lib/spinner.js.map +1 -0
  90. package/dist/lib/state.d.ts +363 -0
  91. package/dist/lib/state.d.ts.map +1 -0
  92. package/dist/lib/state.js +905 -0
  93. package/dist/lib/state.js.map +1 -0
  94. package/dist/lib/system.d.ts +227 -0
  95. package/dist/lib/system.d.ts.map +1 -0
  96. package/dist/lib/system.js +636 -0
  97. package/dist/lib/system.js.map +1 -0
  98. package/dist/lib/url-patterns.d.ts +46 -0
  99. package/dist/lib/url-patterns.d.ts.map +1 -0
  100. package/dist/lib/url-patterns.js +259 -0
  101. package/dist/lib/url-patterns.js.map +1 -0
  102. package/dist/lib/wp-tables.d.ts +139 -0
  103. package/dist/lib/wp-tables.d.ts.map +1 -0
  104. package/dist/lib/wp-tables.js +296 -0
  105. package/dist/lib/wp-tables.js.map +1 -0
  106. package/dist/types/index.d.ts +96 -0
  107. package/dist/types/index.d.ts.map +1 -0
  108. package/dist/types/index.js +46 -0
  109. package/dist/types/index.js.map +1 -0
  110. package/package.json +58 -0
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Migration Engine
3
+ *
4
+ * Implements the core migration workflow (Steps 3-9):
5
+ * - Step 3: Import to migration database
6
+ * - Step 4: WP-CLI search-replace via Docker
7
+ * - Step 5: Export transformed tables
8
+ * - Step 6: Backup target tables
9
+ * - Step 7: Import to target
10
+ * - Step 8: S3 file sync
11
+ * - Step 9: Archive and cleanup
12
+ */
13
+ import type { Environment, TargetEnvironment, Config } from '../types/index.js';
14
+ export interface MigrationOptions {
15
+ siteId: number;
16
+ source: Environment;
17
+ target: TargetEnvironment;
18
+ config: Config;
19
+ workDir: string;
20
+ homepage: boolean;
21
+ customDomain?: string;
22
+ skipBackup: boolean;
23
+ skipS3: boolean;
24
+ keepFiles: boolean;
25
+ verbose: boolean;
26
+ timeout: number;
27
+ siteName?: string;
28
+ }
29
+ export interface MigrationResult {
30
+ success: boolean;
31
+ error?: string;
32
+ steps: StepResult[];
33
+ archiveLocation?: string;
34
+ tablesProcessed?: number;
35
+ replacementsApplied?: number;
36
+ }
37
+ export interface StepResult {
38
+ step: number;
39
+ name: string;
40
+ success: boolean;
41
+ message?: string;
42
+ error?: string;
43
+ duration?: number;
44
+ }
45
+ /**
46
+ * Run the full migration workflow (Steps 3-9)
47
+ */
48
+ export declare function runMigrationEngine(options: MigrationOptions): Promise<MigrationResult>;
49
+ export interface NetworkMigrationOptions {
50
+ source: Environment;
51
+ target: TargetEnvironment;
52
+ config: Config;
53
+ workDir: string;
54
+ skipBackup: boolean;
55
+ verbose: boolean;
56
+ }
57
+ export interface NetworkMigrationResult {
58
+ success: boolean;
59
+ error?: string;
60
+ tablesProcessed: number;
61
+ replacementsApplied?: number;
62
+ backupPath?: string;
63
+ }
64
+ /**
65
+ * Migrate network tables from source to target environment.
66
+ * Network tables are shared across all sites in a WordPress multisite:
67
+ * - wp_blogmeta, wp_blogs, wp_registration_log, wp_signups
68
+ * - wp_site, wp_sitemeta, wp_usermeta, wp_users
69
+ */
70
+ export declare function migrateNetworkTables(options: NetworkMigrationOptions): Promise<NetworkMigrationResult>;
71
+ export interface SiteBatchOptions {
72
+ source: Environment;
73
+ target: TargetEnvironment;
74
+ config: Config;
75
+ workDir: string;
76
+ batchSize: number;
77
+ parallel: boolean;
78
+ concurrency: number;
79
+ skipBackup: boolean;
80
+ skipS3: boolean;
81
+ keepFiles: boolean;
82
+ verbose: boolean;
83
+ timeout: number;
84
+ maxRetries: number;
85
+ onSiteStart?: (siteId: number) => void;
86
+ onSiteComplete?: (siteId: number, success: boolean, error?: string, attempts?: number) => void;
87
+ onBatchStart?: (batchIndex: number, batchSize: number) => void;
88
+ onBatchComplete?: (batchIndex: number, successCount: number, failureCount: number) => void;
89
+ onRetry?: (siteId: number, attempt: number, maxRetries: number, delayMs: number, error: string) => void;
90
+ onStateChange?: (siteId: number, status: 'in_progress' | 'completed' | 'failed', error?: string) => void;
91
+ }
92
+ export interface SiteBatchResult {
93
+ success: boolean;
94
+ totalSites: number;
95
+ successCount: number;
96
+ failureCount: number;
97
+ siteResults: Array<{
98
+ siteId: number;
99
+ success: boolean;
100
+ error?: string;
101
+ attempts: number;
102
+ }>;
103
+ }
104
+ /**
105
+ * Process sites in batches.
106
+ * Chunks sites into batches by batchSize and processes each batch.
107
+ * In sequential mode (default): processes sites one at a time.
108
+ * In parallel mode: processes sites concurrently within each batch.
109
+ */
110
+ export declare function processSiteBatch(siteIds: number[], options: SiteBatchOptions): Promise<SiteBatchResult>;
111
+ export interface BatchSummaryOptions {
112
+ result: SiteBatchResult;
113
+ startTime: number;
114
+ migrationId?: string;
115
+ target?: string;
116
+ }
117
+ export interface BatchSummaryLine {
118
+ type: 'header' | 'success' | 'failure' | 'info' | 'warning' | 'resume';
119
+ text: string;
120
+ }
121
+ /**
122
+ * Format a summary report after batch processing completes.
123
+ * Returns structured lines that can be rendered with chalk or other formatters.
124
+ */
125
+ export declare function formatBatchSummary(options: BatchSummaryOptions): BatchSummaryLine[];
126
+ /**
127
+ * Get a plain text version of the batch summary (for logging).
128
+ */
129
+ export declare function getBatchSummaryText(options: BatchSummaryOptions): string;
130
+ //# sourceMappingURL=migration-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-engine.d.ts","sourceRoot":"","sources":["../../src/lib/migration-engine.ts"],"names":[],"mappings":"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"}