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

52 lines 2.52 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LighthouseIntegration = void 0; // Lighthouse import const lighthouse_1 = __importDefault(require("lighthouse")); class LighthouseIntegration { constructor(browserManager) { this.browserManager = browserManager; } async runLighthouse(url, options = {}) { console.log(`📊 Running Lighthouse for ${url}...`); const lighthouseOptions = { logLevel: 'info', output: 'json', onlyCategories: ['performance', 'accessibility', 'best-practices', 'seo'], port: this.browserManager.getPort(), ...options }; try { const runnerResult = await (0, lighthouse_1.default)(url, lighthouseOptions, undefined); const lhr = runnerResult?.lhr; if (!lhr) { throw new Error('Lighthouse result is undefined'); } return { performance: Math.round((lhr.categories.performance.score || 0) * 100), accessibility: Math.round((lhr.categories.accessibility.score || 0) * 100), bestPractices: Math.round((lhr.categories['best-practices']?.score || 0) * 100), seo: Math.round((lhr.categories.seo.score || 0) * 100), metrics: { firstContentfulPaint: lhr.audits['first-contentful-paint']?.numericValue || 0, largestContentfulPaint: lhr.audits['largest-contentful-paint']?.numericValue || 0, firstInputDelay: lhr.audits['max-potential-fid']?.numericValue || 0, cumulativeLayoutShift: lhr.audits['cumulative-layout-shift']?.numericValue || 0, totalBlockingTime: lhr.audits['total-blocking-time']?.numericValue || 0, speedIndex: lhr.audits['speed-index']?.numericValue || 0 }, opportunities: lhr.audits['opportunities'] ? [lhr.audits['opportunities']] : [], diagnostics: lhr.audits['diagnostics'] ? [lhr.audits['diagnostics']] : [] }; } catch (error) { console.error(`❌ Lighthouse failed for ${url}:`, error); throw error; } } } exports.LighthouseIntegration = LighthouseIntegration; //# sourceMappingURL=lighthouse-integration.js.map