/** * Configuration Lighthouse pour Veza V5 Ultra * Objectif: Score 100/100 sur tous les critères */ module.exports = { ci: { collect: { url: ['http://localhost:5173'], numberOfRuns: 3, settings: { chromeFlags: '--no-sandbox --disable-dev-shm-usage', preset: 'desktop', }, }, assert: { assertions: { 'categories:performance': ['error', { minScore: 1.0 }], 'categories:accessibility': ['error', { minScore: 1.0 }], 'categories:best-practices': ['error', { minScore: 1.0 }], 'categories:seo': ['error', { minScore: 1.0 }], 'categories:pwa': ['error', { minScore: 1.0 }], // Performance spécifique 'first-contentful-paint': ['error', { maxNumericValue: 800 }], 'largest-contentful-paint': ['error', { maxNumericValue: 1500 }], 'speed-index': ['error', { maxNumericValue: 1000 }], 'cumulative-layout-shift': ['error', { maxNumericValue: 0.1 }], 'total-blocking-time': ['error', { maxNumericValue: 200 }], 'interactive': ['error', { maxNumericValue: 1500 }], // Bundle size 'unused-javascript': ['warn', { maxLength: 0 }], 'unused-css-rules': ['warn', { maxLength: 0 }], 'render-blocking-resources': ['error', { maxLength: 0 }], // PWA 'service-worker': 'error', 'viewport': 'error', 'apple-touch-icon': 'error', 'maskable-icon': 'error', 'splash-screen': 'error', 'themed-omnibox': 'error', 'content-width': 'error', 'image-aspect-ratio': 'error', 'installable-manifest': 'error', 'pwa-cross-browser': 'error', 'pwa-page-transitions': 'error', 'pwa-each-page-has-url': 'error', }, }, upload: { target: 'temporary-public-storage', }, }, };