UNPKG

@re-shell/cli

Version:

Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja

176 lines (175 loc) 5.67 kB
import { EventEmitter } from 'events'; import { RegisteredCommand } from './plugin-command-registry'; export declare enum DocumentationFormat { MARKDOWN = "markdown", HTML = "html", JSON = "json", PLAIN_TEXT = "plain-text", MAN_PAGE = "man-page", PDF = "pdf" } export declare enum DocumentationSection { SYNOPSIS = "synopsis", DESCRIPTION = "description", ARGUMENTS = "arguments", OPTIONS = "options", EXAMPLES = "examples", SEE_ALSO = "see-also", AUTHOR = "author", VERSION = "version", ENVIRONMENT = "environment", EXIT_CODES = "exit-codes" } export declare enum HelpDisplayMode { COMPACT = "compact", DETAILED = "detailed", INTERACTIVE = "interactive", HIERARCHICAL = "hierarchical", SEARCHABLE = "searchable" } export interface DocumentationTemplate { name: string; format: DocumentationFormat; sections: DocumentationSection[]; customSections?: Record<string, string>; styles?: DocumentationStyles; metadata?: Record<string, any>; } export interface DocumentationStyles { colors?: { primary: string; secondary: string; accent: string; warning: string; error: string; success: string; }; typography?: { heading1: string; heading2: string; heading3: string; body: string; code: string; emphasis: string; }; layout?: { width: number; indent: number; lineSpacing: number; }; } export interface GeneratedDocumentation { command: string; format: DocumentationFormat; content: string; metadata: { generatedAt: number; version: string; template: string; wordCount: number; estimatedReadingTime: number; }; sections: Record<DocumentationSection, string>; examples: CommandExample[]; relatedCommands: string[]; } export interface CommandExample { title: string; description: string; command: string; output?: string; explanation?: string; complexity: 'basic' | 'intermediate' | 'advanced'; tags: string[]; } export interface HelpConfiguration { displayMode: HelpDisplayMode; maxWidth: number; showExamples: boolean; showRelatedCommands: boolean; enableSearch: boolean; enableFiltering: boolean; sortBy: 'alphabetical' | 'category' | 'usage' | 'priority'; groupBy: 'plugin' | 'category' | 'type' | 'none'; includeHidden: boolean; verbosityLevel: 'minimal' | 'normal' | 'verbose' | 'debug'; } export interface DocumentationGenerationOptions { format: DocumentationFormat; template?: string; outputDir?: string; includePrivate?: boolean; includeDeprecated?: boolean; includeExamples?: boolean; generateIndex?: boolean; enableCrossReferences?: boolean; validateContent?: boolean; minifyOutput?: boolean; } export interface DocumentationIndexEntry { command: string; title: string; description: string; category: string; plugin: string; tags: string[]; complexity: string; lastModified: number; filePath: string; searchTerms: string[]; } export declare class PluginCommandDocumentationGenerator extends EventEmitter { private commands; private templates; private generatedDocs; private helpConfig; private documentationIndex; constructor(helpConfig?: Partial<HelpConfiguration>); private initializeDefaultTemplates; registerCommands(commands: RegisteredCommand[]): void; private updateDocumentationIndex; private determineComplexity; generateHelpText(commandId: string, options?: Partial<HelpConfiguration>): string; private formatCommandHeader; private formatSynopsis; private formatArguments; private formatOptions; private formatExamples; private formatRelatedCommands; private formatSectionHeader; private formatSection; private wrapText; private findRelatedCommands; private isNameSimilar; generateDocumentation(commandIds: string[], options: DocumentationGenerationOptions): Promise<GeneratedDocumentation[]>; private generateCommandDocumentation; private generateDocumentationSection; private generateSynopsisSection; private generateDescriptionSection; private generateArgumentsSection; private generateOptionsSection; private generateExamplesSection; private generateSeeAlsoSection; private generateAuthorSection; private generateVersionSection; private generateCommandExamples; private generateDocumentationIndex; searchDocumentation(query: string, filters?: { plugin?: string; category?: string; complexity?: string; format?: DocumentationFormat; }): DocumentationIndexEntry[]; private calculateSearchScore; getDocumentationStats(): any; getHelpConfiguration(): HelpConfiguration; updateHelpConfiguration(updates: Partial<HelpConfiguration>): void; addDocumentationTemplate(name: string, template: DocumentationTemplate): void; removeDocumentationTemplate(name: string): boolean; getAvailableTemplates(): DocumentationTemplate[]; clearGeneratedDocumentation(): void; } export declare function createDocumentationGenerator(helpConfig?: Partial<HelpConfiguration>): PluginCommandDocumentationGenerator; export declare function estimateReadingTime(text: string, wordsPerMinute?: number): number; export declare function formatDocumentationSize(docs: GeneratedDocumentation[]): string; export declare function validateDocumentationTemplate(template: DocumentationTemplate): string[];