lwc-convert 1.3.0 → 1.3.2
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.
- package/dist/cli/commands/aura.js +76 -112
- package/dist/cli/commands/aura.js.map +1 -1
- package/dist/cli/commands/deps.js +33 -69
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/grade.js +27 -63
- package/dist/cli/commands/grade.js.map +1 -1
- package/dist/cli/commands/vf.js +77 -113
- package/dist/cli/commands/vf.js.map +1 -1
- package/dist/cli/interactive.js +42 -81
- package/dist/cli/interactive.js.map +1 -1
- package/dist/cli/options.js +8 -11
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/tui/grade-tui.js +69 -109
- package/dist/cli/tui/grade-tui.js.map +1 -1
- package/dist/dependency-graph/analyzer.js +23 -27
- package/dist/dependency-graph/analyzer.js.map +1 -1
- package/dist/dependency-graph/aura-dependency-analyzer.js +15 -52
- package/dist/dependency-graph/aura-dependency-analyzer.js.map +1 -1
- package/dist/dependency-graph/conversion-order.js +3 -8
- package/dist/dependency-graph/conversion-order.js.map +1 -1
- package/dist/dependency-graph/formatters/console-formatter.js +22 -25
- package/dist/dependency-graph/formatters/console-formatter.js.map +1 -1
- package/dist/dependency-graph/formatters/json-formatter.js +4 -8
- package/dist/dependency-graph/formatters/json-formatter.js.map +1 -1
- package/dist/dependency-graph/formatters/mermaid-formatter.js +2 -6
- package/dist/dependency-graph/formatters/mermaid-formatter.js.map +1 -1
- package/dist/dependency-graph/graph-builder.js +2 -6
- package/dist/dependency-graph/graph-builder.js.map +1 -1
- package/dist/dependency-graph/types.js +1 -2
- package/dist/dependency-graph/types.js.map +1 -1
- package/dist/dependency-graph/vf-dependency-analyzer.js +19 -57
- package/dist/dependency-graph/vf-dependency-analyzer.js.map +1 -1
- package/dist/generators/full-conversion.js +35 -39
- package/dist/generators/full-conversion.js.map +1 -1
- package/dist/generators/scaffolding.js +21 -25
- package/dist/generators/scaffolding.js.map +1 -1
- package/dist/generators/test-comparison.js +4 -7
- package/dist/generators/test-comparison.js.map +1 -1
- package/dist/generators/test-generator.js +6 -10
- package/dist/generators/test-generator.js.map +1 -1
- package/dist/grading/aura-grader.js +19 -23
- package/dist/grading/aura-grader.js.map +1 -1
- package/dist/grading/complexity-metrics.js +1 -5
- package/dist/grading/complexity-metrics.js.map +1 -1
- package/dist/grading/grade-calculator.js +1 -5
- package/dist/grading/grade-calculator.js.map +1 -1
- package/dist/grading/grader.d.ts +8 -0
- package/dist/grading/grader.d.ts.map +1 -1
- package/dist/grading/grader.js +117 -59
- package/dist/grading/grader.js.map +1 -1
- package/dist/grading/types.js +1 -2
- package/dist/grading/vf-grader.js +19 -23
- package/dist/grading/vf-grader.js.map +1 -1
- package/dist/index.js +128 -140
- package/dist/index.js.map +1 -1
- package/dist/parsers/aura/controller-parser.js +9 -48
- package/dist/parsers/aura/controller-parser.js.map +1 -1
- package/dist/parsers/aura/helper-parser.js +10 -49
- package/dist/parsers/aura/helper-parser.js.map +1 -1
- package/dist/parsers/aura/markup-parser.js +15 -52
- package/dist/parsers/aura/markup-parser.js.map +1 -1
- package/dist/parsers/aura/style-parser.js +10 -17
- package/dist/parsers/aura/style-parser.js.map +1 -1
- package/dist/parsers/vf/apex-parser.js +10 -13
- package/dist/parsers/vf/apex-parser.js.map +1 -1
- package/dist/parsers/vf/page-parser.js +11 -47
- package/dist/parsers/vf/page-parser.js.map +1 -1
- package/dist/transformers/aura-to-lwc/controller.js +7 -10
- package/dist/transformers/aura-to-lwc/controller.js.map +1 -1
- package/dist/transformers/aura-to-lwc/events.js +8 -16
- package/dist/transformers/aura-to-lwc/events.js.map +1 -1
- package/dist/transformers/aura-to-lwc/markup.js +7 -43
- package/dist/transformers/aura-to-lwc/markup.js.map +1 -1
- package/dist/transformers/vf-to-lwc/components.js +17 -23
- package/dist/transformers/vf-to-lwc/components.js.map +1 -1
- package/dist/transformers/vf-to-lwc/data-binding.js +4 -10
- package/dist/transformers/vf-to-lwc/data-binding.js.map +1 -1
- package/dist/transformers/vf-to-lwc/markup.js +5 -41
- package/dist/transformers/vf-to-lwc/markup.js.map +1 -1
- package/dist/tui/App.d.ts +3 -0
- package/dist/tui/App.d.ts.map +1 -0
- package/dist/tui/App.js +78 -0
- package/dist/tui/App.js.map +1 -0
- package/dist/tui/components/data/List.d.ts +27 -0
- package/dist/tui/components/data/List.d.ts.map +1 -0
- package/dist/tui/components/data/List.js +43 -0
- package/dist/tui/components/data/List.js.map +1 -0
- package/dist/tui/components/data/Table.d.ts +15 -0
- package/dist/tui/components/data/Table.d.ts.map +1 -0
- package/dist/tui/components/data/Table.js +59 -0
- package/dist/tui/components/data/Table.js.map +1 -0
- package/dist/tui/components/data/Tree.d.ts +15 -0
- package/dist/tui/components/data/Tree.d.ts.map +1 -0
- package/dist/tui/components/data/Tree.js +45 -0
- package/dist/tui/components/data/Tree.js.map +1 -0
- package/dist/tui/components/data/index.d.ts +7 -0
- package/dist/tui/components/data/index.d.ts.map +1 -0
- package/dist/tui/components/data/index.js +4 -0
- package/dist/tui/components/data/index.js.map +1 -0
- package/dist/tui/components/feedback/Badge.d.ts +18 -0
- package/dist/tui/components/feedback/Badge.d.ts.map +1 -0
- package/dist/tui/components/feedback/Badge.js +55 -0
- package/dist/tui/components/feedback/Badge.js.map +1 -0
- package/dist/tui/components/feedback/Progress.d.ts +16 -0
- package/dist/tui/components/feedback/Progress.d.ts.map +1 -0
- package/dist/tui/components/feedback/Progress.js +34 -0
- package/dist/tui/components/feedback/Progress.js.map +1 -0
- package/dist/tui/components/feedback/Spinner.d.ts +7 -0
- package/dist/tui/components/feedback/Spinner.d.ts.map +1 -0
- package/dist/tui/components/feedback/Spinner.js +11 -0
- package/dist/tui/components/feedback/Spinner.js.map +1 -0
- package/dist/tui/components/feedback/index.d.ts +7 -0
- package/dist/tui/components/feedback/index.d.ts.map +1 -0
- package/dist/tui/components/feedback/index.js +4 -0
- package/dist/tui/components/feedback/index.js.map +1 -0
- package/dist/tui/components/forms/Checkbox.d.ts +41 -0
- package/dist/tui/components/forms/Checkbox.d.ts.map +1 -0
- package/dist/tui/components/forms/Checkbox.js +35 -0
- package/dist/tui/components/forms/Checkbox.js.map +1 -0
- package/dist/tui/components/forms/Select.d.ts +14 -0
- package/dist/tui/components/forms/Select.d.ts.map +1 -0
- package/dist/tui/components/forms/Select.js +21 -0
- package/dist/tui/components/forms/Select.js.map +1 -0
- package/dist/tui/components/forms/TextInput.d.ts +19 -0
- package/dist/tui/components/forms/TextInput.d.ts.map +1 -0
- package/dist/tui/components/forms/TextInput.js +16 -0
- package/dist/tui/components/forms/TextInput.js.map +1 -0
- package/dist/tui/components/forms/index.d.ts +7 -0
- package/dist/tui/components/forms/index.d.ts.map +1 -0
- package/dist/tui/components/forms/index.js +4 -0
- package/dist/tui/components/forms/index.js.map +1 -0
- package/dist/tui/components/layout/Footer.d.ts +12 -0
- package/dist/tui/components/layout/Footer.d.ts.map +1 -0
- package/dist/tui/components/layout/Footer.js +25 -0
- package/dist/tui/components/layout/Footer.js.map +1 -0
- package/dist/tui/components/layout/Header.d.ts +6 -0
- package/dist/tui/components/layout/Header.d.ts.map +1 -0
- package/dist/tui/components/layout/Header.js +23 -0
- package/dist/tui/components/layout/Header.js.map +1 -0
- package/dist/tui/components/layout/Modal.d.ts +10 -0
- package/dist/tui/components/layout/Modal.d.ts.map +1 -0
- package/dist/tui/components/layout/Modal.js +22 -0
- package/dist/tui/components/layout/Modal.js.map +1 -0
- package/dist/tui/components/layout/Screen.d.ts +11 -0
- package/dist/tui/components/layout/Screen.d.ts.map +1 -0
- package/dist/tui/components/layout/Screen.js +10 -0
- package/dist/tui/components/layout/Screen.js.map +1 -0
- package/dist/tui/components/layout/index.d.ts +9 -0
- package/dist/tui/components/layout/index.d.ts.map +1 -0
- package/dist/tui/components/layout/index.js +5 -0
- package/dist/tui/components/layout/index.js.map +1 -0
- package/dist/tui/components/navigation/Breadcrumbs.d.ts +17 -0
- package/dist/tui/components/navigation/Breadcrumbs.d.ts.map +1 -0
- package/dist/tui/components/navigation/Breadcrumbs.js +33 -0
- package/dist/tui/components/navigation/Breadcrumbs.js.map +1 -0
- package/dist/tui/components/navigation/CommandPalette.d.ts +16 -0
- package/dist/tui/components/navigation/CommandPalette.d.ts.map +1 -0
- package/dist/tui/components/navigation/CommandPalette.js +121 -0
- package/dist/tui/components/navigation/CommandPalette.js.map +1 -0
- package/dist/tui/components/navigation/index.d.ts +5 -0
- package/dist/tui/components/navigation/index.d.ts.map +1 -0
- package/dist/tui/components/navigation/index.js +3 -0
- package/dist/tui/components/navigation/index.js.map +1 -0
- package/dist/tui/hooks/useKeyBindings.d.ts +7 -0
- package/dist/tui/hooks/useKeyBindings.d.ts.map +1 -0
- package/dist/tui/hooks/useKeyBindings.js +72 -0
- package/dist/tui/hooks/useKeyBindings.js.map +1 -0
- package/dist/tui/hooks/useTerminalSize.d.ts +8 -0
- package/dist/tui/hooks/useTerminalSize.d.ts.map +1 -0
- package/dist/tui/hooks/useTerminalSize.js +38 -0
- package/dist/tui/hooks/useTerminalSize.js.map +1 -0
- package/dist/tui/index.d.ts +5 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +13 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/screens/ComponentBrowser.d.ts +3 -0
- package/dist/tui/screens/ComponentBrowser.d.ts.map +1 -0
- package/dist/tui/screens/ComponentBrowser.js +178 -0
- package/dist/tui/screens/ComponentBrowser.js.map +1 -0
- package/dist/tui/screens/ConversionWizard.d.ts +3 -0
- package/dist/tui/screens/ConversionWizard.d.ts.map +1 -0
- package/dist/tui/screens/ConversionWizard.js +160 -0
- package/dist/tui/screens/ConversionWizard.js.map +1 -0
- package/dist/tui/screens/Dashboard.d.ts +3 -0
- package/dist/tui/screens/Dashboard.d.ts.map +1 -0
- package/dist/tui/screens/Dashboard.js +63 -0
- package/dist/tui/screens/Dashboard.js.map +1 -0
- package/dist/tui/screens/ExportModal.d.ts +3 -0
- package/dist/tui/screens/ExportModal.d.ts.map +1 -0
- package/dist/tui/screens/ExportModal.js +179 -0
- package/dist/tui/screens/ExportModal.js.map +1 -0
- package/dist/tui/screens/GradingResults.d.ts +3 -0
- package/dist/tui/screens/GradingResults.d.ts.map +1 -0
- package/dist/tui/screens/GradingResults.js +153 -0
- package/dist/tui/screens/GradingResults.js.map +1 -0
- package/dist/tui/screens/HelpModal.d.ts +3 -0
- package/dist/tui/screens/HelpModal.d.ts.map +1 -0
- package/dist/tui/screens/HelpModal.js +36 -0
- package/dist/tui/screens/HelpModal.js.map +1 -0
- package/dist/tui/screens/Settings.d.ts +3 -0
- package/dist/tui/screens/Settings.d.ts.map +1 -0
- package/dist/tui/screens/Settings.js +133 -0
- package/dist/tui/screens/Settings.js.map +1 -0
- package/dist/tui/screens/index.d.ts +8 -0
- package/dist/tui/screens/index.d.ts.map +1 -0
- package/dist/tui/screens/index.js +8 -0
- package/dist/tui/screens/index.js.map +1 -0
- package/dist/tui/store/index.d.ts +41 -0
- package/dist/tui/store/index.d.ts.map +1 -0
- package/dist/tui/store/index.js +237 -0
- package/dist/tui/store/index.js.map +1 -0
- package/dist/tui/store/persistence.d.ts +8 -0
- package/dist/tui/store/persistence.d.ts.map +1 -0
- package/dist/tui/store/persistence.js +65 -0
- package/dist/tui/store/persistence.js.map +1 -0
- package/dist/tui/themes/index.d.ts +28 -0
- package/dist/tui/themes/index.d.ts.map +1 -0
- package/dist/tui/themes/index.js +72 -0
- package/dist/tui/themes/index.js.map +1 -0
- package/dist/tui/types.d.ts +102 -0
- package/dist/tui/types.d.ts.map +1 -0
- package/dist/tui/types.js +16 -0
- package/dist/tui/types.js.map +1 -0
- package/dist/tui/utils/discovery.d.ts +9 -0
- package/dist/tui/utils/discovery.d.ts.map +1 -0
- package/dist/tui/utils/discovery.js +172 -0
- package/dist/tui/utils/discovery.js.map +1 -0
- package/dist/utils/confidence-scorer.js +11 -24
- package/dist/utils/confidence-scorer.js.map +1 -1
- package/dist/utils/file-io.d.ts +1 -1
- package/dist/utils/file-io.d.ts.map +1 -1
- package/dist/utils/file-io.js +41 -81
- package/dist/utils/file-io.js.map +1 -1
- package/dist/utils/logger.js +1 -4
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/open-folder.js +6 -42
- package/dist/utils/open-folder.js.map +1 -1
- package/dist/utils/path-resolver.d.ts +2 -2
- package/dist/utils/path-resolver.d.ts.map +1 -1
- package/dist/utils/path-resolver.js +57 -63
- package/dist/utils/path-resolver.js.map +1 -1
- package/dist/utils/preview-generator.js +13 -51
- package/dist/utils/preview-generator.js.map +1 -1
- package/dist/utils/session-store.js +18 -54
- package/dist/utils/session-store.js.map +1 -1
- package/dist/utils/vf-controller-resolver.js +12 -51
- package/dist/utils/vf-controller-resolver.js.map +1 -1
- package/package.json +14 -3
|
@@ -1,157 +1,121 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Aura to LWC conversion command
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
o["default"] = v;
|
|
20
|
-
});
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.convertAura = convertAura;
|
|
40
|
-
const path = __importStar(require("path"));
|
|
41
|
-
const file_io_1 = require("../../utils/file-io");
|
|
42
|
-
const logger_1 = require("../../utils/logger");
|
|
43
|
-
const markup_parser_1 = require("../../parsers/aura/markup-parser");
|
|
44
|
-
const controller_parser_1 = require("../../parsers/aura/controller-parser");
|
|
45
|
-
const helper_parser_1 = require("../../parsers/aura/helper-parser");
|
|
46
|
-
const style_parser_1 = require("../../parsers/aura/style-parser");
|
|
47
|
-
const markup_1 = require("../../transformers/aura-to-lwc/markup");
|
|
48
|
-
const scaffolding_1 = require("../../generators/scaffolding");
|
|
49
|
-
const full_conversion_1 = require("../../generators/full-conversion");
|
|
50
|
-
const path_resolver_1 = require("../../utils/path-resolver");
|
|
51
|
-
const session_store_1 = require("../../utils/session-store");
|
|
52
|
-
const preview_generator_1 = require("../../utils/preview-generator");
|
|
53
|
-
async function convertAura(inputPath, options) {
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import { readAuraBundle, writeLwcBundle, writeConversionNotes } from '../../utils/file-io';
|
|
6
|
+
import { logger } from '../../utils/logger';
|
|
7
|
+
import { parseAuraMarkup } from '../../parsers/aura/markup-parser';
|
|
8
|
+
import { parseAuraController } from '../../parsers/aura/controller-parser';
|
|
9
|
+
import { parseAuraHelper } from '../../parsers/aura/helper-parser';
|
|
10
|
+
import { parseAuraStyle } from '../../parsers/aura/style-parser';
|
|
11
|
+
import { transformAuraMarkup } from '../../transformers/aura-to-lwc/markup';
|
|
12
|
+
import { generateAuraScaffolding } from '../../generators/scaffolding';
|
|
13
|
+
import { generateAuraFullConversion } from '../../generators/full-conversion';
|
|
14
|
+
import { resolveAuraPath, formatSearchLocations } from '../../utils/path-resolver';
|
|
15
|
+
import { sessionStore } from '../../utils/session-store';
|
|
16
|
+
import { writePreviewFile, openPreview } from '../../utils/preview-generator';
|
|
17
|
+
export async function convertAura(inputPath, options) {
|
|
54
18
|
// Resolve the path (supports just component name)
|
|
55
|
-
const resolved = await
|
|
19
|
+
const resolved = await resolveAuraPath(inputPath);
|
|
56
20
|
if (!resolved.found) {
|
|
57
|
-
|
|
21
|
+
logger.error(`Component not found: ${inputPath}`);
|
|
58
22
|
if (resolved.searchedLocations && resolved.searchedLocations.length > 0) {
|
|
59
|
-
|
|
60
|
-
console.log(
|
|
23
|
+
logger.subheader('Searched in:');
|
|
24
|
+
console.log(formatSearchLocations(resolved.searchedLocations, process.cwd()));
|
|
61
25
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
26
|
+
logger.blank();
|
|
27
|
+
logger.info('Tip: You can provide just the component name (e.g., "AccountCard")');
|
|
28
|
+
logger.info(' or a full path (e.g., "./force-app/main/default/aura/AccountCard")');
|
|
65
29
|
process.exit(1);
|
|
66
30
|
}
|
|
67
31
|
const bundlePath = resolved.path;
|
|
68
32
|
// Show banner and conversion info
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
33
|
+
logger.banner();
|
|
34
|
+
logger.header('Aura → LWC Conversion');
|
|
35
|
+
logger.info(`Source: ${bundlePath}`);
|
|
36
|
+
logger.info(`Mode: ${options.full ? 'Full Conversion' : 'Scaffolding'}`);
|
|
37
|
+
logger.info(`Output: ${options.output}`);
|
|
74
38
|
if (options.dryRun) {
|
|
75
|
-
|
|
39
|
+
logger.warn('Dry run mode - no files will be written');
|
|
76
40
|
}
|
|
77
|
-
|
|
41
|
+
logger.divider();
|
|
78
42
|
try {
|
|
79
43
|
// Step 1: Read Aura bundle
|
|
80
|
-
|
|
81
|
-
const bundle = await
|
|
82
|
-
|
|
44
|
+
logger.step(1, 'Reading Aura component bundle...');
|
|
45
|
+
const bundle = await readAuraBundle(bundlePath);
|
|
46
|
+
logger.success(`Read component: ${bundle.name}`);
|
|
83
47
|
// Step 2: Parse markup
|
|
84
|
-
|
|
48
|
+
logger.step(2, 'Parsing component markup...');
|
|
85
49
|
if (!bundle.markup) {
|
|
86
50
|
throw new Error('No markup (.cmp) file found in bundle');
|
|
87
51
|
}
|
|
88
|
-
const parsedMarkup =
|
|
89
|
-
|
|
52
|
+
const parsedMarkup = parseAuraMarkup(bundle.markup, bundle.name);
|
|
53
|
+
logger.success(`Parsed ${parsedMarkup.attributes.length} attributes, ${parsedMarkup.handlers.length} handlers`);
|
|
90
54
|
// Step 3: Parse controller (if exists)
|
|
91
55
|
let parsedController;
|
|
92
56
|
if (bundle.controller) {
|
|
93
|
-
|
|
94
|
-
parsedController =
|
|
95
|
-
|
|
57
|
+
logger.step(3, 'Parsing JavaScript controller...');
|
|
58
|
+
parsedController = parseAuraController(bundle.controller);
|
|
59
|
+
logger.success(`Parsed ${parsedController.functions.length} controller functions`);
|
|
96
60
|
}
|
|
97
61
|
else {
|
|
98
|
-
|
|
62
|
+
logger.step(3, 'No JavaScript controller found');
|
|
99
63
|
}
|
|
100
64
|
// Step 4: Parse helper (if exists)
|
|
101
65
|
let parsedHelper;
|
|
102
66
|
if (bundle.helper) {
|
|
103
|
-
|
|
104
|
-
parsedHelper =
|
|
105
|
-
|
|
67
|
+
logger.step(4, 'Parsing JavaScript helper...');
|
|
68
|
+
parsedHelper = parseAuraHelper(bundle.helper);
|
|
69
|
+
logger.success(`Parsed ${parsedHelper.functions.length} helper functions`);
|
|
106
70
|
}
|
|
107
71
|
else {
|
|
108
|
-
|
|
72
|
+
logger.step(4, 'No JavaScript helper found');
|
|
109
73
|
}
|
|
110
74
|
// Step 5: Parse styles (if exists)
|
|
111
75
|
let parsedStyle;
|
|
112
76
|
if (bundle.style) {
|
|
113
|
-
|
|
114
|
-
parsedStyle =
|
|
115
|
-
|
|
77
|
+
logger.step(5, 'Parsing CSS styles...');
|
|
78
|
+
parsedStyle = parseAuraStyle(bundle.style);
|
|
79
|
+
logger.success(`Parsed ${parsedStyle.rules.length} CSS rules`);
|
|
116
80
|
}
|
|
117
81
|
else {
|
|
118
|
-
|
|
82
|
+
logger.step(5, 'No CSS styles found');
|
|
119
83
|
}
|
|
120
84
|
// Step 6: Transform and generate
|
|
121
|
-
|
|
85
|
+
logger.step(6, options.full ? 'Generating full conversion...' : 'Generating scaffolding...');
|
|
122
86
|
let result;
|
|
123
87
|
if (options.full) {
|
|
124
|
-
result =
|
|
88
|
+
result = generateAuraFullConversion(parsedMarkup, parsedController, parsedHelper, parsedStyle);
|
|
125
89
|
}
|
|
126
90
|
else {
|
|
127
|
-
const transformedMarkup =
|
|
128
|
-
result =
|
|
91
|
+
const transformedMarkup = transformAuraMarkup(parsedMarkup);
|
|
92
|
+
result = generateAuraScaffolding(parsedMarkup, transformedMarkup, parsedController, parsedHelper, parsedStyle);
|
|
129
93
|
}
|
|
130
|
-
|
|
94
|
+
logger.success(`Generated LWC: ${result.bundle.name}`);
|
|
131
95
|
// Step 7: Write output
|
|
132
|
-
|
|
96
|
+
logger.step(7, 'Writing output files...');
|
|
133
97
|
const outputDir = path.resolve(options.output);
|
|
134
|
-
const writtenFiles = await
|
|
98
|
+
const writtenFiles = await writeLwcBundle(outputDir, result.bundle, options.dryRun);
|
|
135
99
|
// Write conversion notes
|
|
136
100
|
if (result.notes.length > 0) {
|
|
137
|
-
await
|
|
101
|
+
await writeConversionNotes(outputDir, result.bundle.name, result.notes, options.dryRun);
|
|
138
102
|
}
|
|
139
103
|
// Write Jest tests if generated
|
|
140
104
|
if (result.tests) {
|
|
141
105
|
const testDir = path.join(outputDir, result.bundle.name, '__tests__');
|
|
142
106
|
const testFilePath = path.join(testDir, result.tests.filename);
|
|
143
|
-
const { writeFile } = await
|
|
107
|
+
const { writeFile } = await import('../../utils/file-io');
|
|
144
108
|
await writeFile(testFilePath, result.tests.content, options.dryRun);
|
|
145
109
|
}
|
|
146
110
|
// Write behavior spec document
|
|
147
111
|
if (result.behaviorSpec) {
|
|
148
112
|
const specFilePath = path.join(outputDir, result.bundle.name, `${result.bundle.name}-behavior-spec.md`);
|
|
149
|
-
const { writeFile } = await
|
|
113
|
+
const { writeFile } = await import('../../utils/file-io');
|
|
150
114
|
await writeFile(specFilePath, result.behaviorSpec, options.dryRun);
|
|
151
115
|
}
|
|
152
116
|
// Write test comparison files (before/after tests)
|
|
153
117
|
if (result.testComparison) {
|
|
154
|
-
const { writeFile } = await
|
|
118
|
+
const { writeFile } = await import('../../utils/file-io');
|
|
155
119
|
const testDir = path.join(outputDir, result.bundle.name, '__tests__');
|
|
156
120
|
// Write "before" test documentation (Aura behaviors)
|
|
157
121
|
const beforeTestPath = path.join(testDir, `${result.bundle.name}.before.spec.js`);
|
|
@@ -163,12 +127,12 @@ async function convertAura(inputPath, options) {
|
|
|
163
127
|
const comparisonReportPath = path.join(outputDir, result.bundle.name, `${result.bundle.name}-test-comparison.md`);
|
|
164
128
|
await writeFile(comparisonReportPath, result.testComparison.comparisonReport, options.dryRun);
|
|
165
129
|
}
|
|
166
|
-
|
|
167
|
-
|
|
130
|
+
logger.divider();
|
|
131
|
+
logger.success('Conversion complete!');
|
|
168
132
|
// Store conversion in session for learning
|
|
169
133
|
if (result.testComparison) {
|
|
170
|
-
const conversionRecord = await
|
|
171
|
-
|
|
134
|
+
const conversionRecord = await sessionStore.storeConversion('aura', bundle.name, result.bundle.name, bundlePath, path.join(outputDir, result.bundle.name), result.testComparison, result.warnings);
|
|
135
|
+
logger.debug(`Session stored: ${conversionRecord.id}`);
|
|
172
136
|
}
|
|
173
137
|
// Calculate file count
|
|
174
138
|
let totalFiles = writtenFiles.length + 1; // +1 for notes
|
|
@@ -179,8 +143,8 @@ async function convertAura(inputPath, options) {
|
|
|
179
143
|
if (result.testComparison)
|
|
180
144
|
totalFiles += 3; // before spec, after test, comparison report
|
|
181
145
|
// Summary box with key info
|
|
182
|
-
const sessionSummary =
|
|
183
|
-
|
|
146
|
+
const sessionSummary = sessionStore.getSessionSummary();
|
|
147
|
+
logger.summaryBox('Conversion Summary', [
|
|
184
148
|
{ label: 'Component', value: `${bundle.name} → ${result.bundle.name}`, type: 'success' },
|
|
185
149
|
{ label: 'Files created', value: `${totalFiles}`, type: 'info' },
|
|
186
150
|
{ label: 'Behaviors mapped', value: `${result.testComparison?.behaviorTests.length || 0}`, type: 'info' },
|
|
@@ -190,42 +154,42 @@ async function convertAura(inputPath, options) {
|
|
|
190
154
|
]);
|
|
191
155
|
if (result.warnings.length > 0) {
|
|
192
156
|
if (options.verbose) {
|
|
193
|
-
|
|
157
|
+
logger.subheader('Warnings:');
|
|
194
158
|
for (const warning of result.warnings) {
|
|
195
|
-
|
|
159
|
+
logger.todo(warning);
|
|
196
160
|
}
|
|
197
161
|
}
|
|
198
162
|
else {
|
|
199
|
-
|
|
163
|
+
logger.info('Run with --verbose to see all warnings');
|
|
200
164
|
}
|
|
201
|
-
|
|
165
|
+
logger.blank();
|
|
202
166
|
}
|
|
203
167
|
// Next steps guidance
|
|
204
|
-
|
|
168
|
+
logger.nextSteps([
|
|
205
169
|
`Review generated files in ${result.bundle.name}/`,
|
|
206
170
|
'Check conversion-notes.md for manual action items',
|
|
207
171
|
'Run Jest tests: npm test -- --findRelatedTests',
|
|
208
172
|
'Verify behavior matches original component',
|
|
209
|
-
`Session data stored in: ${
|
|
173
|
+
`Session data stored in: ${sessionStore.getSessionDir()}`,
|
|
210
174
|
]);
|
|
211
175
|
// Generate and open preview if requested
|
|
212
176
|
if (options.preview) {
|
|
213
|
-
|
|
214
|
-
const previewPath = await
|
|
177
|
+
logger.step(8, 'Generating UI preview...');
|
|
178
|
+
const previewPath = await writePreviewFile(outputDir, result.bundle, options.dryRun);
|
|
215
179
|
if (!options.dryRun) {
|
|
216
|
-
|
|
217
|
-
await
|
|
180
|
+
logger.success('Preview generated');
|
|
181
|
+
await openPreview(previewPath);
|
|
218
182
|
}
|
|
219
183
|
}
|
|
220
184
|
// Open folder if requested
|
|
221
185
|
if (options.open && !options.dryRun) {
|
|
222
|
-
const { openFolder } = await
|
|
223
|
-
|
|
186
|
+
const { openFolder } = await import('../../utils/open-folder');
|
|
187
|
+
logger.info('Opening output folder...');
|
|
224
188
|
await openFolder(outputDir);
|
|
225
189
|
}
|
|
226
190
|
}
|
|
227
191
|
catch (error) {
|
|
228
|
-
|
|
192
|
+
logger.error(error.message);
|
|
229
193
|
if (options.verbose && error.stack) {
|
|
230
194
|
console.error(error.stack);
|
|
231
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aura.js","sourceRoot":"","sources":["../../../src/cli/commands/aura.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aura.js","sourceRoot":"","sources":["../../../src/cli/commands/aura.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +1,24 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* CLI command handler for dependency graph analysis
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
-
}) : function(o, v) {
|
|
19
|
-
o["default"] = v;
|
|
20
|
-
});
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.analyzeDeps = analyzeDeps;
|
|
40
|
-
const fs = __importStar(require("fs-extra"));
|
|
41
|
-
const path = __importStar(require("path"));
|
|
42
|
-
const logger_1 = require("../../utils/logger");
|
|
43
|
-
const analyzer_1 = require("../../dependency-graph/analyzer");
|
|
44
|
-
const conversion_order_1 = require("../../dependency-graph/conversion-order");
|
|
45
|
-
const console_formatter_1 = require("../../dependency-graph/formatters/console-formatter");
|
|
46
|
-
const json_formatter_1 = require("../../dependency-graph/formatters/json-formatter");
|
|
47
|
-
const mermaid_formatter_1 = require("../../dependency-graph/formatters/mermaid-formatter");
|
|
4
|
+
import * as fs from 'fs-extra';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import { logger } from '../../utils/logger';
|
|
7
|
+
import { DependencyAnalyzer } from '../../dependency-graph/analyzer';
|
|
8
|
+
import { calculateConversionOrder } from '../../dependency-graph/conversion-order';
|
|
9
|
+
import { formatConsoleOutput } from '../../dependency-graph/formatters/console-formatter';
|
|
10
|
+
import { formatJsonOutput, serializeJson } from '../../dependency-graph/formatters/json-formatter';
|
|
11
|
+
import { formatMermaidOutput, formatSimpleMermaidOutput } from '../../dependency-graph/formatters/mermaid-formatter';
|
|
48
12
|
/**
|
|
49
13
|
* Execute the deps command
|
|
50
14
|
*/
|
|
51
|
-
async function analyzeDeps(target, options) {
|
|
52
|
-
|
|
15
|
+
export async function analyzeDeps(target, options) {
|
|
16
|
+
logger.setVerbose(options.verbose);
|
|
53
17
|
const targetPath = target ? path.resolve(target) : process.cwd();
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
18
|
+
logger.banner();
|
|
19
|
+
logger.header('Dependency Graph Analysis');
|
|
20
|
+
logger.info(`Analyzing: ${targetPath}`);
|
|
21
|
+
logger.blank();
|
|
58
22
|
const analysisOptions = {
|
|
59
23
|
type: options.type,
|
|
60
24
|
scope: 'project',
|
|
@@ -70,26 +34,26 @@ async function analyzeDeps(target, options) {
|
|
|
70
34
|
verbose: options.verbose,
|
|
71
35
|
};
|
|
72
36
|
try {
|
|
73
|
-
const analyzer = new
|
|
37
|
+
const analyzer = new DependencyAnalyzer();
|
|
74
38
|
const graph = await analyzer.analyze(analysisOptions);
|
|
75
39
|
if (graph.stats.totalNodes === 0) {
|
|
76
|
-
|
|
77
|
-
|
|
40
|
+
logger.warn('No components found to analyze.');
|
|
41
|
+
logger.info('Make sure you are in a Salesforce project directory or specify a valid path.');
|
|
78
42
|
return;
|
|
79
43
|
}
|
|
80
44
|
// Calculate conversion order if requested
|
|
81
45
|
const conversionOrder = options.conversionOrder
|
|
82
|
-
?
|
|
46
|
+
? calculateConversionOrder(graph)
|
|
83
47
|
: undefined;
|
|
84
48
|
// Format output based on selected format
|
|
85
49
|
let output;
|
|
86
50
|
switch (options.format) {
|
|
87
51
|
case 'json':
|
|
88
|
-
const jsonOutput =
|
|
89
|
-
output =
|
|
52
|
+
const jsonOutput = formatJsonOutput(graph, conversionOrder);
|
|
53
|
+
output = serializeJson(jsonOutput);
|
|
90
54
|
if (options.output) {
|
|
91
55
|
await writeOutput(options.output, output);
|
|
92
|
-
|
|
56
|
+
logger.success(`JSON report written to: ${options.output}`);
|
|
93
57
|
}
|
|
94
58
|
else {
|
|
95
59
|
console.log(output);
|
|
@@ -98,39 +62,39 @@ async function analyzeDeps(target, options) {
|
|
|
98
62
|
case 'mermaid':
|
|
99
63
|
// Use simplified output for large graphs
|
|
100
64
|
output = graph.stats.totalNodes > 30
|
|
101
|
-
?
|
|
102
|
-
:
|
|
65
|
+
? formatSimpleMermaidOutput(graph, 30)
|
|
66
|
+
: formatMermaidOutput(graph);
|
|
103
67
|
if (options.output) {
|
|
104
68
|
await writeOutput(options.output, output);
|
|
105
|
-
|
|
69
|
+
logger.success(`Mermaid diagram written to: ${options.output}`);
|
|
106
70
|
}
|
|
107
71
|
else {
|
|
108
72
|
console.log(output);
|
|
109
73
|
}
|
|
110
74
|
break;
|
|
111
75
|
case 'html':
|
|
112
|
-
|
|
113
|
-
|
|
76
|
+
logger.warn('HTML format not yet implemented. Using console output.');
|
|
77
|
+
formatConsoleOutput(graph, conversionOrder, options.showOrphans);
|
|
114
78
|
break;
|
|
115
79
|
case 'dot':
|
|
116
|
-
|
|
117
|
-
|
|
80
|
+
logger.warn('DOT format not yet implemented. Using console output.');
|
|
81
|
+
formatConsoleOutput(graph, conversionOrder, options.showOrphans);
|
|
118
82
|
break;
|
|
119
83
|
case 'console':
|
|
120
84
|
default:
|
|
121
|
-
|
|
85
|
+
formatConsoleOutput(graph, conversionOrder, options.showOrphans);
|
|
122
86
|
break;
|
|
123
87
|
}
|
|
124
88
|
// Show summary
|
|
125
89
|
if (options.format === 'console') {
|
|
126
|
-
|
|
127
|
-
|
|
90
|
+
logger.blank();
|
|
91
|
+
logger.success('Analysis complete!');
|
|
128
92
|
}
|
|
129
93
|
}
|
|
130
94
|
catch (error) {
|
|
131
|
-
|
|
95
|
+
logger.error(`Analysis failed: ${error.message}`);
|
|
132
96
|
if (options.verbose && error.stack) {
|
|
133
|
-
|
|
97
|
+
logger.debug(error.stack);
|
|
134
98
|
}
|
|
135
99
|
process.exit(1);
|
|
136
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../../src/cli/commands/deps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../../src/cli/commands/deps.ts"],"names":[],"mappings":"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"}
|