@urbicon-ui/docs-gen 6.1.4
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 +92 -0
- package/dist/cli/CLI.d.ts +10 -0
- package/dist/cli/CLI.d.ts.map +1 -0
- package/dist/cli/CLI.js +340 -0
- package/dist/cli/CLI.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/discovery/ComponentFinder.d.ts +43 -0
- package/dist/core/discovery/ComponentFinder.d.ts.map +1 -0
- package/dist/core/discovery/ComponentFinder.js +421 -0
- package/dist/core/discovery/ComponentFinder.js.map +1 -0
- package/dist/core/discovery/FileStructureAnalyzer.d.ts +15 -0
- package/dist/core/discovery/FileStructureAnalyzer.d.ts.map +1 -0
- package/dist/core/discovery/FileStructureAnalyzer.js +35 -0
- package/dist/core/discovery/FileStructureAnalyzer.js.map +1 -0
- package/dist/core/discovery/MetadataExtractor.d.ts +15 -0
- package/dist/core/discovery/MetadataExtractor.d.ts.map +1 -0
- package/dist/core/discovery/MetadataExtractor.js +47 -0
- package/dist/core/discovery/MetadataExtractor.js.map +1 -0
- package/dist/core/discovery/index.d.ts +2 -0
- package/dist/core/discovery/index.d.ts.map +1 -0
- package/dist/core/discovery/index.js +2 -0
- package/dist/core/discovery/index.js.map +1 -0
- package/dist/core/enrichment/APIDataGenerator.d.ts +77 -0
- package/dist/core/enrichment/APIDataGenerator.d.ts.map +1 -0
- package/dist/core/enrichment/APIDataGenerator.js +663 -0
- package/dist/core/enrichment/APIDataGenerator.js.map +1 -0
- package/dist/core/enrichment/index.d.ts +2 -0
- package/dist/core/enrichment/index.d.ts.map +1 -0
- package/dist/core/enrichment/index.js +6 -0
- package/dist/core/enrichment/index.js.map +1 -0
- package/dist/core/extraction/ExtractionCoordinator.d.ts +53 -0
- package/dist/core/extraction/ExtractionCoordinator.d.ts.map +1 -0
- package/dist/core/extraction/ExtractionCoordinator.js +352 -0
- package/dist/core/extraction/ExtractionCoordinator.js.map +1 -0
- package/dist/core/extraction/index.d.ts +2 -0
- package/dist/core/extraction/index.d.ts.map +1 -0
- package/dist/core/extraction/index.js +2 -0
- package/dist/core/extraction/index.js.map +1 -0
- package/dist/core/generation/GenerationCoordinator.d.ts +51 -0
- package/dist/core/generation/GenerationCoordinator.d.ts.map +1 -0
- package/dist/core/generation/GenerationCoordinator.js +206 -0
- package/dist/core/generation/GenerationCoordinator.js.map +1 -0
- package/dist/core/generation/index.d.ts +2 -0
- package/dist/core/generation/index.d.ts.map +1 -0
- package/dist/core/generation/index.js +2 -0
- package/dist/core/generation/index.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +16 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/pipeline/ErrorHandler.d.ts +129 -0
- package/dist/core/pipeline/ErrorHandler.d.ts.map +1 -0
- package/dist/core/pipeline/ErrorHandler.js +321 -0
- package/dist/core/pipeline/ErrorHandler.js.map +1 -0
- package/dist/core/pipeline/PipelineOrchestrator.d.ts +45 -0
- package/dist/core/pipeline/PipelineOrchestrator.d.ts.map +1 -0
- package/dist/core/pipeline/PipelineOrchestrator.js +216 -0
- package/dist/core/pipeline/PipelineOrchestrator.js.map +1 -0
- package/dist/core/pipeline/index.d.ts +1 -0
- package/dist/core/pipeline/index.d.ts.map +1 -0
- package/dist/core/pipeline/index.js +2 -0
- package/dist/core/pipeline/index.js.map +1 -0
- package/dist/extractors/BaseExtractor.d.ts +33 -0
- package/dist/extractors/BaseExtractor.d.ts.map +1 -0
- package/dist/extractors/BaseExtractor.js +68 -0
- package/dist/extractors/BaseExtractor.js.map +1 -0
- package/dist/extractors/ExtractorFactory.d.ts +35 -0
- package/dist/extractors/ExtractorFactory.d.ts.map +1 -0
- package/dist/extractors/ExtractorFactory.js +88 -0
- package/dist/extractors/ExtractorFactory.js.map +1 -0
- package/dist/extractors/documentation/index.d.ts +1 -0
- package/dist/extractors/documentation/index.d.ts.map +1 -0
- package/dist/extractors/documentation/index.js +2 -0
- package/dist/extractors/documentation/index.js.map +1 -0
- package/dist/extractors/index.d.ts +1 -0
- package/dist/extractors/index.d.ts.map +1 -0
- package/dist/extractors/index.js +2 -0
- package/dist/extractors/index.js.map +1 -0
- package/dist/extractors/typescript/ExamplesExtractor.d.ts +32 -0
- package/dist/extractors/typescript/ExamplesExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/ExamplesExtractor.js +209 -0
- package/dist/extractors/typescript/ExamplesExtractor.js.map +1 -0
- package/dist/extractors/typescript/InheritanceExtractor.d.ts +45 -0
- package/dist/extractors/typescript/InheritanceExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/InheritanceExtractor.js +368 -0
- package/dist/extractors/typescript/InheritanceExtractor.js.map +1 -0
- package/dist/extractors/typescript/LocalTypesExtractor.d.ts +20 -0
- package/dist/extractors/typescript/LocalTypesExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/LocalTypesExtractor.js +100 -0
- package/dist/extractors/typescript/LocalTypesExtractor.js.map +1 -0
- package/dist/extractors/typescript/PropsExtractor.d.ts +142 -0
- package/dist/extractors/typescript/PropsExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/PropsExtractor.js +709 -0
- package/dist/extractors/typescript/PropsExtractor.js.map +1 -0
- package/dist/extractors/typescript/TypeScriptBaseExtractor.d.ts +74 -0
- package/dist/extractors/typescript/TypeScriptBaseExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/TypeScriptBaseExtractor.js +249 -0
- package/dist/extractors/typescript/TypeScriptBaseExtractor.js.map +1 -0
- package/dist/extractors/typescript/index.d.ts +1 -0
- package/dist/extractors/typescript/index.d.ts.map +1 -0
- package/dist/extractors/typescript/index.js +2 -0
- package/dist/extractors/typescript/index.js.map +1 -0
- package/dist/extractors/variants/TailwindVariantsParser.d.ts +16 -0
- package/dist/extractors/variants/TailwindVariantsParser.d.ts.map +1 -0
- package/dist/extractors/variants/TailwindVariantsParser.js +53 -0
- package/dist/extractors/variants/TailwindVariantsParser.js.map +1 -0
- package/dist/extractors/variants/VariantsExtractor.d.ts +45 -0
- package/dist/extractors/variants/VariantsExtractor.d.ts.map +1 -0
- package/dist/extractors/variants/VariantsExtractor.js +340 -0
- package/dist/extractors/variants/VariantsExtractor.js.map +1 -0
- package/dist/extractors/variants/index.d.ts +2 -0
- package/dist/extractors/variants/index.d.ts.map +1 -0
- package/dist/extractors/variants/index.js +2 -0
- package/dist/extractors/variants/index.js.map +1 -0
- package/dist/generators/api/APIFileGenerator.d.ts +32 -0
- package/dist/generators/api/APIFileGenerator.d.ts.map +1 -0
- package/dist/generators/api/APIFileGenerator.js +450 -0
- package/dist/generators/api/APIFileGenerator.js.map +1 -0
- package/dist/generators/api/TypeDefinitionGenerator.d.ts +1 -0
- package/dist/generators/api/TypeDefinitionGenerator.d.ts.map +1 -0
- package/dist/generators/api/TypeDefinitionGenerator.js +2 -0
- package/dist/generators/api/TypeDefinitionGenerator.js.map +1 -0
- package/dist/generators/api/index.d.ts +2 -0
- package/dist/generators/api/index.d.ts.map +1 -0
- package/dist/generators/api/index.js +2 -0
- package/dist/generators/api/index.js.map +1 -0
- package/dist/generators/index.d.ts +5 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +4 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/llm/LLMDocumentationGenerator.d.ts +34 -0
- package/dist/generators/llm/LLMDocumentationGenerator.d.ts.map +1 -0
- package/dist/generators/llm/LLMDocumentationGenerator.js +480 -0
- package/dist/generators/llm/LLMDocumentationGenerator.js.map +1 -0
- package/dist/generators/llm/LLMFormatter.d.ts +4 -0
- package/dist/generators/llm/LLMFormatter.d.ts.map +1 -0
- package/dist/generators/llm/LLMFormatter.js +8 -0
- package/dist/generators/llm/LLMFormatter.js.map +1 -0
- package/dist/generators/llm/LlmsFullAssembler.d.ts +20 -0
- package/dist/generators/llm/LlmsFullAssembler.d.ts.map +1 -0
- package/dist/generators/llm/LlmsFullAssembler.js +63 -0
- package/dist/generators/llm/LlmsFullAssembler.js.map +1 -0
- package/dist/generators/llm/index.d.ts +1 -0
- package/dist/generators/llm/index.d.ts.map +1 -0
- package/dist/generators/llm/index.js +2 -0
- package/dist/generators/llm/index.js.map +1 -0
- package/dist/generators/mcp/MCPCatalogAssembler.d.ts +27 -0
- package/dist/generators/mcp/MCPCatalogAssembler.d.ts.map +1 -0
- package/dist/generators/mcp/MCPCatalogAssembler.js +147 -0
- package/dist/generators/mcp/MCPCatalogAssembler.js.map +1 -0
- package/dist/generators/mcp/MCPCatalogGenerator.d.ts +55 -0
- package/dist/generators/mcp/MCPCatalogGenerator.d.ts.map +1 -0
- package/dist/generators/mcp/MCPCatalogGenerator.js +153 -0
- package/dist/generators/mcp/MCPCatalogGenerator.js.map +1 -0
- package/dist/generators/svelte/PageGenerator.d.ts +82 -0
- package/dist/generators/svelte/PageGenerator.d.ts.map +1 -0
- package/dist/generators/svelte/PageGenerator.js +557 -0
- package/dist/generators/svelte/PageGenerator.js.map +1 -0
- package/dist/generators/svelte/PlaygroundPresets.d.ts +2 -0
- package/dist/generators/svelte/PlaygroundPresets.d.ts.map +1 -0
- package/dist/generators/svelte/PlaygroundPresets.js +4 -0
- package/dist/generators/svelte/PlaygroundPresets.js.map +1 -0
- package/dist/generators/svelte/SectionMerger.d.ts +38 -0
- package/dist/generators/svelte/SectionMerger.d.ts.map +1 -0
- package/dist/generators/svelte/SectionMerger.js +154 -0
- package/dist/generators/svelte/SectionMerger.js.map +1 -0
- package/dist/generators/svelte/TemplateEngine.d.ts +91 -0
- package/dist/generators/svelte/TemplateEngine.d.ts.map +1 -0
- package/dist/generators/svelte/TemplateEngine.js +500 -0
- package/dist/generators/svelte/TemplateEngine.js.map +1 -0
- package/dist/generators/svelte/index.d.ts +8 -0
- package/dist/generators/svelte/index.d.ts.map +1 -0
- package/dist/generators/svelte/index.js +11 -0
- package/dist/generators/svelte/index.js.map +1 -0
- package/dist/generators/svelte/renderers/ApiRenderer.d.ts +17 -0
- package/dist/generators/svelte/renderers/ApiRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/ApiRenderer.js +44 -0
- package/dist/generators/svelte/renderers/ApiRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/ExampleRenderer.d.ts +33 -0
- package/dist/generators/svelte/renderers/ExampleRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/ExampleRenderer.js +137 -0
- package/dist/generators/svelte/renderers/ExampleRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/OverviewRenderer.d.ts +9 -0
- package/dist/generators/svelte/renderers/OverviewRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/OverviewRenderer.js +45 -0
- package/dist/generators/svelte/renderers/OverviewRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/PlaygroundRenderer.d.ts +35 -0
- package/dist/generators/svelte/renderers/PlaygroundRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/PlaygroundRenderer.js +319 -0
- package/dist/generators/svelte/renderers/PlaygroundRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/TypesRenderer.d.ts +9 -0
- package/dist/generators/svelte/renderers/TypesRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/TypesRenderer.js +23 -0
- package/dist/generators/svelte/renderers/TypesRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/UsageRenderer.d.ts +14 -0
- package/dist/generators/svelte/renderers/UsageRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/UsageRenderer.js +91 -0
- package/dist/generators/svelte/renderers/UsageRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/VariantsRenderer.d.ts +43 -0
- package/dist/generators/svelte/renderers/VariantsRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/VariantsRenderer.js +277 -0
- package/dist/generators/svelte/renderers/VariantsRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/index.d.ts +8 -0
- package/dist/generators/svelte/renderers/index.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/index.js +8 -0
- package/dist/generators/svelte/renderers/index.js.map +1 -0
- package/dist/generators/svelte/types.d.ts +13 -0
- package/dist/generators/svelte/types.d.ts.map +1 -0
- package/dist/generators/svelte/types.js +2 -0
- package/dist/generators/svelte/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/SvelteDocsParser.d.ts +44 -0
- package/dist/parsers/SvelteDocsParser.d.ts.map +1 -0
- package/dist/parsers/SvelteDocsParser.js +141 -0
- package/dist/parsers/SvelteDocsParser.js.map +1 -0
- package/dist/parsers/index.d.ts +2 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +6 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/schema/ConfigurationBuilder.d.ts +55 -0
- package/dist/schema/ConfigurationBuilder.d.ts.map +1 -0
- package/dist/schema/ConfigurationBuilder.js +447 -0
- package/dist/schema/ConfigurationBuilder.js.map +1 -0
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/configuration.d.ts +255 -0
- package/dist/types/configuration.d.ts.map +1 -0
- package/dist/types/configuration.js +2 -0
- package/dist/types/configuration.js.map +1 -0
- package/dist/types/core.d.ts +96 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +2 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/docs-config.d.ts +5 -0
- package/dist/types/docs-config.d.ts.map +1 -0
- package/dist/types/docs-config.js +51 -0
- package/dist/types/docs-config.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/validation.d.ts +321 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +2 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/utils/DeploymentManager.d.ts +80 -0
- package/dist/utils/DeploymentManager.d.ts.map +1 -0
- package/dist/utils/DeploymentManager.js +360 -0
- package/dist/utils/DeploymentManager.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Generates the api-props.ts file that other phases can consume
|
|
5
|
+
* This is the critical output that enables the API-first architecture
|
|
6
|
+
*/
|
|
7
|
+
export class APIFileGenerator {
|
|
8
|
+
config;
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.config = config;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Generate API file from API data
|
|
14
|
+
*/
|
|
15
|
+
async generate(apiData) {
|
|
16
|
+
console.log(`📄 Generating API output: ${this.config.outputPath}`);
|
|
17
|
+
const startTime = Date.now();
|
|
18
|
+
try {
|
|
19
|
+
// Generate file content based on format
|
|
20
|
+
let content;
|
|
21
|
+
switch (this.config.format) {
|
|
22
|
+
case 'typescript':
|
|
23
|
+
content = this.generateTypeScriptFile(apiData);
|
|
24
|
+
break;
|
|
25
|
+
case 'json':
|
|
26
|
+
content = this.generateJSONFile(apiData);
|
|
27
|
+
break;
|
|
28
|
+
case 'yaml':
|
|
29
|
+
content = this.generateYAMLFile(apiData);
|
|
30
|
+
break;
|
|
31
|
+
default:
|
|
32
|
+
throw new Error(`Unsupported API format: ${this.config.format}`);
|
|
33
|
+
}
|
|
34
|
+
// If outputPath has no extension, treat it as a directory and write per-component files
|
|
35
|
+
const ext = path.extname(this.config.outputPath);
|
|
36
|
+
if (!ext) {
|
|
37
|
+
let totalSize = 0;
|
|
38
|
+
await fs.mkdir(this.config.outputPath, { recursive: true });
|
|
39
|
+
for (const [componentName, componentData] of Object.entries(apiData.components)) {
|
|
40
|
+
const group = componentData.group;
|
|
41
|
+
const slug = this.toSlug(componentName);
|
|
42
|
+
// Avoid nested duplicate group segment (e.g., components/components)
|
|
43
|
+
const dir = group
|
|
44
|
+
? path.join(this.config.outputPath, group, slug)
|
|
45
|
+
: path.join(this.config.outputPath, slug);
|
|
46
|
+
await fs.mkdir(dir, { recursive: true });
|
|
47
|
+
const filePath = path.join(dir, 'api.ts');
|
|
48
|
+
const fileContent = this.generatePerComponentTypeScriptFile(componentName, componentData, apiData);
|
|
49
|
+
await fs.writeFile(filePath, fileContent, 'utf-8');
|
|
50
|
+
const st = await fs.stat(filePath);
|
|
51
|
+
totalSize += st.size;
|
|
52
|
+
}
|
|
53
|
+
const duration = Date.now() - startTime;
|
|
54
|
+
console.log(`✅ API component files generated in ${duration}ms`);
|
|
55
|
+
console.log(` 📦 Total size: ${Math.round(totalSize / 1024)}KB`);
|
|
56
|
+
console.log(` 🧩 Components: ${Object.keys(apiData.components).length}`);
|
|
57
|
+
return {
|
|
58
|
+
type: 'api',
|
|
59
|
+
path: this.config.outputPath,
|
|
60
|
+
size: totalSize,
|
|
61
|
+
components: Object.keys(apiData.components)
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// Else: write single aggregate file
|
|
65
|
+
const outputDir = path.dirname(this.config.outputPath);
|
|
66
|
+
await fs.mkdir(outputDir, { recursive: true });
|
|
67
|
+
// Write file
|
|
68
|
+
await fs.writeFile(this.config.outputPath, content, 'utf-8');
|
|
69
|
+
const stats = await fs.stat(this.config.outputPath);
|
|
70
|
+
const duration = Date.now() - startTime;
|
|
71
|
+
console.log(`✅ API file generated successfully in ${duration}ms`);
|
|
72
|
+
console.log(` 📦 Size: ${Math.round(stats.size / 1024)}KB`);
|
|
73
|
+
console.log(` 🧩 Components: ${Object.keys(apiData.components).length}`);
|
|
74
|
+
return {
|
|
75
|
+
type: 'api',
|
|
76
|
+
path: this.config.outputPath,
|
|
77
|
+
size: stats.size,
|
|
78
|
+
components: Object.keys(apiData.components)
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
throw new Error(`Failed to generate API file: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// ==========================================
|
|
86
|
+
// TYPESCRIPT FILE GENERATION
|
|
87
|
+
// ==========================================
|
|
88
|
+
generateTypeScriptFile(apiData) {
|
|
89
|
+
const lines = [];
|
|
90
|
+
// File header
|
|
91
|
+
lines.push('// ==========================================');
|
|
92
|
+
lines.push('// AUTO-GENERATED API PROPS FILE');
|
|
93
|
+
lines.push('// ==========================================');
|
|
94
|
+
lines.push('// This file is automatically generated by docs-gen');
|
|
95
|
+
lines.push(`// Generated: ${apiData.metadata.generated}`);
|
|
96
|
+
lines.push(`// Version: ${apiData.metadata.version}`);
|
|
97
|
+
lines.push(`// Components: ${apiData.metadata.totalComponents}`);
|
|
98
|
+
lines.push(`// Total Props: ${apiData.metadata.totalProps}`);
|
|
99
|
+
lines.push('// ==========================================');
|
|
100
|
+
lines.push('');
|
|
101
|
+
// Import statements
|
|
102
|
+
lines.push('// Type imports for component props');
|
|
103
|
+
lines.push("import type { ComponentEvents, Snippet } from 'svelte';");
|
|
104
|
+
lines.push("import type { HTMLAttributes } from 'svelte/elements';");
|
|
105
|
+
lines.push('');
|
|
106
|
+
// Generate type definitions
|
|
107
|
+
if (apiData.types.length > 0) {
|
|
108
|
+
lines.push('// ==========================================');
|
|
109
|
+
lines.push('// TYPE DEFINITIONS');
|
|
110
|
+
lines.push('// ==========================================');
|
|
111
|
+
lines.push('');
|
|
112
|
+
for (const typeDef of apiData.types) {
|
|
113
|
+
lines.push(`// ${typeDef.documentation || typeDef.name}`);
|
|
114
|
+
if (typeDef.type === 'enum' || typeDef.type === 'interface') {
|
|
115
|
+
// For enums/interfaces, the definition already contains full syntax
|
|
116
|
+
lines.push(`export ${typeDef.type} ${typeDef.name} ${typeDef.definition}`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Default to type alias
|
|
120
|
+
lines.push(`export type ${typeDef.name} = ${typeDef.definition};`);
|
|
121
|
+
}
|
|
122
|
+
lines.push('');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Generate prop interfaces
|
|
126
|
+
lines.push('// ==========================================');
|
|
127
|
+
lines.push('// COMPONENT PROP INTERFACES');
|
|
128
|
+
lines.push('// ==========================================');
|
|
129
|
+
lines.push('');
|
|
130
|
+
for (const [componentName, componentData] of Object.entries(apiData.components)) {
|
|
131
|
+
lines.push(...this.generateComponentInterface(componentName, componentData));
|
|
132
|
+
lines.push('');
|
|
133
|
+
}
|
|
134
|
+
// Generate component API data export
|
|
135
|
+
lines.push('// ==========================================');
|
|
136
|
+
lines.push('// COMPONENT API DATA');
|
|
137
|
+
lines.push('// ==========================================');
|
|
138
|
+
lines.push('');
|
|
139
|
+
lines.push('export interface ComponentAPIInfo {');
|
|
140
|
+
lines.push(' name: string;');
|
|
141
|
+
lines.push(' props: PropInfo[];');
|
|
142
|
+
lines.push(' variants: VariantInfo[];');
|
|
143
|
+
lines.push(' inheritance: InheritanceInfo[];');
|
|
144
|
+
lines.push(' examples: string[];');
|
|
145
|
+
lines.push(' stats: ComponentStats;');
|
|
146
|
+
lines.push('}');
|
|
147
|
+
lines.push('');
|
|
148
|
+
lines.push('export interface PropInfo {');
|
|
149
|
+
lines.push(' name: string;');
|
|
150
|
+
lines.push(' type: string;');
|
|
151
|
+
lines.push(' required: boolean;');
|
|
152
|
+
lines.push(' description: string;');
|
|
153
|
+
lines.push(' defaultValue?: string;');
|
|
154
|
+
// Optional extras to match generated data structure
|
|
155
|
+
lines.push(' examples?: PropExample[];');
|
|
156
|
+
lines.push(' deprecated?: DeprecationInfo;');
|
|
157
|
+
lines.push(' experimental?: boolean;');
|
|
158
|
+
lines.push(' values?: string[];');
|
|
159
|
+
lines.push(' seeAlso?: string;');
|
|
160
|
+
lines.push(" source?: { type: 'direct' | 'inherited' | 'variant'; name?: string; package?: string; url?: string };");
|
|
161
|
+
lines.push(' conditionalOn?: { propName: string; values: string[] };');
|
|
162
|
+
lines.push('}');
|
|
163
|
+
lines.push('');
|
|
164
|
+
lines.push('export interface VariantInfo {');
|
|
165
|
+
lines.push(' name: string;');
|
|
166
|
+
lines.push(' values: string[];');
|
|
167
|
+
lines.push(' defaultValue?: string;');
|
|
168
|
+
// optional description in shared VariantInfo is not present; omit
|
|
169
|
+
lines.push(' examples?: VariantExample[];');
|
|
170
|
+
lines.push('}');
|
|
171
|
+
lines.push('');
|
|
172
|
+
// Minimal supporting types used in COMPONENT_API_DATA
|
|
173
|
+
lines.push('export interface PropExample { title: string; code: string; description?: string }');
|
|
174
|
+
lines.push('export interface DeprecationInfo { message: string; since?: string; alternative?: string }');
|
|
175
|
+
lines.push('export interface VariantExample { value: string; label?: string; description?: string; code?: string }');
|
|
176
|
+
lines.push('export interface InheritanceProp { name: string; type: string; required: boolean; description?: string; source?: { type: string; name: string; package?: string } }');
|
|
177
|
+
lines.push('export interface InheritanceInfo { typeName: string; source: string; url?: string; props: InheritanceProp[] }');
|
|
178
|
+
lines.push('export interface ComponentStats { totalProps: number; directProps: number; variantProps: number; inheritedProps: number }');
|
|
179
|
+
lines.push('export type MintProp = string | string[] | Record<string, unknown>;');
|
|
180
|
+
lines.push('');
|
|
181
|
+
// Export component data
|
|
182
|
+
lines.push('export const COMPONENT_API_DATA: Record<string, ComponentAPIInfo> = {');
|
|
183
|
+
const componentEntries = Object.entries(apiData.components).map(([name, data]) => {
|
|
184
|
+
const dataStr = JSON.stringify(data, null, 2)
|
|
185
|
+
.split('\n')
|
|
186
|
+
.map((line, index) => (index === 0 ? line : ` ${line}`))
|
|
187
|
+
.join('\n');
|
|
188
|
+
return ` "${name}": ${dataStr}`;
|
|
189
|
+
});
|
|
190
|
+
lines.push(componentEntries.join(',\n'));
|
|
191
|
+
lines.push('} as const;');
|
|
192
|
+
lines.push('');
|
|
193
|
+
// Export convenience functions
|
|
194
|
+
lines.push('// ==========================================');
|
|
195
|
+
lines.push('// CONVENIENCE FUNCTIONS');
|
|
196
|
+
lines.push('// ==========================================');
|
|
197
|
+
lines.push('');
|
|
198
|
+
lines.push('export function getComponentAPI(componentName: string): ComponentAPIInfo | undefined {');
|
|
199
|
+
lines.push(' return COMPONENT_API_DATA[componentName];');
|
|
200
|
+
lines.push('}');
|
|
201
|
+
lines.push('');
|
|
202
|
+
lines.push('export function getComponentProps(componentName: string): PropInfo[] {');
|
|
203
|
+
lines.push(' return getComponentAPI(componentName)?.props || [];');
|
|
204
|
+
lines.push('}');
|
|
205
|
+
lines.push('');
|
|
206
|
+
lines.push('export function getComponentVariants(componentName: string): VariantInfo[] {');
|
|
207
|
+
lines.push(' return getComponentAPI(componentName)?.variants || [];');
|
|
208
|
+
lines.push('}');
|
|
209
|
+
lines.push('');
|
|
210
|
+
lines.push('export function getAllComponents(): string[] {');
|
|
211
|
+
lines.push(' return Object.keys(COMPONENT_API_DATA);');
|
|
212
|
+
lines.push('}');
|
|
213
|
+
lines.push('');
|
|
214
|
+
// Deprecated: category is not part of PropInfo in this bundle; keep helper but always returns empty
|
|
215
|
+
lines.push('export function getComponentsByCategory(_category: string): string[] {');
|
|
216
|
+
lines.push(' return [];');
|
|
217
|
+
lines.push('}');
|
|
218
|
+
lines.push('');
|
|
219
|
+
// Export metadata
|
|
220
|
+
lines.push('// ==========================================');
|
|
221
|
+
lines.push('// METADATA');
|
|
222
|
+
lines.push('// ==========================================');
|
|
223
|
+
lines.push('');
|
|
224
|
+
lines.push('export const API_METADATA = {');
|
|
225
|
+
lines.push(` generated: "${apiData.metadata.generated}",`);
|
|
226
|
+
lines.push(` version: "${apiData.metadata.version}",`);
|
|
227
|
+
lines.push(` totalComponents: ${apiData.metadata.totalComponents},`);
|
|
228
|
+
lines.push(` totalProps: ${apiData.metadata.totalProps},`);
|
|
229
|
+
lines.push(` generator: "${apiData.metadata.generator}"`);
|
|
230
|
+
lines.push('} as const;');
|
|
231
|
+
return lines.join('\n');
|
|
232
|
+
}
|
|
233
|
+
generateComponentInterface(componentName, componentData) {
|
|
234
|
+
const lines = [];
|
|
235
|
+
// Interface comment
|
|
236
|
+
lines.push(`/**`);
|
|
237
|
+
lines.push(` * Props interface for ${componentName} component`);
|
|
238
|
+
lines.push(` * @generated Generated by docs-gen`);
|
|
239
|
+
lines.push(` */`);
|
|
240
|
+
// Interface definition
|
|
241
|
+
lines.push(`export interface ${componentName}Props {`);
|
|
242
|
+
// Add props
|
|
243
|
+
for (const prop of componentData.props) {
|
|
244
|
+
if (prop.name.startsWith('...'))
|
|
245
|
+
continue;
|
|
246
|
+
// Add JSDoc comment for prop
|
|
247
|
+
if (prop.description) {
|
|
248
|
+
lines.push(` /**`);
|
|
249
|
+
lines.push(` * ${prop.description}`);
|
|
250
|
+
if (prop.defaultValue) {
|
|
251
|
+
lines.push(` * @default ${prop.defaultValue}`);
|
|
252
|
+
}
|
|
253
|
+
if (prop.deprecated) {
|
|
254
|
+
lines.push(` * @deprecated ${prop.deprecated.message}`);
|
|
255
|
+
}
|
|
256
|
+
if (prop.experimental) {
|
|
257
|
+
lines.push(` * @experimental`);
|
|
258
|
+
}
|
|
259
|
+
lines.push(` */`);
|
|
260
|
+
}
|
|
261
|
+
// Property definition
|
|
262
|
+
const optional = prop.required ? '' : '?';
|
|
263
|
+
lines.push(` ${prop.name}${optional}: ${prop.type};`);
|
|
264
|
+
}
|
|
265
|
+
lines.push('}');
|
|
266
|
+
return lines;
|
|
267
|
+
}
|
|
268
|
+
// ==========================================
|
|
269
|
+
// PER-COMPONENT FILE GENERATION (DIRECTORY MODE)
|
|
270
|
+
// ==========================================
|
|
271
|
+
toSlug(input) {
|
|
272
|
+
return input
|
|
273
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1-$2')
|
|
274
|
+
.replace(/_/g, '-')
|
|
275
|
+
.replace(/\s+/g, '-')
|
|
276
|
+
.toLowerCase();
|
|
277
|
+
}
|
|
278
|
+
generatePerComponentTypeScriptFile(componentName, componentData, apiData) {
|
|
279
|
+
const lines = [];
|
|
280
|
+
lines.push('// AUTO-GENERATED FILE (per component)');
|
|
281
|
+
lines.push(`// Generated: ${apiData.metadata.generated}`);
|
|
282
|
+
lines.push(`// Component: ${componentName}`);
|
|
283
|
+
lines.push('');
|
|
284
|
+
lines.push('export interface PropExample { title: string; code: string; description?: string }');
|
|
285
|
+
lines.push('export interface DeprecationInfo { message: string; since?: string; alternative?: string }');
|
|
286
|
+
lines.push('export interface VariantExample { value: string; label?: string; description?: string; code?: string }');
|
|
287
|
+
lines.push("export interface InheritanceProp { name: string; type: string; required: boolean; description?: string; source?: { type: 'direct' | 'inherited' | 'variant'; name?: string; package?: string; url?: string }; seeAlso?: string; typeAnchor?: string; typePreview?: string; examples?: PropExample[] }");
|
|
288
|
+
lines.push('export interface InheritanceInfo { typeName: string; source: string; url?: string; props: InheritanceProp[] }');
|
|
289
|
+
lines.push('export interface ComponentStats { totalProps: number; directProps: number; variantProps: number; inheritedProps: number }');
|
|
290
|
+
lines.push('');
|
|
291
|
+
lines.push('export interface PropInfo {');
|
|
292
|
+
lines.push(' name: string;');
|
|
293
|
+
lines.push(' type: string;');
|
|
294
|
+
lines.push(' required: boolean;');
|
|
295
|
+
lines.push(' description: string;');
|
|
296
|
+
lines.push(' defaultValue?: string;');
|
|
297
|
+
lines.push(' examples?: PropExample[];');
|
|
298
|
+
lines.push(' deprecated?: DeprecationInfo;');
|
|
299
|
+
lines.push(' experimental?: boolean;');
|
|
300
|
+
lines.push(' values?: string[];');
|
|
301
|
+
lines.push(' seeAlso?: string;');
|
|
302
|
+
lines.push(' typeAnchor?: string;');
|
|
303
|
+
lines.push(' typePreview?: string;');
|
|
304
|
+
lines.push(" source?: { type: 'direct' | 'inherited' | 'variant'; name?: string; package?: string; url?: string };");
|
|
305
|
+
lines.push(' conditionalOn?: { propName: string; values: string[] };');
|
|
306
|
+
lines.push('}');
|
|
307
|
+
lines.push('');
|
|
308
|
+
lines.push('export interface VariantInfo {');
|
|
309
|
+
lines.push(' name: string;');
|
|
310
|
+
lines.push(' values: string[];');
|
|
311
|
+
lines.push(' defaultValue?: string;');
|
|
312
|
+
lines.push(' examples?: VariantExample[];');
|
|
313
|
+
lines.push('}');
|
|
314
|
+
lines.push('');
|
|
315
|
+
lines.push("export type ComponentStability = 'experimental' | 'beta' | 'stable' | 'deprecated';");
|
|
316
|
+
lines.push('');
|
|
317
|
+
lines.push('export interface ComponentAPIInfo {');
|
|
318
|
+
lines.push(' name: string;');
|
|
319
|
+
lines.push(' props: PropInfo[];');
|
|
320
|
+
lines.push(' variants: VariantInfo[];');
|
|
321
|
+
lines.push(' inheritance: InheritanceInfo[];');
|
|
322
|
+
lines.push(' examples: string[];');
|
|
323
|
+
lines.push(' stats: ComponentStats;');
|
|
324
|
+
lines.push(' group?: string;');
|
|
325
|
+
lines.push(' stability?: ComponentStability;');
|
|
326
|
+
lines.push(' sourceHref?: string;');
|
|
327
|
+
lines.push(' relatedComponents?: string[];');
|
|
328
|
+
lines.push(' types?: Array<{ name: string; type: string; definition: string; [key: string]: unknown }>;');
|
|
329
|
+
lines.push('}');
|
|
330
|
+
lines.push('');
|
|
331
|
+
const dataStr = JSON.stringify(componentData, null, 2);
|
|
332
|
+
lines.push(`export const componentData: ComponentAPIInfo = ${dataStr} as const;`);
|
|
333
|
+
lines.push('');
|
|
334
|
+
return lines.join('\n');
|
|
335
|
+
}
|
|
336
|
+
// ==========================================
|
|
337
|
+
// JSON FILE GENERATION
|
|
338
|
+
// ==========================================
|
|
339
|
+
generateJSONFile(apiData) {
|
|
340
|
+
// Clean up data for JSON (remove functions, etc.)
|
|
341
|
+
const cleanData = {
|
|
342
|
+
components: apiData.components,
|
|
343
|
+
types: apiData.types,
|
|
344
|
+
metadata: apiData.metadata
|
|
345
|
+
};
|
|
346
|
+
return JSON.stringify(cleanData, null, this.config.optimization?.minify ? 0 : 2);
|
|
347
|
+
}
|
|
348
|
+
// ==========================================
|
|
349
|
+
// YAML FILE GENERATION
|
|
350
|
+
// ==========================================
|
|
351
|
+
generateYAMLFile(apiData) {
|
|
352
|
+
// Simple YAML conversion (could use a proper YAML library)
|
|
353
|
+
const lines = [];
|
|
354
|
+
lines.push('# Auto-generated API data');
|
|
355
|
+
lines.push(`# Generated: ${apiData.metadata.generated}`);
|
|
356
|
+
lines.push(`# Components: ${apiData.metadata.totalComponents}`);
|
|
357
|
+
lines.push('');
|
|
358
|
+
lines.push('metadata:');
|
|
359
|
+
lines.push(` generated: "${apiData.metadata.generated}"`);
|
|
360
|
+
lines.push(` version: "${apiData.metadata.version}"`);
|
|
361
|
+
lines.push(` totalComponents: ${apiData.metadata.totalComponents}`);
|
|
362
|
+
lines.push(` totalProps: ${apiData.metadata.totalProps}`);
|
|
363
|
+
lines.push(` generator: "${apiData.metadata.generator}"`);
|
|
364
|
+
lines.push('');
|
|
365
|
+
lines.push('components:');
|
|
366
|
+
for (const [componentName, componentData] of Object.entries(apiData.components)) {
|
|
367
|
+
lines.push(` ${componentName}:`);
|
|
368
|
+
lines.push(` name: "${componentData.name}"`);
|
|
369
|
+
lines.push(` props:`);
|
|
370
|
+
for (const prop of componentData.props) {
|
|
371
|
+
lines.push(` - name: "${prop.name}"`);
|
|
372
|
+
lines.push(` type: "${prop.type}"`);
|
|
373
|
+
lines.push(` required: ${prop.required}`);
|
|
374
|
+
lines.push(` description: "${(prop.description || '').replace(/"/g, '\\"')}"`);
|
|
375
|
+
}
|
|
376
|
+
lines.push(` variants:`);
|
|
377
|
+
for (const variant of componentData.variants) {
|
|
378
|
+
lines.push(` - name: "${variant.name}"`);
|
|
379
|
+
lines.push(` values: [${variant.values.map((v) => `"${v}"`).join(', ')}]`);
|
|
380
|
+
lines.push(` defaultValue: "${variant.defaultValue || ''}"`);
|
|
381
|
+
lines.push(` description: "${variant.description || ''}"`);
|
|
382
|
+
}
|
|
383
|
+
lines.push('');
|
|
384
|
+
}
|
|
385
|
+
return lines.join('\n');
|
|
386
|
+
}
|
|
387
|
+
// ==========================================
|
|
388
|
+
// UTILITY METHODS
|
|
389
|
+
// ==========================================
|
|
390
|
+
/**
|
|
391
|
+
* Validate API data before generation
|
|
392
|
+
*/
|
|
393
|
+
validateAPIData(apiData) {
|
|
394
|
+
if (!apiData.components || Object.keys(apiData.components).length === 0) {
|
|
395
|
+
throw new Error('API data must contain at least one component');
|
|
396
|
+
}
|
|
397
|
+
if (!apiData.metadata) {
|
|
398
|
+
throw new Error('API data must contain metadata');
|
|
399
|
+
}
|
|
400
|
+
// Validate each component
|
|
401
|
+
for (const [componentName, componentData] of Object.entries(apiData.components)) {
|
|
402
|
+
if (!componentData.name) {
|
|
403
|
+
throw new Error(`Component ${componentName} missing name`);
|
|
404
|
+
}
|
|
405
|
+
if (!Array.isArray(componentData.props)) {
|
|
406
|
+
throw new Error(`Component ${componentName} props must be an array`);
|
|
407
|
+
}
|
|
408
|
+
if (!Array.isArray(componentData.variants)) {
|
|
409
|
+
throw new Error(`Component ${componentName} variants must be an array`);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Generate backup of existing API file if it exists
|
|
415
|
+
*/
|
|
416
|
+
async createBackup() {
|
|
417
|
+
try {
|
|
418
|
+
await fs.access(this.config.outputPath);
|
|
419
|
+
// File exists, create backup
|
|
420
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
421
|
+
const backupPath = `${this.config.outputPath}.backup-${timestamp}`;
|
|
422
|
+
await fs.copyFile(this.config.outputPath, backupPath);
|
|
423
|
+
console.log(`📋 Created backup: ${backupPath}`);
|
|
424
|
+
}
|
|
425
|
+
catch {
|
|
426
|
+
// File doesn't exist, no backup needed
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Compare with existing API file and report changes
|
|
431
|
+
*/
|
|
432
|
+
async reportChanges(newAPIData) {
|
|
433
|
+
try {
|
|
434
|
+
const existingContent = await fs.readFile(this.config.outputPath, 'utf-8');
|
|
435
|
+
// Extract metadata from existing file
|
|
436
|
+
const metadataMatch = existingContent.match(/\/\/ Components: (\d+)/);
|
|
437
|
+
const existingComponentCount = parseInt(metadataMatch?.[1] ?? '0', 10);
|
|
438
|
+
const newComponentCount = Object.keys(newAPIData.components).length;
|
|
439
|
+
if (existingComponentCount !== newComponentCount) {
|
|
440
|
+
console.log(`📊 Component count changed: ${existingComponentCount} → ${newComponentCount}`);
|
|
441
|
+
}
|
|
442
|
+
// Could do more detailed change detection here
|
|
443
|
+
}
|
|
444
|
+
catch (_error) {
|
|
445
|
+
// File doesn't exist yet
|
|
446
|
+
console.log('📄 Creating new API file');
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
//# sourceMappingURL=APIFileGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"APIFileGenerator.js","sourceRoot":"","sources":["../../../src/generators/api/APIFileGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=TypeDefinitionGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeDefinitionGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/api/TypeDefinitionGenerator.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeDefinitionGenerator.js","sourceRoot":"","sources":["../../../src/generators/api/TypeDefinitionGenerator.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './api';
|
|
2
|
+
export { LLMDocumentationGenerator } from './llm/LLMDocumentationGenerator';
|
|
3
|
+
export type { LlmsFullAssemblerConfig } from './llm/LlmsFullAssembler';
|
|
4
|
+
export { LlmsFullAssembler } from './llm/LlmsFullAssembler';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { APIData, EnrichedComponentInfo, GeneratedOutput } from '../../types';
|
|
2
|
+
import type { LLMOutputConfig } from '../../types/configuration';
|
|
3
|
+
/**
|
|
4
|
+
* Minimal LLM documentation generator
|
|
5
|
+
* - Focuses on API quick reference; optionally includes variants and examples
|
|
6
|
+
* - Respects SvelteDocsConfig.llm (include, priority, excludeTypes, maxSections)
|
|
7
|
+
* - Supports file or directory output depending on config.llm.outputPath
|
|
8
|
+
*/
|
|
9
|
+
export declare class LLMDocumentationGenerator {
|
|
10
|
+
private config;
|
|
11
|
+
private docsParser;
|
|
12
|
+
constructor(config: LLMOutputConfig);
|
|
13
|
+
generate(enrichedComponents: EnrichedComponentInfo[], apiData: APIData): Promise<GeneratedOutput>;
|
|
14
|
+
private generateSingleFileContent;
|
|
15
|
+
private generateComponentContent;
|
|
16
|
+
private renderOverviewMarkdown;
|
|
17
|
+
private renderApiMarkdown;
|
|
18
|
+
private renderVariantsMarkdown;
|
|
19
|
+
private renderExamplesMarkdown;
|
|
20
|
+
private loadDocsConfig;
|
|
21
|
+
private resolveDocsFilePath;
|
|
22
|
+
private shouldIncludeInLLM;
|
|
23
|
+
private orderAndLimitSections;
|
|
24
|
+
private calculateTotalSize;
|
|
25
|
+
private generateLlmsTxt;
|
|
26
|
+
private generateGlobalLlmsTxt;
|
|
27
|
+
private buildComponentJson;
|
|
28
|
+
private renderContextHeader;
|
|
29
|
+
private renderPatternsSection;
|
|
30
|
+
private extractSlotInfo;
|
|
31
|
+
private capitalize;
|
|
32
|
+
private toSlug;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=LLMDocumentationGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LLMDocumentationGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/llm/LLMDocumentationGenerator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,OAAO,EAEP,qBAAqB,EACrB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAA0B;gBAEhC,MAAM,EAAE,eAAe;IAI7B,QAAQ,CACZ,kBAAkB,EAAE,qBAAqB,EAAE,EAC3C,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,eAAe,CAAC;YAgFb,yBAAyB;YAyCzB,wBAAwB;IA+EtC,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,sBAAsB;YAiBhB,cAAc;YAMd,mBAAmB;IAyBjC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,qBAAqB;YAmBf,kBAAkB;IAahC,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,qBAAqB;IA2D7B,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,MAAM;CAOf"}
|