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

91 lines 3.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DetailedIssueCollector = void 0; function extractHtmlSnippet(contextOrMessage) { if (!contextOrMessage) return undefined; if (contextOrMessage.trim().startsWith('<')) { return contextOrMessage.trim().substring(0, 200); } const match = contextOrMessage.match(/<[^>]+>/); if (match) return match[0]; return undefined; } function pseudoLineNumber(str) { if (!str) return undefined; let hash = 0; for (let i = 0; i < str.length; i++) { hash = ((hash << 5) - hash) + str.charCodeAt(i); hash |= 0; } return Math.abs(hash) % 1000 + 1; } function extractSource(result, fallback) { // Versuche Kategorie aus details zu lesen (casoon/aria, casoon/form, ...) if (result.details && result.details.category) { return `casoon/${result.details.category}`; } return fallback; } class DetailedIssueCollector { static collectAll(results) { const issues = []; results.forEach(result => { // Playwright-Fehler result.errors.forEach(error => { const htmlSnippet = extractHtmlSnippet(error); issues.push({ reportType: 'accessibility', pageUrl: result.url, pageTitle: result.title, type: 'playwright', severity: 'error', message: error, htmlSnippet, lineNumber: pseudoLineNumber(htmlSnippet), source: extractSource(result, 'playwright') }); }); // Playwright-Warnungen result.warnings.forEach(warning => { const htmlSnippet = extractHtmlSnippet(warning); issues.push({ reportType: 'accessibility', pageUrl: result.url, pageTitle: result.title, type: 'playwright', severity: 'warning', message: warning, htmlSnippet, lineNumber: pseudoLineNumber(htmlSnippet), source: extractSource(result, 'playwright') }); }); // Pa11y-Issues (Fehler und Warnungen) if (result.pa11yIssues) { result.pa11yIssues.forEach((issue) => { const htmlSnippet = extractHtmlSnippet(issue.context) || extractHtmlSnippet(issue.message); issues.push({ reportType: 'accessibility', pageUrl: result.url, pageTitle: result.title, type: issue.type, severity: issue.type, message: issue.message, code: issue.code, selector: issue.selector, context: issue.context, htmlSnippet, lineNumber: pseudoLineNumber(htmlSnippet), source: 'pa11y' }); }); } }); return issues; } } exports.DetailedIssueCollector = DetailedIssueCollector; //# sourceMappingURL=detailed-issue-collector.js.map