codemeld 2.1.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/README.md +514 -0
- package/bin/cli.js +2 -0
- package/dist/ai/agent.d.ts +124 -0
- package/dist/ai/agent.d.ts.map +1 -0
- package/dist/ai/agent.js +289 -0
- package/dist/ai/agent.js.map +1 -0
- package/dist/ai/index.d.ts +10 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +10 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/prompts.d.ts +35 -0
- package/dist/ai/prompts.d.ts.map +1 -0
- package/dist/ai/prompts.js +166 -0
- package/dist/ai/prompts.js.map +1 -0
- package/dist/ai/refinement-loop.d.ts +29 -0
- package/dist/ai/refinement-loop.d.ts.map +1 -0
- package/dist/ai/refinement-loop.js +180 -0
- package/dist/ai/refinement-loop.js.map +1 -0
- package/dist/ai/tools.d.ts +17 -0
- package/dist/ai/tools.d.ts.map +1 -0
- package/dist/ai/tools.js +353 -0
- package/dist/ai/tools.js.map +1 -0
- package/dist/ai/visual-compare.d.ts +43 -0
- package/dist/ai/visual-compare.d.ts.map +1 -0
- package/dist/ai/visual-compare.js +176 -0
- package/dist/ai/visual-compare.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +179 -0
- package/dist/cli.js.map +1 -0
- package/dist/converter.d.ts +10 -0
- package/dist/converter.d.ts.map +1 -0
- package/dist/converter.js +836 -0
- package/dist/converter.js.map +1 -0
- package/dist/deconverter.d.ts +19 -0
- package/dist/deconverter.d.ts.map +1 -0
- package/dist/deconverter.js +188 -0
- package/dist/deconverter.js.map +1 -0
- package/dist/frameworks/angular-adapter.d.ts +27 -0
- package/dist/frameworks/angular-adapter.d.ts.map +1 -0
- package/dist/frameworks/angular-adapter.js +617 -0
- package/dist/frameworks/angular-adapter.js.map +1 -0
- package/dist/frameworks/index.d.ts +10 -0
- package/dist/frameworks/index.d.ts.map +1 -0
- package/dist/frameworks/index.js +21 -0
- package/dist/frameworks/index.js.map +1 -0
- package/dist/frameworks/nextjs-adapter.d.ts +22 -0
- package/dist/frameworks/nextjs-adapter.d.ts.map +1 -0
- package/dist/frameworks/nextjs-adapter.js +392 -0
- package/dist/frameworks/nextjs-adapter.js.map +1 -0
- package/dist/frameworks/react-adapter.d.ts +21 -0
- package/dist/frameworks/react-adapter.d.ts.map +1 -0
- package/dist/frameworks/react-adapter.js +71 -0
- package/dist/frameworks/react-adapter.js.map +1 -0
- package/dist/frameworks/svelte-adapter.d.ts +27 -0
- package/dist/frameworks/svelte-adapter.d.ts.map +1 -0
- package/dist/frameworks/svelte-adapter.js +519 -0
- package/dist/frameworks/svelte-adapter.js.map +1 -0
- package/dist/frameworks/types.d.ts +78 -0
- package/dist/frameworks/types.d.ts.map +1 -0
- package/dist/frameworks/types.js +2 -0
- package/dist/frameworks/types.js.map +1 -0
- package/dist/frameworks/vue-adapter.d.ts +34 -0
- package/dist/frameworks/vue-adapter.d.ts.map +1 -0
- package/dist/frameworks/vue-adapter.js +632 -0
- package/dist/frameworks/vue-adapter.js.map +1 -0
- package/dist/generators/accessibility-generator.d.ts +43 -0
- package/dist/generators/accessibility-generator.d.ts.map +1 -0
- package/dist/generators/accessibility-generator.js +507 -0
- package/dist/generators/accessibility-generator.js.map +1 -0
- package/dist/generators/asset-handler.d.ts +14 -0
- package/dist/generators/asset-handler.d.ts.map +1 -0
- package/dist/generators/asset-handler.js +79 -0
- package/dist/generators/asset-handler.js.map +1 -0
- package/dist/generators/build-verifier.d.ts +8 -0
- package/dist/generators/build-verifier.d.ts.map +1 -0
- package/dist/generators/build-verifier.js +64 -0
- package/dist/generators/build-verifier.js.map +1 -0
- package/dist/generators/component-extractor.d.ts +25 -0
- package/dist/generators/component-extractor.d.ts.map +1 -0
- package/dist/generators/component-extractor.js +146 -0
- package/dist/generators/component-extractor.js.map +1 -0
- package/dist/generators/component-generator.d.ts +12 -0
- package/dist/generators/component-generator.d.ts.map +1 -0
- package/dist/generators/component-generator.js +724 -0
- package/dist/generators/component-generator.js.map +1 -0
- package/dist/generators/deploy-generator.d.ts +9 -0
- package/dist/generators/deploy-generator.d.ts.map +1 -0
- package/dist/generators/deploy-generator.js +409 -0
- package/dist/generators/deploy-generator.js.map +1 -0
- package/dist/generators/error-boundary.d.ts +5 -0
- package/dist/generators/error-boundary.d.ts.map +1 -0
- package/dist/generators/error-boundary.js +59 -0
- package/dist/generators/error-boundary.js.map +1 -0
- package/dist/generators/form-generator.d.ts +42 -0
- package/dist/generators/form-generator.d.ts.map +1 -0
- package/dist/generators/form-generator.js +662 -0
- package/dist/generators/form-generator.js.map +1 -0
- package/dist/generators/hooks-generator.d.ts +40 -0
- package/dist/generators/hooks-generator.d.ts.map +1 -0
- package/dist/generators/hooks-generator.js +297 -0
- package/dist/generators/hooks-generator.js.map +1 -0
- package/dist/generators/html-generator.d.ts +27 -0
- package/dist/generators/html-generator.d.ts.map +1 -0
- package/dist/generators/html-generator.js +772 -0
- package/dist/generators/html-generator.js.map +1 -0
- package/dist/generators/jquery-converter.d.ts +41 -0
- package/dist/generators/jquery-converter.d.ts.map +1 -0
- package/dist/generators/jquery-converter.js +594 -0
- package/dist/generators/jquery-converter.js.map +1 -0
- package/dist/generators/pattern-implementer.d.ts +26 -0
- package/dist/generators/pattern-implementer.d.ts.map +1 -0
- package/dist/generators/pattern-implementer.js +336 -0
- package/dist/generators/pattern-implementer.js.map +1 -0
- package/dist/generators/performance-generator.d.ts +51 -0
- package/dist/generators/performance-generator.d.ts.map +1 -0
- package/dist/generators/performance-generator.js +428 -0
- package/dist/generators/performance-generator.js.map +1 -0
- package/dist/generators/router-generator.d.ts +21 -0
- package/dist/generators/router-generator.d.ts.map +1 -0
- package/dist/generators/router-generator.js +178 -0
- package/dist/generators/router-generator.js.map +1 -0
- package/dist/generators/scaffolder.d.ts +28 -0
- package/dist/generators/scaffolder.d.ts.map +1 -0
- package/dist/generators/scaffolder.js +266 -0
- package/dist/generators/scaffolder.js.map +1 -0
- package/dist/generators/seo-generator.d.ts +29 -0
- package/dist/generators/seo-generator.d.ts.map +1 -0
- package/dist/generators/seo-generator.js +223 -0
- package/dist/generators/seo-generator.js.map +1 -0
- package/dist/generators/test-generator.d.ts +19 -0
- package/dist/generators/test-generator.d.ts.map +1 -0
- package/dist/generators/test-generator.js +398 -0
- package/dist/generators/test-generator.js.map +1 -0
- package/dist/generators/type-generator.d.ts +33 -0
- package/dist/generators/type-generator.d.ts.map +1 -0
- package/dist/generators/type-generator.js +663 -0
- package/dist/generators/type-generator.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/css-processor.d.ts +23 -0
- package/dist/parsers/css-processor.d.ts.map +1 -0
- package/dist/parsers/css-processor.js +129 -0
- package/dist/parsers/css-processor.js.map +1 -0
- package/dist/parsers/framework-parser.d.ts +48 -0
- package/dist/parsers/framework-parser.d.ts.map +1 -0
- package/dist/parsers/framework-parser.js +770 -0
- package/dist/parsers/framework-parser.js.map +1 -0
- package/dist/parsers/html-parser.d.ts +12 -0
- package/dist/parsers/html-parser.d.ts.map +1 -0
- package/dist/parsers/html-parser.js +444 -0
- package/dist/parsers/html-parser.js.map +1 -0
- package/dist/parsers/js-analyzer.d.ts +199 -0
- package/dist/parsers/js-analyzer.d.ts.map +1 -0
- package/dist/parsers/js-analyzer.js +680 -0
- package/dist/parsers/js-analyzer.js.map +1 -0
- package/dist/parsers/js-resolver.d.ts +8 -0
- package/dist/parsers/js-resolver.d.ts.map +1 -0
- package/dist/parsers/js-resolver.js +45 -0
- package/dist/parsers/js-resolver.js.map +1 -0
- package/dist/parsers/tailwind-detector.d.ts +23 -0
- package/dist/parsers/tailwind-detector.d.ts.map +1 -0
- package/dist/parsers/tailwind-detector.js +104 -0
- package/dist/parsers/tailwind-detector.js.map +1 -0
- package/dist/tests/advanced-features.test.d.ts +2 -0
- package/dist/tests/advanced-features.test.d.ts.map +1 -0
- package/dist/tests/advanced-features.test.js +235 -0
- package/dist/tests/advanced-features.test.js.map +1 -0
- package/dist/tests/css-modules.test.d.ts +2 -0
- package/dist/tests/css-modules.test.d.ts.map +1 -0
- package/dist/tests/css-modules.test.js +61 -0
- package/dist/tests/css-modules.test.js.map +1 -0
- package/dist/tests/css-processor.test.d.ts +2 -0
- package/dist/tests/css-processor.test.d.ts.map +1 -0
- package/dist/tests/css-processor.test.js +48 -0
- package/dist/tests/css-processor.test.js.map +1 -0
- package/dist/tests/html-parser.test.d.ts +2 -0
- package/dist/tests/html-parser.test.d.ts.map +1 -0
- package/dist/tests/html-parser.test.js +78 -0
- package/dist/tests/html-parser.test.js.map +1 -0
- package/dist/tests/integration.test.d.ts +2 -0
- package/dist/tests/integration.test.d.ts.map +1 -0
- package/dist/tests/integration.test.js +65 -0
- package/dist/tests/integration.test.js.map +1 -0
- package/dist/tests/js-analyzer.test.d.ts +2 -0
- package/dist/tests/js-analyzer.test.d.ts.map +1 -0
- package/dist/tests/js-analyzer.test.js +58 -0
- package/dist/tests/js-analyzer.test.js.map +1 -0
- package/dist/tests/naming.test.d.ts +2 -0
- package/dist/tests/naming.test.d.ts.map +1 -0
- package/dist/tests/naming.test.js +43 -0
- package/dist/tests/naming.test.js.map +1 -0
- package/dist/tests/router-generator.test.d.ts +2 -0
- package/dist/tests/router-generator.test.d.ts.map +1 -0
- package/dist/tests/router-generator.test.js +60 -0
- package/dist/tests/router-generator.test.js.map +1 -0
- package/dist/tui/chat.d.ts +13 -0
- package/dist/tui/chat.d.ts.map +1 -0
- package/dist/tui/chat.js +499 -0
- package/dist/tui/chat.js.map +1 -0
- package/dist/tui/design-guide.d.ts +41 -0
- package/dist/tui/design-guide.d.ts.map +1 -0
- package/dist/tui/design-guide.js +184 -0
- package/dist/tui/design-guide.js.map +1 -0
- package/dist/tui/input.d.ts +30 -0
- package/dist/tui/input.d.ts.map +1 -0
- package/dist/tui/input.js +239 -0
- package/dist/tui/input.js.map +1 -0
- package/dist/tui/renderer.d.ts +48 -0
- package/dist/tui/renderer.d.ts.map +1 -0
- package/dist/tui/renderer.js +212 -0
- package/dist/tui/renderer.js.map +1 -0
- package/dist/tui/tools.d.ts +14 -0
- package/dist/tui/tools.d.ts.map +1 -0
- package/dist/tui/tools.js +1370 -0
- package/dist/tui/tools.js.map +1 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/config.d.ts +20 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +33 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/formatter.d.ts +5 -0
- package/dist/utils/formatter.d.ts.map +1 -0
- package/dist/utils/formatter.js +68 -0
- package/dist/utils/formatter.js.map +1 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +19 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/naming.d.ts +17 -0
- package/dist/utils/naming.d.ts.map +1 -0
- package/dist/utils/naming.js +48 -0
- package/dist/utils/naming.js.map +1 -0
- package/dist/utils/report.d.ts +56 -0
- package/dist/utils/report.d.ts.map +1 -0
- package/dist/utils/report.js +339 -0
- package/dist/utils/report.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-handler.js","sourceRoot":"","sources":["../../src/generators/asset-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-verifier.d.ts","sourceRoot":"","sources":["../../src/generators/build-verifier.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAsDpG"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { execFile } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
import { access } from 'fs/promises';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
const execFileAsync = promisify(execFile);
|
|
6
|
+
// On Windows, npm/npx are .cmd scripts and require shell: true
|
|
7
|
+
const SHELL_OPTS = { shell: true };
|
|
8
|
+
/**
|
|
9
|
+
* Install dependencies and run a build verification on the generated project.
|
|
10
|
+
*/
|
|
11
|
+
export async function verifyBuild(outputDir) {
|
|
12
|
+
const errors = [];
|
|
13
|
+
// Check package.json exists
|
|
14
|
+
try {
|
|
15
|
+
await access(join(outputDir, 'package.json'));
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return { success: false, errors: ['package.json not found in output directory'] };
|
|
19
|
+
}
|
|
20
|
+
// Install dependencies
|
|
21
|
+
try {
|
|
22
|
+
await execFileAsync('npm', ['install'], {
|
|
23
|
+
cwd: outputDir,
|
|
24
|
+
timeout: 120_000,
|
|
25
|
+
...SHELL_OPTS,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
30
|
+
errors.push(`npm install failed: ${message}`);
|
|
31
|
+
return { success: false, errors };
|
|
32
|
+
}
|
|
33
|
+
const warnings = [];
|
|
34
|
+
// Run TypeScript check (non-blocking — converted code may have type warnings)
|
|
35
|
+
try {
|
|
36
|
+
await execFileAsync('npx', ['tsc', '--noEmit'], {
|
|
37
|
+
cwd: outputDir,
|
|
38
|
+
timeout: 60_000,
|
|
39
|
+
...SHELL_OPTS,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
const errObj = err;
|
|
44
|
+
const stderr = errObj.stderr || errObj.stdout || errObj.message || String(err);
|
|
45
|
+
warnings.push(`TypeScript check has warnings:\n${stderr}`);
|
|
46
|
+
// Don't return — tsc warnings are expected for auto-converted code
|
|
47
|
+
}
|
|
48
|
+
// Run vite build (this is the decisive check)
|
|
49
|
+
try {
|
|
50
|
+
await execFileAsync('npx', ['vite', 'build'], {
|
|
51
|
+
cwd: outputDir,
|
|
52
|
+
timeout: 60_000,
|
|
53
|
+
...SHELL_OPTS,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
const errObj = err;
|
|
58
|
+
const stderr = errObj.stderr || errObj.stdout || errObj.message || String(err);
|
|
59
|
+
errors.push(`Vite build failed:\n${stderr}`);
|
|
60
|
+
return { success: false, errors: [...errors, ...warnings] };
|
|
61
|
+
}
|
|
62
|
+
return { success: true, errors: warnings };
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=build-verifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-verifier.js","sourceRoot":"","sources":["../../src/generators/build-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,+DAA+D;AAC/D,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB;IACjD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,4BAA4B;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,4CAA4C,CAAC,EAAE,CAAC;IACpF,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;YACtC,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,OAAO;YAChB,GAAG,UAAU;SACd,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,8EAA8E;IAC9E,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;YAC9C,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,MAAM;YACf,GAAG,UAAU;SACd,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,GAA6D,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QAC3D,mEAAmE;IACrE,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAC5C,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,MAAM;YACf,GAAG,UAAU;SACd,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,GAA6D,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/E,MAAM,CAAC,IAAI,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface ExtractedSection {
|
|
2
|
+
name: string;
|
|
3
|
+
html: string;
|
|
4
|
+
tagName: string;
|
|
5
|
+
id?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Analyze HTML and extract semantic sections as potential sub-components.
|
|
10
|
+
* Handles both semantic HTML tags and div-based layouts with meaningful class names.
|
|
11
|
+
* Returns the list of extracted sections and the modified parent HTML with component placeholders.
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractComponents(bodyHtml: string): {
|
|
14
|
+
sections: ExtractedSection[];
|
|
15
|
+
parentHtml: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Detect shared layout elements across multiple HTML pages.
|
|
19
|
+
* Returns common header/footer HTML if found in majority of pages.
|
|
20
|
+
*/
|
|
21
|
+
export declare function detectSharedLayout(pages: string[]): {
|
|
22
|
+
header: string | null;
|
|
23
|
+
footer: string | null;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=component-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-extractor.d.ts","sourceRoot":"","sources":["../../src/generators/component-extractor.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CA8CxG;AA8CD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAwBpG"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import * as cheerio from 'cheerio';
|
|
2
|
+
import { toComponentName } from '../utils/naming.js';
|
|
3
|
+
/** Semantic tags that should become their own sub-components. */
|
|
4
|
+
const SEMANTIC_TAGS = new Set(['header', 'nav', 'main', 'footer', 'aside', 'article', 'section']);
|
|
5
|
+
/**
|
|
6
|
+
* Class name patterns that indicate a distinct component even on a <div>.
|
|
7
|
+
* These are common patterns across real-world sites.
|
|
8
|
+
*/
|
|
9
|
+
const COMPONENT_CLASS_PATTERNS = [
|
|
10
|
+
/^(modal|dialog|lightbox|overlay|popup)/i,
|
|
11
|
+
/^(sidebar|drawer|panel)/i,
|
|
12
|
+
/^(carousel|slider|swiper|gallery)/i,
|
|
13
|
+
/^(hero|banner|jumbotron)/i,
|
|
14
|
+
/^(card-grid|cards-container|grid-container)/i,
|
|
15
|
+
/^(toolbar|actionbar|breadcrumb)/i,
|
|
16
|
+
/^(tab-content|tabs-container|tab-panel)/i,
|
|
17
|
+
/^(accordion|collapse|faq)/i,
|
|
18
|
+
/^(toast|notification|alert|snackbar)/i,
|
|
19
|
+
/^(dropdown|menu|popover)/i,
|
|
20
|
+
/(wrapper|container|section|content)$/i,
|
|
21
|
+
];
|
|
22
|
+
/** Minimum content length for a div to be considered extractable */
|
|
23
|
+
const MIN_CONTENT_LENGTH = 200;
|
|
24
|
+
/** Reserved component names that conflict with the project structure. */
|
|
25
|
+
const RESERVED_NAMES = new Set(['App', 'Index', 'ErrorBoundary', 'Layout']);
|
|
26
|
+
/**
|
|
27
|
+
* Analyze HTML and extract semantic sections as potential sub-components.
|
|
28
|
+
* Handles both semantic HTML tags and div-based layouts with meaningful class names.
|
|
29
|
+
* Returns the list of extracted sections and the modified parent HTML with component placeholders.
|
|
30
|
+
*/
|
|
31
|
+
export function extractComponents(bodyHtml) {
|
|
32
|
+
const $ = cheerio.load(bodyHtml, { xml: false });
|
|
33
|
+
const sections = [];
|
|
34
|
+
const usedNames = new Set();
|
|
35
|
+
const $body = $('body');
|
|
36
|
+
// Pass 1: Extract top-level semantic elements
|
|
37
|
+
$body.children().each((_, el) => {
|
|
38
|
+
const $el = $(el);
|
|
39
|
+
const tagName = el.tagName?.toLowerCase();
|
|
40
|
+
if (SEMANTIC_TAGS.has(tagName)) {
|
|
41
|
+
extractElement($, $el, tagName, sections, usedNames);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
// Pass 2: Extract div-based components with meaningful class names
|
|
45
|
+
$body.children().each((_, el) => {
|
|
46
|
+
const $el = $(el);
|
|
47
|
+
const tagName = el.tagName?.toLowerCase();
|
|
48
|
+
if (tagName !== 'div')
|
|
49
|
+
return;
|
|
50
|
+
const id = $el.attr('id');
|
|
51
|
+
const className = $el.attr('class') || '';
|
|
52
|
+
const classes = className.split(/\s+/).filter(Boolean);
|
|
53
|
+
const innerHtml = $el.html()?.trim() || '';
|
|
54
|
+
// Skip small/empty divs
|
|
55
|
+
if (innerHtml.length < MIN_CONTENT_LENGTH)
|
|
56
|
+
return;
|
|
57
|
+
// Check if any class matches component patterns
|
|
58
|
+
const matchedClass = classes.find(cls => COMPONENT_CLASS_PATTERNS.some(pattern => pattern.test(cls)));
|
|
59
|
+
if (matchedClass || id) {
|
|
60
|
+
extractElement($, $el, tagName, sections, usedNames);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
sections,
|
|
65
|
+
parentHtml: $body.html() || bodyHtml,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function extractElement($, $el, tagName, sections, usedNames) {
|
|
69
|
+
// Skip empty elements
|
|
70
|
+
const innerText = $el.text().trim();
|
|
71
|
+
const innerHtmlContent = $el.html()?.trim();
|
|
72
|
+
if (!innerText && !innerHtmlContent)
|
|
73
|
+
return;
|
|
74
|
+
// Determine component name
|
|
75
|
+
const id = $el.attr('id');
|
|
76
|
+
const className = $el.attr('class')?.split(/\s+/)[0];
|
|
77
|
+
let baseName = id || className || tagName;
|
|
78
|
+
let componentName = toComponentName(baseName);
|
|
79
|
+
// Avoid reserved names
|
|
80
|
+
if (RESERVED_NAMES.has(componentName)) {
|
|
81
|
+
componentName = `${componentName}Section`;
|
|
82
|
+
}
|
|
83
|
+
// Deduplicate names
|
|
84
|
+
if (usedNames.has(componentName)) {
|
|
85
|
+
let i = 2;
|
|
86
|
+
while (usedNames.has(`${componentName}${i}`))
|
|
87
|
+
i++;
|
|
88
|
+
componentName = `${componentName}${i}`;
|
|
89
|
+
}
|
|
90
|
+
usedNames.add(componentName);
|
|
91
|
+
const innerHtml = $.html($el);
|
|
92
|
+
sections.push({
|
|
93
|
+
name: componentName,
|
|
94
|
+
html: innerHtml,
|
|
95
|
+
tagName,
|
|
96
|
+
id: id || undefined,
|
|
97
|
+
className: className || undefined,
|
|
98
|
+
});
|
|
99
|
+
// Replace with a component placeholder
|
|
100
|
+
$el.replaceWith(`<div data-component-placeholder="${componentName}"></div>`);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Detect shared layout elements across multiple HTML pages.
|
|
104
|
+
* Returns common header/footer HTML if found in majority of pages.
|
|
105
|
+
*/
|
|
106
|
+
export function detectSharedLayout(pages) {
|
|
107
|
+
if (pages.length < 2)
|
|
108
|
+
return { header: null, footer: null };
|
|
109
|
+
const headerCandidates = [];
|
|
110
|
+
const footerCandidates = [];
|
|
111
|
+
for (const html of pages) {
|
|
112
|
+
const $ = cheerio.load(html, { xml: false });
|
|
113
|
+
const header = $('header').first().html();
|
|
114
|
+
const footer = $('footer').first().html();
|
|
115
|
+
if (header)
|
|
116
|
+
headerCandidates.push(header.trim());
|
|
117
|
+
if (footer)
|
|
118
|
+
footerCandidates.push(footer.trim());
|
|
119
|
+
}
|
|
120
|
+
// A header/footer is "shared" if it appears in >50% of pages (minimum 2)
|
|
121
|
+
const threshold = Math.max(2, Math.ceil(pages.length / 2));
|
|
122
|
+
const headerCounts = countOccurrences(headerCandidates);
|
|
123
|
+
const footerCounts = countOccurrences(footerCandidates);
|
|
124
|
+
const sharedHeader = findMostCommon(headerCounts, threshold);
|
|
125
|
+
const sharedFooter = findMostCommon(footerCounts, threshold);
|
|
126
|
+
return { header: sharedHeader, footer: sharedFooter };
|
|
127
|
+
}
|
|
128
|
+
function countOccurrences(arr) {
|
|
129
|
+
const counts = new Map();
|
|
130
|
+
for (const item of arr) {
|
|
131
|
+
counts.set(item, (counts.get(item) || 0) + 1);
|
|
132
|
+
}
|
|
133
|
+
return counts;
|
|
134
|
+
}
|
|
135
|
+
function findMostCommon(counts, threshold) {
|
|
136
|
+
let best = null;
|
|
137
|
+
let bestCount = 0;
|
|
138
|
+
for (const [item, count] of counts) {
|
|
139
|
+
if (count >= threshold && count > bestCount) {
|
|
140
|
+
best = item;
|
|
141
|
+
bestCount = count;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return best;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=component-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-extractor.js","sourceRoot":"","sources":["../../src/generators/component-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ParsedHTML, ExtractedComponent } from '../types.js';
|
|
2
|
+
import { type AnalyzedJS } from '../parsers/js-analyzer.js';
|
|
3
|
+
/**
|
|
4
|
+
* Generate a React component from parsed HTML data.
|
|
5
|
+
* Optionally accepts a pre-computed analysis and custom hook info.
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateComponent(parsed: ParsedHTML, cssModules: boolean, preAnalysis?: AnalyzedJS): ExtractedComponent;
|
|
8
|
+
/**
|
|
9
|
+
* Render a full React component file from extracted component data.
|
|
10
|
+
*/
|
|
11
|
+
export declare function renderComponentFile(component: ExtractedComponent, cssModules: boolean, customHooks?: string[], analysis?: AnalyzedJS, subComponentImports?: string[]): string;
|
|
12
|
+
//# sourceMappingURL=component-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-generator.d.ts","sourceRoot":"","sources":["../../src/generators/component-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,EAAyC,KAAK,UAAU,EAA8C,MAAM,2BAA2B,CAAC;AAsG/I;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,OAAO,EACnB,WAAW,CAAC,EAAE,UAAU,GACvB,kBAAkB,CAmEpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,kBAAkB,EAC7B,UAAU,EAAE,OAAO,EACnB,WAAW,GAAE,MAAM,EAAO,EAC1B,QAAQ,CAAC,EAAE,UAAU,EACrB,mBAAmB,GAAE,MAAM,EAAO,GACjC,MAAM,CA8ZR"}
|