@camaradesuk/git-worktree-tools 1.8.0 → 1.9.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 (143) hide show
  1. package/dist/cli/cleanpr.test.js +2 -0
  2. package/dist/cli/cleanpr.test.js.map +1 -1
  3. package/dist/cli/newpr.js +207 -14
  4. package/dist/cli/newpr.js.map +1 -1
  5. package/dist/cli/newpr.test.js +313 -4
  6. package/dist/cli/newpr.test.js.map +1 -1
  7. package/dist/cli/prs.test.js +2 -0
  8. package/dist/cli/prs.test.js.map +1 -1
  9. package/dist/cli/wt/interactive-menu.test.js +3 -0
  10. package/dist/cli/wt/interactive-menu.test.js.map +1 -1
  11. package/dist/cli/wtconfig.d.ts +1 -0
  12. package/dist/cli/wtconfig.d.ts.map +1 -1
  13. package/dist/cli/wtconfig.js +115 -0
  14. package/dist/cli/wtconfig.js.map +1 -1
  15. package/dist/cli/wtconfig.test.js +3 -0
  16. package/dist/cli/wtconfig.test.js.map +1 -1
  17. package/dist/cli/wtlink.js +31 -12
  18. package/dist/cli/wtlink.js.map +1 -1
  19. package/dist/e2e/wt/interactive-menu.e2e.test.js +2 -2
  20. package/dist/e2e/wt/interactive-menu.e2e.test.js.map +1 -1
  21. package/dist/lib/ai/types.d.ts +12 -0
  22. package/dist/lib/ai/types.d.ts.map +1 -1
  23. package/dist/lib/ai/types.js.map +1 -1
  24. package/dist/lib/cleanpr/worktree-info.d.ts.map +1 -1
  25. package/dist/lib/cleanpr/worktree-info.js +1 -6
  26. package/dist/lib/cleanpr/worktree-info.js.map +1 -1
  27. package/dist/lib/cleanpr/worktree-info.test.js +10 -13
  28. package/dist/lib/cleanpr/worktree-info.test.js.map +1 -1
  29. package/dist/lib/config-editor.d.ts.map +1 -1
  30. package/dist/lib/config-editor.js.map +1 -1
  31. package/dist/lib/config-migration/detector.d.ts +25 -0
  32. package/dist/lib/config-migration/detector.d.ts.map +1 -0
  33. package/dist/lib/config-migration/detector.js +372 -0
  34. package/dist/lib/config-migration/detector.js.map +1 -0
  35. package/dist/lib/config-migration/detector.test.d.ts +5 -0
  36. package/dist/lib/config-migration/detector.test.d.ts.map +1 -0
  37. package/dist/lib/config-migration/detector.test.js +201 -0
  38. package/dist/lib/config-migration/detector.test.js.map +1 -0
  39. package/dist/lib/config-migration/index.d.ts +29 -0
  40. package/dist/lib/config-migration/index.d.ts.map +1 -0
  41. package/dist/lib/config-migration/index.js +33 -0
  42. package/dist/lib/config-migration/index.js.map +1 -0
  43. package/dist/lib/config-migration/reporter.d.ts +53 -0
  44. package/dist/lib/config-migration/reporter.d.ts.map +1 -0
  45. package/dist/lib/config-migration/reporter.js +257 -0
  46. package/dist/lib/config-migration/reporter.js.map +1 -0
  47. package/dist/lib/config-migration/reporter.test.d.ts +5 -0
  48. package/dist/lib/config-migration/reporter.test.d.ts.map +1 -0
  49. package/dist/lib/config-migration/reporter.test.js +305 -0
  50. package/dist/lib/config-migration/reporter.test.js.map +1 -0
  51. package/dist/lib/config-migration/runner.d.ts +46 -0
  52. package/dist/lib/config-migration/runner.d.ts.map +1 -0
  53. package/dist/lib/config-migration/runner.js +364 -0
  54. package/dist/lib/config-migration/runner.js.map +1 -0
  55. package/dist/lib/config-migration/runner.test.d.ts +5 -0
  56. package/dist/lib/config-migration/runner.test.d.ts.map +1 -0
  57. package/dist/lib/config-migration/runner.test.js +235 -0
  58. package/dist/lib/config-migration/runner.test.js.map +1 -0
  59. package/dist/lib/config-migration/types.d.ts +120 -0
  60. package/dist/lib/config-migration/types.d.ts.map +1 -0
  61. package/dist/lib/config-migration/types.js +70 -0
  62. package/dist/lib/config-migration/types.js.map +1 -0
  63. package/dist/lib/config-validation.d.ts.map +1 -1
  64. package/dist/lib/config-validation.js +6 -0
  65. package/dist/lib/config-validation.js.map +1 -1
  66. package/dist/lib/config-validation.test.js +25 -0
  67. package/dist/lib/config-validation.test.js.map +1 -1
  68. package/dist/lib/config.d.ts +31 -7
  69. package/dist/lib/config.d.ts.map +1 -1
  70. package/dist/lib/config.js +2 -0
  71. package/dist/lib/config.js.map +1 -1
  72. package/dist/lib/hooks/confirmation.d.ts +49 -0
  73. package/dist/lib/hooks/confirmation.d.ts.map +1 -0
  74. package/dist/lib/hooks/confirmation.js +147 -0
  75. package/dist/lib/hooks/confirmation.js.map +1 -0
  76. package/dist/lib/hooks/confirmation.test.d.ts +7 -0
  77. package/dist/lib/hooks/confirmation.test.d.ts.map +1 -0
  78. package/dist/lib/hooks/confirmation.test.js +300 -0
  79. package/dist/lib/hooks/confirmation.test.js.map +1 -0
  80. package/dist/lib/hooks/executor.d.ts +16 -1
  81. package/dist/lib/hooks/executor.d.ts.map +1 -1
  82. package/dist/lib/hooks/executor.js +53 -4
  83. package/dist/lib/hooks/executor.js.map +1 -1
  84. package/dist/lib/hooks/index.d.ts +4 -2
  85. package/dist/lib/hooks/index.d.ts.map +1 -1
  86. package/dist/lib/hooks/index.js +3 -2
  87. package/dist/lib/hooks/index.js.map +1 -1
  88. package/dist/lib/hooks/types.d.ts +16 -0
  89. package/dist/lib/hooks/types.d.ts.map +1 -1
  90. package/dist/lib/hooks/types.js +12 -0
  91. package/dist/lib/hooks/types.js.map +1 -1
  92. package/dist/lib/lswt/action-executors.d.ts +2 -0
  93. package/dist/lib/lswt/action-executors.d.ts.map +1 -1
  94. package/dist/lib/lswt/action-executors.js +4 -3
  95. package/dist/lib/lswt/action-executors.js.map +1 -1
  96. package/dist/lib/lswt/action-executors.test.js +7 -0
  97. package/dist/lib/lswt/action-executors.test.js.map +1 -1
  98. package/dist/lib/lswt/environment.d.ts +21 -2
  99. package/dist/lib/lswt/environment.d.ts.map +1 -1
  100. package/dist/lib/lswt/environment.js +73 -32
  101. package/dist/lib/lswt/environment.js.map +1 -1
  102. package/dist/lib/lswt/environment.test.js +79 -1
  103. package/dist/lib/lswt/environment.test.js.map +1 -1
  104. package/dist/lib/lswt/worktree-info.d.ts.map +1 -1
  105. package/dist/lib/lswt/worktree-info.js +1 -6
  106. package/dist/lib/lswt/worktree-info.js.map +1 -1
  107. package/dist/lib/lswt/worktree-info.test.js +5 -17
  108. package/dist/lib/lswt/worktree-info.test.js.map +1 -1
  109. package/dist/lib/newpr/args.d.ts.map +1 -1
  110. package/dist/lib/newpr/args.js +15 -1
  111. package/dist/lib/newpr/args.js.map +1 -1
  112. package/dist/lib/newpr/hook-runner.d.ts +11 -0
  113. package/dist/lib/newpr/hook-runner.d.ts.map +1 -1
  114. package/dist/lib/newpr/hook-runner.js +49 -1
  115. package/dist/lib/newpr/hook-runner.js.map +1 -1
  116. package/dist/lib/newpr/hook-runner.test.js +121 -0
  117. package/dist/lib/newpr/hook-runner.test.js.map +1 -1
  118. package/dist/lib/newpr/plan-generator.d.ts +121 -0
  119. package/dist/lib/newpr/plan-generator.d.ts.map +1 -0
  120. package/dist/lib/newpr/plan-generator.js +185 -0
  121. package/dist/lib/newpr/plan-generator.js.map +1 -0
  122. package/dist/lib/newpr/plan-generator.test.d.ts +7 -0
  123. package/dist/lib/newpr/plan-generator.test.d.ts.map +1 -0
  124. package/dist/lib/newpr/plan-generator.test.js +387 -0
  125. package/dist/lib/newpr/plan-generator.test.js.map +1 -0
  126. package/dist/lib/newpr/types.d.ts +6 -0
  127. package/dist/lib/newpr/types.d.ts.map +1 -1
  128. package/dist/lib/prs/actions.d.ts +5 -1
  129. package/dist/lib/prs/actions.d.ts.map +1 -1
  130. package/dist/lib/prs/actions.js +12 -10
  131. package/dist/lib/prs/actions.js.map +1 -1
  132. package/dist/lib/prs/actions.test.js +48 -5
  133. package/dist/lib/prs/actions.test.js.map +1 -1
  134. package/dist/lib/wtconfig/environment.d.ts +18 -1
  135. package/dist/lib/wtconfig/environment.d.ts.map +1 -1
  136. package/dist/lib/wtconfig/environment.js +60 -24
  137. package/dist/lib/wtconfig/environment.js.map +1 -1
  138. package/dist/lib/wtconfig/environment.test.js +45 -1
  139. package/dist/lib/wtconfig/environment.test.js.map +1 -1
  140. package/dist/lib/wtlink/config-manifest.test.js +26 -0
  141. package/dist/lib/wtlink/config-manifest.test.js.map +1 -1
  142. package/package.json +2 -1
  143. package/schemas/worktreerc.schema.json +23 -0
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Config Migration System - Public API
3
+ *
4
+ * Provides schema versioning, detection of deprecated configurations,
5
+ * and guided migrations for git-worktree-tools.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { detectMigrationIssues, runMigration, needsMigration } from './config-migration/index.js';
10
+ *
11
+ * // Quick check for startup banners
12
+ * if (needsMigration(repoRoot)) {
13
+ * console.log('Config migration available. Run: wtconfig migrate');
14
+ * }
15
+ *
16
+ * // Full detection
17
+ * const detection = detectMigrationIssues(repoRoot);
18
+ * if (detection.migrationRecommended) {
19
+ * const result = await runMigration(repoRoot, detection, { interactive: true });
20
+ * }
21
+ * ```
22
+ */
23
+ // Re-export constants
24
+ export { CURRENT_CONFIG_VERSION, MINIMUM_SUPPORTED_VERSION, BACKUP_DIRECTORY, KNOWN_CONFIG_KEYS, DEPRECATED_KEYS, VERSION_HISTORY, } from './types.js';
25
+ // Re-export detection functions
26
+ export { detectMigrationIssues, needsMigration } from './detector.js';
27
+ // Re-export migration runner functions
28
+ export { runMigration, createConfigBackup, restoreFromBackup } from './runner.js';
29
+ // Re-export reporter functions
30
+ export { formatMigrationReport, formatMigrationReportJSON, formatMigrationResultReport, formatMigrationResultJSON, formatDryRunPreview, } from './reporter.js';
31
+ // Re-export merge utility (useful for testing)
32
+ export { mergeWtlinkConfigs } from './runner.js';
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/config-migration/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAcH,sBAAsB;AACtB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,gCAAgC;AAChC,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,uCAAuC;AACvC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAElF,+BAA+B;AAC/B,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,+CAA+C;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Config Migration Reporter
3
+ *
4
+ * Formats migration detection results and execution results
5
+ * for console output and JSON output.
6
+ */
7
+ import type { DetectionResult, MigrationResult } from './types.js';
8
+ /**
9
+ * Options for report formatting
10
+ */
11
+ export interface ReportOptions {
12
+ /** Show verbose details for each issue */
13
+ verbose?: boolean;
14
+ /** Use colors in output (default: true) */
15
+ useColors?: boolean;
16
+ }
17
+ /**
18
+ * Format migration detection report for console output
19
+ *
20
+ * @param detection - Detection result from detectMigrationIssues
21
+ * @param options - Formatting options
22
+ * @returns Formatted string for console output
23
+ */
24
+ export declare function formatMigrationReport(detection: DetectionResult, options?: ReportOptions): string;
25
+ /**
26
+ * Format migration detection report as JSON
27
+ *
28
+ * @param detection - Detection result from detectMigrationIssues
29
+ * @returns JSON-serializable object
30
+ */
31
+ export declare function formatMigrationReportJSON(detection: DetectionResult): object;
32
+ /**
33
+ * Format migration execution result for console output
34
+ *
35
+ * @param result - Migration result from runMigration
36
+ * @returns Formatted string for console output
37
+ */
38
+ export declare function formatMigrationResultReport(result: MigrationResult): string;
39
+ /**
40
+ * Format migration execution result as JSON
41
+ *
42
+ * @param result - Migration result from runMigration
43
+ * @returns JSON-serializable object
44
+ */
45
+ export declare function formatMigrationResultJSON(result: MigrationResult): object;
46
+ /**
47
+ * Format dry-run preview for console output
48
+ *
49
+ * @param detection - Detection result
50
+ * @returns Formatted string for console output
51
+ */
52
+ export declare function formatDryRunPreview(detection: DetectionResult): string;
53
+ //# sourceMappingURL=reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../src/lib/config-migration/reporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6DD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,eAAe,EAC1B,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAmER;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,CA+B5E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAqD3E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAezE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,CAuBtE"}
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Config Migration Reporter
3
+ *
4
+ * Formats migration detection results and execution results
5
+ * for console output and JSON output.
6
+ */
7
+ import * as colors from '../colors.js';
8
+ /**
9
+ * Get severity icon for console output
10
+ */
11
+ function getSeverityIcon(severity) {
12
+ switch (severity) {
13
+ case 'error':
14
+ return '✗';
15
+ case 'warning':
16
+ return '⚠';
17
+ case 'info':
18
+ return 'ℹ';
19
+ default:
20
+ return '•';
21
+ }
22
+ }
23
+ /**
24
+ * Get colored severity text
25
+ */
26
+ function colorSeverity(text, severity) {
27
+ switch (severity) {
28
+ case 'error':
29
+ return colors.error(text);
30
+ case 'warning':
31
+ return colors.warning(text);
32
+ case 'info':
33
+ return colors.dim(text);
34
+ default:
35
+ return text;
36
+ }
37
+ }
38
+ /**
39
+ * Format a single issue for console output
40
+ */
41
+ function formatIssue(issue, options = {}) {
42
+ const { verbose = false } = options;
43
+ const lines = [];
44
+ const icon = getSeverityIcon(issue.severity);
45
+ const autoFixLabel = issue.autoFixable ? colors.success('[auto-fix available]') : '';
46
+ lines.push(` ${colorSeverity(icon, issue.severity)} ${issue.message} ${autoFixLabel}`);
47
+ if (verbose && issue.details) {
48
+ lines.push(` ${colors.dim(issue.details)}`);
49
+ }
50
+ if (issue.keyPath) {
51
+ lines.push(` ${colors.dim(`Key: ${issue.keyPath}`)}`);
52
+ }
53
+ if (issue.suggestion) {
54
+ lines.push(` ${colors.cyan(`→ ${issue.suggestion}`)}`);
55
+ }
56
+ return lines.join('\n');
57
+ }
58
+ /**
59
+ * Format migration detection report for console output
60
+ *
61
+ * @param detection - Detection result from detectMigrationIssues
62
+ * @param options - Formatting options
63
+ * @returns Formatted string for console output
64
+ */
65
+ export function formatMigrationReport(detection, options = {}) {
66
+ const lines = [];
67
+ // Header
68
+ lines.push(colors.bold('Config Migration Report'));
69
+ lines.push(colors.dim('═'.repeat(40)));
70
+ lines.push('');
71
+ // Summary
72
+ if (detection.issues.length === 0) {
73
+ lines.push(colors.success('✓ No migration issues found. Config is up to date.'));
74
+ return lines.join('\n');
75
+ }
76
+ const summaryParts = [];
77
+ if (detection.autoFixableCount > 0) {
78
+ summaryParts.push(colors.success(`${detection.autoFixableCount} auto-fixable`));
79
+ }
80
+ if (detection.manualFixCount > 0) {
81
+ summaryParts.push(colors.warning(`${detection.manualFixCount} manual`));
82
+ }
83
+ lines.push(`Found ${detection.issues.length} issue(s): ${summaryParts.join(', ')}`);
84
+ lines.push('');
85
+ // Group issues by severity
86
+ const errors = detection.issues.filter((i) => i.severity === 'error');
87
+ const warnings = detection.issues.filter((i) => i.severity === 'warning');
88
+ const infos = detection.issues.filter((i) => i.severity === 'info');
89
+ if (errors.length > 0) {
90
+ lines.push(colors.error('Errors:'));
91
+ for (const issue of errors) {
92
+ lines.push(formatIssue(issue, options));
93
+ }
94
+ lines.push('');
95
+ }
96
+ if (warnings.length > 0) {
97
+ lines.push(colors.warning('Warnings:'));
98
+ for (const issue of warnings) {
99
+ lines.push(formatIssue(issue, options));
100
+ }
101
+ lines.push('');
102
+ }
103
+ if (infos.length > 0) {
104
+ lines.push(colors.dim('Info:'));
105
+ for (const issue of infos) {
106
+ lines.push(formatIssue(issue, options));
107
+ }
108
+ lines.push('');
109
+ }
110
+ // Migration recommendation
111
+ if (detection.migrationRecommended) {
112
+ lines.push(colors.dim('─'.repeat(40)));
113
+ if (detection.autoFixableCount > 0) {
114
+ lines.push(colors.cyan(`Run ${colors.bold("'wtconfig migrate'")} to apply ${detection.autoFixableCount} auto-fix(es).`));
115
+ }
116
+ }
117
+ return lines.join('\n');
118
+ }
119
+ /**
120
+ * Format migration detection report as JSON
121
+ *
122
+ * @param detection - Detection result from detectMigrationIssues
123
+ * @returns JSON-serializable object
124
+ */
125
+ export function formatMigrationReportJSON(detection) {
126
+ return {
127
+ summary: {
128
+ totalIssues: detection.issues.length,
129
+ autoFixableCount: detection.autoFixableCount,
130
+ manualFixCount: detection.manualFixCount,
131
+ migrationRecommended: detection.migrationRecommended,
132
+ currentVersion: detection.currentVersion,
133
+ targetVersion: detection.targetVersion,
134
+ },
135
+ configPath: detection.configPath,
136
+ legacyFilesFound: detection.legacyFilesFound,
137
+ parseError: detection.parseError,
138
+ issues: detection.issues.map((issue) => ({
139
+ type: issue.type,
140
+ severity: issue.severity,
141
+ message: issue.message,
142
+ details: issue.details,
143
+ keyPath: issue.keyPath,
144
+ currentValue: issue.currentValue,
145
+ suggestedValue: issue.suggestedValue,
146
+ suggestion: issue.suggestion,
147
+ autoFixable: issue.autoFixable,
148
+ fixAction: issue.fixAction
149
+ ? {
150
+ type: issue.fixAction.type,
151
+ description: issue.fixAction.description,
152
+ }
153
+ : undefined,
154
+ })),
155
+ };
156
+ }
157
+ /**
158
+ * Format migration execution result for console output
159
+ *
160
+ * @param result - Migration result from runMigration
161
+ * @returns Formatted string for console output
162
+ */
163
+ export function formatMigrationResultReport(result) {
164
+ const lines = [];
165
+ if (result.success) {
166
+ if (result.actionsExecuted.length === 0) {
167
+ lines.push(colors.success('✓ Config is already up to date. No changes needed.'));
168
+ }
169
+ else {
170
+ lines.push(colors.success(`✓ Migration complete. ${result.actionsExecuted.length} action(s) applied.`));
171
+ if (result.backupPath) {
172
+ lines.push(colors.dim(` Backup saved to: ${result.backupPath}`));
173
+ }
174
+ lines.push('');
175
+ lines.push(colors.dim('Actions executed:'));
176
+ for (const action of result.actionsExecuted) {
177
+ lines.push(` • ${action.description}`);
178
+ }
179
+ }
180
+ }
181
+ else {
182
+ lines.push(colors.error(`✗ Migration failed with ${result.errors.length} error(s).`));
183
+ if (result.backupPath) {
184
+ lines.push(colors.warning(` Backup available at: ${result.backupPath}`));
185
+ lines.push(colors.dim(" To restore: copy the backup file to '.worktreerc'"));
186
+ }
187
+ lines.push('');
188
+ lines.push(colors.error('Errors:'));
189
+ for (const error of result.errors) {
190
+ lines.push(` • ${error}`);
191
+ }
192
+ if (result.actionsExecuted.length > 0) {
193
+ lines.push('');
194
+ lines.push(colors.dim('Actions completed before failure:'));
195
+ for (const action of result.actionsExecuted) {
196
+ lines.push(` • ${action.description}`);
197
+ }
198
+ }
199
+ }
200
+ if (result.actionsSkipped.length > 0) {
201
+ lines.push('');
202
+ lines.push(colors.dim('Actions skipped:'));
203
+ for (const action of result.actionsSkipped) {
204
+ lines.push(` • ${action.description}`);
205
+ }
206
+ }
207
+ return lines.join('\n');
208
+ }
209
+ /**
210
+ * Format migration execution result as JSON
211
+ *
212
+ * @param result - Migration result from runMigration
213
+ * @returns JSON-serializable object
214
+ */
215
+ export function formatMigrationResultJSON(result) {
216
+ return {
217
+ success: result.success,
218
+ backupPath: result.backupPath,
219
+ newConfigPath: result.newConfigPath,
220
+ actionsExecuted: result.actionsExecuted.map((a) => ({
221
+ type: a.type,
222
+ description: a.description,
223
+ })),
224
+ actionsSkipped: result.actionsSkipped.map((a) => ({
225
+ type: a.type,
226
+ description: a.description,
227
+ })),
228
+ errors: result.errors,
229
+ };
230
+ }
231
+ /**
232
+ * Format dry-run preview for console output
233
+ *
234
+ * @param detection - Detection result
235
+ * @returns Formatted string for console output
236
+ */
237
+ export function formatDryRunPreview(detection) {
238
+ const lines = [];
239
+ lines.push(colors.bold('[DRY RUN] Migration Preview'));
240
+ lines.push(colors.dim('─'.repeat(40)));
241
+ lines.push('');
242
+ lines.push(colors.dim('The following changes would be made:'));
243
+ lines.push('');
244
+ const autoFixableIssues = detection.issues.filter((i) => i.autoFixable && i.fixAction);
245
+ if (autoFixableIssues.length === 0) {
246
+ lines.push(colors.dim(' No auto-fixable changes to make.'));
247
+ }
248
+ else {
249
+ for (const issue of autoFixableIssues) {
250
+ lines.push(` • ${issue.fixAction.description}`);
251
+ }
252
+ }
253
+ lines.push('');
254
+ lines.push(colors.dim('No files were modified.'));
255
+ return lines.join('\n');
256
+ }
257
+ //# sourceMappingURL=reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/lib/config-migration/reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for Config Migration Reporter
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=reporter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.test.d.ts","sourceRoot":"","sources":["../../../src/lib/config-migration/reporter.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}