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.
- package/LICENSE +21 -0
- package/README.md +719 -0
- package/dist/cli/commands/aura.d.ts +6 -0
- package/dist/cli/commands/aura.d.ts.map +1 -0
- package/dist/cli/commands/aura.js +225 -0
- package/dist/cli/commands/aura.js.map +1 -0
- package/dist/cli/commands/vf.d.ts +6 -0
- package/dist/cli/commands/vf.d.ts.map +1 -0
- package/dist/cli/commands/vf.js +218 -0
- package/dist/cli/commands/vf.js.map +1 -0
- package/dist/cli/interactive.d.ts +20 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +577 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/options.d.ts +21 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +24 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/generators/full-conversion.d.ts +41 -0
- package/dist/generators/full-conversion.d.ts.map +1 -0
- package/dist/generators/full-conversion.js +538 -0
- package/dist/generators/full-conversion.js.map +1 -0
- package/dist/generators/scaffolding.d.ts +40 -0
- package/dist/generators/scaffolding.d.ts.map +1 -0
- package/dist/generators/scaffolding.js +716 -0
- package/dist/generators/scaffolding.js.map +1 -0
- package/dist/generators/test-comparison.d.ts +47 -0
- package/dist/generators/test-comparison.d.ts.map +1 -0
- package/dist/generators/test-comparison.js +855 -0
- package/dist/generators/test-comparison.js.map +1 -0
- package/dist/generators/test-generator.d.ts +27 -0
- package/dist/generators/test-generator.d.ts.map +1 -0
- package/dist/generators/test-generator.js +385 -0
- package/dist/generators/test-generator.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +226 -0
- package/dist/index.js.map +1 -0
- package/dist/mappings/aura-to-lwc.json +321 -0
- package/dist/mappings/vf-to-lwc.json +354 -0
- package/dist/parsers/aura/controller-parser.d.ts +36 -0
- package/dist/parsers/aura/controller-parser.d.ts.map +1 -0
- package/dist/parsers/aura/controller-parser.js +269 -0
- package/dist/parsers/aura/controller-parser.js.map +1 -0
- package/dist/parsers/aura/helper-parser.d.ts +21 -0
- package/dist/parsers/aura/helper-parser.d.ts.map +1 -0
- package/dist/parsers/aura/helper-parser.js +173 -0
- package/dist/parsers/aura/helper-parser.js.map +1 -0
- package/dist/parsers/aura/markup-parser.d.ts +59 -0
- package/dist/parsers/aura/markup-parser.d.ts.map +1 -0
- package/dist/parsers/aura/markup-parser.js +279 -0
- package/dist/parsers/aura/markup-parser.js.map +1 -0
- package/dist/parsers/aura/style-parser.d.ts +37 -0
- package/dist/parsers/aura/style-parser.d.ts.map +1 -0
- package/dist/parsers/aura/style-parser.js +151 -0
- package/dist/parsers/aura/style-parser.js.map +1 -0
- package/dist/parsers/vf/apex-parser.d.ts +51 -0
- package/dist/parsers/vf/apex-parser.d.ts.map +1 -0
- package/dist/parsers/vf/apex-parser.js +251 -0
- package/dist/parsers/vf/apex-parser.js.map +1 -0
- package/dist/parsers/vf/page-parser.d.ts +61 -0
- package/dist/parsers/vf/page-parser.d.ts.map +1 -0
- package/dist/parsers/vf/page-parser.js +403 -0
- package/dist/parsers/vf/page-parser.js.map +1 -0
- package/dist/transformers/aura-to-lwc/controller.d.ts +36 -0
- package/dist/transformers/aura-to-lwc/controller.d.ts.map +1 -0
- package/dist/transformers/aura-to-lwc/controller.js +372 -0
- package/dist/transformers/aura-to-lwc/controller.js.map +1 -0
- package/dist/transformers/aura-to-lwc/events.d.ts +47 -0
- package/dist/transformers/aura-to-lwc/events.d.ts.map +1 -0
- package/dist/transformers/aura-to-lwc/events.js +262 -0
- package/dist/transformers/aura-to-lwc/events.js.map +1 -0
- package/dist/transformers/aura-to-lwc/markup.d.ts +51 -0
- package/dist/transformers/aura-to-lwc/markup.d.ts.map +1 -0
- package/dist/transformers/aura-to-lwc/markup.js +465 -0
- package/dist/transformers/aura-to-lwc/markup.js.map +1 -0
- package/dist/transformers/vf-to-lwc/components.d.ts +40 -0
- package/dist/transformers/vf-to-lwc/components.d.ts.map +1 -0
- package/dist/transformers/vf-to-lwc/components.js +374 -0
- package/dist/transformers/vf-to-lwc/components.js.map +1 -0
- package/dist/transformers/vf-to-lwc/data-binding.d.ts +53 -0
- package/dist/transformers/vf-to-lwc/data-binding.d.ts.map +1 -0
- package/dist/transformers/vf-to-lwc/data-binding.js +660 -0
- package/dist/transformers/vf-to-lwc/data-binding.js.map +1 -0
- package/dist/transformers/vf-to-lwc/markup.d.ts +44 -0
- package/dist/transformers/vf-to-lwc/markup.d.ts.map +1 -0
- package/dist/transformers/vf-to-lwc/markup.js +816 -0
- package/dist/transformers/vf-to-lwc/markup.js.map +1 -0
- package/dist/utils/confidence-scorer.d.ts +100 -0
- package/dist/utils/confidence-scorer.d.ts.map +1 -0
- package/dist/utils/confidence-scorer.js +358 -0
- package/dist/utils/confidence-scorer.js.map +1 -0
- package/dist/utils/file-io.d.ts +62 -0
- package/dist/utils/file-io.d.ts.map +1 -0
- package/dist/utils/file-io.js +248 -0
- package/dist/utils/file-io.js.map +1 -0
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +130 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/open-folder.d.ts +9 -0
- package/dist/utils/open-folder.d.ts.map +1 -0
- package/dist/utils/open-folder.js +76 -0
- package/dist/utils/open-folder.js.map +1 -0
- package/dist/utils/path-resolver.d.ts +29 -0
- package/dist/utils/path-resolver.d.ts.map +1 -0
- package/dist/utils/path-resolver.js +240 -0
- package/dist/utils/path-resolver.js.map +1 -0
- package/dist/utils/session-store.d.ts +158 -0
- package/dist/utils/session-store.d.ts.map +1 -0
- package/dist/utils/session-store.js +518 -0
- package/dist/utils/session-store.js.map +1 -0
- package/dist/utils/vf-controller-resolver.d.ts +36 -0
- package/dist/utils/vf-controller-resolver.d.ts.map +1 -0
- package/dist/utils/vf-controller-resolver.js +162 -0
- package/dist/utils/vf-controller-resolver.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Session Store - Stores conversion data in a temp folder during user's session
|
|
4
|
+
*
|
|
5
|
+
* This allows the tool to:
|
|
6
|
+
* 1. Learn from past conversions in the session
|
|
7
|
+
* 2. Provide suggestions based on similar patterns
|
|
8
|
+
* 3. Track conversion success/failure rates
|
|
9
|
+
* 4. Reuse behavior mappings for similar components
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.sessionStore = void 0;
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const os = __importStar(require("os"));
|
|
49
|
+
const logger_1 = require("./logger");
|
|
50
|
+
// Session file location - persistent across invocations
|
|
51
|
+
const SESSIONS_BASE_DIR = path.join(os.tmpdir(), 'lwc-convert-sessions');
|
|
52
|
+
const ACTIVE_SESSION_FILE = path.join(SESSIONS_BASE_DIR, 'active-session.json');
|
|
53
|
+
// Sessions expire after 4 hours of inactivity
|
|
54
|
+
const SESSION_EXPIRY_MS = 4 * 60 * 60 * 1000;
|
|
55
|
+
class SessionStore {
|
|
56
|
+
sessionId = '';
|
|
57
|
+
sessionDir = '';
|
|
58
|
+
conversions = [];
|
|
59
|
+
patternLibrary = new Map();
|
|
60
|
+
initialized = false;
|
|
61
|
+
startedAt = new Date();
|
|
62
|
+
constructor() {
|
|
63
|
+
// Will be initialized lazily
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Try to load an existing active session
|
|
67
|
+
*/
|
|
68
|
+
async tryLoadExistingSession() {
|
|
69
|
+
try {
|
|
70
|
+
if (!fs.existsSync(ACTIVE_SESSION_FILE)) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
const activeInfo = JSON.parse(await fs.promises.readFile(ACTIVE_SESSION_FILE, 'utf-8'));
|
|
74
|
+
// Check if session has expired
|
|
75
|
+
const lastActivity = new Date(activeInfo.lastActivityAt).getTime();
|
|
76
|
+
if (Date.now() - lastActivity > SESSION_EXPIRY_MS) {
|
|
77
|
+
logger_1.logger.debug('Previous session expired, starting new session');
|
|
78
|
+
// Clean up expired session
|
|
79
|
+
try {
|
|
80
|
+
await fs.promises.rm(activeInfo.sessionDir, { recursive: true, force: true });
|
|
81
|
+
}
|
|
82
|
+
catch { /* ignore */ }
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
// Check if session directory still exists
|
|
86
|
+
if (!fs.existsSync(activeInfo.sessionDir)) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
// Load the session
|
|
90
|
+
this.sessionId = activeInfo.sessionId;
|
|
91
|
+
this.sessionDir = activeInfo.sessionDir;
|
|
92
|
+
this.startedAt = new Date(activeInfo.startedAt);
|
|
93
|
+
// Load existing conversions
|
|
94
|
+
await this.loadConversions();
|
|
95
|
+
logger_1.logger.debug(`Resumed session: ${this.sessionId}`);
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
logger_1.logger.debug(`Failed to load existing session: ${error.message}`);
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Load conversions from session directory
|
|
105
|
+
*/
|
|
106
|
+
async loadConversions() {
|
|
107
|
+
try {
|
|
108
|
+
const conversionsDir = path.join(this.sessionDir, 'conversions');
|
|
109
|
+
if (!fs.existsSync(conversionsDir))
|
|
110
|
+
return;
|
|
111
|
+
const files = await fs.promises.readdir(conversionsDir);
|
|
112
|
+
for (const file of files) {
|
|
113
|
+
if (file.endsWith('.json')) {
|
|
114
|
+
const content = await fs.promises.readFile(path.join(conversionsDir, file), 'utf-8');
|
|
115
|
+
const record = JSON.parse(content);
|
|
116
|
+
record.timestamp = new Date(record.timestamp);
|
|
117
|
+
this.conversions.push(record);
|
|
118
|
+
// Rebuild pattern library
|
|
119
|
+
for (const pattern of record.patterns) {
|
|
120
|
+
this.updatePatternLibrary([pattern]);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
logger_1.logger.debug(`Failed to load conversions: ${error.message}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Create a new session
|
|
131
|
+
*/
|
|
132
|
+
async createNewSession() {
|
|
133
|
+
this.sessionId = `lwc-convert-${Date.now()}-${Math.random().toString(36).substring(7)}`;
|
|
134
|
+
this.sessionDir = path.join(SESSIONS_BASE_DIR, this.sessionId);
|
|
135
|
+
this.startedAt = new Date();
|
|
136
|
+
// Create session directory
|
|
137
|
+
await fs.promises.mkdir(this.sessionDir, { recursive: true });
|
|
138
|
+
await fs.promises.mkdir(path.join(this.sessionDir, 'conversions'), { recursive: true });
|
|
139
|
+
await fs.promises.mkdir(path.join(this.sessionDir, 'patterns'), { recursive: true });
|
|
140
|
+
await fs.promises.mkdir(path.join(this.sessionDir, 'tests'), { recursive: true });
|
|
141
|
+
// Write session info
|
|
142
|
+
const sessionInfo = {
|
|
143
|
+
sessionId: this.sessionId,
|
|
144
|
+
startedAt: this.startedAt.toISOString(),
|
|
145
|
+
platform: os.platform(),
|
|
146
|
+
nodeVersion: process.version,
|
|
147
|
+
};
|
|
148
|
+
await fs.promises.writeFile(path.join(this.sessionDir, 'session.json'), JSON.stringify(sessionInfo, null, 2));
|
|
149
|
+
logger_1.logger.debug(`Created new session: ${this.sessionId}`);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Update the active session file
|
|
153
|
+
*/
|
|
154
|
+
async updateActiveSessionFile() {
|
|
155
|
+
const activeInfo = {
|
|
156
|
+
sessionId: this.sessionId,
|
|
157
|
+
sessionDir: this.sessionDir,
|
|
158
|
+
startedAt: this.startedAt.toISOString(),
|
|
159
|
+
lastActivityAt: new Date().toISOString(),
|
|
160
|
+
};
|
|
161
|
+
await fs.promises.mkdir(SESSIONS_BASE_DIR, { recursive: true });
|
|
162
|
+
await fs.promises.writeFile(ACTIVE_SESSION_FILE, JSON.stringify(activeInfo, null, 2));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Initialize the session store (creates temp directory or loads existing session)
|
|
166
|
+
*/
|
|
167
|
+
async init() {
|
|
168
|
+
if (this.initialized)
|
|
169
|
+
return;
|
|
170
|
+
try {
|
|
171
|
+
// Try to load an existing session first
|
|
172
|
+
const loaded = await this.tryLoadExistingSession();
|
|
173
|
+
if (!loaded) {
|
|
174
|
+
// Create a new session
|
|
175
|
+
await this.createNewSession();
|
|
176
|
+
}
|
|
177
|
+
// Update activity timestamp
|
|
178
|
+
await this.updateActiveSessionFile();
|
|
179
|
+
this.initialized = true;
|
|
180
|
+
logger_1.logger.debug(`Session store initialized: ${this.sessionDir}`);
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
logger_1.logger.debug(`Failed to initialize session store: ${error.message}`);
|
|
184
|
+
// Continue without session store - it's not critical
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get the session directory path
|
|
189
|
+
*/
|
|
190
|
+
getSessionDir() {
|
|
191
|
+
return this.sessionDir;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get the session ID
|
|
195
|
+
*/
|
|
196
|
+
getSessionId() {
|
|
197
|
+
return this.sessionId;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Store a conversion record
|
|
201
|
+
*/
|
|
202
|
+
async storeConversion(sourceType, sourceName, targetName, sourcePath, outputPath, testComparison, warnings) {
|
|
203
|
+
await this.init();
|
|
204
|
+
const record = {
|
|
205
|
+
id: `conv-${Date.now()}-${Math.random().toString(36).substring(7)}`,
|
|
206
|
+
timestamp: new Date(),
|
|
207
|
+
sourceType,
|
|
208
|
+
sourceName,
|
|
209
|
+
targetName,
|
|
210
|
+
sourcePath,
|
|
211
|
+
outputPath,
|
|
212
|
+
behaviorCount: testComparison.behaviorTests.length,
|
|
213
|
+
behaviors: testComparison.behaviorTests.map(b => ({
|
|
214
|
+
id: b.id,
|
|
215
|
+
category: b.category,
|
|
216
|
+
name: b.name,
|
|
217
|
+
auraPattern: b.auraBehavior.pattern,
|
|
218
|
+
lwcPattern: b.lwcBehavior.pattern,
|
|
219
|
+
})),
|
|
220
|
+
patterns: this.extractPatterns(testComparison.behaviorTests),
|
|
221
|
+
warnings,
|
|
222
|
+
success: true,
|
|
223
|
+
};
|
|
224
|
+
this.conversions.push(record);
|
|
225
|
+
// Update pattern library
|
|
226
|
+
this.updatePatternLibrary(record.patterns);
|
|
227
|
+
// Save to file
|
|
228
|
+
try {
|
|
229
|
+
const conversionFile = path.join(this.sessionDir, 'conversions', `${record.id}.json`);
|
|
230
|
+
await fs.promises.writeFile(conversionFile, JSON.stringify(record, null, 2));
|
|
231
|
+
// Also save the full test comparison data
|
|
232
|
+
const testFile = path.join(this.sessionDir, 'tests', `${targetName}-comparison.json`);
|
|
233
|
+
await fs.promises.writeFile(testFile, JSON.stringify({
|
|
234
|
+
...testComparison,
|
|
235
|
+
conversionId: record.id,
|
|
236
|
+
timestamp: record.timestamp,
|
|
237
|
+
}, null, 2));
|
|
238
|
+
// Update session summary
|
|
239
|
+
await this.saveSessionSummary();
|
|
240
|
+
logger_1.logger.debug(`Stored conversion record: ${record.id}`);
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
logger_1.logger.debug(`Failed to store conversion: ${error.message}`);
|
|
244
|
+
}
|
|
245
|
+
return record;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Extract patterns from behavior tests
|
|
249
|
+
*/
|
|
250
|
+
extractPatterns(behaviors) {
|
|
251
|
+
const patterns = [];
|
|
252
|
+
for (const behavior of behaviors) {
|
|
253
|
+
const pattern = {
|
|
254
|
+
type: this.categorizePattern(behavior.category),
|
|
255
|
+
auraPattern: behavior.auraBehavior.pattern,
|
|
256
|
+
lwcPattern: behavior.lwcBehavior.pattern,
|
|
257
|
+
frequency: 1,
|
|
258
|
+
successRate: 1.0,
|
|
259
|
+
};
|
|
260
|
+
patterns.push(pattern);
|
|
261
|
+
}
|
|
262
|
+
return patterns;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Categorize pattern type
|
|
266
|
+
*/
|
|
267
|
+
categorizePattern(category) {
|
|
268
|
+
switch (category) {
|
|
269
|
+
case 'lifecycle': return 'lifecycle';
|
|
270
|
+
case 'event': return 'event';
|
|
271
|
+
case 'apex': return 'apex';
|
|
272
|
+
case 'lms': return 'lms';
|
|
273
|
+
case 'data':
|
|
274
|
+
case 'ui':
|
|
275
|
+
default:
|
|
276
|
+
return 'component';
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Update pattern library with new patterns
|
|
281
|
+
*/
|
|
282
|
+
updatePatternLibrary(patterns) {
|
|
283
|
+
for (const pattern of patterns) {
|
|
284
|
+
const key = `${pattern.type}:${pattern.auraPattern}`;
|
|
285
|
+
const existing = this.patternLibrary.get(key);
|
|
286
|
+
if (existing) {
|
|
287
|
+
existing.frequency++;
|
|
288
|
+
// Keep running average of success rate
|
|
289
|
+
existing.successRate = (existing.successRate * (existing.frequency - 1) + pattern.successRate) / existing.frequency;
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
this.patternLibrary.set(key, { ...pattern });
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Get suggestions based on past conversions
|
|
298
|
+
*/
|
|
299
|
+
getSuggestions(auraPattern) {
|
|
300
|
+
const suggestions = [];
|
|
301
|
+
for (const [key, pattern] of this.patternLibrary) {
|
|
302
|
+
// Simple similarity check - could be enhanced with fuzzy matching
|
|
303
|
+
if (key.includes(auraPattern) || pattern.auraPattern.includes(auraPattern)) {
|
|
304
|
+
suggestions.push(pattern);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
// Sort by frequency and success rate
|
|
308
|
+
return suggestions.sort((a, b) => {
|
|
309
|
+
const scoreA = a.frequency * a.successRate;
|
|
310
|
+
const scoreB = b.frequency * b.successRate;
|
|
311
|
+
return scoreB - scoreA;
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Get common patterns for a specific type
|
|
316
|
+
*/
|
|
317
|
+
getCommonPatterns(type) {
|
|
318
|
+
return Array.from(this.patternLibrary.values())
|
|
319
|
+
.filter(p => p.type === type)
|
|
320
|
+
.sort((a, b) => b.frequency - a.frequency)
|
|
321
|
+
.slice(0, 10);
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Get all conversions in this session
|
|
325
|
+
*/
|
|
326
|
+
getConversions() {
|
|
327
|
+
return [...this.conversions];
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Get conversion by ID
|
|
331
|
+
*/
|
|
332
|
+
getConversion(id) {
|
|
333
|
+
return this.conversions.find(c => c.id === id);
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Update test results for a conversion
|
|
337
|
+
*/
|
|
338
|
+
async updateTestResults(conversionId, results) {
|
|
339
|
+
const conversion = this.conversions.find(c => c.id === conversionId);
|
|
340
|
+
if (!conversion)
|
|
341
|
+
return;
|
|
342
|
+
conversion.testResults = results;
|
|
343
|
+
conversion.success = results.failed === 0;
|
|
344
|
+
// Update pattern success rates based on test results
|
|
345
|
+
const successRate = results.totalTests > 0 ? results.passed / results.totalTests : 0;
|
|
346
|
+
for (const pattern of conversion.patterns) {
|
|
347
|
+
const key = `${pattern.type}:${pattern.auraPattern}`;
|
|
348
|
+
const existing = this.patternLibrary.get(key);
|
|
349
|
+
if (existing) {
|
|
350
|
+
existing.successRate = (existing.successRate + successRate) / 2;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
// Save updated record
|
|
354
|
+
try {
|
|
355
|
+
const conversionFile = path.join(this.sessionDir, 'conversions', `${conversionId}.json`);
|
|
356
|
+
await fs.promises.writeFile(conversionFile, JSON.stringify(conversion, null, 2));
|
|
357
|
+
await this.saveSessionSummary();
|
|
358
|
+
}
|
|
359
|
+
catch (error) {
|
|
360
|
+
logger_1.logger.debug(`Failed to update conversion: ${error.message}`);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Get session summary
|
|
365
|
+
*/
|
|
366
|
+
getSessionSummary() {
|
|
367
|
+
const warningCounts = new Map();
|
|
368
|
+
for (const conv of this.conversions) {
|
|
369
|
+
for (const warning of conv.warnings) {
|
|
370
|
+
warningCounts.set(warning, (warningCounts.get(warning) || 0) + 1);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
return {
|
|
374
|
+
sessionId: this.sessionId,
|
|
375
|
+
startedAt: this.startedAt,
|
|
376
|
+
conversions: this.conversions.length,
|
|
377
|
+
totalBehaviors: this.conversions.reduce((sum, c) => sum + c.behaviorCount, 0),
|
|
378
|
+
patternLibrary: Array.from(this.patternLibrary.values()),
|
|
379
|
+
commonWarnings: Array.from(warningCounts.entries())
|
|
380
|
+
.map(([warning, count]) => ({ warning, count }))
|
|
381
|
+
.sort((a, b) => b.count - a.count)
|
|
382
|
+
.slice(0, 10),
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Save session summary to file
|
|
387
|
+
*/
|
|
388
|
+
async saveSessionSummary() {
|
|
389
|
+
const summary = this.getSessionSummary();
|
|
390
|
+
try {
|
|
391
|
+
await fs.promises.writeFile(path.join(this.sessionDir, 'summary.json'), JSON.stringify(summary, null, 2));
|
|
392
|
+
// Also save pattern library separately
|
|
393
|
+
await fs.promises.writeFile(path.join(this.sessionDir, 'patterns', 'library.json'), JSON.stringify(Array.from(this.patternLibrary.values()), null, 2));
|
|
394
|
+
}
|
|
395
|
+
catch (error) {
|
|
396
|
+
logger_1.logger.debug(`Failed to save session summary: ${error.message}`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Generate a report of all conversions in the session
|
|
401
|
+
*/
|
|
402
|
+
generateSessionReport() {
|
|
403
|
+
const summary = this.getSessionSummary();
|
|
404
|
+
let report = `# LWC Convert Session Report
|
|
405
|
+
|
|
406
|
+
## Session Info
|
|
407
|
+
- **Session ID**: ${summary.sessionId}
|
|
408
|
+
- **Started**: ${summary.startedAt.toISOString()}
|
|
409
|
+
- **Total Conversions**: ${summary.conversions}
|
|
410
|
+
- **Total Behaviors Mapped**: ${summary.totalBehaviors}
|
|
411
|
+
|
|
412
|
+
## Conversion Summary
|
|
413
|
+
|
|
414
|
+
| # | Component | Type | Behaviors | Warnings | Tests |
|
|
415
|
+
|---|-----------|------|-----------|----------|-------|
|
|
416
|
+
`;
|
|
417
|
+
this.conversions.forEach((conv, index) => {
|
|
418
|
+
const testStatus = conv.testResults
|
|
419
|
+
? `${conv.testResults.passed}/${conv.testResults.totalTests} passed`
|
|
420
|
+
: 'Not run';
|
|
421
|
+
report += `| ${index + 1} | ${conv.sourceName} → ${conv.targetName} | ${conv.sourceType} | ${conv.behaviorCount} | ${conv.warnings.length} | ${testStatus} |\n`;
|
|
422
|
+
});
|
|
423
|
+
if (summary.commonWarnings.length > 0) {
|
|
424
|
+
report += `
|
|
425
|
+
## Common Warnings
|
|
426
|
+
|
|
427
|
+
| Warning | Occurrences |
|
|
428
|
+
|---------|-------------|
|
|
429
|
+
`;
|
|
430
|
+
for (const { warning, count } of summary.commonWarnings) {
|
|
431
|
+
report += `| ${warning.substring(0, 60)}... | ${count} |\n`;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
if (summary.patternLibrary.length > 0) {
|
|
435
|
+
report += `
|
|
436
|
+
## Pattern Library (Top 10 Most Used)
|
|
437
|
+
|
|
438
|
+
| Type | Aura Pattern | LWC Pattern | Uses | Success |
|
|
439
|
+
|------|--------------|-------------|------|---------|
|
|
440
|
+
`;
|
|
441
|
+
const topPatterns = summary.patternLibrary
|
|
442
|
+
.sort((a, b) => b.frequency - a.frequency)
|
|
443
|
+
.slice(0, 10);
|
|
444
|
+
for (const pattern of topPatterns) {
|
|
445
|
+
const auraShort = pattern.auraPattern.substring(0, 30) + (pattern.auraPattern.length > 30 ? '...' : '');
|
|
446
|
+
const lwcShort = pattern.lwcPattern.substring(0, 30) + (pattern.lwcPattern.length > 30 ? '...' : '');
|
|
447
|
+
report += `| ${pattern.type} | \`${auraShort}\` | \`${lwcShort}\` | ${pattern.frequency} | ${(pattern.successRate * 100).toFixed(0)}% |\n`;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
report += `
|
|
451
|
+
## Session Files
|
|
452
|
+
|
|
453
|
+
All session data is stored in:
|
|
454
|
+
\`${this.sessionDir}\`
|
|
455
|
+
|
|
456
|
+
- \`conversions/\` - Individual conversion records
|
|
457
|
+
- \`tests/\` - Test comparison data
|
|
458
|
+
- \`patterns/library.json\` - Learned patterns
|
|
459
|
+
- \`summary.json\` - Session summary
|
|
460
|
+
`;
|
|
461
|
+
return report;
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Clean up session data (call on exit if desired)
|
|
465
|
+
*/
|
|
466
|
+
async cleanup() {
|
|
467
|
+
try {
|
|
468
|
+
// Remove session directory
|
|
469
|
+
if (this.sessionDir) {
|
|
470
|
+
await fs.promises.rm(this.sessionDir, { recursive: true, force: true });
|
|
471
|
+
}
|
|
472
|
+
// Remove active session file
|
|
473
|
+
if (fs.existsSync(ACTIVE_SESSION_FILE)) {
|
|
474
|
+
await fs.promises.unlink(ACTIVE_SESSION_FILE);
|
|
475
|
+
}
|
|
476
|
+
// Reset state
|
|
477
|
+
this.conversions = [];
|
|
478
|
+
this.patternLibrary.clear();
|
|
479
|
+
this.initialized = false;
|
|
480
|
+
logger_1.logger.debug(`Cleaned up session: ${this.sessionId}`);
|
|
481
|
+
}
|
|
482
|
+
catch (error) {
|
|
483
|
+
logger_1.logger.debug(`Failed to cleanup session: ${error.message}`);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Check if a similar component has been converted before
|
|
488
|
+
*/
|
|
489
|
+
findSimilarConversion(componentName) {
|
|
490
|
+
// Simple name similarity - could be enhanced
|
|
491
|
+
return this.conversions.find(c => c.sourceName.toLowerCase().includes(componentName.toLowerCase()) ||
|
|
492
|
+
componentName.toLowerCase().includes(c.sourceName.toLowerCase()));
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Get behavior suggestions based on component type and past conversions
|
|
496
|
+
*/
|
|
497
|
+
getBehaviorSuggestions(componentType, behaviors) {
|
|
498
|
+
const suggestions = [];
|
|
499
|
+
const pastConversions = this.conversions.filter(c => c.sourceType === componentType);
|
|
500
|
+
// Look for behaviors that commonly appear together
|
|
501
|
+
for (const conv of pastConversions) {
|
|
502
|
+
const convBehaviors = conv.behaviors.map(b => b.name);
|
|
503
|
+
const matchCount = behaviors.filter(b => convBehaviors.includes(b)).length;
|
|
504
|
+
if (matchCount > 0) {
|
|
505
|
+
// Suggest behaviors from this conversion that aren't in current
|
|
506
|
+
for (const behavior of conv.behaviors) {
|
|
507
|
+
if (!behaviors.includes(behavior.name) && !suggestions.includes(behavior.name)) {
|
|
508
|
+
suggestions.push(behavior.name);
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
return suggestions.slice(0, 5);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
// Singleton instance
|
|
517
|
+
exports.sessionStore = new SessionStore();
|
|
518
|
+
//# sourceMappingURL=session-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/utils/session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for detecting and resolving Apex controllers referenced in Visualforce pages
|
|
3
|
+
* Parses VF markup to extract controller names and searches the project for matching files
|
|
4
|
+
*/
|
|
5
|
+
export interface VfControllerReference {
|
|
6
|
+
name: string;
|
|
7
|
+
type: 'controller' | 'extension' | 'remoteAction';
|
|
8
|
+
path?: string;
|
|
9
|
+
found: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface VfControllersResult {
|
|
12
|
+
controllers: VfControllerReference[];
|
|
13
|
+
hasControllers: boolean;
|
|
14
|
+
allFound: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Extract controller class names from VF page markup
|
|
18
|
+
* Looks for: controller attribute, extensions attribute, and $RemoteAction references
|
|
19
|
+
*/
|
|
20
|
+
export declare function extractControllerNames(markup: string): {
|
|
21
|
+
name: string;
|
|
22
|
+
type: VfControllerReference['type'];
|
|
23
|
+
}[];
|
|
24
|
+
/**
|
|
25
|
+
* Find VF controllers referenced in markup and resolve their file paths
|
|
26
|
+
*/
|
|
27
|
+
export declare function findVfControllers(markup: string): Promise<VfControllersResult>;
|
|
28
|
+
/**
|
|
29
|
+
* Read content for all found controllers
|
|
30
|
+
*/
|
|
31
|
+
export declare function readControllerContents(controllers: VfControllerReference[]): Promise<Map<string, string>>;
|
|
32
|
+
/**
|
|
33
|
+
* Get a display-friendly type label
|
|
34
|
+
*/
|
|
35
|
+
export declare function getControllerTypeLabel(type: VfControllerReference['type']): string;
|
|
36
|
+
//# sourceMappingURL=vf-controller-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vf-controller-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/vf-controller-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrC,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;CAAE,EAAE,CAwD9G;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA0BpF;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,qBAAqB,EAAE,GACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB9B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,MAAM,CAWlF"}
|