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

114 lines (113 loc) 3.63 kB
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;