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,134 @@
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 a11y from './test-definitions/a11y.js';
8
+ import byteEfficiency from './test-definitions/byte-efficiency.js';
9
+ import byteGzip from './test-definitions/byte-gzip.js';
10
+ import cspAllowAll from './test-definitions/csp-allow-all.js';
11
+ import cspBlockAll from './test-definitions/csp-block-all.js';
12
+ import dbw from './test-definitions/dobetterweb.js';
13
+ import errorsExpiredSsl from './test-definitions/errors-expired-ssl.js';
14
+ import errorsIframeExpiredSsl from './test-definitions/errors-iframe-expired-ssl.js';
15
+ import errorsInfiniteLoop from './test-definitions/errors-infinite-loop.js';
16
+ import formsAutoComplete from './test-definitions/forms-autocomplete.js';
17
+ import fpsMax from './test-definitions/fps-max.js';
18
+ import fpsMaxPassive from './test-definitions/fps-max-passive.js';
19
+ import fpsScaled from './test-definitions/fps-scaled.js';
20
+ import issuesMixedContent from './test-definitions/issues-mixed-content.js';
21
+ import lanternFetch from './test-definitions/lantern-fetch.js';
22
+ import lanternIdleCallbackLong from './test-definitions/lantern-idle-callback-long.js';
23
+ import lanternIdleCallbackShort from './test-definitions/lantern-idle-callback-short.js';
24
+ import lanternOnline from './test-definitions/lantern-online.js';
25
+ import lanternSetTimeout from './test-definitions/lantern-set-timeout.js';
26
+ import lanternXhr from './test-definitions/lantern-xhr.js';
27
+ import legacyJavascript from './test-definitions/legacy-javascript.js';
28
+ import metricsDebugger from './test-definitions/metrics-debugger.js';
29
+ import metricsDelayedFcp from './test-definitions/metrics-delayed-fcp.js';
30
+ import metricsDelayedLcp from './test-definitions/metrics-delayed-lcp.js';
31
+ import metricsTrickyTti from './test-definitions/metrics-tricky-tti.js';
32
+ import metricsTrickyTtiLateFcp from './test-definitions/metrics-tricky-tti-late-fcp.js';
33
+ import offlineOnlineOnly from './test-definitions/offline-online-only.js';
34
+ import offlineReady from './test-definitions/offline-ready.js';
35
+ import offlineSwBroken from './test-definitions/offline-sw-broken.js';
36
+ import offlineSwSlow from './test-definitions/offline-sw-slow.js';
37
+ import oopifRequests from './test-definitions/oopif-requests.js';
38
+ import oopifScripts from './test-definitions/oopif-scripts.js';
39
+ import perfBudgets from './test-definitions/perf-budgets.js';
40
+ import perfDebug from './test-definitions/perf-debug.js';
41
+ import perfDiagnosticsAnimations from './test-definitions/perf-diagnostics-animations.js';
42
+ import perfDiagnosticsThirdParty from './test-definitions/perf-diagnostics-third-party.js';
43
+ import perfDiagnosticsUnsizedImages from './test-definitions/perf-diagnostics-unsized-images.js';
44
+ import perfFonts from './test-definitions/perf-fonts.js';
45
+ import perfFrameMetrics from './test-definitions/perf-frame-metrics.js';
46
+ import perfPreload from './test-definitions/perf-preload.js';
47
+ import perfTraceElements from './test-definitions/perf-trace-elements.js';
48
+ import pubads from './test-definitions/pubads.js';
49
+ import pwaAirhorner from './test-definitions/pwa-airhorner.js';
50
+ import pwaCaltrain from './test-definitions/pwa-caltrain.js';
51
+ import pwaChromestatus from './test-definitions/pwa-chromestatus.js';
52
+ import pwaRocks from './test-definitions/pwa-rocks.js';
53
+ import pwaSvgomg from './test-definitions/pwa-svgomg.js';
54
+ import redirectsClientPaintServer from './test-definitions/redirects-client-paint-server.js';
55
+ import redirectsHistoryPushState from './test-definitions/redirects-history-push-state.js';
56
+ import redirectsMultipleServer from './test-definitions/redirects-multiple-server.js';
57
+ import redirectsScripts from './test-definitions/redirects-scripts.js';
58
+ import redirectsSelf from './test-definitions/redirects-self.js';
59
+ import redirectsSingleClient from './test-definitions/redirects-single-client.js';
60
+ import redirectsSingleServer from './test-definitions/redirects-single-server.js';
61
+ import screenshot from './test-definitions/screenshot.js';
62
+ import seoFailing from './test-definitions/seo-failing.js';
63
+ import seoPassing from './test-definitions/seo-passing.js';
64
+ import seoStatus403 from './test-definitions/seo-status-403.js';
65
+ import seoTapTargets from './test-definitions/seo-tap-targets.js';
66
+ import sourceMaps from './test-definitions/source-maps.js';
67
+ import timing from './test-definitions/timing.js';
68
+
69
+ /** @type {ReadonlyArray<Smokehouse.TestDfn>} */
70
+ const smokeTests = [
71
+ a11y,
72
+ byteEfficiency,
73
+ byteGzip,
74
+ cspAllowAll,
75
+ cspBlockAll,
76
+ dbw,
77
+ errorsExpiredSsl,
78
+ errorsIframeExpiredSsl,
79
+ errorsInfiniteLoop,
80
+ formsAutoComplete,
81
+ fpsMax,
82
+ fpsScaled,
83
+ fpsMaxPassive,
84
+ issuesMixedContent,
85
+ lanternFetch,
86
+ lanternIdleCallbackLong,
87
+ lanternIdleCallbackShort,
88
+ lanternOnline,
89
+ lanternSetTimeout,
90
+ lanternXhr,
91
+ legacyJavascript,
92
+ metricsDebugger,
93
+ metricsDelayedFcp,
94
+ metricsDelayedLcp,
95
+ metricsTrickyTti,
96
+ metricsTrickyTtiLateFcp,
97
+ offlineOnlineOnly,
98
+ offlineReady,
99
+ offlineSwBroken,
100
+ offlineSwSlow,
101
+ oopifRequests,
102
+ oopifScripts,
103
+ perfBudgets,
104
+ perfDebug,
105
+ perfDiagnosticsAnimations,
106
+ perfDiagnosticsThirdParty,
107
+ perfDiagnosticsUnsizedImages,
108
+ perfFonts,
109
+ perfFrameMetrics,
110
+ perfPreload,
111
+ perfTraceElements,
112
+ pubads,
113
+ pwaAirhorner,
114
+ pwaCaltrain,
115
+ pwaChromestatus,
116
+ pwaRocks,
117
+ pwaSvgomg,
118
+ redirectsClientPaintServer,
119
+ redirectsHistoryPushState,
120
+ redirectsMultipleServer,
121
+ redirectsScripts,
122
+ redirectsSelf,
123
+ redirectsSingleClient,
124
+ redirectsSingleServer,
125
+ screenshot,
126
+ seoFailing,
127
+ seoPassing,
128
+ seoStatus403,
129
+ seoTapTargets,
130
+ sourceMaps,
131
+ timing,
132
+ ];
133
+
134
+ export default smokeTests;
@@ -0,0 +1,16 @@
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
+ * COMPAT: update from the old TestDefn format (array of `expectations` per
8
+ * definition) to the new format (single `expectations` per def), doing our best
9
+ * generating some unique IDs.
10
+ * TODO: remove in Lighthouse 9+ once PubAds (and others?) are updated.
11
+ * @see https://github.com/GoogleChrome/lighthouse/issues/11950
12
+ * @param {ReadonlyArray<Smokehouse.BackCompatTestDefn>} allTestDefns
13
+ * @return {Array<Smokehouse.TestDfn>}
14
+ */
15
+ export function updateTestDefnFormat(allTestDefns: ReadonlyArray<Smokehouse.BackCompatTestDefn>): Array<Smokehouse.TestDfn>;
16
+ //# sourceMappingURL=back-compat-util.d.ts.map
@@ -0,0 +1,41 @@
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
+ /**
8
+ * COMPAT: update from the old TestDefn format (array of `expectations` per
9
+ * definition) to the new format (single `expectations` per def), doing our best
10
+ * generating some unique IDs.
11
+ * TODO: remove in Lighthouse 9+ once PubAds (and others?) are updated.
12
+ * @see https://github.com/GoogleChrome/lighthouse/issues/11950
13
+ * @param {ReadonlyArray<Smokehouse.BackCompatTestDefn>} allTestDefns
14
+ * @return {Array<Smokehouse.TestDfn>}
15
+ */
16
+ function updateTestDefnFormat(allTestDefns) {
17
+ const expandedTestDefns = allTestDefns.map(testDefn => {
18
+ if (Array.isArray(testDefn.expectations)) {
19
+ // Create a testDefn per expectation.
20
+ return testDefn.expectations.map((expectations, index) => {
21
+ return {
22
+ ...testDefn,
23
+ id: `${testDefn.id}-${index}`,
24
+ expectations,
25
+ };
26
+ });
27
+ } else {
28
+ // New object to make tsc happy.
29
+ return {
30
+ ...testDefn,
31
+ expectations: testDefn.expectations,
32
+ };
33
+ }
34
+ });
35
+
36
+ return expandedTestDefns.flat();
37
+ }
38
+
39
+ export {
40
+ updateTestDefnFormat,
41
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @param {Smokehouse.SmokehouseLibOptions} options
3
+ */
4
+ export function smokehouse(options: Smokehouse.SmokehouseLibOptions): Promise<{
5
+ success: boolean;
6
+ testResults: import("../smokehouse.js").SmokehouseResult[];
7
+ }>;
8
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @license Copyright 2020 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
+ /**
8
+ * @fileoverview Smoke test runner.
9
+ * Used to test integrations that run Lighthouse within a browser (i.e. LR, DevTools)
10
+ * Supports skipping and modifiying expectations to match the environment.
11
+ */
12
+
13
+ /* eslint-disable no-console */
14
+
15
+ import cloneDeep from 'lodash/cloneDeep.js';
16
+
17
+ import smokeTests from '../core-tests.js';
18
+ import {runSmokehouse, getShardedDefinitions} from '../smokehouse.js';
19
+
20
+ /**
21
+ * @param {Smokehouse.SmokehouseLibOptions} options
22
+ */
23
+ async function smokehouse(options) {
24
+ const {urlFilterRegex, skip, modify, shardArg, ...smokehouseOptions} = options;
25
+
26
+ const clonedTests = cloneDeep(smokeTests);
27
+ const modifiedTests = [];
28
+ for (const test of clonedTests) {
29
+ if (urlFilterRegex && !test.expectations.lhr.requestedUrl.match(urlFilterRegex)) {
30
+ continue;
31
+ }
32
+
33
+ const reasonToSkip = skip && skip(test, test.expectations);
34
+ if (reasonToSkip) {
35
+ console.log(`skipping ${test.expectations.lhr.requestedUrl}: ${reasonToSkip}`);
36
+ continue;
37
+ }
38
+
39
+ modify && modify(test, test.expectations);
40
+ modifiedTests.push(test);
41
+ }
42
+
43
+ const shardedTests = getShardedDefinitions(modifiedTests, shardArg);
44
+
45
+ return runSmokehouse(shardedTests, smokehouseOptions);
46
+ }
47
+
48
+ export {smokehouse};
@@ -0,0 +1,2 @@
1
+ export * from "../smokehouse.js";
2
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1,12 @@
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
+ /**
8
+ * @fileoverview A smokehouse frontend for running within a node process.
9
+ */
10
+
11
+ // Smokehouse is runnable from within node, so just a no-op for now.
12
+ export * from '../smokehouse.js';
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=smokehouse-bin.d.ts.map
@@ -0,0 +1,258 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @license Copyright 2019 The Lighthouse Authors. All Rights Reserved.
4
+ * 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
5
+ * 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.
6
+ */
7
+
8
+ /**
9
+ * @fileoverview A smokehouse frontend for running from the command line. Parse
10
+ * flags, start fixture webservers, then run smokehouse.
11
+ */
12
+
13
+ /* eslint-disable no-console */
14
+
15
+ import path from 'path';
16
+ import fs from 'fs';
17
+ import url from 'url';
18
+
19
+ import cloneDeep from 'lodash/cloneDeep.js';
20
+ import yargs from 'yargs';
21
+ import * as yargsHelpers from 'yargs/helpers';
22
+ import log from 'lighthouse-logger';
23
+
24
+ import {runSmokehouse, getShardedDefinitions} from '../smokehouse.js';
25
+ import {updateTestDefnFormat} from './back-compat-util.js';
26
+ import {LH_ROOT} from '../../../../root.js';
27
+ import exclusions from '../config/exclusions.js';
28
+
29
+ const coreTestDefnsPath =
30
+ path.join(LH_ROOT, 'cli/test/smokehouse/core-tests.js');
31
+
32
+ /**
33
+ * Possible Lighthouse runners. Loaded dynamically so e.g. a CLI run isn't
34
+ * contingent on having built all the bundles.
35
+ */
36
+ const runnerPaths = {
37
+ cli: '../lighthouse-runners/cli.js',
38
+ bundle: '../lighthouse-runners/bundle.js',
39
+ devtools: '../lighthouse-runners/devtools.js',
40
+ };
41
+
42
+ /**
43
+ * Determine batches of smoketests to run, based on the `requestedIds`.
44
+ * @param {Array<Smokehouse.TestDfn>} allTestDefns
45
+ * @param {Array<string>} requestedIds
46
+ * @param {Set<string>} excludedTests
47
+ * @return {Array<Smokehouse.TestDfn>}
48
+ */
49
+ function getDefinitionsToRun(allTestDefns, requestedIds, excludedTests) {
50
+ let smokes = [];
51
+ const usage = ` ${log.dim}yarn smoke ${allTestDefns.map(t => t.id).join(' ')}${log.reset}\n`;
52
+
53
+ if (requestedIds.length === 0) {
54
+ smokes = [...allTestDefns];
55
+ console.log('Running ALL smoketests. Equivalent to:');
56
+ console.log(usage);
57
+ } else {
58
+ smokes = allTestDefns.filter(test => {
59
+ // Include all tests that *include* requested id.
60
+ // e.g. a requested 'pwa' will match 'pwa-airhorner', 'pwa-caltrain', etc
61
+ return requestedIds.some(requestedId => test.id.includes(requestedId));
62
+ });
63
+ console.log(`Running ONLY smoketests for: ${smokes.map(t => t.id).join(' ')}\n`);
64
+ }
65
+
66
+ const unmatchedIds = requestedIds.filter(requestedId => {
67
+ return !allTestDefns.map(t => t.id).some(id => id.includes(requestedId));
68
+ });
69
+ if (unmatchedIds.length) {
70
+ console.log(log.redify(`Smoketests not found for: ${unmatchedIds.join(' ')}`));
71
+ console.log(`Check test exclusions (${[...excludedTests].join(' ')})\n`);
72
+ console.log(usage);
73
+ }
74
+
75
+ if (!smokes.length) {
76
+ throw new Error('no smoketest found to run');
77
+ }
78
+
79
+ return smokes;
80
+ }
81
+
82
+ /**
83
+ * Prune the `networkRequests` from the test expectations when `takeNetworkRequestUrls`
84
+ * is not defined. Custom servers may not have this method available in-process.
85
+ * Also asserts that any expectation with `networkRequests` is run serially. For core
86
+ * tests, we don't currently have a good way to map requests to test definitions if
87
+ * the tests are run in parallel.
88
+ * @param {Array<Smokehouse.TestDfn>} testDefns
89
+ * @param {Function|undefined} takeNetworkRequestUrls
90
+ * @return {Array<Smokehouse.TestDfn>}
91
+ */
92
+ function pruneExpectedNetworkRequests(testDefns, takeNetworkRequestUrls) {
93
+ const pruneNetworkRequests = !takeNetworkRequestUrls;
94
+
95
+ const clonedDefns = cloneDeep(testDefns);
96
+ for (const {id, expectations, runSerially} of clonedDefns) {
97
+ if (!runSerially && expectations.networkRequests) {
98
+ throw new Error(`'${id}' must be set to 'runSerially: true' to assert 'networkRequests'`);
99
+ }
100
+
101
+ if (pruneNetworkRequests && expectations.networkRequests) {
102
+ // eslint-disable-next-line max-len
103
+ const msg = `'networkRequests' cannot be asserted in test '${id}'. They should only be asserted on tests from an in-process server`;
104
+ if (process.env.CI) {
105
+ // If we're in CI, we require any networkRequests expectations to be asserted.
106
+ throw new Error(msg);
107
+ }
108
+
109
+ console.warn(log.redify('Warning:'),
110
+ `${msg}. Pruning expectation: ${JSON.stringify(expectations.networkRequests)}`);
111
+ expectations.networkRequests = undefined;
112
+ }
113
+ }
114
+
115
+ return clonedDefns;
116
+ }
117
+
118
+ /**
119
+ * CLI entry point.
120
+ */
121
+ async function begin() {
122
+ const y = yargs(yargsHelpers.hideBin(process.argv));
123
+ const rawArgv = y
124
+ .help('help')
125
+ .usage('node $0 [<options>] <test-ids>')
126
+ .example('node $0 -j=1 pwa seo', 'run pwa and seo tests serially')
127
+ .option('_', {
128
+ array: true,
129
+ type: 'string',
130
+ })
131
+ .options({
132
+ 'debug': {
133
+ type: 'boolean',
134
+ default: false,
135
+ describe: 'Save test artifacts and output verbose logs',
136
+ },
137
+ 'legacy-navigation': {
138
+ type: 'boolean',
139
+ default: false,
140
+ describe: 'Use the legacy navigation runner',
141
+ },
142
+ 'jobs': {
143
+ type: 'number',
144
+ alias: 'j',
145
+ describe: 'Manually set the number of jobs to run at once. `1` runs all tests serially',
146
+ },
147
+ 'retries': {
148
+ type: 'number',
149
+ describe: 'The number of times to retry failing tests before accepting. Defaults to 0',
150
+ },
151
+ 'runner': {
152
+ default: 'cli',
153
+ choices: ['cli', 'bundle', 'devtools'],
154
+ describe: 'The method of running Lighthouse',
155
+ },
156
+ 'tests-path': {
157
+ type: 'string',
158
+ describe: 'The path to a set of test definitions to run. Defaults to core smoke tests.',
159
+ },
160
+ 'shard': {
161
+ type: 'string',
162
+ // eslint-disable-next-line max-len
163
+ describe: 'A argument of the form "n/d", which divides the selected tests into d groups and runs the nth group. n and d must be positive integers with 1 ≤ n ≤ d.',
164
+ },
165
+ 'ignore-exclusions': {
166
+ type: 'boolean',
167
+ default: false,
168
+ describe: 'Ignore any smoke test exclusions set.',
169
+ },
170
+ })
171
+ .wrap(y.terminalWidth())
172
+ .argv;
173
+
174
+ // Augmenting yargs type with auto-camelCasing breaks in tsc@4.1.2 and @types/yargs@15.0.11,
175
+ // so for now cast to add yarg's camelCase properties to type.
176
+ const argv =
177
+ /** @type {Awaited<typeof rawArgv> & LH.Util.CamelCasify<Awaited<typeof rawArgv>>} */ (rawArgv);
178
+
179
+ const jobs = Number.isFinite(argv.jobs) ? argv.jobs : undefined;
180
+ const retries = Number.isFinite(argv.retries) ? argv.retries : undefined;
181
+
182
+ const runnerPath = runnerPaths[/** @type {keyof typeof runnerPaths} */ (argv.runner)];
183
+ if (argv.runner === 'bundle') {
184
+ console.log('\n✨ Be sure to have recently run this: yarn build-all');
185
+ }
186
+ const {runLighthouse, setup} = await import(runnerPath);
187
+ runLighthouse.runnerName = argv.runner;
188
+
189
+ // Find test definition file and filter by requestedTestIds.
190
+ let testDefnPath = argv.testsPath || coreTestDefnsPath;
191
+ testDefnPath = path.resolve(process.cwd(), testDefnPath);
192
+ const requestedTestIds = argv._;
193
+ const {default: rawTestDefns} = await import(url.pathToFileURL(testDefnPath).href);
194
+ const allTestDefns = updateTestDefnFormat(rawTestDefns);
195
+ const excludedTests = new Set(exclusions[argv.runner] || []);
196
+ const filteredTestDefns = argv.ignoreExclusions ?
197
+ allTestDefns : allTestDefns.filter(test => !excludedTests.has(test.id));
198
+ const requestedTestDefns = getDefinitionsToRun(filteredTestDefns,
199
+ requestedTestIds, excludedTests);
200
+ const testDefns = getShardedDefinitions(requestedTestDefns, argv.shard);
201
+
202
+ let smokehouseResult;
203
+ let servers;
204
+ let takeNetworkRequestUrls = undefined;
205
+
206
+ try {
207
+ // If running the core tests, spin up the test server.
208
+ if (testDefnPath === coreTestDefnsPath) {
209
+ const {createServers} = await import('../../fixtures/static-server.js');
210
+ servers = await createServers();
211
+ takeNetworkRequestUrls = servers[0].takeRequestUrls.bind(servers[0]);
212
+ }
213
+
214
+ const prunedTestDefns = pruneExpectedNetworkRequests(testDefns, takeNetworkRequestUrls);
215
+ const options = {
216
+ jobs,
217
+ retries,
218
+ isDebug: argv.debug,
219
+ useLegacyNavigation: argv.legacyNavigation,
220
+ lighthouseRunner: runLighthouse,
221
+ takeNetworkRequestUrls,
222
+ setup,
223
+ };
224
+
225
+ smokehouseResult = (await runSmokehouse(prunedTestDefns, options));
226
+ } finally {
227
+ servers?.forEach(s => s.close());
228
+ }
229
+
230
+ if (!smokehouseResult.success) {
231
+ const failedTestResults = smokehouseResult.testResults.filter(r => r.failed);
232
+
233
+ // For CI, save failed runs to directory to be uploaded.
234
+ if (process.env.CI) {
235
+ const failuresDir = `${LH_ROOT}/.tmp/smokehouse-ci-failures`;
236
+ fs.mkdirSync(failuresDir, {recursive: true});
237
+
238
+ for (const testResult of failedTestResults) {
239
+ for (let i = 0; i < testResult.runs.length; i++) {
240
+ const run = testResult.runs[i];
241
+ fs.writeFileSync(`${failuresDir}/${testResult.id}-${i}.json`, JSON.stringify({
242
+ ...run,
243
+ lighthouseLog: run.lighthouseLog.split('\n'),
244
+ assertionLog: run.assertionLog.split('\n'),
245
+ }, null, 2));
246
+ }
247
+ }
248
+ }
249
+
250
+ const cmd = `yarn smoke ${failedTestResults.map(r => r.id).join(' ')}`;
251
+ console.log(`rerun failures: ${cmd}`);
252
+ }
253
+
254
+ const exitCode = smokehouseResult.success ? 0 : 1;
255
+ process.exit(exitCode);
256
+ }
257
+
258
+ await begin();
@@ -0,0 +1,21 @@
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
+ * An extension of Error that includes any stdout or stderr from a child
8
+ * process. Based on the error thrown by `child_process.exec()`.
9
+ * https://github.com/nodejs/node/blob/3aeae8d81b7b78668c37f7a07a72d94781126d49/lib/child_process.js#L150-L176
10
+ */
11
+ export class ChildProcessError extends Error {
12
+ /**
13
+ * @param {string} message
14
+ * @param {string=} stdout
15
+ * @param {string=} stderr
16
+ */
17
+ constructor(message: string, stdout?: string | undefined, stderr?: string | undefined);
18
+ stdout: string;
19
+ stderr: string;
20
+ }
21
+ //# sourceMappingURL=child-process-error.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
+ /**
8
+ * An extension of Error that includes any stdout or stderr from a child
9
+ * process. Based on the error thrown by `child_process.exec()`.
10
+ * https://github.com/nodejs/node/blob/3aeae8d81b7b78668c37f7a07a72d94781126d49/lib/child_process.js#L150-L176
11
+ */
12
+ class ChildProcessError extends Error {
13
+ /**
14
+ * @param {string} message
15
+ * @param {string=} stdout
16
+ * @param {string=} stderr
17
+ */
18
+ constructor(message, stdout = '', stderr = '') {
19
+ super(message);
20
+ this.stdout = stdout;
21
+ this.stderr = stderr;
22
+ }
23
+ }
24
+
25
+ export {ChildProcessError};
@@ -0,0 +1,78 @@
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
+ * A class that maintains a concurrency pool to coordinate many jobs that should
8
+ * only be run `concurrencyLimit` at a time.
9
+ * API inspired by http://bluebirdjs.com/docs/api/promise.map.html, but
10
+ * independent callers of `concurrentMap()` share the same concurrency limit.
11
+ */
12
+ export class ConcurrentMapper {
13
+ /**
14
+ * Runs callbackfn on `values` in parallel, at a max of `concurrency` at a
15
+ * time. Resolves to an array of the results or rejects with the first
16
+ * rejected result. Default `concurrency` limit is `Infinity`.
17
+ * @template T, U
18
+ * @param {Array<T>} values
19
+ * @param {(value: T, index: number, array: Array<T>) => Promise<U>} callbackfn
20
+ * @param {{concurrency: number}} [options]
21
+ * @return {Promise<Array<U>>}
22
+ */
23
+ static map<T_1, U_2>(values: T_1[], callbackfn: (value: T_1, index: number, array: T_1[]) => Promise<U_2>, options?: {
24
+ concurrency: number;
25
+ } | undefined): Promise<U_2[]>;
26
+ /** @type {Set<Promise<unknown>>} */
27
+ _promisePool: Set<Promise<unknown>>;
28
+ /**
29
+ * The limits of all currently running jobs. There will be duplicates.
30
+ * @type {Array<number>}
31
+ */
32
+ _allConcurrencyLimits: Array<number>;
33
+ /**
34
+ * Returns whether there are fewer running jobs than the minimum current
35
+ * concurrency limit and the proposed new `concurrencyLimit`.
36
+ * @param {number} concurrencyLimit
37
+ */
38
+ _canRunMoreAtLimit(concurrencyLimit: number): boolean;
39
+ /**
40
+ * Add a job to pool.
41
+ * @param {Promise<unknown>} job
42
+ * @param {number} concurrencyLimit
43
+ */
44
+ _addJob(job: Promise<unknown>, concurrencyLimit: number): void;
45
+ /**
46
+ * Remove a job from pool.
47
+ * @param {Promise<unknown>} job
48
+ * @param {number} concurrencyLimit
49
+ */
50
+ _removeJob(job: Promise<unknown>, concurrencyLimit: number): void;
51
+ /**
52
+ * Runs callbackfn on `values` in parallel, at a max of `concurrency` at
53
+ * a time across all callers on this instance. Resolves to an array of the
54
+ * results (for each caller separately) or rejects with the first rejected
55
+ * result. Default `concurrency` limit is `Infinity`.
56
+ * @template T, U
57
+ * @param {Array<T>} values
58
+ * @param {(value: T, index: number, array: Array<T>) => Promise<U>} callbackfn
59
+ * @param {{concurrency: number}} [options]
60
+ * @return {Promise<Array<U>>}
61
+ */
62
+ pooledMap<T, U>(values: T[], callbackfn: (value: T, index: number, array: T[]) => Promise<U>, options?: {
63
+ concurrency: number;
64
+ } | undefined): Promise<U[]>;
65
+ /**
66
+ * Runs `fn` concurrent to other operations in the pool, at a max of
67
+ * `concurrency` at a time across all callers on this instance. Default
68
+ * `concurrency` limit is `Infinity`.
69
+ * @template U
70
+ * @param {() => Promise<U>} fn
71
+ * @param {{concurrency: number}} [options]
72
+ * @return {Promise<U>}
73
+ */
74
+ runInPool<U_1>(fn: () => Promise<U_1>, options?: {
75
+ concurrency: number;
76
+ } | undefined): Promise<U_1>;
77
+ }
78
+ //# sourceMappingURL=concurrent-mapper.d.ts.map