lwc-convert 1.0.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 (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +719 -0
  3. package/dist/cli/commands/aura.d.ts +6 -0
  4. package/dist/cli/commands/aura.d.ts.map +1 -0
  5. package/dist/cli/commands/aura.js +225 -0
  6. package/dist/cli/commands/aura.js.map +1 -0
  7. package/dist/cli/commands/vf.d.ts +6 -0
  8. package/dist/cli/commands/vf.d.ts.map +1 -0
  9. package/dist/cli/commands/vf.js +218 -0
  10. package/dist/cli/commands/vf.js.map +1 -0
  11. package/dist/cli/interactive.d.ts +20 -0
  12. package/dist/cli/interactive.d.ts.map +1 -0
  13. package/dist/cli/interactive.js +577 -0
  14. package/dist/cli/interactive.js.map +1 -0
  15. package/dist/cli/options.d.ts +21 -0
  16. package/dist/cli/options.d.ts.map +1 -0
  17. package/dist/cli/options.js +24 -0
  18. package/dist/cli/options.js.map +1 -0
  19. package/dist/generators/full-conversion.d.ts +41 -0
  20. package/dist/generators/full-conversion.d.ts.map +1 -0
  21. package/dist/generators/full-conversion.js +538 -0
  22. package/dist/generators/full-conversion.js.map +1 -0
  23. package/dist/generators/scaffolding.d.ts +40 -0
  24. package/dist/generators/scaffolding.d.ts.map +1 -0
  25. package/dist/generators/scaffolding.js +716 -0
  26. package/dist/generators/scaffolding.js.map +1 -0
  27. package/dist/generators/test-comparison.d.ts +47 -0
  28. package/dist/generators/test-comparison.d.ts.map +1 -0
  29. package/dist/generators/test-comparison.js +855 -0
  30. package/dist/generators/test-comparison.js.map +1 -0
  31. package/dist/generators/test-generator.d.ts +27 -0
  32. package/dist/generators/test-generator.d.ts.map +1 -0
  33. package/dist/generators/test-generator.js +385 -0
  34. package/dist/generators/test-generator.js.map +1 -0
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +226 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/mappings/aura-to-lwc.json +321 -0
  40. package/dist/mappings/vf-to-lwc.json +354 -0
  41. package/dist/parsers/aura/controller-parser.d.ts +36 -0
  42. package/dist/parsers/aura/controller-parser.d.ts.map +1 -0
  43. package/dist/parsers/aura/controller-parser.js +269 -0
  44. package/dist/parsers/aura/controller-parser.js.map +1 -0
  45. package/dist/parsers/aura/helper-parser.d.ts +21 -0
  46. package/dist/parsers/aura/helper-parser.d.ts.map +1 -0
  47. package/dist/parsers/aura/helper-parser.js +173 -0
  48. package/dist/parsers/aura/helper-parser.js.map +1 -0
  49. package/dist/parsers/aura/markup-parser.d.ts +59 -0
  50. package/dist/parsers/aura/markup-parser.d.ts.map +1 -0
  51. package/dist/parsers/aura/markup-parser.js +279 -0
  52. package/dist/parsers/aura/markup-parser.js.map +1 -0
  53. package/dist/parsers/aura/style-parser.d.ts +37 -0
  54. package/dist/parsers/aura/style-parser.d.ts.map +1 -0
  55. package/dist/parsers/aura/style-parser.js +151 -0
  56. package/dist/parsers/aura/style-parser.js.map +1 -0
  57. package/dist/parsers/vf/apex-parser.d.ts +51 -0
  58. package/dist/parsers/vf/apex-parser.d.ts.map +1 -0
  59. package/dist/parsers/vf/apex-parser.js +251 -0
  60. package/dist/parsers/vf/apex-parser.js.map +1 -0
  61. package/dist/parsers/vf/page-parser.d.ts +61 -0
  62. package/dist/parsers/vf/page-parser.d.ts.map +1 -0
  63. package/dist/parsers/vf/page-parser.js +403 -0
  64. package/dist/parsers/vf/page-parser.js.map +1 -0
  65. package/dist/transformers/aura-to-lwc/controller.d.ts +36 -0
  66. package/dist/transformers/aura-to-lwc/controller.d.ts.map +1 -0
  67. package/dist/transformers/aura-to-lwc/controller.js +372 -0
  68. package/dist/transformers/aura-to-lwc/controller.js.map +1 -0
  69. package/dist/transformers/aura-to-lwc/events.d.ts +47 -0
  70. package/dist/transformers/aura-to-lwc/events.d.ts.map +1 -0
  71. package/dist/transformers/aura-to-lwc/events.js +262 -0
  72. package/dist/transformers/aura-to-lwc/events.js.map +1 -0
  73. package/dist/transformers/aura-to-lwc/markup.d.ts +51 -0
  74. package/dist/transformers/aura-to-lwc/markup.d.ts.map +1 -0
  75. package/dist/transformers/aura-to-lwc/markup.js +465 -0
  76. package/dist/transformers/aura-to-lwc/markup.js.map +1 -0
  77. package/dist/transformers/vf-to-lwc/components.d.ts +40 -0
  78. package/dist/transformers/vf-to-lwc/components.d.ts.map +1 -0
  79. package/dist/transformers/vf-to-lwc/components.js +374 -0
  80. package/dist/transformers/vf-to-lwc/components.js.map +1 -0
  81. package/dist/transformers/vf-to-lwc/data-binding.d.ts +53 -0
  82. package/dist/transformers/vf-to-lwc/data-binding.d.ts.map +1 -0
  83. package/dist/transformers/vf-to-lwc/data-binding.js +660 -0
  84. package/dist/transformers/vf-to-lwc/data-binding.js.map +1 -0
  85. package/dist/transformers/vf-to-lwc/markup.d.ts +44 -0
  86. package/dist/transformers/vf-to-lwc/markup.d.ts.map +1 -0
  87. package/dist/transformers/vf-to-lwc/markup.js +816 -0
  88. package/dist/transformers/vf-to-lwc/markup.js.map +1 -0
  89. package/dist/utils/confidence-scorer.d.ts +100 -0
  90. package/dist/utils/confidence-scorer.d.ts.map +1 -0
  91. package/dist/utils/confidence-scorer.js +358 -0
  92. package/dist/utils/confidence-scorer.js.map +1 -0
  93. package/dist/utils/file-io.d.ts +62 -0
  94. package/dist/utils/file-io.d.ts.map +1 -0
  95. package/dist/utils/file-io.js +248 -0
  96. package/dist/utils/file-io.js.map +1 -0
  97. package/dist/utils/logger.d.ts +34 -0
  98. package/dist/utils/logger.d.ts.map +1 -0
  99. package/dist/utils/logger.js +130 -0
  100. package/dist/utils/logger.js.map +1 -0
  101. package/dist/utils/open-folder.d.ts +9 -0
  102. package/dist/utils/open-folder.d.ts.map +1 -0
  103. package/dist/utils/open-folder.js +76 -0
  104. package/dist/utils/open-folder.js.map +1 -0
  105. package/dist/utils/path-resolver.d.ts +29 -0
  106. package/dist/utils/path-resolver.d.ts.map +1 -0
  107. package/dist/utils/path-resolver.js +240 -0
  108. package/dist/utils/path-resolver.js.map +1 -0
  109. package/dist/utils/session-store.d.ts +158 -0
  110. package/dist/utils/session-store.d.ts.map +1 -0
  111. package/dist/utils/session-store.js +518 -0
  112. package/dist/utils/session-store.js.map +1 -0
  113. package/dist/utils/vf-controller-resolver.d.ts +36 -0
  114. package/dist/utils/vf-controller-resolver.d.ts.map +1 -0
  115. package/dist/utils/vf-controller-resolver.js +162 -0
  116. package/dist/utils/vf-controller-resolver.js.map +1 -0
  117. package/package.json +81 -0
@@ -0,0 +1,577 @@
1
+ "use strict";
2
+ /**
3
+ * Interactive TUI for lwc-convert CLI
4
+ * Redesigned with @clack/prompts for a modern, polished experience
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.runInteractiveTui = runInteractiveTui;
44
+ const p = __importStar(require("@clack/prompts"));
45
+ const picocolors_1 = __importDefault(require("picocolors"));
46
+ const path = __importStar(require("path"));
47
+ const fs = __importStar(require("fs-extra"));
48
+ const options_1 = require("./options");
49
+ const vf_controller_resolver_1 = require("../utils/vf-controller-resolver");
50
+ // Step definitions for breadcrumbs
51
+ const STEPS = ['Type', 'Source', 'Controllers', 'Options', 'Confirm'];
52
+ /**
53
+ * Display breadcrumb navigation showing current progress
54
+ */
55
+ function showBreadcrumbs(currentStep, conversionType) {
56
+ const breadcrumb = STEPS.map((step, i) => {
57
+ // Skip Controllers step for Aura
58
+ if (step === 'Controllers' && conversionType === 'aura') {
59
+ return null;
60
+ }
61
+ if (i < currentStep) {
62
+ return picocolors_1.default.green(`✓ ${step}`);
63
+ }
64
+ else if (i === currentStep) {
65
+ return picocolors_1.default.cyan(`● ${step}`);
66
+ }
67
+ else {
68
+ return picocolors_1.default.dim(step);
69
+ }
70
+ }).filter(Boolean).join(picocolors_1.default.dim(' → '));
71
+ console.log(`\n${picocolors_1.default.dim('📍')} ${breadcrumb}\n`);
72
+ }
73
+ /**
74
+ * Find available Aura components in the project
75
+ */
76
+ async function findAuraComponents() {
77
+ const searchPaths = [
78
+ 'force-app/main/default/aura',
79
+ 'src/aura',
80
+ 'aura',
81
+ ];
82
+ const components = [];
83
+ const cwd = process.cwd();
84
+ for (const searchPath of searchPaths) {
85
+ const fullPath = path.join(cwd, searchPath);
86
+ if (await fs.pathExists(fullPath)) {
87
+ try {
88
+ const entries = await fs.readdir(fullPath, { withFileTypes: true });
89
+ for (const entry of entries) {
90
+ if (entry.isDirectory()) {
91
+ const cmpFile = path.join(fullPath, entry.name, `${entry.name}.cmp`);
92
+ if (await fs.pathExists(cmpFile)) {
93
+ components.push({
94
+ value: path.join(searchPath, entry.name),
95
+ label: `⚡ ${entry.name}`,
96
+ hint: searchPath,
97
+ });
98
+ }
99
+ }
100
+ }
101
+ }
102
+ catch {
103
+ // Ignore errors
104
+ }
105
+ }
106
+ }
107
+ return components;
108
+ }
109
+ /**
110
+ * Find available Visualforce pages in the project
111
+ */
112
+ async function findVfPages() {
113
+ const searchPaths = [
114
+ 'force-app/main/default/pages',
115
+ 'src/pages',
116
+ 'pages',
117
+ ];
118
+ const pages = [];
119
+ const cwd = process.cwd();
120
+ for (const searchPath of searchPaths) {
121
+ const fullPath = path.join(cwd, searchPath);
122
+ if (await fs.pathExists(fullPath)) {
123
+ try {
124
+ const entries = await fs.readdir(fullPath, { withFileTypes: true });
125
+ for (const entry of entries) {
126
+ if (entry.isFile() && entry.name.endsWith('.page')) {
127
+ pages.push({
128
+ value: path.join(searchPath, entry.name),
129
+ label: `📄 ${entry.name.replace('.page', '')}`,
130
+ hint: searchPath,
131
+ });
132
+ }
133
+ }
134
+ }
135
+ catch {
136
+ // Ignore errors
137
+ }
138
+ }
139
+ }
140
+ return pages;
141
+ }
142
+ /**
143
+ * Find available Apex controllers in the project
144
+ */
145
+ async function findApexControllers() {
146
+ const searchPaths = [
147
+ 'force-app/main/default/classes',
148
+ 'src/classes',
149
+ 'classes',
150
+ ];
151
+ const controllers = [];
152
+ const cwd = process.cwd();
153
+ for (const searchPath of searchPaths) {
154
+ const fullPath = path.join(cwd, searchPath);
155
+ if (await fs.pathExists(fullPath)) {
156
+ try {
157
+ const entries = await fs.readdir(fullPath, { withFileTypes: true });
158
+ for (const entry of entries) {
159
+ if (entry.isFile() && entry.name.endsWith('.cls')) {
160
+ controllers.push({
161
+ value: path.join(searchPath, entry.name),
162
+ label: `📋 ${entry.name.replace('.cls', '')}`,
163
+ });
164
+ }
165
+ }
166
+ }
167
+ catch {
168
+ // Ignore errors
169
+ }
170
+ }
171
+ }
172
+ return controllers;
173
+ }
174
+ /**
175
+ * Check if user cancelled
176
+ */
177
+ function isCancel(value) {
178
+ return p.isCancel(value);
179
+ }
180
+ /**
181
+ * Handle cancellation
182
+ */
183
+ function handleCancel() {
184
+ p.cancel('Operation cancelled.');
185
+ return null;
186
+ }
187
+ /**
188
+ * Clear the terminal screen
189
+ */
190
+ function clearScreen() {
191
+ // Use platform-specific clear command
192
+ const isWindows = process.platform === 'win32';
193
+ if (isWindows) {
194
+ // Synchronously execute cls on Windows
195
+ require('child_process').execSync('cls', { stdio: 'inherit' });
196
+ }
197
+ else {
198
+ // Use ANSI escape codes on Unix-like systems
199
+ process.stdout.write('\x1B[2J\x1B[0f');
200
+ }
201
+ }
202
+ /**
203
+ * Display the welcome header
204
+ */
205
+ function showHeader() {
206
+ clearScreen();
207
+ p.intro(picocolors_1.default.bgCyan(picocolors_1.default.black(' 🔄 LWC Convert ')));
208
+ p.note('Convert Aura & Visualforce to Lightning Web Components\n' +
209
+ picocolors_1.default.dim('Use arrow keys to navigate, Enter to select, Ctrl+C to cancel'), 'Welcome');
210
+ }
211
+ /**
212
+ * Run the interactive TUI
213
+ */
214
+ async function runInteractiveTui() {
215
+ showHeader();
216
+ // State management
217
+ let currentStep = 0;
218
+ let conversionType;
219
+ let componentPath;
220
+ let controllerPath;
221
+ let controllerPaths = [];
222
+ let detectedControllers = [];
223
+ let outputDir = options_1.DEFAULT_OUTPUT_DIR;
224
+ let conversionMode = 'scaffolding';
225
+ let openFolder = true;
226
+ // Main wizard loop - allows navigation back to any step
227
+ wizardLoop: while (currentStep < 4) {
228
+ // Step 1: Select conversion type
229
+ while (currentStep === 0) {
230
+ showBreadcrumbs(currentStep);
231
+ const typeResult = await p.select({
232
+ message: 'What would you like to convert?',
233
+ options: [
234
+ { value: 'aura', label: '⚡ Aura Component → LWC', hint: 'Convert Aura bundles' },
235
+ { value: 'vf', label: '📄 Visualforce Page → LWC', hint: 'Convert VF pages' },
236
+ ],
237
+ });
238
+ if (isCancel(typeResult))
239
+ return handleCancel();
240
+ conversionType = typeResult;
241
+ currentStep = 1;
242
+ }
243
+ // Step 2: Select source component/page
244
+ while (currentStep === 1) {
245
+ showBreadcrumbs(currentStep, conversionType);
246
+ if (conversionType === 'aura') {
247
+ const s = p.spinner();
248
+ s.start('Scanning for Aura components...');
249
+ const auraComponents = await findAuraComponents();
250
+ s.stop('Scan complete');
251
+ if (auraComponents.length > 0) {
252
+ const sourceResult = await p.select({
253
+ message: 'Select an Aura component:',
254
+ options: [
255
+ ...auraComponents,
256
+ { value: '__custom__', label: '📝 Enter path manually...', hint: 'Type a custom path' },
257
+ { value: '__back__', label: picocolors_1.default.yellow('← Back'), hint: 'Return to previous step' },
258
+ ],
259
+ });
260
+ if (isCancel(sourceResult))
261
+ return handleCancel();
262
+ if (sourceResult === '__back__') {
263
+ showHeader();
264
+ currentStep = 0;
265
+ continue wizardLoop;
266
+ }
267
+ if (sourceResult === '__custom__') {
268
+ const customPath = await p.text({
269
+ message: 'Enter the path to the Aura component:',
270
+ placeholder: 'force-app/main/default/aura/MyComponent (leave blank to go back)',
271
+ });
272
+ if (isCancel(customPath))
273
+ return handleCancel();
274
+ if (!customPath || !customPath.trim()) {
275
+ // User left blank - go back to selection
276
+ continue;
277
+ }
278
+ componentPath = customPath;
279
+ }
280
+ else {
281
+ componentPath = sourceResult;
282
+ }
283
+ }
284
+ else {
285
+ p.log.warn('No Aura components found in project');
286
+ const actionResult = await p.select({
287
+ message: 'What would you like to do?',
288
+ options: [
289
+ { value: '__custom__', label: '📝 Enter path manually', hint: 'Type a custom path' },
290
+ { value: '__back__', label: picocolors_1.default.yellow('← Back to menu'), hint: 'Return to conversion type selection' },
291
+ ],
292
+ });
293
+ if (isCancel(actionResult))
294
+ return handleCancel();
295
+ if (actionResult === '__back__') {
296
+ showHeader();
297
+ currentStep = 0;
298
+ continue wizardLoop;
299
+ }
300
+ const customPath = await p.text({
301
+ message: 'Enter the path to the Aura component:',
302
+ placeholder: 'force-app/main/default/aura/MyComponent (leave blank to go back)',
303
+ });
304
+ if (isCancel(customPath))
305
+ return handleCancel();
306
+ if (!customPath || !customPath.trim()) {
307
+ // User left blank - go back to type selection
308
+ showHeader();
309
+ currentStep = 0;
310
+ continue wizardLoop;
311
+ }
312
+ componentPath = customPath;
313
+ }
314
+ // Skip controllers step for Aura
315
+ currentStep = 3;
316
+ }
317
+ else {
318
+ // VF page selection
319
+ const s = p.spinner();
320
+ s.start('Scanning for Visualforce pages...');
321
+ const vfPages = await findVfPages();
322
+ s.stop('Scan complete');
323
+ if (vfPages.length > 0) {
324
+ const sourceResult = await p.select({
325
+ message: 'Select a Visualforce page:',
326
+ options: [
327
+ ...vfPages,
328
+ { value: '__custom__', label: '📝 Enter path manually...', hint: 'Type a custom path' },
329
+ { value: '__back__', label: picocolors_1.default.yellow('← Back'), hint: 'Return to previous step' },
330
+ ],
331
+ });
332
+ if (isCancel(sourceResult))
333
+ return handleCancel();
334
+ if (sourceResult === '__back__') {
335
+ showHeader();
336
+ currentStep = 0;
337
+ continue wizardLoop;
338
+ }
339
+ if (sourceResult === '__custom__') {
340
+ const customPath = await p.text({
341
+ message: 'Enter the path to the Visualforce page:',
342
+ placeholder: 'force-app/main/default/pages/MyPage.page (leave blank to go back)',
343
+ });
344
+ if (isCancel(customPath))
345
+ return handleCancel();
346
+ if (!customPath || !customPath.trim()) {
347
+ // User left blank - go back to selection
348
+ continue;
349
+ }
350
+ componentPath = customPath;
351
+ }
352
+ else {
353
+ componentPath = sourceResult;
354
+ }
355
+ }
356
+ else {
357
+ p.log.warn('No Visualforce pages found in project');
358
+ const actionResult = await p.select({
359
+ message: 'What would you like to do?',
360
+ options: [
361
+ { value: '__custom__', label: '📝 Enter path manually', hint: 'Type a custom path' },
362
+ { value: '__back__', label: picocolors_1.default.yellow('← Back to menu'), hint: 'Return to conversion type selection' },
363
+ ],
364
+ });
365
+ if (isCancel(actionResult))
366
+ return handleCancel();
367
+ if (actionResult === '__back__') {
368
+ showHeader();
369
+ currentStep = 0;
370
+ continue wizardLoop;
371
+ }
372
+ const customPath = await p.text({
373
+ message: 'Enter the path to the Visualforce page:',
374
+ placeholder: 'force-app/main/default/pages/MyPage.page (leave blank to go back)',
375
+ });
376
+ if (isCancel(customPath))
377
+ return handleCancel();
378
+ if (!customPath || !customPath.trim()) {
379
+ // User left blank - go back to type selection
380
+ showHeader();
381
+ currentStep = 0;
382
+ continue wizardLoop;
383
+ }
384
+ componentPath = customPath;
385
+ }
386
+ currentStep = 2;
387
+ }
388
+ }
389
+ // Step 3: Controllers (VF only)
390
+ while (currentStep === 2 && conversionType === 'vf' && componentPath) {
391
+ showBreadcrumbs(currentStep, conversionType);
392
+ const resolvedPagePath = path.resolve(componentPath);
393
+ if (await fs.pathExists(resolvedPagePath)) {
394
+ const s = p.spinner();
395
+ s.start('Analyzing page for controller references...');
396
+ const pageContent = await fs.readFile(resolvedPagePath, 'utf-8');
397
+ const result = await (0, vf_controller_resolver_1.findVfControllers)(pageContent);
398
+ detectedControllers = result.controllers;
399
+ s.stop('Analysis complete');
400
+ if (result.hasControllers) {
401
+ // Display detected controllers
402
+ const foundControllers = detectedControllers.filter(c => c.found);
403
+ const missingControllers = detectedControllers.filter(c => !c.found);
404
+ if (foundControllers.length > 0 || missingControllers.length > 0) {
405
+ let message = '';
406
+ if (foundControllers.length > 0) {
407
+ message += picocolors_1.default.green(`✓ Found: ${foundControllers.map(c => c.name).join(', ')}\n`);
408
+ }
409
+ if (missingControllers.length > 0) {
410
+ message += picocolors_1.default.yellow(`⚠ Not found: ${missingControllers.map(c => c.name).join(', ')}`);
411
+ }
412
+ p.note(message, '🔍 Detected Controllers');
413
+ }
414
+ if (foundControllers.length > 0) {
415
+ const selectedControllers = await p.multiselect({
416
+ message: 'Select controllers to include:',
417
+ options: [
418
+ ...foundControllers.map(c => ({
419
+ value: c.path,
420
+ label: `${c.name}`,
421
+ hint: (0, vf_controller_resolver_1.getControllerTypeLabel)(c.type),
422
+ })),
423
+ { value: '__back__', label: picocolors_1.default.yellow('← Back') },
424
+ ],
425
+ required: false,
426
+ });
427
+ if (isCancel(selectedControllers))
428
+ return handleCancel();
429
+ const selections = selectedControllers;
430
+ if (selections.includes('__back__')) {
431
+ currentStep = 1;
432
+ continue wizardLoop;
433
+ }
434
+ controllerPaths = selections.filter(s => s !== '__back__');
435
+ if (controllerPaths.length > 0) {
436
+ controllerPath = controllerPaths[0];
437
+ }
438
+ }
439
+ // Offer to add more controllers
440
+ const addMore = await p.confirm({
441
+ message: 'Add additional controllers manually?',
442
+ initialValue: false,
443
+ });
444
+ if (isCancel(addMore))
445
+ return handleCancel();
446
+ if (addMore) {
447
+ const allControllers = await findApexControllers();
448
+ const availableControllers = allControllers.filter(c => !controllerPaths.includes(path.resolve(c.value)));
449
+ if (availableControllers.length > 0) {
450
+ const additional = await p.multiselect({
451
+ message: 'Select additional controllers:',
452
+ options: availableControllers,
453
+ required: false,
454
+ });
455
+ if (!isCancel(additional)) {
456
+ controllerPaths.push(...additional.map(c => path.resolve(c)));
457
+ }
458
+ }
459
+ }
460
+ }
461
+ else {
462
+ p.log.info('No controllers detected in page attributes');
463
+ const includeController = await p.confirm({
464
+ message: 'Add a controller manually?',
465
+ initialValue: false,
466
+ });
467
+ if (isCancel(includeController))
468
+ return handleCancel();
469
+ if (includeController) {
470
+ const allControllers = await findApexControllers();
471
+ if (allControllers.length > 0) {
472
+ const selected = await p.select({
473
+ message: 'Select an Apex controller:',
474
+ options: [
475
+ ...allControllers,
476
+ { value: '__back__', label: picocolors_1.default.yellow('← Back') },
477
+ ],
478
+ });
479
+ if (isCancel(selected))
480
+ return handleCancel();
481
+ if (selected === '__back__') {
482
+ currentStep = 1;
483
+ continue wizardLoop;
484
+ }
485
+ controllerPath = selected;
486
+ controllerPaths = [path.resolve(controllerPath)];
487
+ }
488
+ }
489
+ }
490
+ }
491
+ currentStep = 3;
492
+ }
493
+ // Step 4: Options
494
+ while (currentStep === 3) {
495
+ showBreadcrumbs(currentStep, conversionType);
496
+ const modeResult = await p.select({
497
+ message: 'Conversion mode:',
498
+ options: [
499
+ {
500
+ value: 'scaffolding',
501
+ label: '📝 Scaffolding',
502
+ hint: 'Generates skeleton with TODO comments (recommended)'
503
+ },
504
+ {
505
+ value: 'full',
506
+ label: '⚡ Full Conversion',
507
+ hint: 'Attempts complete code transformation'
508
+ },
509
+ { value: '__back__', label: picocolors_1.default.yellow('← Back') },
510
+ ],
511
+ });
512
+ if (isCancel(modeResult))
513
+ return handleCancel();
514
+ if (modeResult === '__back__') {
515
+ currentStep = conversionType === 'aura' ? 1 : 2;
516
+ continue wizardLoop;
517
+ }
518
+ conversionMode = modeResult;
519
+ const outputResult = await p.text({
520
+ message: 'Output directory:',
521
+ initialValue: options_1.DEFAULT_OUTPUT_DIR,
522
+ validate: (value) => {
523
+ if (!value.trim())
524
+ return 'Output directory is required';
525
+ return undefined;
526
+ },
527
+ });
528
+ if (isCancel(outputResult))
529
+ return handleCancel();
530
+ outputDir = outputResult;
531
+ const openResult = await p.confirm({
532
+ message: 'Open output folder after conversion?',
533
+ initialValue: true,
534
+ });
535
+ if (isCancel(openResult))
536
+ return handleCancel();
537
+ openFolder = openResult;
538
+ currentStep = 4;
539
+ }
540
+ } // end wizardLoop
541
+ // Step 5: Confirmation
542
+ showBreadcrumbs(currentStep, conversionType);
543
+ const summaryLines = [
544
+ `${picocolors_1.default.dim('Type:')} ${conversionType === 'aura' ? '⚡ Aura → LWC' : '📄 VF → LWC'}`,
545
+ `${picocolors_1.default.dim('Source:')} ${componentPath}`,
546
+ ];
547
+ if (controllerPaths.length > 0) {
548
+ summaryLines.push(`${picocolors_1.default.dim('Controllers:')} ${controllerPaths.length} selected`);
549
+ controllerPaths.forEach(cp => {
550
+ summaryLines.push(` ${picocolors_1.default.dim('•')} ${path.basename(cp)}`);
551
+ });
552
+ }
553
+ summaryLines.push(`${picocolors_1.default.dim('Mode:')} ${conversionMode === 'full' ? '⚡ Full' : '📝 Scaffolding'}`);
554
+ summaryLines.push(`${picocolors_1.default.dim('Output:')} ${outputDir}`);
555
+ summaryLines.push(`${picocolors_1.default.dim('Open folder:')} ${openFolder ? '✓ Yes' : '✗ No'}`);
556
+ p.note(summaryLines.join('\n'), '📋 Conversion Summary');
557
+ const confirm = await p.confirm({
558
+ message: 'Proceed with conversion?',
559
+ initialValue: true,
560
+ });
561
+ if (isCancel(confirm) || !confirm) {
562
+ p.cancel('Conversion cancelled.');
563
+ return null;
564
+ }
565
+ p.outro(picocolors_1.default.green('Starting conversion...'));
566
+ return {
567
+ conversionType: conversionType,
568
+ componentPath: componentPath,
569
+ controllerPath,
570
+ controllerPaths: controllerPaths.length > 0 ? controllerPaths : undefined,
571
+ detectedControllers: detectedControllers.length > 0 ? detectedControllers : undefined,
572
+ outputDir,
573
+ conversionMode,
574
+ openFolder,
575
+ };
576
+ }
577
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/cli/interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * CLI option definitions and types
3
+ */
4
+ export interface ConversionOptions {
5
+ output: string;
6
+ full: boolean;
7
+ dryRun: boolean;
8
+ verbose: boolean;
9
+ open: boolean;
10
+ controller?: string;
11
+ }
12
+ export interface AuraConversionOptions extends ConversionOptions {
13
+ }
14
+ export interface VfConversionOptions extends ConversionOptions {
15
+ controller?: string;
16
+ }
17
+ export declare const DEFAULT_OUTPUT_DIR = "./lwc-output";
18
+ export declare const CLI_VERSION = "1.0.0";
19
+ export declare const CLI_NAME = "lwc-convert";
20
+ export declare const CLI_DESCRIPTION = "\nConvert Salesforce Aura components and Visualforce pages to Lightning Web Components.\n\nFeatures:\n \u2022 Smart path resolution - just use the component name\n \u2022 Generates LWC bundle with HTML, JS, CSS, and meta.xml\n \u2022 Auto-generates Jest tests for converted components\n \u2022 Creates behavior spec documentation\n \u2022 Handles LMS, wire adapters, and Apex integration\n\nConversion Modes:\n scaffolding (default) LWC skeleton with guided TODO comments\n full (--full) Complete automated code transformation\n";
21
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;CAE/D;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,QAAQ,gBAAgB,CAAC;AAEtC,eAAO,MAAM,eAAe,siBAa3B,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * CLI option definitions and types
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CLI_DESCRIPTION = exports.CLI_NAME = exports.CLI_VERSION = exports.DEFAULT_OUTPUT_DIR = void 0;
7
+ exports.DEFAULT_OUTPUT_DIR = './lwc-output';
8
+ exports.CLI_VERSION = '1.0.0';
9
+ exports.CLI_NAME = 'lwc-convert';
10
+ exports.CLI_DESCRIPTION = `
11
+ Convert Salesforce Aura components and Visualforce pages to Lightning Web Components.
12
+
13
+ Features:
14
+ • Smart path resolution - just use the component name
15
+ • Generates LWC bundle with HTML, JS, CSS, and meta.xml
16
+ • Auto-generates Jest tests for converted components
17
+ • Creates behavior spec documentation
18
+ • Handles LMS, wire adapters, and Apex integration
19
+
20
+ Conversion Modes:
21
+ scaffolding (default) LWC skeleton with guided TODO comments
22
+ full (--full) Complete automated code transformation
23
+ `;
24
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAmBU,QAAA,kBAAkB,GAAG,cAAc,CAAC;AAEpC,QAAA,WAAW,GAAG,OAAO,CAAC;AAEtB,QAAA,QAAQ,GAAG,aAAa,CAAC;AAEzB,QAAA,eAAe,GAAG;;;;;;;;;;;;;CAa9B,CAAC"}