@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
JavaScript
;
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