lighthouse 9.6.8 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1431) hide show
  1. package/.gitattributes +4 -1
  2. package/CONTRIBUTING.md +15 -15
  3. package/build-tracker.config.js +0 -1
  4. package/cli/bin.d.ts +5 -0
  5. package/cli/bin.js +140 -0
  6. package/cli/cli-flags.d.ts +258 -0
  7. package/cli/cli-flags.js +553 -0
  8. package/cli/commands/commands.d.ts +4 -0
  9. package/cli/commands/commands.js +9 -0
  10. package/cli/commands/list-audits.d.ts +2 -0
  11. package/cli/commands/list-audits.js +15 -0
  12. package/cli/commands/list-locales.d.ts +2 -0
  13. package/cli/commands/list-locales.js +15 -0
  14. package/cli/commands/list-trace-categories.d.ts +2 -0
  15. package/cli/commands/list-trace-categories.js +14 -0
  16. package/cli/index.d.ts +3 -0
  17. package/cli/index.js +10 -0
  18. package/cli/printer.d.ts +28 -0
  19. package/cli/printer.js +99 -0
  20. package/cli/run.d.ts +24 -0
  21. package/cli/run.js +284 -0
  22. package/cli/sentry-prompt.d.ts +5 -0
  23. package/cli/sentry-prompt.js +78 -0
  24. package/cli/test/smokehouse/__snapshots__/report-assert-test.js.snap +71 -0
  25. package/cli/test/smokehouse/config/exclusions.d.ts +12 -0
  26. package/cli/test/smokehouse/config/exclusions.js +36 -0
  27. package/cli/test/smokehouse/core-tests.d.ts +4 -0
  28. package/cli/test/smokehouse/core-tests.js +134 -0
  29. package/cli/test/smokehouse/frontends/back-compat-util.d.ts +16 -0
  30. package/cli/test/smokehouse/frontends/back-compat-util.js +41 -0
  31. package/cli/test/smokehouse/frontends/lib.d.ts +8 -0
  32. package/cli/test/smokehouse/frontends/lib.js +48 -0
  33. package/cli/test/smokehouse/frontends/node.d.ts +2 -0
  34. package/cli/test/smokehouse/frontends/node.js +12 -0
  35. package/cli/test/smokehouse/frontends/smokehouse-bin.d.ts +3 -0
  36. package/cli/test/smokehouse/frontends/smokehouse-bin.js +258 -0
  37. package/cli/test/smokehouse/lib/child-process-error.d.ts +21 -0
  38. package/cli/test/smokehouse/lib/child-process-error.js +25 -0
  39. package/cli/test/smokehouse/lib/concurrent-mapper.d.ts +78 -0
  40. package/cli/test/smokehouse/lib/concurrent-mapper.js +125 -0
  41. package/cli/test/smokehouse/lib/local-console.d.ts +33 -0
  42. package/cli/test/smokehouse/lib/local-console.js +50 -0
  43. package/cli/test/smokehouse/lighthouse-runners/bundle.d.ts +16 -0
  44. package/cli/test/smokehouse/lighthouse-runners/bundle.js +158 -0
  45. package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +18 -0
  46. package/cli/test/smokehouse/lighthouse-runners/cli.js +134 -0
  47. package/cli/test/smokehouse/lighthouse-runners/devtools.d.ts +23 -0
  48. package/cli/test/smokehouse/lighthouse-runners/devtools.js +72 -0
  49. package/cli/test/smokehouse/readme.md +208 -0
  50. package/cli/test/smokehouse/report-assert-test.d.ts +2 -0
  51. package/cli/test/smokehouse/report-assert-test.js +298 -0
  52. package/cli/test/smokehouse/report-assert.d.ts +50 -0
  53. package/cli/test/smokehouse/report-assert.js +520 -0
  54. package/cli/test/smokehouse/smokehouse.d.ts +35 -0
  55. package/cli/test/smokehouse/smokehouse.js +336 -0
  56. package/cli/test/smokehouse/version-check-test.d.ts +2 -0
  57. package/cli/test/smokehouse/version-check-test.js +43 -0
  58. package/cli/test/smokehouse/version-check.d.ts +15 -0
  59. package/cli/test/smokehouse/version-check.js +48 -0
  60. package/commitlint.config.js +0 -1
  61. package/core/audits/accessibility/accesskeys.d.ts +10 -0
  62. package/core/audits/accessibility/accesskeys.js +44 -0
  63. package/core/audits/accessibility/aria-allowed-attr.d.ts +10 -0
  64. package/core/audits/accessibility/aria-allowed-attr.js +44 -0
  65. package/core/audits/accessibility/aria-command-name.d.ts +10 -0
  66. package/core/audits/accessibility/aria-command-name.js +42 -0
  67. package/core/audits/accessibility/aria-hidden-body.d.ts +10 -0
  68. package/core/audits/accessibility/aria-hidden-body.js +42 -0
  69. package/core/audits/accessibility/aria-hidden-focus.d.ts +10 -0
  70. package/core/audits/accessibility/aria-hidden-focus.js +42 -0
  71. package/core/audits/accessibility/aria-input-field-name.d.ts +10 -0
  72. package/core/audits/accessibility/aria-input-field-name.js +42 -0
  73. package/core/audits/accessibility/aria-meter-name.d.ts +10 -0
  74. package/core/audits/accessibility/aria-meter-name.js +42 -0
  75. package/core/audits/accessibility/aria-progressbar-name.d.ts +10 -0
  76. package/core/audits/accessibility/aria-progressbar-name.js +42 -0
  77. package/core/audits/accessibility/aria-required-attr.d.ts +10 -0
  78. package/core/audits/accessibility/aria-required-attr.js +43 -0
  79. package/core/audits/accessibility/aria-required-children.d.ts +10 -0
  80. package/core/audits/accessibility/aria-required-children.js +47 -0
  81. package/core/audits/accessibility/aria-required-parent.d.ts +10 -0
  82. package/core/audits/accessibility/aria-required-parent.js +45 -0
  83. package/core/audits/accessibility/aria-roles.d.ts +10 -0
  84. package/core/audits/accessibility/aria-roles.js +44 -0
  85. package/core/audits/accessibility/aria-toggle-field-name.d.ts +10 -0
  86. package/core/audits/accessibility/aria-toggle-field-name.js +42 -0
  87. package/core/audits/accessibility/aria-tooltip-name.d.ts +10 -0
  88. package/core/audits/accessibility/aria-tooltip-name.js +42 -0
  89. package/core/audits/accessibility/aria-treeitem-name.d.ts +10 -0
  90. package/core/audits/accessibility/aria-treeitem-name.js +42 -0
  91. package/core/audits/accessibility/aria-valid-attr-value.d.ts +10 -0
  92. package/core/audits/accessibility/aria-valid-attr-value.js +44 -0
  93. package/core/audits/accessibility/aria-valid-attr.d.ts +10 -0
  94. package/core/audits/accessibility/aria-valid-attr.js +44 -0
  95. package/core/audits/accessibility/axe-audit.d.ts +17 -0
  96. package/core/audits/accessibility/axe-audit.js +113 -0
  97. package/core/audits/accessibility/button-name.d.ts +10 -0
  98. package/core/audits/accessibility/button-name.js +44 -0
  99. package/core/audits/accessibility/bypass.d.ts +10 -0
  100. package/core/audits/accessibility/bypass.js +46 -0
  101. package/core/audits/accessibility/color-contrast.d.ts +10 -0
  102. package/core/audits/accessibility/color-contrast.js +45 -0
  103. package/core/audits/accessibility/definition-list.d.ts +10 -0
  104. package/core/audits/accessibility/definition-list.js +46 -0
  105. package/core/audits/accessibility/dlitem.d.ts +10 -0
  106. package/core/audits/accessibility/dlitem.js +44 -0
  107. package/core/audits/accessibility/document-title.d.ts +10 -0
  108. package/core/audits/accessibility/document-title.js +44 -0
  109. package/core/audits/accessibility/duplicate-id-active.d.ts +10 -0
  110. package/core/audits/accessibility/duplicate-id-active.js +42 -0
  111. package/core/audits/accessibility/duplicate-id-aria.d.ts +10 -0
  112. package/core/audits/accessibility/duplicate-id-aria.js +42 -0
  113. package/core/audits/accessibility/form-field-multiple-labels.d.ts +10 -0
  114. package/core/audits/accessibility/form-field-multiple-labels.js +43 -0
  115. package/core/audits/accessibility/frame-title.d.ts +10 -0
  116. package/core/audits/accessibility/frame-title.js +43 -0
  117. package/core/audits/accessibility/heading-order.d.ts +10 -0
  118. package/core/audits/accessibility/heading-order.js +42 -0
  119. package/core/audits/accessibility/html-has-lang.d.ts +10 -0
  120. package/core/audits/accessibility/html-has-lang.js +46 -0
  121. package/core/audits/accessibility/html-lang-valid.d.ts +10 -0
  122. package/core/audits/accessibility/html-lang-valid.js +45 -0
  123. package/core/audits/accessibility/image-alt.d.ts +10 -0
  124. package/core/audits/accessibility/image-alt.js +44 -0
  125. package/core/audits/accessibility/input-image-alt.d.ts +10 -0
  126. package/core/audits/accessibility/input-image-alt.js +44 -0
  127. package/core/audits/accessibility/label.d.ts +10 -0
  128. package/core/audits/accessibility/label.js +44 -0
  129. package/core/audits/accessibility/link-name.d.ts +10 -0
  130. package/core/audits/accessibility/link-name.js +45 -0
  131. package/core/audits/accessibility/list.d.ts +10 -0
  132. package/core/audits/accessibility/list.js +46 -0
  133. package/core/audits/accessibility/listitem.d.ts +10 -0
  134. package/core/audits/accessibility/listitem.js +45 -0
  135. package/core/audits/accessibility/manual/custom-controls-labels.d.ts +8 -0
  136. package/core/audits/accessibility/manual/custom-controls-labels.js +27 -0
  137. package/core/audits/accessibility/manual/custom-controls-roles.d.ts +8 -0
  138. package/core/audits/accessibility/manual/custom-controls-roles.js +27 -0
  139. package/core/audits/accessibility/manual/focus-traps.d.ts +8 -0
  140. package/core/audits/accessibility/manual/focus-traps.js +27 -0
  141. package/core/audits/accessibility/manual/focusable-controls.d.ts +8 -0
  142. package/core/audits/accessibility/manual/focusable-controls.js +27 -0
  143. package/core/audits/accessibility/manual/interactive-element-affordance.d.ts +8 -0
  144. package/core/audits/accessibility/manual/interactive-element-affordance.js +27 -0
  145. package/core/audits/accessibility/manual/logical-tab-order.d.ts +8 -0
  146. package/core/audits/accessibility/manual/logical-tab-order.js +27 -0
  147. package/core/audits/accessibility/manual/managed-focus.d.ts +8 -0
  148. package/core/audits/accessibility/manual/managed-focus.js +27 -0
  149. package/core/audits/accessibility/manual/offscreen-content-hidden.d.ts +9 -0
  150. package/core/audits/accessibility/manual/offscreen-content-hidden.js +28 -0
  151. package/core/audits/accessibility/manual/use-landmarks.d.ts +8 -0
  152. package/core/audits/accessibility/manual/use-landmarks.js +27 -0
  153. package/core/audits/accessibility/manual/visual-order-follows-dom.d.ts +8 -0
  154. package/core/audits/accessibility/manual/visual-order-follows-dom.js +27 -0
  155. package/core/audits/accessibility/meta-refresh.d.ts +10 -0
  156. package/core/audits/accessibility/meta-refresh.js +45 -0
  157. package/core/audits/accessibility/meta-viewport.d.ts +10 -0
  158. package/core/audits/accessibility/meta-viewport.js +46 -0
  159. package/core/audits/accessibility/object-alt.d.ts +10 -0
  160. package/core/audits/accessibility/object-alt.js +44 -0
  161. package/core/audits/accessibility/tabindex.d.ts +10 -0
  162. package/core/audits/accessibility/tabindex.js +44 -0
  163. package/core/audits/accessibility/td-headers-attr.d.ts +10 -0
  164. package/core/audits/accessibility/td-headers-attr.js +48 -0
  165. package/core/audits/accessibility/th-has-data-cells.d.ts +10 -0
  166. package/core/audits/accessibility/th-has-data-cells.js +48 -0
  167. package/core/audits/accessibility/valid-lang.d.ts +10 -0
  168. package/core/audits/accessibility/valid-lang.js +44 -0
  169. package/core/audits/accessibility/video-caption.d.ts +10 -0
  170. package/core/audits/accessibility/video-caption.js +46 -0
  171. package/core/audits/audit.d.ts +157 -0
  172. package/core/audits/audit.js +405 -0
  173. package/core/audits/autocomplete.d.ts +36 -0
  174. package/core/audits/autocomplete.js +290 -0
  175. package/core/audits/bf-cache.d.ts +21 -0
  176. package/core/audits/bf-cache.js +120 -0
  177. package/core/audits/bootup-time.d.ts +26 -0
  178. package/core/audits/bootup-time.js +151 -0
  179. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +82 -0
  180. package/core/audits/byte-efficiency/byte-efficiency-audit.js +260 -0
  181. package/core/audits/byte-efficiency/duplicated-javascript.d.ts +52 -0
  182. package/core/audits/byte-efficiency/duplicated-javascript.js +247 -0
  183. package/core/audits/byte-efficiency/efficient-animated-content.d.ts +23 -0
  184. package/core/audits/byte-efficiency/efficient-animated-content.js +92 -0
  185. package/core/audits/byte-efficiency/legacy-javascript.d.ts +100 -0
  186. package/core/audits/byte-efficiency/legacy-javascript.js +479 -0
  187. package/core/audits/byte-efficiency/modern-image-formats.d.ts +38 -0
  188. package/core/audits/byte-efficiency/modern-image-formats.js +186 -0
  189. package/core/audits/byte-efficiency/offscreen-images.d.ts +75 -0
  190. package/core/audits/byte-efficiency/offscreen-images.js +253 -0
  191. package/{lighthouse-core → core}/audits/byte-efficiency/polyfill-graph-data.json +0 -0
  192. package/core/audits/byte-efficiency/render-blocking-resources.d.ts +55 -0
  193. package/core/audits/byte-efficiency/render-blocking-resources.js +307 -0
  194. package/core/audits/byte-efficiency/total-byte-weight.d.ts +21 -0
  195. package/core/audits/byte-efficiency/total-byte-weight.js +109 -0
  196. package/core/audits/byte-efficiency/unminified-css.d.ts +36 -0
  197. package/core/audits/byte-efficiency/unminified-css.js +114 -0
  198. package/core/audits/byte-efficiency/unminified-javascript.d.ts +37 -0
  199. package/core/audits/byte-efficiency/unminified-javascript.js +118 -0
  200. package/core/audits/byte-efficiency/unused-css-rules.d.ts +16 -0
  201. package/core/audits/byte-efficiency/unused-css-rules.js +69 -0
  202. package/core/audits/byte-efficiency/unused-javascript.d.ts +27 -0
  203. package/core/audits/byte-efficiency/unused-javascript.js +163 -0
  204. package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +61 -0
  205. package/core/audits/byte-efficiency/uses-long-cache-ttl.js +297 -0
  206. package/core/audits/byte-efficiency/uses-optimized-images.d.ts +33 -0
  207. package/core/audits/byte-efficiency/uses-optimized-images.js +145 -0
  208. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +16 -0
  209. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.js +100 -0
  210. package/core/audits/byte-efficiency/uses-responsive-images.d.ts +45 -0
  211. package/core/audits/byte-efficiency/uses-responsive-images.js +201 -0
  212. package/core/audits/byte-efficiency/uses-text-compression.d.ts +14 -0
  213. package/core/audits/byte-efficiency/uses-text-compression.js +100 -0
  214. package/core/audits/content-width.d.ts +17 -0
  215. package/core/audits/content-width.js +76 -0
  216. package/core/audits/critical-request-chains.d.ts +44 -0
  217. package/core/audits/critical-request-chains.js +218 -0
  218. package/core/audits/csp-xss.d.ts +51 -0
  219. package/core/audits/csp-xss.js +186 -0
  220. package/core/audits/deprecations.d.ts +19 -0
  221. package/core/audits/deprecations.js +114 -0
  222. package/core/audits/diagnostics.d.ts +11 -0
  223. package/core/audits/diagnostics.js +79 -0
  224. package/core/audits/dobetterweb/charset.d.ts +19 -0
  225. package/core/audits/dobetterweb/charset.js +93 -0
  226. package/core/audits/dobetterweb/doctype.d.ts +21 -0
  227. package/core/audits/dobetterweb/doctype.js +120 -0
  228. package/core/audits/dobetterweb/dom-size.d.ts +26 -0
  229. package/core/audits/dobetterweb/dom-size.js +134 -0
  230. package/core/audits/dobetterweb/geolocation-on-start.d.ts +16 -0
  231. package/core/audits/dobetterweb/geolocation-on-start.js +69 -0
  232. package/core/audits/dobetterweb/inspector-issues.d.ts +45 -0
  233. package/core/audits/dobetterweb/inspector-issues.js +191 -0
  234. package/core/audits/dobetterweb/js-libraries.d.ts +15 -0
  235. package/core/audits/dobetterweb/js-libraries.js +87 -0
  236. package/core/audits/dobetterweb/no-document-write.d.ts +16 -0
  237. package/core/audits/dobetterweb/no-document-write.js +84 -0
  238. package/core/audits/dobetterweb/notification-on-start.d.ts +16 -0
  239. package/core/audits/dobetterweb/notification-on-start.js +68 -0
  240. package/core/audits/dobetterweb/paste-preventing-inputs.d.ts +15 -0
  241. package/core/audits/dobetterweb/paste-preventing-inputs.js +67 -0
  242. package/core/audits/dobetterweb/uses-http2.d.ts +72 -0
  243. package/core/audits/dobetterweb/uses-http2.js +264 -0
  244. package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +16 -0
  245. package/core/audits/dobetterweb/uses-passive-event-listeners.js +67 -0
  246. package/core/audits/errors-in-console.d.ts +31 -0
  247. package/core/audits/errors-in-console.js +120 -0
  248. package/core/audits/final-screenshot.d.ts +11 -0
  249. package/core/audits/final-screenshot.js +58 -0
  250. package/core/audits/font-display.d.ts +32 -0
  251. package/core/audits/font-display.js +193 -0
  252. package/core/audits/image-aspect-ratio.d.ts +30 -0
  253. package/core/audits/image-aspect-ratio.js +122 -0
  254. package/core/audits/image-size-responsive.d.ts +28 -0
  255. package/core/audits/image-size-responsive.js +332 -0
  256. package/core/audits/installable-manifest.d.ts +118 -0
  257. package/core/audits/installable-manifest.js +265 -0
  258. package/core/audits/is-on-https.d.ts +23 -0
  259. package/core/audits/is-on-https.js +123 -0
  260. package/core/audits/largest-contentful-paint-element.d.ts +14 -0
  261. package/core/audits/largest-contentful-paint-element.js +69 -0
  262. package/core/audits/layout-shift-elements.d.ts +15 -0
  263. package/core/audits/layout-shift-elements.js +74 -0
  264. package/core/audits/lcp-lazy-loaded.d.ts +21 -0
  265. package/core/audits/lcp-lazy-loaded.js +84 -0
  266. package/core/audits/long-tasks.d.ts +16 -0
  267. package/core/audits/long-tasks.js +124 -0
  268. package/core/audits/main-thread-tasks.d.ts +11 -0
  269. package/core/audits/main-thread-tasks.js +58 -0
  270. package/core/audits/mainthread-work-breakdown.d.ts +28 -0
  271. package/core/audits/mainthread-work-breakdown.js +135 -0
  272. package/core/audits/manual/manual-audit.d.ts +13 -0
  273. package/core/audits/manual/manual-audit.js +36 -0
  274. package/core/audits/manual/pwa-cross-browser.d.ts +12 -0
  275. package/core/audits/manual/pwa-cross-browser.js +40 -0
  276. package/core/audits/manual/pwa-each-page-has-url.d.ts +12 -0
  277. package/core/audits/manual/pwa-each-page-has-url.js +38 -0
  278. package/core/audits/manual/pwa-page-transitions.d.ts +12 -0
  279. package/core/audits/manual/pwa-page-transitions.js +38 -0
  280. package/core/audits/maskable-icon.d.ts +25 -0
  281. package/core/audits/maskable-icon.js +70 -0
  282. package/core/audits/metrics/cumulative-layout-shift.d.ts +21 -0
  283. package/core/audits/metrics/cumulative-layout-shift.js +79 -0
  284. package/core/audits/metrics/experimental-interaction-to-next-paint.d.ts +21 -0
  285. package/core/audits/metrics/experimental-interaction-to-next-paint.js +88 -0
  286. package/core/audits/metrics/first-contentful-paint-3g.d.ts +15 -0
  287. package/core/audits/metrics/first-contentful-paint-3g.js +69 -0
  288. package/core/audits/metrics/first-contentful-paint.d.ts +25 -0
  289. package/core/audits/metrics/first-contentful-paint.js +85 -0
  290. package/core/audits/metrics/first-meaningful-paint.d.ts +28 -0
  291. package/core/audits/metrics/first-meaningful-paint.js +89 -0
  292. package/core/audits/metrics/interactive.d.ts +31 -0
  293. package/core/audits/metrics/interactive.js +93 -0
  294. package/core/audits/metrics/largest-contentful-paint.d.ts +25 -0
  295. package/core/audits/metrics/largest-contentful-paint.js +94 -0
  296. package/core/audits/metrics/max-potential-fid.d.ts +23 -0
  297. package/core/audits/metrics/max-potential-fid.js +77 -0
  298. package/core/audits/metrics/speed-index.d.ts +27 -0
  299. package/core/audits/metrics/speed-index.js +88 -0
  300. package/core/audits/metrics/total-blocking-time.d.ts +32 -0
  301. package/core/audits/metrics/total-blocking-time.js +118 -0
  302. package/core/audits/metrics.d.ts +11 -0
  303. package/core/audits/metrics.js +73 -0
  304. package/core/audits/multi-check-audit.d.ts +28 -0
  305. package/core/audits/multi-check-audit.js +82 -0
  306. package/core/audits/network-requests.d.ts +11 -0
  307. package/core/audits/network-requests.js +129 -0
  308. package/core/audits/network-rtt.d.ts +15 -0
  309. package/core/audits/network-rtt.js +89 -0
  310. package/core/audits/network-server-latency.d.ts +15 -0
  311. package/core/audits/network-server-latency.js +88 -0
  312. package/core/audits/no-unload-listeners.d.ts +16 -0
  313. package/core/audits/no-unload-listeners.js +86 -0
  314. package/core/audits/non-composited-animations.d.ts +21 -0
  315. package/core/audits/non-composited-animations.js +205 -0
  316. package/core/audits/oopif-iframe-test-audit.d.ts +14 -0
  317. package/core/audits/oopif-iframe-test-audit.js +29 -0
  318. package/core/audits/performance-budget.d.ts +39 -0
  319. package/core/audits/performance-budget.js +154 -0
  320. package/core/audits/predictive-perf.d.ts +11 -0
  321. package/core/audits/predictive-perf.js +100 -0
  322. package/core/audits/preload-fonts.d.ts +29 -0
  323. package/core/audits/preload-fonts.js +106 -0
  324. package/core/audits/prioritize-lcp-image.d.ts +76 -0
  325. package/core/audits/prioritize-lcp-image.js +290 -0
  326. package/core/audits/redirects.d.ts +33 -0
  327. package/core/audits/redirects.js +164 -0
  328. package/core/audits/resource-summary.d.ts +16 -0
  329. package/core/audits/resource-summary.js +104 -0
  330. package/core/audits/screenshot-thumbnails.d.ts +33 -0
  331. package/core/audits/screenshot-thumbnails.js +168 -0
  332. package/core/audits/script-elements-test-audit.d.ts +14 -0
  333. package/core/audits/script-elements-test-audit.js +29 -0
  334. package/core/audits/script-treemap-data.d.ts +42 -0
  335. package/core/audits/script-treemap-data.js +287 -0
  336. package/core/audits/seo/canonical.d.ts +51 -0
  337. package/core/audits/seo/canonical.js +217 -0
  338. package/core/audits/seo/crawlable-anchors.d.ts +16 -0
  339. package/core/audits/seo/crawlable-anchors.js +93 -0
  340. package/core/audits/seo/font-size.d.ts +24 -0
  341. package/core/audits/seo/font-size.js +344 -0
  342. package/core/audits/seo/hreflang.d.ts +28 -0
  343. package/core/audits/seo/hreflang.js +148 -0
  344. package/core/audits/seo/http-status-code.d.ts +16 -0
  345. package/core/audits/seo/http-status-code.js +68 -0
  346. package/core/audits/seo/is-crawlable.d.ts +38 -0
  347. package/core/audits/seo/is-crawlable.js +223 -0
  348. package/core/audits/seo/link-text.d.ts +16 -0
  349. package/core/audits/seo/link-text.js +160 -0
  350. package/core/audits/seo/manual/structured-data.d.ts +12 -0
  351. package/core/audits/seo/manual/structured-data.js +37 -0
  352. package/core/audits/seo/meta-description.d.ts +16 -0
  353. package/core/audits/seo/meta-description.js +66 -0
  354. package/core/audits/seo/plugins.d.ts +15 -0
  355. package/core/audits/seo/plugins.js +150 -0
  356. package/core/audits/seo/robots-txt.d.ts +18 -0
  357. package/core/audits/seo/robots-txt.js +255 -0
  358. package/core/audits/seo/tap-targets.d.ts +50 -0
  359. package/core/audits/seo/tap-targets.js +352 -0
  360. package/core/audits/server-response-time.d.ts +21 -0
  361. package/core/audits/server-response-time.js +90 -0
  362. package/core/audits/service-worker.d.ts +46 -0
  363. package/core/audits/service-worker.js +182 -0
  364. package/core/audits/splash-screen.d.ts +37 -0
  365. package/core/audits/splash-screen.js +98 -0
  366. package/core/audits/themed-omnibox.d.ts +42 -0
  367. package/core/audits/themed-omnibox.js +102 -0
  368. package/core/audits/third-party-facades.d.ts +42 -0
  369. package/core/audits/third-party-facades.js +224 -0
  370. package/core/audits/third-party-summary.d.ts +59 -0
  371. package/core/audits/third-party-summary.js +257 -0
  372. package/core/audits/timing-budget.d.ts +43 -0
  373. package/core/audits/timing-budget.js +174 -0
  374. package/core/audits/unsized-images.d.ts +39 -0
  375. package/core/audits/unsized-images.js +162 -0
  376. package/core/audits/user-timings.d.ts +43 -0
  377. package/core/audits/user-timings.js +118 -0
  378. package/core/audits/uses-rel-preconnect.d.ts +37 -0
  379. package/core/audits/uses-rel-preconnect.js +253 -0
  380. package/core/audits/uses-rel-preload.d.ts +61 -0
  381. package/core/audits/uses-rel-preload.js +269 -0
  382. package/core/audits/valid-source-maps.d.ts +29 -0
  383. package/core/audits/valid-source-maps.js +160 -0
  384. package/core/audits/viewport.d.ts +17 -0
  385. package/core/audits/viewport.js +64 -0
  386. package/core/audits/violation-audit.d.ts +14 -0
  387. package/core/audits/violation-audit.js +49 -0
  388. package/core/audits/work-during-interaction.d.ts +82 -0
  389. package/core/audits/work-during-interaction.js +279 -0
  390. package/core/computed/computed-artifact.d.ts +15 -0
  391. package/core/computed/computed-artifact.js +62 -0
  392. package/core/computed/critical-request-chains.d.ts +40 -0
  393. package/core/computed/critical-request-chains.js +143 -0
  394. package/core/computed/entity-classification.d.ts +29 -0
  395. package/core/computed/entity-classification.js +103 -0
  396. package/core/computed/image-records.d.ts +24 -0
  397. package/core/computed/image-records.js +64 -0
  398. package/core/computed/js-bundles.d.ts +13 -0
  399. package/core/computed/js-bundles.js +120 -0
  400. package/core/computed/load-simulator.d.ts +28 -0
  401. package/core/computed/load-simulator.js +92 -0
  402. package/core/computed/main-resource.d.ts +25 -0
  403. package/core/computed/main-resource.js +35 -0
  404. package/core/computed/main-thread-tasks.d.ts +15 -0
  405. package/core/computed/main-thread-tasks.js +25 -0
  406. package/core/computed/manifest-values.d.ts +24 -0
  407. package/core/computed/manifest-values.js +136 -0
  408. package/core/computed/metrics/cumulative-layout-shift.d.ts +53 -0
  409. package/core/computed/metrics/cumulative-layout-shift.js +125 -0
  410. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +19 -0
  411. package/core/computed/metrics/first-contentful-paint-all-frames.js +37 -0
  412. package/core/computed/metrics/first-contentful-paint.d.ts +15 -0
  413. package/core/computed/metrics/first-contentful-paint.js +40 -0
  414. package/core/computed/metrics/first-meaningful-paint.d.ts +15 -0
  415. package/core/computed/metrics/first-meaningful-paint.js +44 -0
  416. package/core/computed/metrics/interactive.d.ts +61 -0
  417. package/core/computed/metrics/interactive.js +192 -0
  418. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +48 -0
  419. package/core/computed/metrics/lantern-first-contentful-paint.js +204 -0
  420. package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +12 -0
  421. package/core/computed/metrics/lantern-first-meaningful-paint.js +83 -0
  422. package/core/computed/metrics/lantern-interactive.d.ts +31 -0
  423. package/core/computed/metrics/lantern-interactive.js +113 -0
  424. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +25 -0
  425. package/core/computed/metrics/lantern-largest-contentful-paint.js +111 -0
  426. package/core/computed/metrics/lantern-max-potential-fid.d.ts +30 -0
  427. package/core/computed/metrics/lantern-max-potential-fid.js +93 -0
  428. package/core/computed/metrics/lantern-metric.d.ts +78 -0
  429. package/core/computed/metrics/lantern-metric.js +162 -0
  430. package/core/computed/metrics/lantern-speed-index.d.ts +38 -0
  431. package/core/computed/metrics/lantern-speed-index.js +150 -0
  432. package/core/computed/metrics/lantern-total-blocking-time.d.ts +31 -0
  433. package/core/computed/metrics/lantern-total-blocking-time.js +126 -0
  434. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +20 -0
  435. package/core/computed/metrics/largest-contentful-paint-all-frames.js +45 -0
  436. package/core/computed/metrics/largest-contentful-paint.d.ts +15 -0
  437. package/core/computed/metrics/largest-contentful-paint.js +52 -0
  438. package/core/computed/metrics/max-potential-fid.d.ts +15 -0
  439. package/core/computed/metrics/max-potential-fid.js +45 -0
  440. package/core/computed/metrics/metric.d.ts +38 -0
  441. package/core/computed/metrics/metric.js +100 -0
  442. package/core/computed/metrics/navigation-metric.d.ts +16 -0
  443. package/core/computed/metrics/navigation-metric.js +46 -0
  444. package/core/computed/metrics/responsiveness.d.ts +87 -0
  445. package/core/computed/metrics/responsiveness.js +160 -0
  446. package/core/computed/metrics/speed-index.d.ts +10 -0
  447. package/core/computed/metrics/speed-index.js +40 -0
  448. package/core/computed/metrics/tbt-utils.d.ts +18 -0
  449. package/core/computed/metrics/tbt-utils.js +56 -0
  450. package/core/computed/metrics/timing-summary.d.ts +46 -0
  451. package/core/computed/metrics/timing-summary.js +157 -0
  452. package/core/computed/metrics/total-blocking-time.d.ts +23 -0
  453. package/core/computed/metrics/total-blocking-time.js +74 -0
  454. package/core/computed/module-duplication.d.ts +37 -0
  455. package/core/computed/module-duplication.js +138 -0
  456. package/core/computed/network-analysis.d.ts +20 -0
  457. package/core/computed/network-analysis.js +64 -0
  458. package/core/computed/network-records.d.ts +15 -0
  459. package/core/computed/network-records.js +22 -0
  460. package/core/computed/page-dependency-graph.d.ts +88 -0
  461. package/core/computed/page-dependency-graph.js +516 -0
  462. package/core/computed/processed-navigation.d.ts +21 -0
  463. package/core/computed/processed-navigation.js +37 -0
  464. package/core/computed/processed-trace.d.ts +14 -0
  465. package/core/computed/processed-trace.js +21 -0
  466. package/core/computed/resource-summary.d.ts +46 -0
  467. package/core/computed/resource-summary.js +118 -0
  468. package/core/computed/screenshots.d.ts +20 -0
  469. package/core/computed/screenshots.js +29 -0
  470. package/core/computed/speedline.d.ts +15 -0
  471. package/core/computed/speedline.js +55 -0
  472. package/core/computed/unused-css.d.ts +62 -0
  473. package/core/computed/unused-css.js +153 -0
  474. package/core/computed/unused-javascript-summary.d.ts +71 -0
  475. package/core/computed/unused-javascript-summary.js +155 -0
  476. package/core/computed/user-timings.d.ts +31 -0
  477. package/core/computed/user-timings.js +83 -0
  478. package/core/computed/viewport-meta.d.ts +35 -0
  479. package/core/computed/viewport-meta.js +56 -0
  480. package/core/config/budget.d.ts +74 -0
  481. package/core/config/budget.js +340 -0
  482. package/core/config/config-helpers.d.ts +94 -0
  483. package/core/config/config-helpers.js +630 -0
  484. package/core/config/config-plugin.d.ts +46 -0
  485. package/core/config/config-plugin.js +250 -0
  486. package/core/config/config.d.ts +28 -0
  487. package/core/config/config.js +344 -0
  488. package/core/config/constants.d.ts +86 -0
  489. package/core/config/constants.js +175 -0
  490. package/core/config/default-config.d.ts +5 -0
  491. package/core/config/default-config.js +637 -0
  492. package/core/config/desktop-config.d.ts +5 -0
  493. package/core/config/desktop-config.js +21 -0
  494. package/core/config/experimental-config.d.ts +13 -0
  495. package/core/config/experimental-config.js +29 -0
  496. package/core/config/filters.d.ts +83 -0
  497. package/core/config/filters.js +344 -0
  498. package/core/config/full-config.d.ts +9 -0
  499. package/core/config/full-config.js +13 -0
  500. package/core/config/lr-desktop-config.d.ts +4 -0
  501. package/core/config/lr-desktop-config.js +28 -0
  502. package/core/config/lr-mobile-config.d.ts +9 -0
  503. package/core/config/lr-mobile-config.js +33 -0
  504. package/core/config/metrics-to-audits.d.ts +19 -0
  505. package/core/config/metrics-to-audits.js +61 -0
  506. package/core/config/perf-config.d.ts +9 -0
  507. package/core/config/perf-config.js +16 -0
  508. package/core/config/validation.d.ts +77 -0
  509. package/core/config/validation.js +312 -0
  510. package/core/gather/base-artifacts.d.ts +16 -0
  511. package/core/gather/base-artifacts.js +95 -0
  512. package/core/gather/base-gatherer.d.ts +72 -0
  513. package/core/gather/base-gatherer.js +108 -0
  514. package/core/gather/driver/dom.d.ts +20 -0
  515. package/core/gather/driver/dom.js +57 -0
  516. package/core/gather/driver/environment.d.ts +35 -0
  517. package/core/gather/driver/environment.js +105 -0
  518. package/core/gather/driver/execution-context.d.ts +101 -0
  519. package/core/gather/driver/execution-context.js +262 -0
  520. package/core/gather/driver/navigation.d.ts +33 -0
  521. package/core/gather/driver/navigation.js +182 -0
  522. package/core/gather/driver/network-monitor.d.ts +82 -0
  523. package/core/gather/driver/network-monitor.js +260 -0
  524. package/core/gather/driver/network.d.ts +10 -0
  525. package/core/gather/driver/network.js +27 -0
  526. package/core/gather/driver/prepare.d.ts +52 -0
  527. package/core/gather/driver/prepare.js +244 -0
  528. package/core/gather/driver/service-workers.d.ts +16 -0
  529. package/core/gather/driver/service-workers.js +52 -0
  530. package/core/gather/driver/storage.d.ts +24 -0
  531. package/core/gather/driver/storage.js +149 -0
  532. package/core/gather/driver/target-manager.d.ts +61 -0
  533. package/core/gather/driver/target-manager.js +209 -0
  534. package/core/gather/driver/wait-for-condition.d.ts +116 -0
  535. package/core/gather/driver/wait-for-condition.js +544 -0
  536. package/core/gather/driver.d.ts +30 -0
  537. package/core/gather/driver.js +92 -0
  538. package/core/gather/fetcher.d.ts +63 -0
  539. package/core/gather/fetcher.js +143 -0
  540. package/core/gather/gatherers/accessibility.d.ts +23 -0
  541. package/core/gather/gatherers/accessibility.js +199 -0
  542. package/core/gather/gatherers/anchor-elements.d.ts +10 -0
  543. package/core/gather/gatherers/anchor-elements.js +132 -0
  544. package/core/gather/gatherers/bf-cache-failures.d.ts +43 -0
  545. package/core/gather/gatherers/bf-cache-failures.js +179 -0
  546. package/core/gather/gatherers/cache-contents.d.ts +11 -0
  547. package/core/gather/gatherers/cache-contents.js +58 -0
  548. package/core/gather/gatherers/console-messages.d.ts +39 -0
  549. package/core/gather/gatherers/console-messages.js +174 -0
  550. package/core/gather/gatherers/css-usage.d.ts +39 -0
  551. package/core/gather/gatherers/css-usage.js +150 -0
  552. package/core/gather/gatherers/devtools-log-compat.d.ts +13 -0
  553. package/core/gather/gatherers/devtools-log-compat.js +35 -0
  554. package/core/gather/gatherers/devtools-log.d.ts +48 -0
  555. package/core/gather/gatherers/devtools-log.js +115 -0
  556. package/core/gather/gatherers/dobetterweb/doctype.d.ts +10 -0
  557. package/core/gather/gatherers/dobetterweb/doctype.js +47 -0
  558. package/core/gather/gatherers/dobetterweb/domstats.d.ts +10 -0
  559. package/core/gather/gatherers/dobetterweb/domstats.js +102 -0
  560. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +61 -0
  561. package/core/gather/gatherers/dobetterweb/optimized-images.js +193 -0
  562. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +30 -0
  563. package/core/gather/gatherers/dobetterweb/response-compression.js +155 -0
  564. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +53 -0
  565. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +237 -0
  566. package/core/gather/gatherers/full-page-screenshot.d.ts +35 -0
  567. package/core/gather/gatherers/full-page-screenshot.js +258 -0
  568. package/core/gather/gatherers/gatherer.d.ts +46 -0
  569. package/core/gather/gatherers/gatherer.js +58 -0
  570. package/core/gather/gatherers/global-listeners.d.ts +27 -0
  571. package/core/gather/gatherers/global-listeners.js +91 -0
  572. package/core/gather/gatherers/iframe-elements.d.ts +11 -0
  573. package/core/gather/gatherers/iframe-elements.js +67 -0
  574. package/core/gather/gatherers/image-elements.d.ts +35 -0
  575. package/core/gather/gatherers/image-elements.js +378 -0
  576. package/core/gather/gatherers/inputs.d.ts +10 -0
  577. package/core/gather/gatherers/inputs.js +118 -0
  578. package/core/gather/gatherers/inspector-issues.d.ts +38 -0
  579. package/core/gather/gatherers/inspector-issues.js +126 -0
  580. package/core/gather/gatherers/installability-errors.d.ts +17 -0
  581. package/core/gather/gatherers/installability-errors.js +56 -0
  582. package/core/gather/gatherers/js-usage.d.ts +22 -0
  583. package/core/gather/gatherers/js-usage.js +74 -0
  584. package/core/gather/gatherers/link-elements.d.ts +39 -0
  585. package/core/gather/gatherers/link-elements.js +181 -0
  586. package/core/gather/gatherers/main-document-content.d.ts +27 -0
  587. package/core/gather/gatherers/main-document-content.js +53 -0
  588. package/core/gather/gatherers/meta-elements.d.ts +10 -0
  589. package/core/gather/gatherers/meta-elements.js +67 -0
  590. package/core/gather/gatherers/network-user-agent.d.ts +18 -0
  591. package/core/gather/gatherers/network-user-agent.js +41 -0
  592. package/core/gather/gatherers/script-elements.d.ts +26 -0
  593. package/core/gather/gatherers/script-elements.js +110 -0
  594. package/core/gather/gatherers/scripts.d.ts +27 -0
  595. package/core/gather/gatherers/scripts.js +139 -0
  596. package/core/gather/gatherers/seo/embedded-content.d.ts +10 -0
  597. package/core/gather/gatherers/seo/embedded-content.js +63 -0
  598. package/core/gather/gatherers/seo/font-size.d.ts +131 -0
  599. package/core/gather/gatherers/seo/font-size.js +339 -0
  600. package/core/gather/gatherers/seo/robots-txt.d.ts +10 -0
  601. package/core/gather/gatherers/seo/robots-txt.js +27 -0
  602. package/core/gather/gatherers/seo/tap-targets.d.ts +21 -0
  603. package/core/gather/gatherers/seo/tap-targets.js +389 -0
  604. package/core/gather/gatherers/service-worker.d.ts +16 -0
  605. package/core/gather/gatherers/service-worker.js +44 -0
  606. package/core/gather/gatherers/source-maps.d.ts +50 -0
  607. package/core/gather/gatherers/source-maps.js +155 -0
  608. package/core/gather/gatherers/stacks.d.ts +38 -0
  609. package/core/gather/gatherers/stacks.js +137 -0
  610. package/core/gather/gatherers/trace-compat.d.ts +13 -0
  611. package/core/gather/gatherers/trace-compat.js +35 -0
  612. package/core/gather/gatherers/trace-elements.d.ts +83 -0
  613. package/core/gather/gatherers/trace-elements.js +349 -0
  614. package/core/gather/gatherers/trace.d.ts +23 -0
  615. package/core/gather/gatherers/trace.js +130 -0
  616. package/core/gather/gatherers/viewport-dimensions.d.ts +10 -0
  617. package/core/gather/gatherers/viewport-dimensions.js +57 -0
  618. package/core/gather/gatherers/web-app-manifest.d.ts +32 -0
  619. package/core/gather/gatherers/web-app-manifest.js +106 -0
  620. package/core/gather/navigation-runner.d.ts +94 -0
  621. package/core/gather/navigation-runner.js +386 -0
  622. package/core/gather/runner-helpers.d.ts +39 -0
  623. package/core/gather/runner-helpers.js +159 -0
  624. package/core/gather/session.d.ts +50 -0
  625. package/core/gather/session.js +114 -0
  626. package/core/gather/snapshot-runner.d.ts +10 -0
  627. package/core/gather/snapshot-runner.js +67 -0
  628. package/core/gather/timespan-runner.d.ts +12 -0
  629. package/core/gather/timespan-runner.js +85 -0
  630. package/core/index.cjs +21 -0
  631. package/core/index.d.cts +4 -0
  632. package/core/index.d.ts +88 -0
  633. package/core/index.js +172 -0
  634. package/core/legacy/config/config.d.ts +107 -0
  635. package/core/legacy/config/config.js +566 -0
  636. package/core/legacy/config/legacy-default-config.d.ts +4 -0
  637. package/core/legacy/config/legacy-default-config.js +87 -0
  638. package/core/legacy/gather/connections/connection.d.ts +75 -0
  639. package/core/legacy/gather/connections/connection.js +181 -0
  640. package/core/legacy/gather/connections/cri.d.ts +27 -0
  641. package/core/legacy/gather/connections/cri.js +162 -0
  642. package/core/legacy/gather/connections/raw.d.ts +20 -0
  643. package/core/legacy/gather/connections/raw.js +57 -0
  644. package/core/legacy/gather/driver.d.ts +215 -0
  645. package/core/legacy/gather/driver.js +469 -0
  646. package/core/legacy/gather/gather-runner.d.ts +166 -0
  647. package/core/legacy/gather/gather-runner.js +590 -0
  648. package/core/lib/arbitrary-equality-map.d.ts +47 -0
  649. package/core/lib/arbitrary-equality-map.js +80 -0
  650. package/core/lib/asset-saver.d.ts +101 -0
  651. package/core/lib/asset-saver.js +451 -0
  652. package/core/lib/axe.d.ts +2 -0
  653. package/core/lib/axe.js +17 -0
  654. package/core/lib/bf-cache-strings.d.ts +121 -0
  655. package/core/lib/bf-cache-strings.js +661 -0
  656. package/core/lib/cdt/Common.d.ts +3 -0
  657. package/core/lib/cdt/Common.js +12 -0
  658. package/core/lib/cdt/Platform.d.ts +26 -0
  659. package/core/lib/cdt/Platform.js +57 -0
  660. package/core/lib/cdt/SDK.d.ts +2 -0
  661. package/core/lib/cdt/SDK.js +28 -0
  662. package/core/lib/cdt/generated/ParsedURL.d.ts +28 -0
  663. package/core/lib/cdt/generated/ParsedURL.js +178 -0
  664. package/core/lib/cdt/generated/SourceMap.d.ts +100 -0
  665. package/core/lib/cdt/generated/SourceMap.js +527 -0
  666. package/core/lib/cdt/package.json +4 -0
  667. package/core/lib/csp-evaluator.d.ts +41 -0
  668. package/core/lib/csp-evaluator.js +170 -0
  669. package/core/lib/dependency-graph/base-node.d.ts +161 -0
  670. package/core/lib/dependency-graph/base-node.js +364 -0
  671. package/core/lib/dependency-graph/cpu-node.d.ts +34 -0
  672. package/core/lib/dependency-graph/cpu-node.js +86 -0
  673. package/core/lib/dependency-graph/network-node.d.ts +43 -0
  674. package/core/lib/dependency-graph/network-node.js +99 -0
  675. package/core/lib/dependency-graph/simulator/connection-pool.d.ts +58 -0
  676. package/core/lib/dependency-graph/simulator/connection-pool.js +171 -0
  677. package/core/lib/dependency-graph/simulator/dns-cache.d.ts +42 -0
  678. package/core/lib/dependency-graph/simulator/dns-cache.js +74 -0
  679. package/core/lib/dependency-graph/simulator/network-analyzer.d.ts +166 -0
  680. package/core/lib/dependency-graph/simulator/network-analyzer.js +479 -0
  681. package/core/lib/dependency-graph/simulator/simulator-timing-map.d.ts +153 -0
  682. package/core/lib/dependency-graph/simulator/simulator-timing-map.js +220 -0
  683. package/core/lib/dependency-graph/simulator/simulator.d.ts +154 -0
  684. package/core/lib/dependency-graph/simulator/simulator.js +540 -0
  685. package/core/lib/dependency-graph/simulator/tcp-connection.d.ts +89 -0
  686. package/core/lib/dependency-graph/simulator/tcp-connection.js +230 -0
  687. package/core/lib/deprecations-strings.d.ts +66 -0
  688. package/core/lib/deprecations-strings.js +654 -0
  689. package/core/lib/emulation.d.ts +43 -0
  690. package/core/lib/emulation.js +163 -0
  691. package/core/lib/i18n/README.md +290 -0
  692. package/core/lib/i18n/i18n.d.ts +81 -0
  693. package/core/lib/i18n/i18n.js +229 -0
  694. package/core/lib/icons.d.ts +22 -0
  695. package/core/lib/icons.js +82 -0
  696. package/core/lib/lantern-trace-saver.d.ts +20 -0
  697. package/core/lib/lantern-trace-saver.js +260 -0
  698. package/core/lib/lh-env.d.ts +2 -0
  699. package/core/lib/lh-env.js +15 -0
  700. package/core/lib/lh-error.d.ts +328 -0
  701. package/core/lib/lh-error.js +425 -0
  702. package/core/lib/lh-trace-processor.d.ts +5 -0
  703. package/core/lib/lh-trace-processor.js +45 -0
  704. package/core/lib/lighthouse-compatibility.d.ts +8 -0
  705. package/core/lib/lighthouse-compatibility.js +139 -0
  706. package/core/lib/manifest-parser.d.ts +186 -0
  707. package/core/lib/manifest-parser.js +495 -0
  708. package/core/lib/median-run.d.ts +17 -0
  709. package/core/lib/median-run.js +92 -0
  710. package/core/lib/minification-estimator.d.ts +9 -0
  711. package/core/lib/minification-estimator.js +192 -0
  712. package/core/lib/minify-devtoolslog.d.ts +6 -0
  713. package/core/lib/minify-devtoolslog.js +86 -0
  714. package/core/lib/navigation-error.d.ts +39 -0
  715. package/core/lib/navigation-error.js +175 -0
  716. package/core/lib/network-recorder.d.ts +115 -0
  717. package/core/lib/network-recorder.js +341 -0
  718. package/core/lib/network-request.d.ts +247 -0
  719. package/core/lib/network-request.js +590 -0
  720. package/core/lib/page-functions.d.ts +149 -0
  721. package/core/lib/page-functions.js +544 -0
  722. package/core/lib/proto-preprocessor.d.ts +13 -0
  723. package/core/lib/proto-preprocessor.js +133 -0
  724. package/core/lib/rect-helpers.d.ts +100 -0
  725. package/core/lib/rect-helpers.js +251 -0
  726. package/core/lib/script-helpers.d.ts +17 -0
  727. package/core/lib/script-helpers.js +31 -0
  728. package/core/lib/sentry.d.ts +32 -0
  729. package/core/lib/sentry.js +143 -0
  730. package/core/lib/stack-packs.d.ts +16 -0
  731. package/core/lib/stack-packs.js +126 -0
  732. package/core/lib/statistics.d.ts +28 -0
  733. package/core/lib/statistics.js +103 -0
  734. package/core/lib/tappable-rects.d.ts +8 -0
  735. package/core/lib/tappable-rects.js +98 -0
  736. package/core/lib/third-party-web.d.ts +32 -0
  737. package/core/lib/third-party-web.js +52 -0
  738. package/core/lib/timing-trace-saver.d.ts +21 -0
  739. package/core/lib/timing-trace-saver.js +96 -0
  740. package/core/lib/tracehouse/cpu-profile-model.d.ts +228 -0
  741. package/core/lib/tracehouse/cpu-profile-model.js +591 -0
  742. package/core/lib/tracehouse/main-thread-tasks.d.ts +162 -0
  743. package/core/lib/tracehouse/main-thread-tasks.js +688 -0
  744. package/core/lib/tracehouse/task-groups.d.ts +66 -0
  745. package/core/lib/tracehouse/task-groups.js +111 -0
  746. package/core/lib/tracehouse/task-summary.d.ts +18 -0
  747. package/core/lib/tracehouse/task-summary.js +86 -0
  748. package/core/lib/tracehouse/trace-processor.d.ts +284 -0
  749. package/core/lib/tracehouse/trace-processor.js +1016 -0
  750. package/core/lib/traces/metric-trace-events.d.ts +65 -0
  751. package/core/lib/traces/metric-trace-events.js +200 -0
  752. package/core/lib/url-utils.d.ts +100 -0
  753. package/core/lib/url-utils.js +266 -0
  754. package/core/runner.d.ts +114 -0
  755. package/core/runner.js +563 -0
  756. package/core/scoring.d.ts +26 -0
  757. package/core/scoring.js +91 -0
  758. package/core/scripts/download-chrome.sh +36 -0
  759. package/core/scripts/manual-chrome-launcher.js +50 -0
  760. package/core/user-flow.d.ts +106 -0
  761. package/core/user-flow.js +354 -0
  762. package/dist/report/bundle.esm.js +1485 -1281
  763. package/dist/report/flow.js +37 -25
  764. package/dist/report/standalone.js +35 -19
  765. package/eslint-local-rules.cjs +106 -0
  766. package/eslint-local-rules.d.cts +6 -0
  767. package/esm-utils.d.ts +14 -0
  768. package/esm-utils.js +38 -0
  769. package/flow-report/api.d.ts +7 -0
  770. package/flow-report/assets/standalone-flow-template.html +1 -1
  771. package/flow-report/clients/standalone.d.ts +7 -0
  772. package/flow-report/src/app.d.ts +11 -0
  773. package/flow-report/src/app.tsx +1 -1
  774. package/flow-report/src/common.d.ts +20 -0
  775. package/flow-report/src/common.tsx +3 -3
  776. package/flow-report/src/header.d.ts +10 -0
  777. package/flow-report/src/header.tsx +1 -1
  778. package/flow-report/src/help-dialog.d.ts +10 -0
  779. package/flow-report/src/i18n/i18n.d.ts +212 -0
  780. package/flow-report/src/i18n/i18n.tsx +24 -19
  781. package/flow-report/src/i18n/localized-strings.d.ts +9 -0
  782. package/flow-report/src/i18n/ui-strings.d.ts +48 -0
  783. package/flow-report/src/icons.d.ts +18 -0
  784. package/flow-report/src/sidebar/flow.d.ts +8 -0
  785. package/flow-report/src/sidebar/sidebar.d.ts +17 -0
  786. package/flow-report/src/sidebar/sidebar.tsx +7 -4
  787. package/flow-report/src/summary/category.d.ts +19 -0
  788. package/flow-report/src/summary/category.tsx +10 -10
  789. package/flow-report/src/summary/summary.d.ts +18 -0
  790. package/flow-report/src/summary/summary.tsx +4 -4
  791. package/flow-report/src/topbar.d.ts +15 -0
  792. package/flow-report/src/topbar.tsx +14 -30
  793. package/flow-report/src/util.d.ts +30 -0
  794. package/flow-report/src/util.ts +2 -13
  795. package/flow-report/src/wrappers/category-score.d.ts +12 -0
  796. package/flow-report/src/wrappers/markdown.d.ts +10 -0
  797. package/flow-report/src/wrappers/report.d.ts +10 -0
  798. package/flow-report/src/wrappers/report.tsx +1 -1
  799. package/flow-report/src/wrappers/styles.d.ts +8 -0
  800. package/flow-report/test/app-test.d.ts +7 -0
  801. package/flow-report/test/common-test.d.ts +7 -0
  802. package/flow-report/test/common-test.tsx +11 -12
  803. package/flow-report/test/flow-report-pptr-test.d.ts +7 -0
  804. package/flow-report/test/flow-report-pptr-test.ts +21 -8
  805. package/flow-report/test/header-test.d.ts +7 -0
  806. package/flow-report/test/run-flow-report-tests.sh +20 -0
  807. package/flow-report/test/sample-flow.d.ts +7 -0
  808. package/flow-report/test/sample-flow.ts +1 -1
  809. package/flow-report/test/setup/env-setup.d.ts +11 -0
  810. package/flow-report/test/setup/env-setup.ts +47 -24
  811. package/flow-report/test/sidebar/flow-test.d.ts +7 -0
  812. package/flow-report/test/sidebar/sidebar-test.d.ts +7 -0
  813. package/flow-report/test/sidebar/sidebar-test.tsx +30 -3
  814. package/flow-report/test/summary/category-test.d.ts +7 -0
  815. package/flow-report/test/summary/summary-test.d.ts +7 -0
  816. package/flow-report/test/summary/summary-test.tsx +1 -1
  817. package/flow-report/test/topbar-test.d.ts +7 -0
  818. package/flow-report/test/topbar-test.tsx +11 -12
  819. package/flow-report/test/util-test.d.ts +7 -0
  820. package/flow-report/test/util-test.tsx +3 -3
  821. package/flow-report/test/wrappers/category-score-test.d.ts +7 -0
  822. package/flow-report/test/wrappers/markdown-test.d.ts +7 -0
  823. package/flow-report/tsconfig.json +5 -3
  824. package/flow-report/types/flow-report.d.ts +8 -1
  825. package/package.json +86 -80
  826. package/readme.md +27 -40
  827. package/report/README.md +8 -9
  828. package/report/assets/standalone-template.html +1 -1
  829. package/report/assets/styles.css +35 -17
  830. package/report/assets/templates.html +14 -37
  831. package/report/clients/bundle.d.ts +6 -0
  832. package/report/clients/bundle.js +1 -2
  833. package/report/clients/standalone.d.ts +2 -0
  834. package/report/clients/standalone.js +0 -1
  835. package/report/generator/file-namer.d.ts +35 -0
  836. package/report/generator/file-namer.js +7 -3
  837. package/report/generator/flow-report-assets.d.ts +9 -0
  838. package/report/generator/flow-report-assets.js +10 -6
  839. package/report/generator/report-assets.d.ts +8 -0
  840. package/report/generator/report-assets.js +8 -5
  841. package/report/generator/report-generator.d.ts +59 -0
  842. package/report/generator/report-generator.js +76 -34
  843. package/report/generator/tsconfig.json +1 -2
  844. package/report/renderer/api.d.ts +31 -0
  845. package/report/renderer/api.js +0 -2
  846. package/report/renderer/category-renderer.d.ts +176 -0
  847. package/report/renderer/category-renderer.js +39 -41
  848. package/report/renderer/components.d.ts +10 -0
  849. package/report/renderer/components.js +364 -448
  850. package/report/renderer/crc-details-renderer.d.ts +73 -0
  851. package/report/renderer/crc-details-renderer.js +28 -30
  852. package/report/renderer/details-renderer.d.ts +141 -0
  853. package/report/renderer/details-renderer.js +44 -92
  854. package/report/renderer/dom.d.ts +125 -0
  855. package/report/renderer/dom.js +13 -10
  856. package/report/renderer/drop-down-menu.d.ts +70 -0
  857. package/report/renderer/drop-down-menu.js +0 -1
  858. package/report/renderer/element-screenshot-renderer.d.ts +79 -0
  859. package/report/renderer/element-screenshot-renderer.js +11 -12
  860. package/report/renderer/features-util.d.ts +13 -0
  861. package/report/renderer/features-util.js +0 -1
  862. package/report/renderer/i18n-formatter.d.ts +100 -0
  863. package/report/renderer/i18n-formatter.js +263 -0
  864. package/report/renderer/logger.d.ts +47 -0
  865. package/report/renderer/logger.js +0 -1
  866. package/report/renderer/open-tab.d.ts +19 -0
  867. package/report/renderer/open-tab.js +4 -4
  868. package/report/renderer/performance-category-renderer.d.ts +56 -0
  869. package/report/renderer/performance-category-renderer.js +29 -26
  870. package/report/renderer/pwa-category-renderer.d.ts +55 -0
  871. package/report/renderer/pwa-category-renderer.js +8 -8
  872. package/report/renderer/report-globals.d.ts +21 -0
  873. package/report/renderer/report-globals.js +49 -0
  874. package/report/renderer/report-renderer.d.ts +57 -0
  875. package/report/renderer/report-renderer.js +54 -52
  876. package/report/renderer/report-ui-features.d.ts +71 -0
  877. package/report/renderer/report-ui-features.js +44 -39
  878. package/report/renderer/report-utils.d.ts +129 -0
  879. package/report/renderer/report-utils.js +448 -0
  880. package/report/renderer/snippet-renderer.d.ts +85 -0
  881. package/report/renderer/snippet-renderer.js +5 -5
  882. package/report/renderer/swap-locale-feature.d.ts +31 -0
  883. package/report/renderer/swap-locale-feature.js +2 -3
  884. package/report/renderer/text-encoding.d.ts +26 -0
  885. package/report/renderer/text-encoding.js +0 -1
  886. package/report/renderer/topbar-features.d.ts +82 -0
  887. package/report/renderer/topbar-features.js +2 -2
  888. package/report/test/clients/bundle-test.js +5 -10
  889. package/report/test/generator/file-namer-test.js +3 -4
  890. package/report/test/generator/report-generator-test.js +49 -24
  891. package/report/test/renderer/category-renderer-test.js +19 -15
  892. package/report/test/renderer/components-test.js +36 -37
  893. package/report/test/renderer/crc-details-renderer-test.js +11 -10
  894. package/report/test/renderer/details-renderer-test.js +91 -41
  895. package/report/test/renderer/dom-test.js +38 -14
  896. package/report/test/renderer/element-screenshot-renderer-test.js +14 -12
  897. package/report/test/renderer/i18n-formatter-test.js +179 -0
  898. package/report/test/renderer/performance-category-renderer-test.js +43 -31
  899. package/report/test/renderer/pwa-category-renderer-test.js +17 -13
  900. package/report/test/renderer/report-renderer-axe-test.js +12 -15
  901. package/report/test/renderer/report-renderer-test.js +17 -15
  902. package/report/test/renderer/report-ui-features-test.js +304 -89
  903. package/report/test/renderer/report-utils-test.js +219 -0
  904. package/report/test/renderer/snippet-renderer-test.js +11 -10
  905. package/report/test/renderer/text-encoding-test.js +2 -5
  906. package/report/test-assets/faux-psi.d.ts +34 -0
  907. package/report/tsconfig.json +1 -2
  908. package/report/types/augment-dom.d.ts +1 -1
  909. package/root.d.ts +3 -0
  910. package/root.js +9 -19
  911. package/shared/localization/format.d.ts +106 -0
  912. package/shared/localization/format.js +27 -21
  913. package/shared/localization/i18n-module.d.ts +4 -0
  914. package/shared/localization/i18n-module.js +7 -3
  915. package/shared/localization/locales/ar-XB.json +1658 -1007
  916. package/shared/localization/locales/ar.json +1659 -1008
  917. package/shared/localization/locales/bg.json +1657 -1006
  918. package/shared/localization/locales/ca.json +1664 -1013
  919. package/shared/localization/locales/cs.json +1659 -1008
  920. package/shared/localization/locales/da.json +1658 -1007
  921. package/shared/localization/locales/de.json +1794 -1143
  922. package/shared/localization/locales/el.json +1657 -1006
  923. package/shared/localization/locales/en-GB.json +1658 -1007
  924. package/shared/localization/locales/en-US.json +1471 -1066
  925. package/shared/localization/locales/en-XA.json +1658 -1007
  926. package/shared/localization/locales/en-XL.json +1471 -1066
  927. package/shared/localization/locales/es-419.json +1660 -1009
  928. package/shared/localization/locales/es.json +1665 -1014
  929. package/shared/localization/locales/fi.json +1658 -1007
  930. package/shared/localization/locales/fil.json +1659 -1008
  931. package/shared/localization/locales/fr.json +1660 -1009
  932. package/shared/localization/locales/he.json +1678 -1027
  933. package/shared/localization/locales/hi.json +1661 -1010
  934. package/shared/localization/locales/hr.json +1658 -1007
  935. package/shared/localization/locales/hu.json +1657 -1006
  936. package/shared/localization/locales/id.json +1658 -1007
  937. package/shared/localization/locales/it.json +1678 -1027
  938. package/shared/localization/locales/ja.json +1657 -1006
  939. package/shared/localization/locales/ko.json +1658 -1007
  940. package/shared/localization/locales/lt.json +1658 -1007
  941. package/shared/localization/locales/lv.json +1658 -1007
  942. package/shared/localization/locales/nl.json +1659 -1008
  943. package/shared/localization/locales/no.json +1662 -1011
  944. package/shared/localization/locales/pl.json +1657 -1006
  945. package/shared/localization/locales/pt-PT.json +1678 -1027
  946. package/shared/localization/locales/pt.json +1659 -1008
  947. package/shared/localization/locales/ro.json +1657 -1006
  948. package/shared/localization/locales/ru.json +1657 -1006
  949. package/shared/localization/locales/sk.json +1657 -1006
  950. package/shared/localization/locales/sl.json +1657 -1006
  951. package/shared/localization/locales/sr-Latn.json +1658 -1007
  952. package/shared/localization/locales/sr.json +1658 -1007
  953. package/shared/localization/locales/sv.json +1664 -1013
  954. package/shared/localization/locales/ta.json +1658 -1007
  955. package/shared/localization/locales/te.json +1688 -1037
  956. package/shared/localization/locales/th.json +1666 -1015
  957. package/shared/localization/locales/tr.json +1658 -1007
  958. package/shared/localization/locales/uk.json +1657 -1006
  959. package/shared/localization/locales/vi.json +1659 -1008
  960. package/shared/localization/locales/zh-HK.json +1658 -1007
  961. package/shared/localization/locales/zh-TW.json +1661 -1010
  962. package/shared/localization/locales/zh.json +1658 -1007
  963. package/shared/localization/locales.d.ts +7 -0
  964. package/shared/localization/locales.js +54 -51
  965. package/shared/localization/swap-flow-locale.d.ts +6 -0
  966. package/shared/localization/swap-flow-locale.js +6 -3
  967. package/shared/localization/swap-locale.d.ts +39 -0
  968. package/shared/localization/swap-locale.js +7 -8
  969. package/shared/test/localization/format-test.js +73 -56
  970. package/shared/test/localization/locales-test.js +2 -4
  971. package/shared/test/localization/swap-locale-test.js +10 -11
  972. package/shared/test/util-test.js +214 -0
  973. package/shared/tsconfig.json +1 -2
  974. package/shared/type-verifiers.d.ts +23 -0
  975. package/shared/type-verifiers.js +1 -2
  976. package/shared/types/shared.d.ts +2 -2
  977. package/shared/util.d.ts +122 -0
  978. package/shared/util.js +332 -0
  979. package/third-party/axe/valid-langs.d.ts +9 -0
  980. package/third-party/axe/valid-langs.js +1 -1
  981. package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +5 -7
  982. package/third-party/chromium-synchronization/installability-errors-test.js +4 -8
  983. package/third-party/download-content-shell/README.md +1 -0
  984. package/third-party/download-content-shell/download-content-shell.js +12 -6
  985. package/third-party/download-content-shell/utils.js +8 -8
  986. package/tsconfig-base.json +6 -1
  987. package/tsconfig.json +84 -90
  988. package/types/artifacts.d.ts +135 -78
  989. package/types/audit.d.ts +9 -8
  990. package/types/config.d.ts +26 -38
  991. package/types/externs.d.ts +9 -101
  992. package/types/gatherer.d.ts +35 -27
  993. package/types/internal/cssstyle.d.ts +23 -0
  994. package/types/{enquirer.d.ts → internal/enquirer.d.ts} +0 -0
  995. package/types/{es-main.d.ts → internal/es-main.d.ts} +0 -0
  996. package/types/internal/global.d.ts +15 -0
  997. package/types/{http-link-header/index.d.ts → internal/http-link-header.d.ts} +0 -0
  998. package/types/{jsonlint-mod.d.ts → internal/jsonlint-mod.d.ts} +0 -0
  999. package/types/internal/lighthouse-logger.d.ts +34 -0
  1000. package/types/internal/lookup-closest-locale.d.ts +13 -0
  1001. package/types/{metaviewport-parser/index.d.ts → internal/metaviewport-parser.d.ts} +0 -0
  1002. package/types/{node-fetch.d.ts → internal/node-fetch.d.ts} +0 -0
  1003. package/types/internal/node.d.ts +44 -0
  1004. package/types/{parse-cache-control/index.d.ts → internal/parse-cache-control.d.ts} +0 -0
  1005. package/types/{pretty-json-stringify/index.d.ts → internal/pretty-json-stringify.d.ts} +0 -0
  1006. package/types/internal/query-selector.d.ts +36 -0
  1007. package/types/{rollup-plugin-postprocess.d.ts → internal/rollup-plugin-postprocess.d.ts} +0 -0
  1008. package/types/internal/smokehouse.d.ts +83 -0
  1009. package/types/internal/test.d.ts +53 -0
  1010. package/types/lh.d.ts +81 -0
  1011. package/types/lh.js +13 -0
  1012. package/types/lhr/audit-details.d.ts +6 -53
  1013. package/types/lhr/audit-result.d.ts +2 -2
  1014. package/types/lhr/flow-result.d.ts +28 -0
  1015. package/types/lhr/lhr.d.ts +53 -6
  1016. package/types/lhr/settings.d.ts +18 -1
  1017. package/types/lhr/treemap.d.ts +5 -4
  1018. package/types/lhr/tsconfig.json +0 -2
  1019. package/types/protocol.d.ts +32 -18
  1020. package/types/puppeteer.d.ts +27 -0
  1021. package/types/user-flow.d.ts +27 -6
  1022. package/types/utility-types.d.ts +72 -0
  1023. package/vercel.json +6 -0
  1024. package/eslint-local-rules.js +0 -106
  1025. package/flow-report/.eslintrc.cjs +0 -51
  1026. package/flow-report/jest.config.js +0 -24
  1027. package/flow-report/package.json +0 -4
  1028. package/flow-report/test/setup/global-setup.ts +0 -11
  1029. package/jest.config.js +0 -30
  1030. package/lighthouse-cli/.eslintrc.cjs +0 -29
  1031. package/lighthouse-cli/bin.js +0 -152
  1032. package/lighthouse-cli/cli-flags.js +0 -530
  1033. package/lighthouse-cli/commands/commands.js +0 -10
  1034. package/lighthouse-cli/commands/list-audits.js +0 -16
  1035. package/lighthouse-cli/commands/list-locales.js +0 -16
  1036. package/lighthouse-cli/commands/list-trace-categories.js +0 -16
  1037. package/lighthouse-cli/index.js +0 -14
  1038. package/lighthouse-cli/package.json +0 -4
  1039. package/lighthouse-cli/printer.js +0 -100
  1040. package/lighthouse-cli/run.js +0 -286
  1041. package/lighthouse-cli/sentry-prompt.js +0 -79
  1042. package/lighthouse-cli/test/smokehouse/core-tests.js +0 -129
  1043. package/lighthouse-cli/test/smokehouse/frontends/back-compat-util.js +0 -42
  1044. package/lighthouse-cli/test/smokehouse/frontends/lib.js +0 -49
  1045. package/lighthouse-cli/test/smokehouse/frontends/node.js +0 -13
  1046. package/lighthouse-cli/test/smokehouse/frontends/smokehouse-bin.js +0 -262
  1047. package/lighthouse-cli/test/smokehouse/lib/child-process-error.js +0 -26
  1048. package/lighthouse-cli/test/smokehouse/lib/concurrent-mapper.js +0 -126
  1049. package/lighthouse-cli/test/smokehouse/lib/local-console.js +0 -51
  1050. package/lighthouse-cli/test/smokehouse/lighthouse-runners/bundle.js +0 -68
  1051. package/lighthouse-cli/test/smokehouse/lighthouse-runners/cli.js +0 -151
  1052. package/lighthouse-cli/test/smokehouse/lighthouse-runners/devtools.js +0 -106
  1053. package/lighthouse-cli/test/smokehouse/readme.md +0 -204
  1054. package/lighthouse-cli/test/smokehouse/report-assert.js +0 -493
  1055. package/lighthouse-cli/test/smokehouse/smokehouse.js +0 -284
  1056. package/lighthouse-cli/test/smokehouse/version-check-test.js +0 -46
  1057. package/lighthouse-cli/test/smokehouse/version-check.js +0 -49
  1058. package/lighthouse-core/audits/accessibility/accesskeys.js +0 -45
  1059. package/lighthouse-core/audits/accessibility/aria-allowed-attr.js +0 -45
  1060. package/lighthouse-core/audits/accessibility/aria-command-name.js +0 -43
  1061. package/lighthouse-core/audits/accessibility/aria-hidden-body.js +0 -43
  1062. package/lighthouse-core/audits/accessibility/aria-hidden-focus.js +0 -43
  1063. package/lighthouse-core/audits/accessibility/aria-input-field-name.js +0 -43
  1064. package/lighthouse-core/audits/accessibility/aria-meter-name.js +0 -43
  1065. package/lighthouse-core/audits/accessibility/aria-progressbar-name.js +0 -43
  1066. package/lighthouse-core/audits/accessibility/aria-required-attr.js +0 -44
  1067. package/lighthouse-core/audits/accessibility/aria-required-children.js +0 -48
  1068. package/lighthouse-core/audits/accessibility/aria-required-parent.js +0 -46
  1069. package/lighthouse-core/audits/accessibility/aria-roles.js +0 -45
  1070. package/lighthouse-core/audits/accessibility/aria-toggle-field-name.js +0 -43
  1071. package/lighthouse-core/audits/accessibility/aria-tooltip-name.js +0 -43
  1072. package/lighthouse-core/audits/accessibility/aria-treeitem-name.js +0 -43
  1073. package/lighthouse-core/audits/accessibility/aria-valid-attr-value.js +0 -45
  1074. package/lighthouse-core/audits/accessibility/aria-valid-attr.js +0 -45
  1075. package/lighthouse-core/audits/accessibility/axe-audit.js +0 -114
  1076. package/lighthouse-core/audits/accessibility/button-name.js +0 -45
  1077. package/lighthouse-core/audits/accessibility/bypass.js +0 -46
  1078. package/lighthouse-core/audits/accessibility/color-contrast.js +0 -46
  1079. package/lighthouse-core/audits/accessibility/definition-list.js +0 -47
  1080. package/lighthouse-core/audits/accessibility/dlitem.js +0 -45
  1081. package/lighthouse-core/audits/accessibility/document-title.js +0 -45
  1082. package/lighthouse-core/audits/accessibility/duplicate-id-active.js +0 -43
  1083. package/lighthouse-core/audits/accessibility/duplicate-id-aria.js +0 -43
  1084. package/lighthouse-core/audits/accessibility/form-field-multiple-labels.js +0 -44
  1085. package/lighthouse-core/audits/accessibility/frame-title.js +0 -44
  1086. package/lighthouse-core/audits/accessibility/heading-order.js +0 -43
  1087. package/lighthouse-core/audits/accessibility/html-has-lang.js +0 -47
  1088. package/lighthouse-core/audits/accessibility/html-lang-valid.js +0 -46
  1089. package/lighthouse-core/audits/accessibility/image-alt.js +0 -45
  1090. package/lighthouse-core/audits/accessibility/input-image-alt.js +0 -45
  1091. package/lighthouse-core/audits/accessibility/label.js +0 -45
  1092. package/lighthouse-core/audits/accessibility/link-name.js +0 -46
  1093. package/lighthouse-core/audits/accessibility/list.js +0 -47
  1094. package/lighthouse-core/audits/accessibility/listitem.js +0 -46
  1095. package/lighthouse-core/audits/accessibility/manual/custom-controls-labels.js +0 -28
  1096. package/lighthouse-core/audits/accessibility/manual/custom-controls-roles.js +0 -28
  1097. package/lighthouse-core/audits/accessibility/manual/focus-traps.js +0 -28
  1098. package/lighthouse-core/audits/accessibility/manual/focusable-controls.js +0 -28
  1099. package/lighthouse-core/audits/accessibility/manual/interactive-element-affordance.js +0 -28
  1100. package/lighthouse-core/audits/accessibility/manual/logical-tab-order.js +0 -28
  1101. package/lighthouse-core/audits/accessibility/manual/managed-focus.js +0 -28
  1102. package/lighthouse-core/audits/accessibility/manual/offscreen-content-hidden.js +0 -29
  1103. package/lighthouse-core/audits/accessibility/manual/use-landmarks.js +0 -28
  1104. package/lighthouse-core/audits/accessibility/manual/visual-order-follows-dom.js +0 -28
  1105. package/lighthouse-core/audits/accessibility/meta-refresh.js +0 -46
  1106. package/lighthouse-core/audits/accessibility/meta-viewport.js +0 -47
  1107. package/lighthouse-core/audits/accessibility/object-alt.js +0 -45
  1108. package/lighthouse-core/audits/accessibility/tabindex.js +0 -45
  1109. package/lighthouse-core/audits/accessibility/td-headers-attr.js +0 -49
  1110. package/lighthouse-core/audits/accessibility/th-has-data-cells.js +0 -48
  1111. package/lighthouse-core/audits/accessibility/valid-lang.js +0 -45
  1112. package/lighthouse-core/audits/accessibility/video-caption.js +0 -46
  1113. package/lighthouse-core/audits/apple-touch-icon.js +0 -72
  1114. package/lighthouse-core/audits/audit.js +0 -391
  1115. package/lighthouse-core/audits/autocomplete.js +0 -290
  1116. package/lighthouse-core/audits/bootup-time.js +0 -152
  1117. package/lighthouse-core/audits/byte-efficiency/byte-efficiency-audit.js +0 -258
  1118. package/lighthouse-core/audits/byte-efficiency/duplicated-javascript.js +0 -249
  1119. package/lighthouse-core/audits/byte-efficiency/efficient-animated-content.js +0 -92
  1120. package/lighthouse-core/audits/byte-efficiency/legacy-javascript.js +0 -472
  1121. package/lighthouse-core/audits/byte-efficiency/modern-image-formats.js +0 -186
  1122. package/lighthouse-core/audits/byte-efficiency/offscreen-images.js +0 -252
  1123. package/lighthouse-core/audits/byte-efficiency/render-blocking-resources.js +0 -309
  1124. package/lighthouse-core/audits/byte-efficiency/total-byte-weight.js +0 -111
  1125. package/lighthouse-core/audits/byte-efficiency/unminified-css.js +0 -117
  1126. package/lighthouse-core/audits/byte-efficiency/unminified-javascript.js +0 -120
  1127. package/lighthouse-core/audits/byte-efficiency/unused-css-rules.js +0 -71
  1128. package/lighthouse-core/audits/byte-efficiency/unused-javascript.js +0 -161
  1129. package/lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js +0 -298
  1130. package/lighthouse-core/audits/byte-efficiency/uses-optimized-images.js +0 -145
  1131. package/lighthouse-core/audits/byte-efficiency/uses-responsive-images-snapshot.js +0 -100
  1132. package/lighthouse-core/audits/byte-efficiency/uses-responsive-images.js +0 -177
  1133. package/lighthouse-core/audits/byte-efficiency/uses-text-compression.js +0 -100
  1134. package/lighthouse-core/audits/content-width.js +0 -77
  1135. package/lighthouse-core/audits/critical-request-chains.js +0 -220
  1136. package/lighthouse-core/audits/csp-xss.js +0 -186
  1137. package/lighthouse-core/audits/deprecations.js +0 -115
  1138. package/lighthouse-core/audits/diagnostics.js +0 -79
  1139. package/lighthouse-core/audits/dobetterweb/charset.js +0 -96
  1140. package/lighthouse-core/audits/dobetterweb/doctype.js +0 -94
  1141. package/lighthouse-core/audits/dobetterweb/dom-size.js +0 -123
  1142. package/lighthouse-core/audits/dobetterweb/geolocation-on-start.js +0 -70
  1143. package/lighthouse-core/audits/dobetterweb/inspector-issues.js +0 -192
  1144. package/lighthouse-core/audits/dobetterweb/js-libraries.js +0 -88
  1145. package/lighthouse-core/audits/dobetterweb/no-document-write.js +0 -85
  1146. package/lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js +0 -225
  1147. package/lighthouse-core/audits/dobetterweb/notification-on-start.js +0 -69
  1148. package/lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js +0 -66
  1149. package/lighthouse-core/audits/dobetterweb/uses-http2.js +0 -258
  1150. package/lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js +0 -68
  1151. package/lighthouse-core/audits/errors-in-console.js +0 -118
  1152. package/lighthouse-core/audits/final-screenshot.js +0 -59
  1153. package/lighthouse-core/audits/font-display.js +0 -193
  1154. package/lighthouse-core/audits/full-page-screenshot.js +0 -43
  1155. package/lighthouse-core/audits/image-aspect-ratio.js +0 -122
  1156. package/lighthouse-core/audits/image-size-responsive.js +0 -331
  1157. package/lighthouse-core/audits/installable-manifest.js +0 -266
  1158. package/lighthouse-core/audits/is-on-https.js +0 -125
  1159. package/lighthouse-core/audits/largest-contentful-paint-element.js +0 -70
  1160. package/lighthouse-core/audits/layout-shift-elements.js +0 -75
  1161. package/lighthouse-core/audits/lcp-lazy-loaded.js +0 -85
  1162. package/lighthouse-core/audits/long-tasks.js +0 -124
  1163. package/lighthouse-core/audits/main-thread-tasks.js +0 -59
  1164. package/lighthouse-core/audits/mainthread-work-breakdown.js +0 -134
  1165. package/lighthouse-core/audits/manual/manual-audit.js +0 -37
  1166. package/lighthouse-core/audits/manual/pwa-cross-browser.js +0 -41
  1167. package/lighthouse-core/audits/manual/pwa-each-page-has-url.js +0 -39
  1168. package/lighthouse-core/audits/manual/pwa-page-transitions.js +0 -39
  1169. package/lighthouse-core/audits/maskable-icon.js +0 -71
  1170. package/lighthouse-core/audits/metrics/cumulative-layout-shift.js +0 -79
  1171. package/lighthouse-core/audits/metrics/experimental-interaction-to-next-paint.js +0 -88
  1172. package/lighthouse-core/audits/metrics/first-contentful-paint-3g.js +0 -67
  1173. package/lighthouse-core/audits/metrics/first-contentful-paint.js +0 -85
  1174. package/lighthouse-core/audits/metrics/first-meaningful-paint.js +0 -89
  1175. package/lighthouse-core/audits/metrics/interactive.js +0 -93
  1176. package/lighthouse-core/audits/metrics/largest-contentful-paint.js +0 -114
  1177. package/lighthouse-core/audits/metrics/max-potential-fid.js +0 -76
  1178. package/lighthouse-core/audits/metrics/speed-index.js +0 -88
  1179. package/lighthouse-core/audits/metrics/total-blocking-time.js +0 -117
  1180. package/lighthouse-core/audits/metrics.js +0 -73
  1181. package/lighthouse-core/audits/multi-check-audit.js +0 -83
  1182. package/lighthouse-core/audits/network-requests.js +0 -130
  1183. package/lighthouse-core/audits/network-rtt.js +0 -90
  1184. package/lighthouse-core/audits/network-server-latency.js +0 -89
  1185. package/lighthouse-core/audits/no-unload-listeners.js +0 -95
  1186. package/lighthouse-core/audits/non-composited-animations.js +0 -206
  1187. package/lighthouse-core/audits/oopif-iframe-test-audit.js +0 -30
  1188. package/lighthouse-core/audits/performance-budget.js +0 -154
  1189. package/lighthouse-core/audits/predictive-perf.js +0 -101
  1190. package/lighthouse-core/audits/preload-fonts.js +0 -107
  1191. package/lighthouse-core/audits/preload-lcp-image.js +0 -272
  1192. package/lighthouse-core/audits/redirects.js +0 -163
  1193. package/lighthouse-core/audits/resource-summary.js +0 -104
  1194. package/lighthouse-core/audits/screenshot-thumbnails.js +0 -163
  1195. package/lighthouse-core/audits/script-treemap-data.js +0 -288
  1196. package/lighthouse-core/audits/seo/canonical.js +0 -218
  1197. package/lighthouse-core/audits/seo/crawlable-anchors.js +0 -94
  1198. package/lighthouse-core/audits/seo/font-size.js +0 -344
  1199. package/lighthouse-core/audits/seo/hreflang.js +0 -149
  1200. package/lighthouse-core/audits/seo/http-status-code.js +0 -70
  1201. package/lighthouse-core/audits/seo/is-crawlable.js +0 -155
  1202. package/lighthouse-core/audits/seo/link-text.js +0 -158
  1203. package/lighthouse-core/audits/seo/manual/structured-data.js +0 -38
  1204. package/lighthouse-core/audits/seo/meta-description.js +0 -67
  1205. package/lighthouse-core/audits/seo/plugins.js +0 -152
  1206. package/lighthouse-core/audits/seo/robots-txt.js +0 -256
  1207. package/lighthouse-core/audits/seo/tap-targets.js +0 -352
  1208. package/lighthouse-core/audits/server-response-time.js +0 -106
  1209. package/lighthouse-core/audits/service-worker.js +0 -179
  1210. package/lighthouse-core/audits/splash-screen.js +0 -99
  1211. package/lighthouse-core/audits/themed-omnibox.js +0 -110
  1212. package/lighthouse-core/audits/third-party-facades.js +0 -221
  1213. package/lighthouse-core/audits/third-party-summary.js +0 -259
  1214. package/lighthouse-core/audits/timing-budget.js +0 -174
  1215. package/lighthouse-core/audits/unsized-images.js +0 -163
  1216. package/lighthouse-core/audits/user-timings.js +0 -120
  1217. package/lighthouse-core/audits/uses-rel-preconnect.js +0 -254
  1218. package/lighthouse-core/audits/uses-rel-preload.js +0 -267
  1219. package/lighthouse-core/audits/valid-source-maps.js +0 -157
  1220. package/lighthouse-core/audits/viewport.js +0 -65
  1221. package/lighthouse-core/audits/violation-audit.js +0 -50
  1222. package/lighthouse-core/audits/work-during-interaction.js +0 -280
  1223. package/lighthouse-core/computed/computed-artifact.js +0 -62
  1224. package/lighthouse-core/computed/critical-request-chains.js +0 -146
  1225. package/lighthouse-core/computed/image-records.js +0 -63
  1226. package/lighthouse-core/computed/js-bundles.js +0 -119
  1227. package/lighthouse-core/computed/load-simulator.js +0 -92
  1228. package/lighthouse-core/computed/main-resource.js +0 -34
  1229. package/lighthouse-core/computed/main-thread-tasks.js +0 -25
  1230. package/lighthouse-core/computed/manifest-values.js +0 -135
  1231. package/lighthouse-core/computed/metrics/cumulative-layout-shift.js +0 -129
  1232. package/lighthouse-core/computed/metrics/first-contentful-paint-all-frames.js +0 -37
  1233. package/lighthouse-core/computed/metrics/first-contentful-paint.js +0 -40
  1234. package/lighthouse-core/computed/metrics/first-meaningful-paint.js +0 -44
  1235. package/lighthouse-core/computed/metrics/interactive.js +0 -193
  1236. package/lighthouse-core/computed/metrics/lantern-first-contentful-paint.js +0 -204
  1237. package/lighthouse-core/computed/metrics/lantern-first-meaningful-paint.js +0 -83
  1238. package/lighthouse-core/computed/metrics/lantern-interactive.js +0 -113
  1239. package/lighthouse-core/computed/metrics/lantern-largest-contentful-paint.js +0 -111
  1240. package/lighthouse-core/computed/metrics/lantern-max-potential-fid.js +0 -93
  1241. package/lighthouse-core/computed/metrics/lantern-metric.js +0 -167
  1242. package/lighthouse-core/computed/metrics/lantern-speed-index.js +0 -150
  1243. package/lighthouse-core/computed/metrics/lantern-total-blocking-time.js +0 -126
  1244. package/lighthouse-core/computed/metrics/largest-contentful-paint-all-frames.js +0 -45
  1245. package/lighthouse-core/computed/metrics/largest-contentful-paint.js +0 -52
  1246. package/lighthouse-core/computed/metrics/max-potential-fid.js +0 -45
  1247. package/lighthouse-core/computed/metrics/metric.js +0 -100
  1248. package/lighthouse-core/computed/metrics/navigation-metric.js +0 -46
  1249. package/lighthouse-core/computed/metrics/responsiveness.js +0 -157
  1250. package/lighthouse-core/computed/metrics/speed-index.js +0 -40
  1251. package/lighthouse-core/computed/metrics/tbt-utils.js +0 -57
  1252. package/lighthouse-core/computed/metrics/timing-summary.js +0 -150
  1253. package/lighthouse-core/computed/metrics/total-blocking-time.js +0 -74
  1254. package/lighthouse-core/computed/module-duplication.js +0 -136
  1255. package/lighthouse-core/computed/network-analysis.js +0 -64
  1256. package/lighthouse-core/computed/network-records.js +0 -21
  1257. package/lighthouse-core/computed/page-dependency-graph.js +0 -488
  1258. package/lighthouse-core/computed/processed-navigation.js +0 -21
  1259. package/lighthouse-core/computed/processed-trace.js +0 -21
  1260. package/lighthouse-core/computed/resource-summary.js +0 -114
  1261. package/lighthouse-core/computed/screenshots.js +0 -29
  1262. package/lighthouse-core/computed/speedline.js +0 -54
  1263. package/lighthouse-core/computed/trace-of-tab.js +0 -30
  1264. package/lighthouse-core/computed/unused-css.js +0 -154
  1265. package/lighthouse-core/computed/unused-javascript-summary.js +0 -175
  1266. package/lighthouse-core/computed/user-timings.js +0 -83
  1267. package/lighthouse-core/computed/viewport-meta.js +0 -56
  1268. package/lighthouse-core/config/budget.js +0 -341
  1269. package/lighthouse-core/config/config-helpers.js +0 -590
  1270. package/lighthouse-core/config/config-plugin.js +0 -225
  1271. package/lighthouse-core/config/config.js +0 -544
  1272. package/lighthouse-core/config/constants.js +0 -169
  1273. package/lighthouse-core/config/default-config.js +0 -632
  1274. package/lighthouse-core/config/desktop-config.js +0 -21
  1275. package/lighthouse-core/config/experimental-config.js +0 -30
  1276. package/lighthouse-core/config/full-config.js +0 -14
  1277. package/lighthouse-core/config/lr-desktop-config.js +0 -25
  1278. package/lighthouse-core/config/lr-mobile-config.js +0 -31
  1279. package/lighthouse-core/config/metrics-to-audits.js +0 -61
  1280. package/lighthouse-core/config/perf-config.js +0 -17
  1281. package/lighthouse-core/fraggle-rock/api.js +0 -77
  1282. package/lighthouse-core/fraggle-rock/config/config.js +0 -281
  1283. package/lighthouse-core/fraggle-rock/config/default-config.js +0 -205
  1284. package/lighthouse-core/fraggle-rock/config/filters.js +0 -335
  1285. package/lighthouse-core/fraggle-rock/config/validation.js +0 -313
  1286. package/lighthouse-core/fraggle-rock/gather/base-artifacts.js +0 -99
  1287. package/lighthouse-core/fraggle-rock/gather/base-gatherer.js +0 -107
  1288. package/lighthouse-core/fraggle-rock/gather/driver.js +0 -88
  1289. package/lighthouse-core/fraggle-rock/gather/navigation-runner.js +0 -339
  1290. package/lighthouse-core/fraggle-rock/gather/runner-helpers.js +0 -160
  1291. package/lighthouse-core/fraggle-rock/gather/session.js +0 -182
  1292. package/lighthouse-core/fraggle-rock/gather/snapshot-runner.js +0 -68
  1293. package/lighthouse-core/fraggle-rock/gather/timespan-runner.js +0 -82
  1294. package/lighthouse-core/fraggle-rock/user-flow.js +0 -229
  1295. package/lighthouse-core/gather/connections/connection.js +0 -179
  1296. package/lighthouse-core/gather/connections/cri.js +0 -171
  1297. package/lighthouse-core/gather/connections/raw.js +0 -58
  1298. package/lighthouse-core/gather/devtools-log.js +0 -61
  1299. package/lighthouse-core/gather/driver/dom.js +0 -58
  1300. package/lighthouse-core/gather/driver/environment.js +0 -105
  1301. package/lighthouse-core/gather/driver/execution-context.js +0 -249
  1302. package/lighthouse-core/gather/driver/navigation.js +0 -179
  1303. package/lighthouse-core/gather/driver/network-monitor.js +0 -290
  1304. package/lighthouse-core/gather/driver/network.js +0 -28
  1305. package/lighthouse-core/gather/driver/prepare.js +0 -226
  1306. package/lighthouse-core/gather/driver/service-workers.js +0 -53
  1307. package/lighthouse-core/gather/driver/storage.js +0 -125
  1308. package/lighthouse-core/gather/driver/target-manager.js +0 -125
  1309. package/lighthouse-core/gather/driver/wait-for-condition.js +0 -535
  1310. package/lighthouse-core/gather/driver.js +0 -482
  1311. package/lighthouse-core/gather/fetcher.js +0 -318
  1312. package/lighthouse-core/gather/gather-runner.js +0 -622
  1313. package/lighthouse-core/gather/gatherers/accessibility.js +0 -172
  1314. package/lighthouse-core/gather/gatherers/anchor-elements.js +0 -133
  1315. package/lighthouse-core/gather/gatherers/cache-contents.js +0 -59
  1316. package/lighthouse-core/gather/gatherers/console-messages.js +0 -173
  1317. package/lighthouse-core/gather/gatherers/css-usage.js +0 -149
  1318. package/lighthouse-core/gather/gatherers/devtools-log-compat.js +0 -36
  1319. package/lighthouse-core/gather/gatherers/devtools-log.js +0 -66
  1320. package/lighthouse-core/gather/gatherers/dobetterweb/doctype.js +0 -46
  1321. package/lighthouse-core/gather/gatherers/dobetterweb/domstats.js +0 -103
  1322. package/lighthouse-core/gather/gatherers/dobetterweb/optimized-images.js +0 -192
  1323. package/lighthouse-core/gather/gatherers/dobetterweb/password-inputs-with-prevented-paste.js +0 -50
  1324. package/lighthouse-core/gather/gatherers/dobetterweb/response-compression.js +0 -154
  1325. package/lighthouse-core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +0 -238
  1326. package/lighthouse-core/gather/gatherers/full-page-screenshot.js +0 -235
  1327. package/lighthouse-core/gather/gatherers/gatherer.js +0 -59
  1328. package/lighthouse-core/gather/gatherers/global-listeners.js +0 -92
  1329. package/lighthouse-core/gather/gatherers/iframe-elements.js +0 -65
  1330. package/lighthouse-core/gather/gatherers/image-elements.js +0 -375
  1331. package/lighthouse-core/gather/gatherers/inputs.js +0 -113
  1332. package/lighthouse-core/gather/gatherers/inspector-issues.js +0 -127
  1333. package/lighthouse-core/gather/gatherers/installability-errors.js +0 -48
  1334. package/lighthouse-core/gather/gatherers/js-usage.js +0 -145
  1335. package/lighthouse-core/gather/gatherers/link-elements.js +0 -184
  1336. package/lighthouse-core/gather/gatherers/main-document-content.js +0 -56
  1337. package/lighthouse-core/gather/gatherers/meta-elements.js +0 -68
  1338. package/lighthouse-core/gather/gatherers/network-user-agent.js +0 -42
  1339. package/lighthouse-core/gather/gatherers/script-elements.js +0 -160
  1340. package/lighthouse-core/gather/gatherers/seo/embedded-content.js +0 -64
  1341. package/lighthouse-core/gather/gatherers/seo/font-size.js +0 -380
  1342. package/lighthouse-core/gather/gatherers/seo/robots-txt.js +0 -56
  1343. package/lighthouse-core/gather/gatherers/seo/tap-targets.js +0 -370
  1344. package/lighthouse-core/gather/gatherers/service-worker.js +0 -45
  1345. package/lighthouse-core/gather/gatherers/source-maps.js +0 -150
  1346. package/lighthouse-core/gather/gatherers/stacks.js +0 -125
  1347. package/lighthouse-core/gather/gatherers/trace-compat.js +0 -36
  1348. package/lighthouse-core/gather/gatherers/trace-elements.js +0 -349
  1349. package/lighthouse-core/gather/gatherers/trace.js +0 -131
  1350. package/lighthouse-core/gather/gatherers/viewport-dimensions.js +0 -58
  1351. package/lighthouse-core/gather/gatherers/web-app-manifest.js +0 -102
  1352. package/lighthouse-core/index.js +0 -80
  1353. package/lighthouse-core/lib/arbitrary-equality-map.js +0 -81
  1354. package/lighthouse-core/lib/asset-saver.js +0 -341
  1355. package/lighthouse-core/lib/axe.js +0 -13
  1356. package/lighthouse-core/lib/cdt/Platform.js +0 -55
  1357. package/lighthouse-core/lib/cdt/SDK.js +0 -28
  1358. package/lighthouse-core/lib/cdt/generated/SourceMap.js +0 -346
  1359. package/lighthouse-core/lib/csp-evaluator.js +0 -173
  1360. package/lighthouse-core/lib/dependency-graph/base-node.js +0 -363
  1361. package/lighthouse-core/lib/dependency-graph/cpu-node.js +0 -86
  1362. package/lighthouse-core/lib/dependency-graph/network-node.js +0 -99
  1363. package/lighthouse-core/lib/dependency-graph/simulator/connection-pool.js +0 -171
  1364. package/lighthouse-core/lib/dependency-graph/simulator/dns-cache.js +0 -73
  1365. package/lighthouse-core/lib/dependency-graph/simulator/network-analyzer.js +0 -498
  1366. package/lighthouse-core/lib/dependency-graph/simulator/simulator-timing-map.js +0 -212
  1367. package/lighthouse-core/lib/dependency-graph/simulator/simulator.js +0 -523
  1368. package/lighthouse-core/lib/dependency-graph/simulator/tcp-connection.js +0 -206
  1369. package/lighthouse-core/lib/deprecations-strings.js +0 -573
  1370. package/lighthouse-core/lib/emulation.js +0 -164
  1371. package/lighthouse-core/lib/i18n/README.md +0 -273
  1372. package/lighthouse-core/lib/i18n/i18n.js +0 -221
  1373. package/lighthouse-core/lib/icons.js +0 -85
  1374. package/lighthouse-core/lib/lantern-trace-saver.js +0 -198
  1375. package/lighthouse-core/lib/lh-env.js +0 -14
  1376. package/lighthouse-core/lib/lh-error.js +0 -421
  1377. package/lighthouse-core/lib/lh-trace-processor.js +0 -46
  1378. package/lighthouse-core/lib/manifest-parser.js +0 -513
  1379. package/lighthouse-core/lib/median-run.js +0 -92
  1380. package/lighthouse-core/lib/minification-estimator.js +0 -193
  1381. package/lighthouse-core/lib/minify-devtoolslog.js +0 -87
  1382. package/lighthouse-core/lib/minify-trace.js +0 -173
  1383. package/lighthouse-core/lib/navigation-error.js +0 -145
  1384. package/lighthouse-core/lib/network-recorder.js +0 -337
  1385. package/lighthouse-core/lib/network-request.js +0 -545
  1386. package/lighthouse-core/lib/page-functions.js +0 -559
  1387. package/lighthouse-core/lib/proto-preprocessor.js +0 -133
  1388. package/lighthouse-core/lib/rect-helpers.js +0 -252
  1389. package/lighthouse-core/lib/script-helpers.js +0 -24
  1390. package/lighthouse-core/lib/sentry.js +0 -144
  1391. package/lighthouse-core/lib/stack-packs.js +0 -120
  1392. package/lighthouse-core/lib/statistics.js +0 -104
  1393. package/lighthouse-core/lib/tappable-rects.js +0 -99
  1394. package/lighthouse-core/lib/third-party-web.js +0 -53
  1395. package/lighthouse-core/lib/timing-trace-saver.js +0 -97
  1396. package/lighthouse-core/lib/tracehouse/cpu-profile-model.js +0 -592
  1397. package/lighthouse-core/lib/tracehouse/main-thread-tasks.js +0 -688
  1398. package/lighthouse-core/lib/tracehouse/task-groups.js +0 -112
  1399. package/lighthouse-core/lib/tracehouse/task-summary.js +0 -87
  1400. package/lighthouse-core/lib/tracehouse/trace-processor.js +0 -962
  1401. package/lighthouse-core/lib/traces/pwmetrics-events.js +0 -200
  1402. package/lighthouse-core/lib/url-shim.js +0 -274
  1403. package/lighthouse-core/runner.js +0 -518
  1404. package/lighthouse-core/scoring.js +0 -93
  1405. package/lighthouse-core/scripts/download-chrome.sh +0 -36
  1406. package/lighthouse-core/scripts/manual-chrome-launcher.js +0 -51
  1407. package/lighthouse-core/scripts/package.json +0 -4
  1408. package/lighthouse-core/util-commonjs.js +0 -708
  1409. package/now.json +0 -14
  1410. package/report/.eslintrc.cjs +0 -35
  1411. package/report/generator/package.json +0 -4
  1412. package/report/package.json +0 -4
  1413. package/report/renderer/i18n.js +0 -198
  1414. package/report/renderer/util.js +0 -705
  1415. package/report/test/generator/package.json +0 -4
  1416. package/report/test/renderer/i18n-test.js +0 -140
  1417. package/report/test/renderer/util-test.js +0 -479
  1418. package/report/test-assets/faux-psi-template.html +0 -177
  1419. package/report/test-assets/faux-psi.js +0 -153
  1420. package/third-party/snyk/snapshot.json +0 -182
  1421. package/types/cssstyle/index.d.ts +0 -23
  1422. package/types/global-lh.d.ts +0 -81
  1423. package/types/jest.d.ts +0 -25
  1424. package/types/jsonld/index.d.ts +0 -19
  1425. package/types/lhr/flow.d.ts +0 -32
  1426. package/types/lighthouse-logger/index.d.ts +0 -33
  1427. package/types/lookup-closest-locale/index.d.ts +0 -11
  1428. package/types/node.d.ts +0 -12
  1429. package/types/query-selector.d.ts +0 -36
  1430. package/types/smokehouse.d.ts +0 -80
  1431. package/types/structured-data.d.ts +0 -36
