@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
TypeScript
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[];