@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
114 lines (113 loc) • 3.63 kB
TypeScript
import { EventEmitter } from 'events';
export interface DebugTrace {
id: string;
timestamp: Date;
level: TraceLevel;
category: string;
operation: string;
duration?: number;
data?: any;
error?: Error;
stack?: string;
metadata: {
pid: number;
memory: NodeJS.MemoryUsage;
thread: string;
caller?: string;
};
}
export interface DebugSession {
id: string;
startTime: Date;
endTime?: Date;
command: string;
args: string[];
options: Record<string, any>;
traces: DebugTrace[];
performance: {
totalDuration?: number;
operations: Map<string, OperationStats>;
};
}
export interface OperationStats {
count: number;
totalDuration: number;
averageDuration: number;
minDuration: number;
maxDuration: number;
errors: number;
}
export declare enum TraceLevel {
TRACE = 0,
DEBUG = 1,
INFO = 2,
WARN = 3,
ERROR = 4
}
export interface DebugOptions {
enabled: boolean;
level: TraceLevel;
outputFile?: string;
includeStack: boolean;
includeMemory: boolean;
includePerformance: boolean;
maxTraces: number;
maxSessions: number;
categories: string[];
excludeCategories: string[];
realtime: boolean;
format: 'text' | 'json' | 'structured';
}
export declare class DebugSystem extends EventEmitter {
private options;
private currentSession?;
private sessions;
private activeOperations;
private traceCounter;
private sessionCounter;
private outputStream?;
constructor(options?: Partial<DebugOptions>);
private initializeOutputStream;
private setupRealtimeOutput;
private shouldOutputTrace;
private outputTrace;
private formatTrace;
private formatTraceAsText;
private formatTraceStructured;
private getLevelColor;
startSession(command: string, args: string[], options: Record<string, any>): string;
endSession(): void;
trace(level: TraceLevel, category: string, operation: string, data?: any, error?: Error): string;
startOperation(category: string, operation: string, data?: any): string;
endOperation(operationId: string, data?: any, error?: Error): void;
private updatePerformanceStats;
private getCaller;
traceInfo(category: string, operation: string, data?: any): string;
traceDebug(category: string, operation: string, data?: any): string;
traceWarn(category: string, operation: string, data?: any): string;
traceError(category: string, operation: string, error: Error, data?: any): string;
time(category: string, operation: string): () => void;
timeAsync<T>(category: string, operation: string, fn: () => Promise<T>, data?: any): Promise<T>;
getCurrentSession(): DebugSession | undefined;
getAllSessions(): DebugSession[];
getSession(sessionId: string): DebugSession | undefined;
searchTraces(query: {
sessionId?: string;
category?: string;
operation?: string;
level?: TraceLevel;
startTime?: Date;
endTime?: Date;
}): DebugTrace[];
generateReport(sessionId?: string): string;
exportSession(sessionId: string, format?: 'json' | 'csv'): string;
setOptions(options: Partial<DebugOptions>): void;
getOptions(): DebugOptions;
enable(): void;
disable(): void;
isEnabled(): boolean;
close(): void;
}
export declare function createDebugSystem(options?: Partial<DebugOptions>): DebugSystem;
export declare function getGlobalDebugSystem(): DebugSystem;
export declare function setGlobalDebugSystem(debug: DebugSystem): void;