@@ -0,0 +1,92 @@
1
+ /**
2
+ * @license Copyright 2018 The Lighthouse Authors. All Rights Reserved.
3
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
+ */
6
+
7
+ import {makeComputedArtifact} from './computed-artifact.js';
8
+ import * as constants from '../config/constants.js';
9
+ import {Simulator} from '../lib/dependency-graph/simulator/simulator.js';
10
+ import {NetworkAnalysis} from './network-analysis.js';
11
+
12
+ class LoadSimulator {
13
+ /**
14
+ * @param {{devtoolsLog: LH.DevtoolsLog, settings: LH.Audit.Context['settings']}} data
15
+ * @param {LH.Artifacts.ComputedContext} context
16
+ * @return {Promise<Simulator>}
17
+ */
18
+ static async compute_(data, context) {
19
+ const {throttlingMethod, throttling, precomputedLanternData} = data.settings;
20
+ const networkAnalysis = await NetworkAnalysis.request(data.devtoolsLog, context);
21
+
22
+ /** @type {LH.Gatherer.Simulation.Options} */
23
+ const options = {
24
+ additionalRttByOrigin: networkAnalysis.additionalRttByOrigin,
25
+ serverResponseTimeByOrigin: networkAnalysis.serverResponseTimeByOrigin,
26
+ observedThroughput: networkAnalysis.throughput,
27
+ };
28
+
29
+ // If we have precomputed lantern data, overwrite our observed estimates and use precomputed instead
30
+ // for increased stability.
31
+ if (precomputedLanternData) {
32
+ options.additionalRttByOrigin = new Map(Object.entries(
33
+ precomputedLanternData.additionalRttByOrigin));
34
+ options.serverResponseTimeByOrigin = new Map(Object.entries(
35
+ precomputedLanternData.serverResponseTimeByOrigin));
36
+ }
37
+
38
+ switch (throttlingMethod) {
39
+ case 'provided':
40
+ options.rtt = networkAnalysis.rtt;
41
+ options.throughput = networkAnalysis.throughput;
42
+ options.cpuSlowdownMultiplier = 1;
43
+ options.layoutTaskMultiplier = 1;
44
+ break;
45
+ case 'devtools':
46
+ if (throttling) {
47
+ options.rtt =
48
+ throttling.requestLatencyMs / constants.throttling.DEVTOOLS_RTT_ADJUSTMENT_FACTOR;
49
+ options.throughput =
50
+ throttling.downloadThroughputKbps * 1024 /
51
+ constants.throttling.DEVTOOLS_THROUGHPUT_ADJUSTMENT_FACTOR;
52
+ }
53
+
54
+ options.cpuSlowdownMultiplier = 1;
55
+ options.layoutTaskMultiplier = 1;
56
+ break;
57
+ case 'simulate':
58
+ if (throttling) {
59
+ options.rtt = throttling.rttMs;
60
+ options.throughput = throttling.throughputKbps * 1024;
61
+ options.cpuSlowdownMultiplier = throttling.cpuSlowdownMultiplier;
62
+ }
63
+ break;
64
+ default:
65
+ // intentionally fallback to simulator defaults
66
+ break;
67
+ }
68
+
69
+ return new Simulator(options);
70
+ }
71
+
72
+ /**
73
+ * @param {LH.Artifacts.NetworkAnalysis} networkAnalysis
74
+ * @return {LH.PrecomputedLanternData}
75
+ */
76
+ static convertAnalysisToSaveableLanternData(networkAnalysis) {
77
+ /** @type {LH.PrecomputedLanternData} */
78
+ const lanternData = {additionalRttByOrigin: {}, serverResponseTimeByOrigin: {}};
79
+ for (const [origin, value] of networkAnalysis.additionalRttByOrigin.entries()) {
80
+ if (origin.startsWith('http')) lanternData.additionalRttByOrigin[origin] = value;
81
+ }
82
+
83
+ for (const [origin, value] of networkAnalysis.serverResponseTimeByOrigin.entries()) {
84
+ if (origin.startsWith('http')) lanternData.serverResponseTimeByOrigin[origin] = value;
85
+ }
86
+
87
+ return lanternData;
88
+ }
89
+ }
90
+
91
+ const LoadSimulatorComputed = makeComputedArtifact(LoadSimulator, ['devtoolsLog', 'settings']);
92
+ export {LoadSimulatorComputed as LoadSimulator};
@@ -0,0 +1,25 @@
1
+ export { MainResourceComputed as MainResource };
2
+ declare const MainResourceComputed: typeof MainResource & {
3
+ request: (dependencies: {
4
+ URL: LH.Artifacts['URL'];
5
+ devtoolsLog: import("../index.js").DevtoolsLog;
6
+ }, context: import("../../types/utility-types.js").default.ImmutableObject<{
7
+ computedCache: Map<string, import("../lib/arbitrary-equality-map.js").ArbitraryEqualityMap>;
8
+ }>) => Promise<import("../lib/network-request.js").NetworkRequest>;
9
+ };
10
+ /**
11
+ * @fileoverview This artifact identifies the main resource on the page. Current solution assumes
12
+ * that the main resource is the first non-rediected one.
13
+ */
14
+ declare class MainResource {
15
+ /**
16
+ * @param {{URL: LH.Artifacts['URL'], devtoolsLog: LH.DevtoolsLog}} data
17
+ * @param {LH.Artifacts.ComputedContext} context
18
+ * @return {Promise<LH.Artifacts.NetworkRequest>}
19
+ */
20
+ static compute_(data: {
21
+ URL: LH.Artifacts['URL'];
22
+ devtoolsLog: import("../index.js").DevtoolsLog;
23
+ }, context: LH.Artifacts.ComputedContext): Promise<LH.Artifacts.NetworkRequest>;
24
+ }
25
+ //# sourceMappingURL=main-resource.d.ts.map
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license Copyright 2017 The Lighthouse Authors. All Rights Reserved.
3
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
+ */
6
+
7
+ import {makeComputedArtifact} from './computed-artifact.js';
8
+ import {NetworkAnalyzer} from '../lib/dependency-graph/simulator/network-analyzer.js';
9
+ import {NetworkRecords} from './network-records.js';
10
+
11
+ /**
12
+ * @fileoverview This artifact identifies the main resource on the page. Current solution assumes
13
+ * that the main resource is the first non-rediected one.
14
+ */
15
+ class MainResource {
16
+ /**
17
+ * @param {{URL: LH.Artifacts['URL'], devtoolsLog: LH.DevtoolsLog}} data
18
+ * @param {LH.Artifacts.ComputedContext} context
19
+ * @return {Promise<LH.Artifacts.NetworkRequest>}
20
+ */
21
+ static async compute_(data, context) {
22
+ const {mainDocumentUrl} = data.URL;
23
+ if (!mainDocumentUrl) throw new Error('mainDocumentUrl must exist to get the main resource');
24
+ const requests = await NetworkRecords.request(data.devtoolsLog, context);
25
+ const mainResource = NetworkAnalyzer.findResourceForUrl(requests, mainDocumentUrl);
26
+ if (!mainResource) {
27
+ throw new Error('Unable to identify the main resource');
28
+ }
29
+
30
+ return mainResource;
31
+ }
32
+ }
33
+
34
+ const MainResourceComputed = makeComputedArtifact(MainResource, ['URL', 'devtoolsLog']);
35
+ export {MainResourceComputed as MainResource};
@@ -0,0 +1,15 @@
1
+ export { MainThreadTasksComputed as MainThreadTasks };
2
+ declare const MainThreadTasksComputed: typeof MainThreadTasks & {
3
+ request: (dependencies: import("../index.js").Trace, context: import("../../types/utility-types.js").default.ImmutableObject<{
4
+ computedCache: Map<string, import("../lib/arbitrary-equality-map.js").ArbitraryEqualityMap>;
5
+ }>) => Promise<import("../lib/tracehouse/main-thread-tasks.js").TaskNode[]>;
6
+ };
7
+ declare class MainThreadTasks {
8
+ /**
9
+ * @param {LH.Trace} trace
10
+ * @param {LH.Artifacts.ComputedContext} context
11
+ * @return {Promise<Array<LH.Artifacts.TaskNode>>}
12
+ */
13
+ static compute_(trace: LH.Trace, context: LH.Artifacts.ComputedContext): Promise<Array<LH.Artifacts.TaskNode>>;
14
+ }
15
+ //# sourceMappingURL=main-thread-tasks.d.ts.map
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license Copyright 2019 The Lighthouse Authors. All Rights Reserved.
3
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
+ */
6
+
7
+ import {makeComputedArtifact} from './computed-artifact.js';
8
+ import {MainThreadTasks as MainThreadTasks_} from '../lib/tracehouse/main-thread-tasks.js';
9
+ import {ProcessedTrace} from './processed-trace.js';
10
+
11
+ class MainThreadTasks {
12
+ /**
13
+ * @param {LH.Trace} trace
14
+ * @param {LH.Artifacts.ComputedContext} context
15
+ * @return {Promise<Array<LH.Artifacts.TaskNode>>}
16
+ */
17
+ static async compute_(trace, context) {
18
+ const {mainThreadEvents, frames, timestamps} = await ProcessedTrace.request(trace, context);
19
+ return MainThreadTasks_.getMainThreadTasks(mainThreadEvents, frames, timestamps.traceEnd,
20
+ timestamps.timeOrigin);
21
+ }
22
+ }
23
+
24
+ const MainThreadTasksComputed = makeComputedArtifact(MainThreadTasks, null);
25
+ export {MainThreadTasksComputed as MainThreadTasks};
@@ -0,0 +1,24 @@
1
+ export { ManifestValuesComputed as ManifestValues };
2
+ declare const ManifestValuesComputed: typeof ManifestValues & {
3
+ request: (dependencies: Pick<import("../index.js").Artifacts, "InstallabilityErrors" | "WebAppManifest">, context: import("../../types/utility-types.js").default.ImmutableObject<{
4
+ computedCache: Map<string, import("../lib/arbitrary-equality-map.js").ArbitraryEqualityMap>;
5
+ }>) => Promise<import("../index.js").Artifacts.ManifestValues>;
6
+ };
7
+ declare class ManifestValues {
8
+ /** @typedef {(val: NonNullable<LH.Artifacts.Manifest['value']>, errors: LH.Artifacts.InstallabilityErrors['errors']) => boolean} Validator */
9
+ /**
10
+ * @return {Array<{id: LH.Artifacts.ManifestValueCheckID, failureText: string, validate: Validator}>}
11
+ */
12
+ static get manifestChecks(): {
13
+ id: LH.Artifacts.ManifestValueCheckID;
14
+ failureText: string;
15
+ validate: (val: NonNullable<LH.Artifacts.Manifest['value']>, errors: LH.Artifacts.InstallabilityErrors['errors']) => boolean;
16
+ }[];
17
+ /**
18
+ * Returns results of all manifest checks
19
+ * @param {Pick<LH.Artifacts, 'WebAppManifest'|'InstallabilityErrors'>} Manifest
20
+ * @return {Promise<LH.Artifacts.ManifestValues>}
21
+ */
22
+ static compute_({ WebAppManifest, InstallabilityErrors }: Pick<LH.Artifacts, 'WebAppManifest' | 'InstallabilityErrors'>): Promise<LH.Artifacts.ManifestValues>;
23
+ }
24
+ //# sourceMappingURL=manifest-values.d.ts.map
@@ -0,0 +1,136 @@
1
+ /**
2
+ * @license Copyright 2016 The Lighthouse Authors. All Rights Reserved.
3
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
+ */
6
+
7
+ import {makeComputedArtifact} from './computed-artifact.js';
8
+ import * as icons from '../lib/icons.js';
9
+
10
+ const PWA_DISPLAY_VALUES = ['minimal-ui', 'fullscreen', 'standalone'];
11
+
12
+ // Historically, Chrome recommended 12 chars as the maximum short_name length to prevent truncation.
13
+ // For more discussion, see https://github.com/GoogleChrome/lighthouse/issues/69 and https://developer.chrome.com/apps/manifest/name#short_name
14
+ const SUGGESTED_SHORTNAME_LENGTH = 12;
15
+
16
+ class ManifestValues {
17
+ /** @typedef {(val: NonNullable<LH.Artifacts.Manifest['value']>, errors: LH.Artifacts.InstallabilityErrors['errors']) => boolean} Validator */
18
+
19
+ /**
20
+ * @return {Array<{id: LH.Artifacts.ManifestValueCheckID, failureText: string, validate: Validator}>}
21
+ */
22
+ static get manifestChecks() {
23
+ return [
24
+ {
25
+ id: 'hasStartUrl',
26
+ failureText: 'Manifest does not contain a `start_url`',
27
+ validate: manifestValue => !!manifestValue.start_url.value,
28
+ },
29
+ {
30
+ id: 'hasIconsAtLeast144px',
31
+ failureText: 'Manifest does not have a PNG icon of at least 144px',
32
+ validate: manifestValue => icons.doExist(manifestValue) &&
33
+ icons.pngSizedAtLeast(144, manifestValue).length > 0,
34
+ },
35
+ {
36
+ id: 'hasIconsAtLeast512px',
37
+ failureText: 'Manifest does not have a PNG icon of at least 512px',
38
+ validate: manifestValue => icons.doExist(manifestValue) &&
39
+ icons.pngSizedAtLeast(512, manifestValue).length > 0,
40
+ },
41
+ {
42
+ id: 'fetchesIcon',
43
+ failureText: 'Manifest icon failed to be fetched',
44
+ validate: (manifestValue, errors) => {
45
+ const failedToFetchIconErrorIds = [
46
+ 'cannot-download-icon',
47
+ 'no-icon-available',
48
+ ];
49
+ return icons.doExist(manifestValue) &&
50
+ !errors.some(error => failedToFetchIconErrorIds.includes(error.errorId));
51
+ },
52
+ },
53
+ {
54
+ id: 'hasPWADisplayValue',
55
+ failureText: 'Manifest\'s `display` value is not one of: ' + PWA_DISPLAY_VALUES.join(' | '),
56
+ validate: manifestValue => PWA_DISPLAY_VALUES.includes(manifestValue.display.value),
57
+ },
58
+ {
59
+ id: 'hasBackgroundColor',
60
+ failureText: 'Manifest does not have `background_color`',
61
+ validate: manifestValue => !!manifestValue.background_color.value,
62
+ },
63
+ {
64
+ id: 'hasThemeColor',
65
+ failureText: 'Manifest does not have `theme_color`',
66
+ validate: manifestValue => !!manifestValue.theme_color.value,
67
+ },
68
+ {
69
+ id: 'hasShortName',
70
+ failureText: 'Manifest does not have `short_name`',
71
+ validate: manifestValue => !!manifestValue.short_name.value,
72
+ },
73
+ {
74
+ id: 'shortNameLength',
75
+ failureText: `Manifest's \`short_name\` is too long (>${SUGGESTED_SHORTNAME_LENGTH} ` +
76
+ `characters) to be displayed on a homescreen without truncation`,
77
+ // Pass if there's no short_name. Don't want to report a non-existent string is too long
78
+ validate: manifestValue => !!manifestValue.short_name.value &&
79
+ manifestValue.short_name.value.length <= SUGGESTED_SHORTNAME_LENGTH,
80
+ },
81
+ {
82
+ id: 'hasName',
83
+ failureText: 'Manifest does not have `name`',
84
+ validate: manifestValue => !!manifestValue.name.value,
85
+ },
86
+ {
87
+ id: 'hasMaskableIcon',
88
+ failureText: 'Manifest does not have at least one icon that is maskable',
89
+ validate: ManifestValue => icons.doExist(ManifestValue) &&
90
+ icons.containsMaskableIcon(ManifestValue),
91
+ },
92
+ ];
93
+ }
94
+
95
+ /**
96
+ * Returns results of all manifest checks
97
+ * @param {Pick<LH.Artifacts, 'WebAppManifest'|'InstallabilityErrors'>} Manifest
98
+ * @return {Promise<LH.Artifacts.ManifestValues>}
99
+ */
100
+ static async compute_({WebAppManifest, InstallabilityErrors}) {
101
+ // if the manifest isn't there or is invalid json, we report that and bail
102
+ if (WebAppManifest === null) {
103
+ return {
104
+ isParseFailure: true,
105
+ parseFailureReason: 'No manifest was fetched',
106
+ allChecks: [],
107
+ };
108
+ }
109
+ const manifestValue = WebAppManifest.value;
110
+ if (manifestValue === undefined) {
111
+ return {
112
+ isParseFailure: true,
113
+ parseFailureReason: 'Manifest failed to parse as valid JSON',
114
+ allChecks: [],
115
+ };
116
+ }
117
+
118
+ // manifest is valid, so do the rest of the checks
119
+ const remainingChecks = ManifestValues.manifestChecks.map(item => {
120
+ return {
121
+ id: item.id,
122
+ failureText: item.failureText,
123
+ passing: item.validate(manifestValue, InstallabilityErrors.errors),
124
+ };
125
+ });
126
+
127
+ return {
128
+ isParseFailure: false,
129
+ allChecks: remainingChecks,
130
+ };
131
+ }
132
+ }
133
+
134
+ const ManifestValuesComputed =
135
+ makeComputedArtifact(ManifestValues, ['InstallabilityErrors', 'WebAppManifest']);
136
+ export {ManifestValuesComputed as ManifestValues};
@@ -0,0 +1,53 @@
1
+ export { CumulativeLayoutShiftComputed as CumulativeLayoutShift };
2
+ export type LayoutShiftEvent = {
3
+ ts: number;
4
+ isMainFrame: boolean;
5
+ weightedScore: number;
6
+ };
7
+ declare const CumulativeLayoutShiftComputed: typeof CumulativeLayoutShift & {
8
+ request: (dependencies: import("../../index.js").Trace, context: import("../../../types/utility-types.js").default.ImmutableObject<{
9
+ computedCache: Map<string, import("../../lib/arbitrary-equality-map.js").ArbitraryEqualityMap>;
10
+ }>) => Promise<{
11
+ cumulativeLayoutShift: number;
12
+ cumulativeLayoutShiftMainFrame: number;
13
+ totalCumulativeLayoutShift: number;
14
+ }>;
15
+ };
16
+ /** @typedef {{ts: number, isMainFrame: boolean, weightedScore: number}} LayoutShiftEvent */
17
+ declare class CumulativeLayoutShift {
18
+ /**
19
+ * Returns all LayoutShift events that had no recent input.
20
+ * Only a `weightedScore` per event is returned. For non-main-frame events, this is
21
+ * the only score that matters. For main-frame events, `weighted_score_delta === score`.
22
+ * @see https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/layout/layout_shift_tracker.cc;l=492-495;drc=de3b3a8a8839269c6b44403fa38a13a1ed12fed5
23
+ * @param {LH.TraceEvent[]} traceEvents
24
+ * @return {Array<LayoutShiftEvent>}
25
+ */
26
+ static getLayoutShiftEvents(traceEvents: LH.TraceEvent[]): Array<LayoutShiftEvent>;
27
+ /**
28
+ * Calculates cumulative layout shifts per cluster (session) of LayoutShift
29
+ * events -- where a new cluster is created when there's a gap of more than
30
+ * 1000ms since the last LayoutShift event or the cluster is greater than
31
+ * 5000ms long -- and returns the max LayoutShift score found.
32
+ * @param {Array<LayoutShiftEvent>} layoutShiftEvents
33
+ * @return {number}
34
+ */
35
+ static calculate(layoutShiftEvents: Array<LayoutShiftEvent>): number;
36
+ /**
37
+ * Sum all layout shift events from the entire trace.
38
+ * @param {Array<LayoutShiftEvent>} layoutShiftEvents
39
+ * @return {number}
40
+ */
41
+ static calculateTotalCumulativeLayoutShift(layoutShiftEvents: Array<LayoutShiftEvent>): number;
42
+ /**
43
+ * @param {LH.Trace} trace
44
+ * @param {LH.Artifacts.ComputedContext} context
45
+ * @return {Promise<{cumulativeLayoutShift: number, cumulativeLayoutShiftMainFrame: number, totalCumulativeLayoutShift: number}>}
46
+ */
47
+ static compute_(trace: LH.Trace, context: LH.Artifacts.ComputedContext): Promise<{
48
+ cumulativeLayoutShift: number;
49
+ cumulativeLayoutShiftMainFrame: number;
50
+ totalCumulativeLayoutShift: number;
51
+ }>;
52
+ }
53
+ //# sourceMappingURL=cumulative-layout-shift.d.ts.map
@@ -0,0 +1,125 @@
1
+ /**
2
+ * @license Copyright 2019 The Lighthouse Authors. All Rights Reserved.
3
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
+ */
6
+
7
+ import {makeComputedArtifact} from '../computed-artifact.js';
8
+ import {ProcessedTrace} from '../processed-trace.js';
9
+
10
+ /** @typedef {{ts: number, isMainFrame: boolean, weightedScore: number}} LayoutShiftEvent */
11
+
12
+ class CumulativeLayoutShift {
13
+ /**
14
+ * Returns all LayoutShift events that had no recent input.
15
+ * Only a `weightedScore` per event is returned. For non-main-frame events, this is
16
+ * the only score that matters. For main-frame events, `weighted_score_delta === score`.
17
+ * @see https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/layout/layout_shift_tracker.cc;l=492-495;drc=de3b3a8a8839269c6b44403fa38a13a1ed12fed5
18
+ * @param {LH.TraceEvent[]} traceEvents
19
+ * @return {Array<LayoutShiftEvent>}
20
+ */
21
+ static getLayoutShiftEvents(traceEvents) {
22
+ const layoutShiftEvents = [];
23
+
24
+ // Chromium will set `had_recent_input` if there was recent user input, which
25
+ // skips shift events from contributing to CLS. This flag is also set when
26
+ // Lighthouse changes the emulation size. This results in the first few shift
27
+ // events having `had_recent_input` set, so ignore it for those events.
28
+ // See https://bugs.chromium.org/p/chromium/issues/detail?id=1094974.
29
+ let ignoreHadRecentInput = true;
30
+
31
+ for (const event of traceEvents) {
32
+ if (event.name !== 'LayoutShift' ||
33
+ !event.args.data ||
34
+ event.args.data.is_main_frame === undefined) {
35
+ continue;
36
+ }
37
+
38
+ // For all-frames CLS calculation, we rely on `weighted_score_delta`
39
+ // All layout shift events should have this since M90: https://crbug.com/1173139
40
+ if (event.args.data.weighted_score_delta === undefined) {
41
+ throw new Error('CLS missing weighted_score_delta');
42
+ }
43
+
44
+ if (event.args.data.had_recent_input) {
45
+ // `had_recent_input` events aren't used unless currently ignoring.
46
+ if (!ignoreHadRecentInput) continue;
47
+ } else {
48
+ // After a false `had_recent_input`, stop ignoring property.
49
+ ignoreHadRecentInput = false;
50
+ }
51
+
52
+ layoutShiftEvents.push({
53
+ ts: event.ts,
54
+ isMainFrame: event.args.data.is_main_frame,
55
+ weightedScore: event.args.data.weighted_score_delta,
56
+ });
57
+ }
58
+
59
+ return layoutShiftEvents;
60
+ }
61
+
62
+ /**
63
+ * Calculates cumulative layout shifts per cluster (session) of LayoutShift
64
+ * events -- where a new cluster is created when there's a gap of more than
65
+ * 1000ms since the last LayoutShift event or the cluster is greater than
66
+ * 5000ms long -- and returns the max LayoutShift score found.
67
+ * @param {Array<LayoutShiftEvent>} layoutShiftEvents
68
+ * @return {number}
69
+ */
70
+ static calculate(layoutShiftEvents) {
71
+ const gapMicroseconds = 1_000_000;
72
+ const limitMicroseconds = 5_000_000;
73
+ let maxScore = 0;
74
+ let currentClusterScore = 0;
75
+ let firstTs = Number.NEGATIVE_INFINITY;
76
+ let prevTs = Number.NEGATIVE_INFINITY;
77
+
78
+ for (const event of layoutShiftEvents) {
79
+ if (event.ts - firstTs > limitMicroseconds || event.ts - prevTs > gapMicroseconds) {
80
+ firstTs = event.ts;
81
+ currentClusterScore = 0;
82
+ }
83
+ prevTs = event.ts;
84
+ currentClusterScore += event.weightedScore;
85
+ maxScore = Math.max(maxScore, currentClusterScore);
86
+ }
87
+
88
+ return maxScore;
89
+ }
90
+
91
+ /**
92
+ * Sum all layout shift events from the entire trace.
93
+ * @param {Array<LayoutShiftEvent>} layoutShiftEvents
94
+ * @return {number}
95
+ */
96
+ static calculateTotalCumulativeLayoutShift(layoutShiftEvents) {
97
+ return layoutShiftEvents.reduce((sum, e) => sum += e.weightedScore, 0);
98
+ }
99
+
100
+ /**
101
+ * @param {LH.Trace} trace
102
+ * @param {LH.Artifacts.ComputedContext} context
103
+ * @return {Promise<{cumulativeLayoutShift: number, cumulativeLayoutShiftMainFrame: number, totalCumulativeLayoutShift: number}>}
104
+ */
105
+ static async compute_(trace, context) {
106
+ const processedTrace = await ProcessedTrace.request(trace, context);
107
+
108
+ const allFrameShiftEvents =
109
+ CumulativeLayoutShift.getLayoutShiftEvents(processedTrace.frameTreeEvents);
110
+ const mainFrameShiftEvents = allFrameShiftEvents.filter(e => e.isMainFrame);
111
+
112
+ // The original Cumulative Layout Shift metric, the sum of all main-frame shift events.
113
+ const totalCumulativeLayoutShift =
114
+ CumulativeLayoutShift.calculateTotalCumulativeLayoutShift(mainFrameShiftEvents);
115
+
116
+ return {
117
+ cumulativeLayoutShift: CumulativeLayoutShift.calculate(allFrameShiftEvents),
118
+ cumulativeLayoutShiftMainFrame: CumulativeLayoutShift.calculate(mainFrameShiftEvents),
119
+ totalCumulativeLayoutShift,
120
+ };
121
+ }
122
+ }
123
+
124
+ const CumulativeLayoutShiftComputed = makeComputedArtifact(CumulativeLayoutShift, null);
125
+ export {CumulativeLayoutShiftComputed as CumulativeLayoutShift};
@@ -0,0 +1,19 @@
1
+ export { FirstContentfulPaintAllFramesComputed as FirstContentfulPaintAllFrames };
2
+ declare const FirstContentfulPaintAllFramesComputed: typeof FirstContentfulPaintAllFrames & {
3
+ request: (dependencies: import("../../index.js").Artifacts.MetricComputationDataInput, context: import("../../../types/utility-types.js").default.ImmutableObject<{
4
+ computedCache: Map<string, import("../../lib/arbitrary-equality-map.js").ArbitraryEqualityMap>;
5
+ }>) => Promise<import("../../index.js").Artifacts.Metric | import("../../index.js").Artifacts.LanternMetric>;
6
+ };
7
+ declare class FirstContentfulPaintAllFrames extends NavigationMetric {
8
+ /**
9
+ * @return {Promise<LH.Artifacts.LanternMetric>}
10
+ */
11
+ static computeSimulatedMetric(): Promise<LH.Artifacts.LanternMetric>;
12
+ /**
13
+ * @param {LH.Artifacts.NavigationMetricComputationData} data
14
+ * @return {Promise<LH.Artifacts.Metric>}
15
+ */
16
+ static computeObservedMetric(data: LH.Artifacts.NavigationMetricComputationData): Promise<LH.Artifacts.Metric>;
17
+ }
18
+ import { NavigationMetric } from "./navigation-metric.js";
19
+ //# sourceMappingURL=first-contentful-paint-all-frames.d.ts.map
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
3
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
+ */
6
+
7
+ import {makeComputedArtifact} from '../computed-artifact.js';
8
+ import {NavigationMetric} from './navigation-metric.js';
9
+
10
+ class FirstContentfulPaintAllFrames extends NavigationMetric {
11
+ /**
12
+ * @return {Promise<LH.Artifacts.LanternMetric>}
13
+ */
14
+ static computeSimulatedMetric() {
15
+ // TODO: Add support for all frames in lantern.
16
+ throw new Error('FCP All Frames not implemented in lantern');
17
+ }
18
+
19
+ /**
20
+ * @param {LH.Artifacts.NavigationMetricComputationData} data
21
+ * @return {Promise<LH.Artifacts.Metric>}
22
+ */
23
+ static async computeObservedMetric(data) {
24
+ const {processedNavigation} = data;
25
+
26
+ return {
27
+ timing: processedNavigation.timings.firstContentfulPaintAllFrames,
28
+ timestamp: processedNavigation.timestamps.firstContentfulPaintAllFrames,
29
+ };
30
+ }
31
+ }
32
+
33
+ const FirstContentfulPaintAllFramesComputed = makeComputedArtifact(
34
+ FirstContentfulPaintAllFrames,
35
+ ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']
36
+ );
37
+ export {FirstContentfulPaintAllFramesComputed as FirstContentfulPaintAllFrames};
@@ -0,0 +1,15 @@
1
+ export { FirstContentfulPaintComputed as FirstContentfulPaint };
2
+ declare const FirstContentfulPaintComputed: typeof FirstContentfulPaint & {
3
+ request: (dependencies: import("../../index.js").Artifacts.MetricComputationDataInput, context: import("../../../types/utility-types.js").default.ImmutableObject<{
4
+ computedCache: Map<string, import("../../lib/arbitrary-equality-map.js").ArbitraryEqualityMap>;
5
+ }>) => Promise<import("../../index.js").Artifacts.Metric | import("../../index.js").Artifacts.LanternMetric>;
6
+ };
7
+ declare class FirstContentfulPaint extends NavigationMetric {
8
+ /**
9
+ * @param {LH.Artifacts.NavigationMetricComputationData} data
10
+ * @return {Promise<LH.Artifacts.Metric>}
11
+ */
12
+ static computeObservedMetric(data: LH.Artifacts.NavigationMetricComputationData): Promise<LH.Artifacts.Metric>;
13
+ }
14
+ import { NavigationMetric } from "./navigation-metric.js";
15
+ //# sourceMappingURL=first-contentful-paint.d.ts.map
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license Copyright 2018 The Lighthouse Authors. All Rights Reserved.
3
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
+ */
6
+
7
+ import {makeComputedArtifact} from '../computed-artifact.js';
8
+ import {NavigationMetric} from './navigation-metric.js';
9
+ import {LanternFirstContentfulPaint} from './lantern-first-contentful-paint.js';
10
+
11
+ class FirstContentfulPaint extends NavigationMetric {
12
+ /**
13
+ * @param {LH.Artifacts.NavigationMetricComputationData} data
14
+ * @param {LH.Artifacts.ComputedContext} context
15
+ * @return {Promise<LH.Artifacts.LanternMetric>}
16
+ */
17
+ static computeSimulatedMetric(data, context) {
18
+ const metricData = NavigationMetric.getMetricComputationInput(data);
19
+ return LanternFirstContentfulPaint.request(metricData, context);
20
+ }
21
+
22
+ /**
23
+ * @param {LH.Artifacts.NavigationMetricComputationData} data
24
+ * @return {Promise<LH.Artifacts.Metric>}
25
+ */
26
+ static async computeObservedMetric(data) {
27
+ const {processedNavigation} = data;
28
+
29
+ return {
30
+ timing: processedNavigation.timings.firstContentfulPaint,
31
+ timestamp: processedNavigation.timestamps.firstContentfulPaint,
32
+ };
33
+ }
34
+ }
35
+
36
+ const FirstContentfulPaintComputed = makeComputedArtifact(
37
+ FirstContentfulPaint,
38
+ ['devtoolsLog', 'gatherContext', 'settings', 'simulator', 'trace', 'URL']
39
+ );
40
+ export {FirstContentfulPaintComputed as FirstContentfulPaint};