@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
204 lines • 5.01 kB
TypeScript
/**
* 📊 FIXED AUDIT DATA STRUCTURE
*
* Definitive data structure for all reports.
* Any missing data must immediately throw an error.
*/
export interface AuditMetadata {
version: string;
timestamp: string;
sitemapUrl: string;
toolVersion: string;
duration: number;
}
export interface AuditSummary {
totalPages: number;
testedPages: number;
passedPages: number;
failedPages: number;
crashedPages: number;
redirectPages?: number;
totalErrors: number;
totalWarnings: number;
overallScore?: number;
overallGrade?: string;
certificateLevel?: string;
}
export interface AccessibilityIssue {
code: string;
type: 'error' | 'warning' | 'notice';
message: string;
context?: string;
selector?: string;
runner?: string;
}
export interface PageAccessibility {
score: number;
errors: AccessibilityIssue[];
warnings: AccessibilityIssue[];
notices: AccessibilityIssue[];
}
export interface PerformanceIssue {
type: 'warning' | 'info';
message: string;
metric?: string;
value?: number;
threshold?: number;
}
export interface PagePerformance {
score: number;
grade: string;
coreWebVitals: {
largestContentfulPaint: number;
firstContentfulPaint: number;
cumulativeLayoutShift: number;
timeToFirstByte: number;
};
metrics: {
domContentLoaded: number;
loadComplete: number;
firstPaint: number;
};
issues?: PerformanceIssue[];
}
export interface SEOMetaTags {
title?: string;
description?: string;
keywords?: string;
ogTitle?: string;
ogDescription?: string;
canonical?: string;
robots?: string;
}
export interface SEOHeadings {
h1: string[];
h2: string[];
h3: string[];
h4: string[];
h5: string[];
h6: string[];
}
export interface SEOImageAnalysis {
total: number;
withAlt: number;
withoutAlt: number;
missingAltImages?: string[];
}
export interface SEOIssue {
type: 'error' | 'warning' | 'info';
category: string;
message: string;
element?: string;
}
export interface PageSEO {
score: number;
grade: string;
metaTags: SEOMetaTags;
headings: SEOHeadings;
images: SEOImageAnalysis;
issues: SEOIssue[];
url: string;
title: string;
overallSEOScore?: number;
seoGrade?: string;
semanticSEO?: Record<string, unknown>;
voiceSearchOptimization?: Record<string, unknown>;
eatAnalysis?: Record<string, unknown>;
coreWebVitalsSEO?: Record<string, unknown>;
}
export interface ContentOptimization {
type: string;
message: string;
potentialSavings?: number;
severity?: 'low' | 'medium' | 'high';
}
export interface PageContentWeight {
score: number;
grade: string;
totalSize: number;
resources: {
html: {
size: number;
};
css: {
size: number;
files: number;
};
javascript: {
size: number;
files: number;
};
images: {
size: number;
files: number;
};
other: {
size: number;
files: number;
};
};
optimizations: ContentOptimization[];
}
export interface MobileRecommendation {
category: string;
message: string;
priority?: 'low' | 'medium' | 'high';
impact?: string;
}
export interface PageMobileFriendliness {
overallScore: number;
grade: string;
recommendations: MobileRecommendation[];
}
export interface AuditPage {
url: string;
title: string;
status: 'passed' | 'failed' | 'crashed';
duration: number;
accessibility: PageAccessibility;
performance?: PagePerformance;
seo?: PageSEO;
contentWeight?: PageContentWeight;
mobileFriendliness?: PageMobileFriendliness;
}
export interface SystemPerformance {
testCompletionTimeSeconds: number;
parallelProcessing: {
pagesProcessed: number;
concurrentWorkers: number;
averageTimePerPageMs: number;
throughputPagesPerMinute: number;
};
memoryUsage: {
peakUsageMB: number;
heapUsedMB: number;
rssUsageMB: number;
externalMB: number;
};
architecture: {
eventDrivenParallel: boolean;
comprehensiveAnalysis: boolean;
browserPooling: boolean;
persistenceEnabled: boolean;
};
}
/**
* MAIN AUDIT DATA STRUCTURE
* This is the definitive format for all reports
*/
export interface AuditData {
metadata: AuditMetadata;
summary: AuditSummary;
pages: AuditPage[];
systemPerformance?: SystemPerformance;
}
/**
* VALIDATION FUNCTIONS
* Immediately throw errors if required data is missing
*/
export declare function validateAuditData(data: AuditData): void;
/**
* Check for comprehensive analysis data
*/
export declare function validateComprehensiveData(data: AuditData): void;
//# sourceMappingURL=audit-data.d.ts.map