UNPKG

@casoon/auditmysite

Version:

Professional website analysis suite with robust accessibility testing, Core Web Vitals performance monitoring, SEO analysis, and content optimization insights. Features isolated browser contexts, retry mechanisms, and comprehensive API endpoints for profe

158 lines 4.24 kB
import { AccessibilityResult } from '../../types/audit-results'; interface EnhancedReportSummary { testedPages: number; passedPages: number; failedPages: number; totalErrors: number; totalWarnings: number; avgAccessibilityScore: number; avgPerformanceScore: number; } /** * Stream Event Types for Tauri Integration */ export type StreamEventType = 'init' | 'progress' | 'page_result' | 'summary' | 'error' | 'complete'; export interface StreamEvent { type: StreamEventType; sessionId: string; timestamp: string; data: unknown; } export interface InitEvent extends StreamEvent { type: 'init'; data: { sessionId: string; config: StreamingConfiguration; totalPages: number; }; } export interface ProgressEvent extends StreamEvent { type: 'progress'; data: { current: number; total: number; currentUrl: string; timeElapsed: number; estimatedRemaining?: number; stage: 'parsing_sitemap' | 'testing_pages' | 'generating_report'; percentage: number; }; } export interface PageResultEvent extends StreamEvent { type: 'page_result'; data: AccessibilityResult & { streamingMeta: { processedAt: string; processingTime: number; chunkId: string; sequenceNumber: number; }; }; } export interface SummaryEvent extends StreamEvent { type: 'summary'; data: EnhancedReportSummary; } export interface ErrorEvent extends StreamEvent { type: 'error'; data: { error: string; url?: string; recoverable: boolean; stage: string; }; } export interface CompleteEvent extends StreamEvent { type: 'complete'; data: { totalTime: number; totalPages: number; successfulPages: number; failedPages: number; summary: EnhancedReportSummary; }; } export interface StreamingConfiguration { enabled: boolean; chunkSize: number; bufferTimeout: number; includeDetailedResults: boolean; compressResults: boolean; } /** * Streaming Reporter for Real-time Tauri Integration * Outputs NDJSON (Newline Delimited JSON) for efficient parsing */ export declare class StreamingReporter { private outputStream; private sessionId; private config; private startTime; private sequenceNumber; private resultBuffer; private bufferTimeout?; constructor(outputStream: NodeJS.WritableStream, sessionId: string, config?: StreamingConfiguration); /** * Initialize streaming session */ init(totalPages: number, config: any): void; /** * Report progress updates */ reportProgress(data: { current: number; total: number; currentUrl: string; stage: 'parsing_sitemap' | 'testing_pages' | 'generating_report'; }): void; /** * Report individual page result */ reportPageResult(result: AccessibilityResult, processingTime: number): void; /** * Report summary data */ reportSummary(summary: EnhancedReportSummary): void; /** * Report errors */ reportError(error: string, url?: string, stage?: string, recoverable?: boolean): void; /** * Report completion */ complete(summary: EnhancedReportSummary, totalPages: number, successfulPages: number): void; /** * Get real-time metrics */ getRealTimeMetrics(): { pagesPerSecond: number; memoryUsage: number; timeElapsed: number; }; /** * Write event to output stream in NDJSON format */ private writeEvent; /** * Generate unique chunk ID */ private generateChunkId; /** * Maybe flush buffer based on configuration */ private maybeFlushBuffer; /** * Flush result buffer */ private flushBuffer; /** * Create streaming reporter from options */ static create(sessionId: string, outputStream?: NodeJS.WritableStream, options?: Partial<StreamingConfiguration>): StreamingReporter; /** * Cleanup resources */ cleanup(): void; } export {}; //# sourceMappingURL=streaming-reporter.d.ts.map