@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
package/README.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# @urbicon-ui/docs-gen
|
|
2
|
+
|
|
3
|
+
Documentation generator for UI component libraries. Extracts props, variants, and inheritance from TypeScript/Svelte components and generates API data files and LLM-friendly documentation.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
### From workspace root
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Generate docs for all packages (blocks, docs, table)
|
|
11
|
+
bun run docs:gen:all
|
|
12
|
+
|
|
13
|
+
# Generate for a specific package
|
|
14
|
+
bun run docs:gen:blocks
|
|
15
|
+
bun run docs:gen:docs
|
|
16
|
+
bun run docs:gen:table
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### From this package
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
bun run docs:gen # Generate all targets
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### CLI
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
docs-gen [command] [options]
|
|
29
|
+
|
|
30
|
+
Commands:
|
|
31
|
+
generate, build Generate documentation (default)
|
|
32
|
+
help Show help
|
|
33
|
+
|
|
34
|
+
Options:
|
|
35
|
+
--target <type> Target: 'blocks', 'docs', 'table', or 'all' (default: 'all')
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Architecture
|
|
39
|
+
|
|
40
|
+
The pipeline follows a strict sequence: **Discovery → Extraction → Enrichment → Generation**.
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
Phase 1: Discovery → Find components via glob patterns (ComponentFinder)
|
|
44
|
+
Phase 2: Extraction → Extract props, variants, inheritance from TypeScript
|
|
45
|
+
Phase 3: Enrichment → Resolve cross-refs, calculate stats, produce APIData
|
|
46
|
+
Phase 4: Generation → Write API file first, then LLM docs
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Discovery yields one component per `index.ts` (named after its directory). A
|
|
50
|
+
multi-component `index.ts` can opt additional exports into their own catalog
|
|
51
|
+
entries via an `@standalone` JSDoc tag on the export's `<Name>Props` interface
|
|
52
|
+
(plus a matching `export { default as Name } from './Name.svelte'`) — used by
|
|
53
|
+
the Guide surfaces. Exports without the tag are treated as compound
|
|
54
|
+
subcomponents and stay folded into the directory component's entry.
|
|
55
|
+
|
|
56
|
+
### Key modules
|
|
57
|
+
|
|
58
|
+
| Path | Purpose |
|
|
59
|
+
|------|---------|
|
|
60
|
+
| `src/core/pipeline/PipelineOrchestrator.ts` | Main pipeline coordinator |
|
|
61
|
+
| `src/core/discovery/ComponentFinder.ts` | Component discovery |
|
|
62
|
+
| `src/core/extraction/ExtractionCoordinator.ts` | Orchestrates extractors |
|
|
63
|
+
| `src/core/enrichment/APIDataGenerator.ts` | API data generation |
|
|
64
|
+
| `src/core/generation/GenerationCoordinator.ts` | Output coordination |
|
|
65
|
+
| `src/generators/api/APIFileGenerator.ts` | Per-component `api.ts` files |
|
|
66
|
+
| `src/generators/llm/LLMDocumentationGenerator.ts` | LLM text output |
|
|
67
|
+
|
|
68
|
+
## Configuration
|
|
69
|
+
|
|
70
|
+
Configuration is built via `DocsConfigurationBuilder` and `ConfigurationFactory`. Presets:
|
|
71
|
+
|
|
72
|
+
- `ConfigurationFactory.blocks()` — `@urbicon-ui/blocks`
|
|
73
|
+
- `ConfigurationFactory.docs()` — `@urbicon-ui/docs`
|
|
74
|
+
- `ConfigurationFactory.table()` — `@urbicon-ui/table`
|
|
75
|
+
|
|
76
|
+
### Output paths
|
|
77
|
+
|
|
78
|
+
| Target | API output | LLM output |
|
|
79
|
+
|--------|-----------|------------|
|
|
80
|
+
| blocks | `apps/docs/src/routes/blocks/` | `apps/docs/static/blocks/` |
|
|
81
|
+
| docs | `apps/docs/src/routes/docs/` | `apps/docs/static/docs/` |
|
|
82
|
+
| table | `apps/docs/src/routes/table/` | `apps/docs/static/table/` |
|
|
83
|
+
|
|
84
|
+
## Scripts
|
|
85
|
+
|
|
86
|
+
| Script | Description |
|
|
87
|
+
|--------|-------------|
|
|
88
|
+
| `bun run docs:gen` | Generate documentation |
|
|
89
|
+
| `bun run test` | Run Vitest |
|
|
90
|
+
| `bun run test:watch` | Watch mode tests |
|
|
91
|
+
| `bun run build` | Build TypeScript |
|
|
92
|
+
| `bun run typecheck` | Type check only |
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class DocsGeneratorCLI {
|
|
2
|
+
run(args?: string[]): Promise<void>;
|
|
3
|
+
private generateCommand;
|
|
4
|
+
private generateTarget;
|
|
5
|
+
private assembleLlmsFull;
|
|
6
|
+
private scaffoldCommand;
|
|
7
|
+
private parseOptions;
|
|
8
|
+
private showHelp;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=CLI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CLI.d.ts","sourceRoot":"","sources":["../../src/cli/CLI.ts"],"names":[],"mappings":"AAaA,qBAAa,gBAAgB;IACrB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;YA8BlD,eAAe;YAwBf,cAAc;YAyCd,gBAAgB;YAiDhB,eAAe;IA6L7B,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,QAAQ;CAuBjB"}
|
package/dist/cli/CLI.js
ADDED
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { LlmsFullAssembler } from '../generators/llm/LlmsFullAssembler';
|
|
5
|
+
import { MCPCatalogAssembler } from '../generators/mcp/MCPCatalogAssembler';
|
|
6
|
+
import { ConfigurationFactory } from '../schema/ConfigurationBuilder';
|
|
7
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
function resolveFromDocsGen(...segments) {
|
|
9
|
+
return path.resolve(__dirname, '..', '..', ...segments);
|
|
10
|
+
}
|
|
11
|
+
export class DocsGeneratorCLI {
|
|
12
|
+
async run(args = process.argv.slice(2)) {
|
|
13
|
+
const command = args[0] || 'generate';
|
|
14
|
+
const options = this.parseOptions(args.slice(1));
|
|
15
|
+
try {
|
|
16
|
+
switch (command) {
|
|
17
|
+
case 'generate':
|
|
18
|
+
case 'build':
|
|
19
|
+
await this.generateCommand(options);
|
|
20
|
+
break;
|
|
21
|
+
case 'scaffold':
|
|
22
|
+
await this.scaffoldCommand(args.slice(1));
|
|
23
|
+
break;
|
|
24
|
+
case 'help':
|
|
25
|
+
this.showHelp();
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
console.error(`Unknown command: ${command}`);
|
|
29
|
+
this.showHelp();
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
console.error('❌ Command failed:', error);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async generateCommand(options) {
|
|
39
|
+
const target = options.target || 'all';
|
|
40
|
+
if (target === 'all' || target === 'both') {
|
|
41
|
+
console.log('📚 Generating documentation for all packages...');
|
|
42
|
+
await this.generateTarget('blocks');
|
|
43
|
+
await this.generateTarget('docs');
|
|
44
|
+
await this.generateTarget('table');
|
|
45
|
+
await this.generateTarget('auth');
|
|
46
|
+
await this.assembleLlmsFull();
|
|
47
|
+
}
|
|
48
|
+
else if (target === 'blocks' ||
|
|
49
|
+
target === 'docs' ||
|
|
50
|
+
target === 'table' ||
|
|
51
|
+
target === 'auth') {
|
|
52
|
+
console.log(`📚 Generating documentation for ${target}...`);
|
|
53
|
+
await this.generateTarget(target);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.error(`Unknown target: ${target}. Valid: blocks, docs, table, auth, all`);
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async generateTarget(target) {
|
|
61
|
+
console.log(`\n🔄 Processing ${target} package...`);
|
|
62
|
+
const configMap = {
|
|
63
|
+
blocks: ConfigurationFactory.blocks,
|
|
64
|
+
docs: ConfigurationFactory.docs,
|
|
65
|
+
table: ConfigurationFactory.table,
|
|
66
|
+
auth: ConfigurationFactory.auth
|
|
67
|
+
};
|
|
68
|
+
const config = configMap[target]();
|
|
69
|
+
console.log(`✅ Configuration loaded: ${config.input.packages.length} packages`);
|
|
70
|
+
const { PipelineOrchestrator } = await import('../core/pipeline/PipelineOrchestrator');
|
|
71
|
+
const orchestrator = new PipelineOrchestrator(config);
|
|
72
|
+
const result = await orchestrator.execute();
|
|
73
|
+
if (result.success) {
|
|
74
|
+
console.log(`🎉 ${target} documentation generation completed successfully!`);
|
|
75
|
+
console.log(`📊 Generated ${result.stats.totalComponents} components in ${result.duration}ms`);
|
|
76
|
+
if (result.outputs.length > 0) {
|
|
77
|
+
console.log('📄 Generated outputs:');
|
|
78
|
+
result.outputs.forEach((output) => {
|
|
79
|
+
console.log(` - ${output.type}: ${output.path} (${output.components.length} components)`);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.error(`❌ ${target} documentation generation failed`);
|
|
85
|
+
result.errors.forEach((error) => {
|
|
86
|
+
console.error(` - ${error.type}: ${error.message}`);
|
|
87
|
+
});
|
|
88
|
+
throw new Error(`${target} generation failed`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async assembleLlmsFull() {
|
|
92
|
+
console.log('\n🔗 Assembling llms-full.txt...');
|
|
93
|
+
const assembler = new LlmsFullAssembler({
|
|
94
|
+
templatePath: resolveFromDocsGen('templates', 'llms-full-template.md'),
|
|
95
|
+
staticDirs: [
|
|
96
|
+
resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'blocks'),
|
|
97
|
+
resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'docs'),
|
|
98
|
+
resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'table'),
|
|
99
|
+
resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'auth')
|
|
100
|
+
],
|
|
101
|
+
outputPaths: [
|
|
102
|
+
resolveFromDocsGen('..', '..', 'llms-full.txt'),
|
|
103
|
+
resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'llms-full.txt')
|
|
104
|
+
]
|
|
105
|
+
});
|
|
106
|
+
const result = await assembler.assemble();
|
|
107
|
+
console.log(`✅ llms-full.txt assembled (${result.componentCount} components)`);
|
|
108
|
+
// Assemble MCP component catalog
|
|
109
|
+
console.log('\n📦 Assembling MCP component catalog...');
|
|
110
|
+
const catalogAssembler = new MCPCatalogAssembler({
|
|
111
|
+
staticDirs: [
|
|
112
|
+
resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'blocks'),
|
|
113
|
+
resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'docs'),
|
|
114
|
+
resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'table'),
|
|
115
|
+
resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'auth')
|
|
116
|
+
],
|
|
117
|
+
recipesDir: resolveFromDocsGen('..', '..', 'apps', 'docs', 'src', 'routes', 'recipes'),
|
|
118
|
+
outputPath: resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'mcp', 'component-catalog.json'),
|
|
119
|
+
version: '0.2.38'
|
|
120
|
+
});
|
|
121
|
+
const catalogResult = await catalogAssembler.assemble();
|
|
122
|
+
console.log(`✅ MCP catalog assembled (${catalogResult.componentCount} components, ${catalogResult.recipeCount} recipes)`);
|
|
123
|
+
}
|
|
124
|
+
async scaffoldCommand(args) {
|
|
125
|
+
const name = args[0];
|
|
126
|
+
const options = this.parseOptions(args.slice(1));
|
|
127
|
+
const group = options.group || 'primitives';
|
|
128
|
+
if (!name) {
|
|
129
|
+
console.error('❌ Component name required. Usage: docs-gen scaffold Button --group primitives');
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
if (group !== 'primitives' && group !== 'components') {
|
|
133
|
+
console.error(`❌ Invalid group "${group}". Must be "primitives" or "components".`);
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
const slug = name
|
|
137
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1-$2')
|
|
138
|
+
.replace(/_/g, '-')
|
|
139
|
+
.toLowerCase();
|
|
140
|
+
const docsDir = resolveFromDocsGen('..', '..', 'apps', 'docs', 'src', 'routes', 'blocks', group, slug);
|
|
141
|
+
// Check if directory already exists
|
|
142
|
+
try {
|
|
143
|
+
await fs.access(docsDir);
|
|
144
|
+
console.error(`❌ Directory already exists: ${docsDir}`);
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
// Expected — directory doesn't exist yet
|
|
149
|
+
}
|
|
150
|
+
await fs.mkdir(docsDir, { recursive: true });
|
|
151
|
+
// Generate +page.svelte
|
|
152
|
+
const pageSvelte = `<script lang="ts">
|
|
153
|
+
import { page } from '$app/state';
|
|
154
|
+
import { asset } from '$app/paths';
|
|
155
|
+
import {
|
|
156
|
+
ApiReference,
|
|
157
|
+
CodeExample,
|
|
158
|
+
DocsLayout as DocsPageLayout,
|
|
159
|
+
extractPlaygroundDocs,
|
|
160
|
+
PlaygroundConfigurator,
|
|
161
|
+
Section
|
|
162
|
+
} from '@urbicon-ui/docs';
|
|
163
|
+
import PrevNextNav from '$lib/PrevNextNav.svelte';
|
|
164
|
+
import SeoMeta from '$lib/SeoMeta.svelte';
|
|
165
|
+
import CustomDocs from './Docs.svelte';
|
|
166
|
+
import { componentData } from './api';
|
|
167
|
+
import { ${name} } from '@urbicon-ui/blocks';
|
|
168
|
+
|
|
169
|
+
const { propDocs, variantKeys } = extractPlaygroundDocs(componentData?.props ?? []);
|
|
170
|
+
|
|
171
|
+
const navigation = [
|
|
172
|
+
{ id: 'playground', label: 'Playground', order: 1 },
|
|
173
|
+
{ id: 'examples', label: 'Examples', order: 2 },
|
|
174
|
+
{ id: 'customization', label: 'Customization', order: 3 },
|
|
175
|
+
{ id: 'accessibility', label: 'Accessibility', order: 4 },
|
|
176
|
+
{ id: 'api', label: 'API Reference', order: 10 },
|
|
177
|
+
{ id: 'installation', label: 'Installation', order: 11 }
|
|
178
|
+
];
|
|
179
|
+
</script>
|
|
180
|
+
|
|
181
|
+
<SeoMeta title="${name} Component" />
|
|
182
|
+
|
|
183
|
+
<DocsPageLayout
|
|
184
|
+
maxWidth="2xl"
|
|
185
|
+
showToc={true}
|
|
186
|
+
title="${name}"
|
|
187
|
+
description=""
|
|
188
|
+
breadcrumbs={[
|
|
189
|
+
{ label: 'Blocks', href: '/blocks' },
|
|
190
|
+
{ label: '${group === 'primitives' ? 'Primitives' : 'Components'}', href: '/blocks/${group}' }
|
|
191
|
+
]}
|
|
192
|
+
{navigation}
|
|
193
|
+
>
|
|
194
|
+
<Section id="playground" title="Playground" intent="primary">
|
|
195
|
+
<PlaygroundConfigurator
|
|
196
|
+
showHeader={false}
|
|
197
|
+
{propDocs}
|
|
198
|
+
{variantKeys}
|
|
199
|
+
componentName="${name}"
|
|
200
|
+
controls={[
|
|
201
|
+
// TODO: Add playground controls
|
|
202
|
+
]}
|
|
203
|
+
>
|
|
204
|
+
{#snippet children(values)}
|
|
205
|
+
<${name} {...values}>
|
|
206
|
+
<!-- TODO: Add component content -->
|
|
207
|
+
</${name}>
|
|
208
|
+
{/snippet}
|
|
209
|
+
</PlaygroundConfigurator>
|
|
210
|
+
</Section>
|
|
211
|
+
|
|
212
|
+
<CustomDocs />
|
|
213
|
+
|
|
214
|
+
<Section id="api" title="API Reference" intent="secondary">
|
|
215
|
+
<ApiReference props={componentData?.props ?? []} />
|
|
216
|
+
</Section>
|
|
217
|
+
|
|
218
|
+
<Section id="installation" title="Installation">
|
|
219
|
+
<CodeExample
|
|
220
|
+
title="Import"
|
|
221
|
+
code={\`import { ${name} } from '@urbicon-ui/blocks';\`}
|
|
222
|
+
language="svelte"
|
|
223
|
+
hasPreview={false}
|
|
224
|
+
/>
|
|
225
|
+
</Section>
|
|
226
|
+
|
|
227
|
+
<div class="mt-6 text-right">
|
|
228
|
+
<a
|
|
229
|
+
href={asset('/blocks/${group}/${slug}/llm.txt')}
|
|
230
|
+
target="_blank"
|
|
231
|
+
rel="noopener"
|
|
232
|
+
class="text-text-tertiary hover:text-primary text-xs transition-colors"
|
|
233
|
+
>
|
|
234
|
+
llm.txt
|
|
235
|
+
</a>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
<PrevNextNav currentPath={page.url.pathname} />
|
|
239
|
+
</DocsPageLayout>
|
|
240
|
+
`;
|
|
241
|
+
// Generate Docs.svelte
|
|
242
|
+
const docsSvelte = `<script lang="ts">
|
|
243
|
+
import type { SvelteDocsConfig } from '@urbicon-ui/shared-types';
|
|
244
|
+
import { CodeExample, Section } from '@urbicon-ui/docs';
|
|
245
|
+
|
|
246
|
+
export const docsConfig: SvelteDocsConfig = {
|
|
247
|
+
generation: {
|
|
248
|
+
overview: { enabled: false },
|
|
249
|
+
playground: { enabled: true, order: 1 },
|
|
250
|
+
variants: { enabled: false },
|
|
251
|
+
examples: false,
|
|
252
|
+
api: { showInheritance: true, groupBy: 'category', enabled: true, order: 14 },
|
|
253
|
+
usage: false
|
|
254
|
+
},
|
|
255
|
+
llm: { include: true },
|
|
256
|
+
meta: { title: '${name} Component', showToc: true }
|
|
257
|
+
};
|
|
258
|
+
</script>
|
|
259
|
+
|
|
260
|
+
<!-- ─── Examples ─── -->
|
|
261
|
+
<Section id="examples" title="Examples">
|
|
262
|
+
<div class="space-y-8">
|
|
263
|
+
<!-- TODO: Add examples -->
|
|
264
|
+
</div>
|
|
265
|
+
</Section>
|
|
266
|
+
|
|
267
|
+
<!-- ─── Customization ─── -->
|
|
268
|
+
<Section id="customization" title="Customization">
|
|
269
|
+
<div class="space-y-4">
|
|
270
|
+
<!-- TODO: Add customization examples -->
|
|
271
|
+
</div>
|
|
272
|
+
</Section>
|
|
273
|
+
|
|
274
|
+
<!-- ─── Accessibility ─── -->
|
|
275
|
+
<Section id="accessibility" title="Accessibility">
|
|
276
|
+
<div class="prose prose-sm">
|
|
277
|
+
<!-- TODO: Document accessibility features -->
|
|
278
|
+
</div>
|
|
279
|
+
</Section>
|
|
280
|
+
`;
|
|
281
|
+
await fs.writeFile(path.join(docsDir, '+page.svelte'), pageSvelte, 'utf-8');
|
|
282
|
+
await fs.writeFile(path.join(docsDir, 'Docs.svelte'), docsSvelte, 'utf-8');
|
|
283
|
+
console.log(`✅ Scaffolded docs page for ${name}:`);
|
|
284
|
+
console.log(` ${docsDir}/+page.svelte`);
|
|
285
|
+
console.log(` ${docsDir}/Docs.svelte`);
|
|
286
|
+
console.log(`\n📝 Next steps:`);
|
|
287
|
+
console.log(` 1. Add playground controls to +page.svelte`);
|
|
288
|
+
console.log(` 2. Add examples, customization, and accessibility content to Docs.svelte`);
|
|
289
|
+
console.log(` 3. Run \`bun run docs:gen:all\` to generate the api.ts file`);
|
|
290
|
+
}
|
|
291
|
+
parseOptions(args) {
|
|
292
|
+
const options = {};
|
|
293
|
+
for (let i = 0; i < args.length; i++) {
|
|
294
|
+
const arg = args[i];
|
|
295
|
+
if (arg?.startsWith('--')) {
|
|
296
|
+
const key = arg.slice(2);
|
|
297
|
+
const value = args[i + 1];
|
|
298
|
+
if (value && !value.startsWith('--')) {
|
|
299
|
+
options[key] = value;
|
|
300
|
+
i++;
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
options[key] = true;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return options;
|
|
308
|
+
}
|
|
309
|
+
showHelp() {
|
|
310
|
+
console.log(`
|
|
311
|
+
📚 Docs Generator
|
|
312
|
+
|
|
313
|
+
Usage:
|
|
314
|
+
docs-gen [command] [options]
|
|
315
|
+
|
|
316
|
+
Commands:
|
|
317
|
+
generate, build Generate documentation (default)
|
|
318
|
+
scaffold <Name> Scaffold a new docs page for a component
|
|
319
|
+
help Show this help
|
|
320
|
+
|
|
321
|
+
Options:
|
|
322
|
+
--target <type> Target package: 'blocks', 'docs', 'table', or 'all' (default: 'all')
|
|
323
|
+
--group <group> Component group for scaffold: 'primitives' or 'components' (default: 'primitives')
|
|
324
|
+
|
|
325
|
+
Examples:
|
|
326
|
+
docs-gen # Generate all packages
|
|
327
|
+
docs-gen --target blocks # Generate only blocks docs
|
|
328
|
+
docs-gen scaffold Button # Scaffold docs for Button (primitives)
|
|
329
|
+
docs-gen scaffold DatePicker --group components # Scaffold docs for DatePicker (components)
|
|
330
|
+
`);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
334
|
+
const cli = new DocsGeneratorCLI();
|
|
335
|
+
cli.run().catch((error) => {
|
|
336
|
+
console.error('❌ CLI execution failed:', error);
|
|
337
|
+
process.exit(1);
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
//# sourceMappingURL=CLI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CLI.js","sourceRoot":"","sources":["../../src/cli/CLI.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAAE,CAAC;AACnC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ComponentManifest, ExtractionResult, PackageConfig, PackageInfo } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Finds and analyzes components in packages using glob patterns
|
|
4
|
+
*/
|
|
5
|
+
export declare class ComponentFinder {
|
|
6
|
+
private cache;
|
|
7
|
+
/**
|
|
8
|
+
* Find all components in a package
|
|
9
|
+
*/
|
|
10
|
+
findComponents(packageConfig: PackageConfig): Promise<ComponentManifest[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Clear the cache (useful for watch mode)
|
|
13
|
+
*/
|
|
14
|
+
clearCache(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Get package info from package.json
|
|
17
|
+
*/
|
|
18
|
+
getPackageInfo(packagePath: string): Promise<PackageInfo>;
|
|
19
|
+
private discoverComponents;
|
|
20
|
+
/**
|
|
21
|
+
* Find component exports in an index.ts that opt into their own catalog entry.
|
|
22
|
+
*
|
|
23
|
+
* An export qualifies when both hold:
|
|
24
|
+
* 1. it is re-exported from a Svelte file: `export { default as X } from './X.svelte'`
|
|
25
|
+
* 2. a local `interface XProps` carries the `@standalone` JSDoc tag
|
|
26
|
+
*
|
|
27
|
+
* The tag is the explicit opt-in that separates independent surfaces (Guide family) from
|
|
28
|
+
* compound subcomponents (TabItem, MenuItem, CalendarDay, …), which carry the same
|
|
29
|
+
* `@description`/`@tag` metadata but must NOT become standalone catalog entries.
|
|
30
|
+
*/
|
|
31
|
+
private findStandaloneComponentNames;
|
|
32
|
+
private findComponentFiles;
|
|
33
|
+
private createComponentManifest;
|
|
34
|
+
private extractComponentName;
|
|
35
|
+
private discoverRelatedFiles;
|
|
36
|
+
private findRelatedFile;
|
|
37
|
+
private findRelatedFiles;
|
|
38
|
+
/**
|
|
39
|
+
* Validate that a component manifest is complete and valid
|
|
40
|
+
*/
|
|
41
|
+
validateManifest(manifest: ComponentManifest): Promise<ExtractionResult<ComponentManifest>>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=ComponentFinder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentFinder.d.ts","sourceRoot":"","sources":["../../../src/core/discovery/ComponentFinder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAA0C;IAEvD;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAyBhF;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YA6BjD,kBAAkB;IAgEhC;;;;;;;;;;OAUG;YACW,4BAA4B;YAuE5B,kBAAkB;YAwClB,uBAAuB;IAoDrC,OAAO,CAAC,oBAAoB;YAmCd,oBAAoB;YAsDpB,eAAe;YASf,gBAAgB;IA8E9B;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;CAkDhD"}
|