| Module | Purpose | Key Exports |
|---|---|---|
cli/ |
CLI entry points | analyze.ts (main), visualize.ts |
scenarios/ |
Orchestrates measurement runs | runURL(), runScenario() |
analyzer/ |
Collects page metrics via Playwright | analyzePageMetrics() |
classifier/ |
URL pattern matching for bundles & third-party | classifyBundle(), classifyThirdParty() |
lighthouse/ |
Runs Lighthouse audits | runLighthouse() |
http-timing/ |
HTTP-level response timing (Node-native) | runHttpTiming() |
reporter/ |
JSON report generation & file I/O | generateReport(), saveReport(), loadReport() |
visualizer/ |
HTML report generation | generateHTML() |
types/ |
Shared TypeScript interfaces | Report, RunMetrics, Config, etc. |
cli/analyze → scenarios → analyzer → classifier
→ lighthouse
→ http-timing
→ reporter
cli/visualize → reporter (loadReport)
→ visualizer
All modules → types
cli/analyze.ts— Reads config + URL YAML, runs all scenarios per URL, saves JSON reportscli/visualize.ts— Reads JSON reports, merges domains, generates HTML visualization
Both are invoked via tsx (see package.json scripts).