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

139 lines 3.46 kB
/** * Batch Processing System for multiple URL audits */ import { EventEmitter } from 'events'; export interface BatchJob { id: string; name?: string; urls: string[]; options: BatchProcessingOptions; status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled'; results: Map<string, any>; errors: Map<string, Error>; progress: { total: number; completed: number; failed: number; percentage: number; }; startTime?: number; endTime?: number; duration?: number; metadata?: Record<string, any>; } export interface BatchProcessingOptions { maxConcurrency?: number; retries?: number; timeout?: number; includeDesktopComparison?: boolean; formats?: ('html' | 'json' | 'csv' | 'markdown')[]; outputDirectory?: string; webhookId?: string; continueOnError?: boolean; priority?: 'low' | 'normal' | 'high'; } export interface BatchResult { jobId: string; totalUrls: number; successfulUrls: number; failedUrls: number; results: Array<{ url: string; status: 'success' | 'error'; data?: any; error?: string; duration?: number; }>; summary: { averageScore: number; totalIssues: number; commonIssues: string[]; recommendations: string[]; }; duration: number; reportPaths?: string[]; } export declare class BatchProcessor extends EventEmitter { private jobs; private queue; private running; private maxConcurrentJobs; private accessibilityChecker; constructor(maxConcurrentJobs?: number); /** * Create a new batch job */ createJob(urls: string[], options?: BatchProcessingOptions, metadata?: Record<string, any>): BatchJob; /** * Start processing jobs from the queue */ private startJobProcessor; /** * Process jobs in the queue */ private processQueue; /** * Execute a batch job */ private executeJob; /** * Process URLs in a batch job */ private processUrls; /** * Process a single URL */ private processUrl; /** * Get batch job by ID */ getJob(jobId: string): BatchJob | undefined; /** * List all jobs */ listJobs(status?: BatchJob['status']): BatchJob[]; /** * Cancel a batch job */ cancelJob(jobId: string): boolean; /** * Generate batch result summary */ generateBatchResult(job: BatchJob): BatchResult; /** * Generate recommendations based on analysis results */ private generateRecommendations; /** * Get processing statistics */ getStats(): { totalJobs: number; runningJobs: number; completedJobs: number; failedJobs: number; queueLength: number; averageProcessingTime: number; }; /** * Clean up old completed jobs */ cleanup(olderThanMs?: number): number; /** * Export batch processing data */ export(): { jobs: BatchJob[]; stats: { totalJobs: number; runningJobs: number; completedJobs: number; failedJobs: number; queueLength: number; averageProcessingTime: number; }; timestamp: number; }; } export declare const batchProcessor: BatchProcessor; //# sourceMappingURL=batch-processor.d.ts.map