lighthouse 9.6.7 → 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 (1430) 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 +1570 -1207
  925. package/shared/localization/locales/en-XA.json +1658 -1007
  926. package/shared/localization/locales/en-XL.json +1570 -1207
  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 -684
  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 -129
  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/emulation.js +0 -164
  1370. package/lighthouse-core/lib/i18n/README.md +0 -273
  1371. package/lighthouse-core/lib/i18n/i18n.js +0 -221
  1372. package/lighthouse-core/lib/icons.js +0 -85
  1373. package/lighthouse-core/lib/lantern-trace-saver.js +0 -198
  1374. package/lighthouse-core/lib/lh-env.js +0 -14
  1375. package/lighthouse-core/lib/lh-error.js +0 -421
  1376. package/lighthouse-core/lib/lh-trace-processor.js +0 -46
  1377. package/lighthouse-core/lib/manifest-parser.js +0 -513
  1378. package/lighthouse-core/lib/median-run.js +0 -92
  1379. package/lighthouse-core/lib/minification-estimator.js +0 -193
  1380. package/lighthouse-core/lib/minify-devtoolslog.js +0 -87
  1381. package/lighthouse-core/lib/minify-trace.js +0 -173
  1382. package/lighthouse-core/lib/navigation-error.js +0 -145
  1383. package/lighthouse-core/lib/network-recorder.js +0 -337
  1384. package/lighthouse-core/lib/network-request.js +0 -540
  1385. package/lighthouse-core/lib/page-functions.js +0 -559
  1386. package/lighthouse-core/lib/proto-preprocessor.js +0 -133
  1387. package/lighthouse-core/lib/rect-helpers.js +0 -252
  1388. package/lighthouse-core/lib/script-helpers.js +0 -24
  1389. package/lighthouse-core/lib/sentry.js +0 -144
  1390. package/lighthouse-core/lib/stack-packs.js +0 -120
  1391. package/lighthouse-core/lib/statistics.js +0 -104
  1392. package/lighthouse-core/lib/tappable-rects.js +0 -99
  1393. package/lighthouse-core/lib/third-party-web.js +0 -53
  1394. package/lighthouse-core/lib/timing-trace-saver.js +0 -97
  1395. package/lighthouse-core/lib/tracehouse/cpu-profile-model.js +0 -592
  1396. package/lighthouse-core/lib/tracehouse/main-thread-tasks.js +0 -688
  1397. package/lighthouse-core/lib/tracehouse/task-groups.js +0 -112
  1398. package/lighthouse-core/lib/tracehouse/task-summary.js +0 -87
  1399. package/lighthouse-core/lib/tracehouse/trace-processor.js +0 -962
  1400. package/lighthouse-core/lib/traces/pwmetrics-events.js +0 -200
  1401. package/lighthouse-core/lib/url-shim.js +0 -274
  1402. package/lighthouse-core/runner.js +0 -518
  1403. package/lighthouse-core/scoring.js +0 -93
  1404. package/lighthouse-core/scripts/download-chrome.sh +0 -36
  1405. package/lighthouse-core/scripts/manual-chrome-launcher.js +0 -51
  1406. package/lighthouse-core/scripts/package.json +0 -4
  1407. package/lighthouse-core/util-commonjs.js +0 -708
  1408. package/now.json +0 -14
  1409. package/report/.eslintrc.cjs +0 -35
  1410. package/report/generator/package.json +0 -4
  1411. package/report/package.json +0 -4
  1412. package/report/renderer/i18n.js +0 -198
  1413. package/report/renderer/util.js +0 -705
  1414. package/report/test/generator/package.json +0 -4
  1415. package/report/test/renderer/i18n-test.js +0 -140
  1416. package/report/test/renderer/util-test.js +0 -479
  1417. package/report/test-assets/faux-psi-template.html +0 -177
  1418. package/report/test-assets/faux-psi.js +0 -153
  1419. package/third-party/snyk/snapshot.json +0 -182
  1420. package/types/cssstyle/index.d.ts +0 -23
  1421. package/types/global-lh.d.ts +0 -81
  1422. package/types/jest.d.ts +0 -25
  1423. package/types/jsonld/index.d.ts +0 -19
  1424. package/types/lhr/flow.d.ts +0 -32
  1425. package/types/lighthouse-logger/index.d.ts +0 -33
  1426. package/types/lookup-closest-locale/index.d.ts +0 -11
  1427. package/types/node.d.ts +0 -12
  1428. package/types/query-selector.d.ts +0 -36
  1429. package/types/smokehouse.d.ts +0 -80
  1430. package/types/structured-data.d.ts +0 -36
@@ -0,0 +1,630 @@
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 path from 'path';
8
+ import {createRequire} from 'module';
9
+ import url from 'url';
10
+
11
+ import isDeepEqual from 'lodash/isEqual.js';
12
+
13
+ import * as constants from './constants.js';
14
+ import {Budget} from './budget.js';
15
+ import ConfigPlugin from './config-plugin.js';
16
+ import {Runner} from '../runner.js';
17
+ import * as i18n from '../lib/i18n/i18n.js';
18
+ import * as validation from './validation.js';
19
+ import {getModuleDirectory} from '../../esm-utils.js';
20
+
21
+ const require = createRequire(import.meta.url);
22
+
23
+ /** @typedef {typeof import('../gather/gatherers/gatherer.js').Gatherer} GathererConstructor */
24
+ /** @typedef {typeof import('../audits/audit.js')['Audit']} Audit */
25
+ /** @typedef {InstanceType<GathererConstructor>} Gatherer */
26
+
27
+ function isBundledEnvironment() {
28
+ // If we're in DevTools or LightRider, we are definitely bundled.
29
+ // TODO: refactor and delete `global.isDevtools`.
30
+ if (global.isDevtools || global.isLightrider) return true;
31
+
32
+ try {
33
+ // Not foolproof, but `lighthouse-logger` is a dependency of lighthouse that should always be resolvable.
34
+ // `require.resolve` will only throw in atypical/bundled environments.
35
+ require.resolve('lighthouse-logger');
36
+ return false;
37
+ } catch (err) {
38
+ return true;
39
+ }
40
+ }
41
+
42
+ /**
43
+ * If any items with identical `path` properties are found in the input array,
44
+ * merge their `options` properties into the first instance and then discard any
45
+ * other instances.
46
+ * @template {{path?: string, options: Record<string, unknown>}} T
47
+ * @param {T[]} items
48
+ * @return T[]
49
+ */
50
+ const mergeOptionsOfItems = function(items) {
51
+ /** @type {T[]} */
52
+ const mergedItems = [];
53
+
54
+ for (const item of items) {
55
+ const existingItem = item.path && mergedItems.find(candidate => candidate.path === item.path);
56
+ if (!existingItem) {
57
+ mergedItems.push(item);
58
+ continue;
59
+ }
60
+
61
+ existingItem.options = Object.assign({}, existingItem.options, item.options);
62
+ }
63
+
64
+ return mergedItems;
65
+ };
66
+
67
+ /**
68
+ * Recursively merges config fragment objects in a somewhat Lighthouse-specific way.
69
+ *
70
+ * - `null` is treated similarly to `undefined` for whether a value should be overridden.
71
+ * - `overwriteArrays` controls array extension behavior:
72
+ * - true: Arrays are overwritten without any merging or concatenation.
73
+ * - false: Arrays are concatenated and de-duped by isDeepEqual.
74
+ * - Objects are recursively merged.
75
+ * - If the `settings` key is encountered while traversing an object, its arrays are *always*
76
+ * overridden, not concatenated. (`overwriteArrays` is flipped to `true`)
77
+ *
78
+ * More widely typed than exposed merge() function, below.
79
+ * @param {Object<string, any>|Array<any>|undefined|null} base
80
+ * @param {Object<string, any>|Array<any>} extension
81
+ * @param {boolean=} overwriteArrays
82
+ */
83
+ function _mergeConfigFragment(base, extension, overwriteArrays = false) {
84
+ // If the default value doesn't exist or is explicitly null, defer to the extending value
85
+ if (typeof base === 'undefined' || base === null) {
86
+ return extension;
87
+ } else if (typeof extension === 'undefined') {
88
+ return base;
89
+ } else if (Array.isArray(extension)) {
90
+ if (overwriteArrays) return extension;
91
+ if (!Array.isArray(base)) throw new TypeError(`Expected array but got ${typeof base}`);
92
+ const merged = base.slice();
93
+ extension.forEach(item => {
94
+ if (!merged.some(candidate => isDeepEqual(candidate, item))) merged.push(item);
95
+ });
96
+
97
+ return merged;
98
+ } else if (typeof extension === 'object') {
99
+ if (typeof base !== 'object') throw new TypeError(`Expected object but got ${typeof base}`);
100
+ if (Array.isArray(base)) throw new TypeError('Expected object but got Array');
101
+ Object.keys(extension).forEach(key => {
102
+ const localOverwriteArrays = overwriteArrays ||
103
+ (key === 'settings' && typeof base[key] === 'object');
104
+ base[key] = _mergeConfigFragment(base[key], extension[key], localOverwriteArrays);
105
+ });
106
+ return base;
107
+ }
108
+
109
+ return extension;
110
+ }
111
+
112
+ /**
113
+ * Until support of jsdoc templates with constraints, type in config.d.ts.
114
+ * See https://github.com/Microsoft/TypeScript/issues/24283
115
+ * @type {LH.Config.Merge}
116
+ */
117
+ const mergeConfigFragment = _mergeConfigFragment;
118
+
119
+ /**
120
+ * Merge an array of items by a caller-defined key. `mergeConfigFragment` is used to merge any items
121
+ * with a matching key.
122
+ *
123
+ * @template {Record<string, any>} T
124
+ * @param {Array<T>|null|undefined} baseArray
125
+ * @param {Array<T>|null|undefined} extensionArray
126
+ * @param {(item: T) => string} keyFn
127
+ * @return {Array<T>}
128
+ */
129
+ function mergeConfigFragmentArrayByKey(baseArray, extensionArray, keyFn) {
130
+ /** @type {Map<string, {index: number, item: T}>} */
131
+ const itemsByKey = new Map();
132
+ const mergedArray = baseArray || [];
133
+ for (let i = 0; i < mergedArray.length; i++) {
134
+ const item = mergedArray[i];
135
+ itemsByKey.set(keyFn(item), {index: i, item});
136
+ }
137
+
138
+ for (const item of extensionArray || []) {
139
+ const baseItemEntry = itemsByKey.get(keyFn(item));
140
+ if (baseItemEntry) {
141
+ const baseItem = baseItemEntry.item;
142
+ const merged = typeof item === 'object' && typeof baseItem === 'object' ?
143
+ mergeConfigFragment(baseItem, item, true) :
144
+ item;
145
+ mergedArray[baseItemEntry.index] = merged;
146
+ } else {
147
+ mergedArray.push(item);
148
+ }
149
+ }
150
+
151
+ return mergedArray;
152
+ }
153
+
154
+ /**
155
+ * Expands a gatherer from user-specified to an internal gatherer definition format.
156
+ *
157
+ * Input Examples:
158
+ * - 'my-gatherer'
159
+ * - class MyGatherer extends Gatherer { }
160
+ * - {instance: myGathererInstance}
161
+ *
162
+ * @param {LH.Config.GathererJson} gatherer
163
+ * @return {{instance?: Gatherer, implementation?: GathererConstructor, path?: string}} passes
164
+ */
165
+ function expandGathererShorthand(gatherer) {
166
+ if (typeof gatherer === 'string') {
167
+ // just 'path/to/gatherer'
168
+ return {path: gatherer};
169
+ } else if ('implementation' in gatherer || 'instance' in gatherer) {
170
+ // {implementation: GathererConstructor, ...} or {instance: GathererInstance, ...}
171
+ return gatherer;
172
+ } else if ('path' in gatherer) {
173
+ // {path: 'path/to/gatherer', ...}
174
+ if (typeof gatherer.path !== 'string') {
175
+ throw new Error('Invalid Gatherer type ' + JSON.stringify(gatherer));
176
+ }
177
+ return gatherer;
178
+ } else if (typeof gatherer === 'function') {
179
+ // just GathererConstructor
180
+ return {implementation: gatherer};
181
+ } else if (gatherer && typeof gatherer.beforePass === 'function') {
182
+ // just GathererInstance
183
+ return {instance: gatherer};
184
+ } else {
185
+ throw new Error('Invalid Gatherer type ' + JSON.stringify(gatherer));
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Expands the audits from user-specified JSON to an internal audit definition format.
191
+ * @param {LH.Config.AuditJson} audit
192
+ * @return {{id?: string, path: string, options?: {}} | {id?: string, implementation: Audit, path?: string, options?: {}}}
193
+ */
194
+ function expandAuditShorthand(audit) {
195
+ if (typeof audit === 'string') {
196
+ // just 'path/to/audit'
197
+ return {path: audit, options: {}};
198
+ } else if ('implementation' in audit && typeof audit.implementation.audit === 'function') {
199
+ // {implementation: AuditClass, ...}
200
+ return audit;
201
+ } else if ('path' in audit && typeof audit.path === 'string') {
202
+ // {path: 'path/to/audit', ...}
203
+ return audit;
204
+ } else if ('audit' in audit && typeof audit.audit === 'function') {
205
+ // just AuditClass
206
+ return {implementation: audit, options: {}};
207
+ } else {
208
+ throw new Error('Invalid Audit type ' + JSON.stringify(audit));
209
+ }
210
+ }
211
+
212
+ /** @type {Map<string, Promise<any>>} */
213
+ const bundledModules = new Map(/* BUILD_REPLACE_BUNDLED_MODULES */);
214
+
215
+ /**
216
+ * Wraps `import`/`require` with an entrypoint for bundled dynamic modules.
217
+ * See build-bundle.js
218
+ * @param {string} requirePath
219
+ */
220
+ async function requireWrapper(requirePath) {
221
+ // For windows.
222
+ if (path.isAbsolute(requirePath)) {
223
+ requirePath = url.pathToFileURL(requirePath).href;
224
+ }
225
+
226
+ /** @type {any} */
227
+ let module;
228
+ if (bundledModules.has(requirePath)) {
229
+ module = await bundledModules.get(requirePath);
230
+ } else if (requirePath.match(/\.(js|mjs|cjs)$/)) {
231
+ module = await import(requirePath);
232
+ } else {
233
+ requirePath += '.js';
234
+ module = await import(requirePath);
235
+ }
236
+
237
+ if (module.default) return module.default;
238
+
239
+ // Find a valid named export.
240
+ const methods = new Set(['meta']);
241
+ const possibleNamedExports = Object.keys(module).filter(key => {
242
+ if (!(module[key] && module[key] instanceof Object)) return false;
243
+ return Object.getOwnPropertyNames(module[key]).some(method => methods.has(method));
244
+ });
245
+ if (possibleNamedExports.length === 1) return possibleNamedExports[0];
246
+ if (possibleNamedExports.length > 1) {
247
+ throw new Error(`module '${requirePath}' has too many possible exports`);
248
+ }
249
+
250
+ throw new Error(`module '${requirePath}' missing default export`);
251
+ }
252
+
253
+ /**
254
+ * @param {string} gathererPath
255
+ * @param {Array<string>} coreGathererList
256
+ * @param {string=} configDir
257
+ * @return {Promise<LH.Config.GathererDefn>}
258
+ */
259
+ async function requireGatherer(gathererPath, coreGathererList, configDir) {
260
+ const coreGatherer = coreGathererList.find(a => a === `${gathererPath}.js`);
261
+
262
+ let requirePath = `../gather/gatherers/${gathererPath}`;
263
+ if (!coreGatherer) {
264
+ // Otherwise, attempt to find it elsewhere. This throws if not found.
265
+ requirePath = resolveModulePath(gathererPath, configDir, 'gatherer');
266
+ }
267
+
268
+ const GathererClass = /** @type {GathererConstructor} */ (await requireWrapper(requirePath));
269
+
270
+ return {
271
+ instance: new GathererClass(),
272
+ implementation: GathererClass,
273
+ path: gathererPath,
274
+ };
275
+ }
276
+
277
+ /**
278
+ * @param {string} auditPath
279
+ * @param {Array<string>} coreAuditList
280
+ * @param {string=} configDir
281
+ * @return {Promise<LH.Config.AuditDefn['implementation']>}
282
+ */
283
+ function requireAudit(auditPath, coreAuditList, configDir) {
284
+ // See if the audit is a Lighthouse core audit.
285
+ const auditPathJs = `${auditPath}.js`;
286
+ const coreAudit = coreAuditList.find(a => a === auditPathJs);
287
+ let requirePath = `../audits/${auditPath}`;
288
+ if (!coreAudit) {
289
+ if (isBundledEnvironment()) {
290
+ // This is for pubads bundling.
291
+ requirePath = auditPath;
292
+ } else {
293
+ // Otherwise, attempt to find it elsewhere. This throws if not found.
294
+ const absolutePath = resolveModulePath(auditPath, configDir, 'audit');
295
+ if (isBundledEnvironment()) {
296
+ // Use a relative path so bundler can easily expose it.
297
+ requirePath = path.relative(getModuleDirectory(import.meta), absolutePath);
298
+ } else {
299
+ requirePath = absolutePath;
300
+ }
301
+ }
302
+ }
303
+
304
+ return requireWrapper(requirePath);
305
+ }
306
+
307
+ /**
308
+ * Creates a settings object from potential flags object by dropping all the properties
309
+ * that don't exist on Config.Settings.
310
+ * @param {Partial<LH.Flags>=} flags
311
+ * @return {LH.Util.RecursivePartial<LH.Config.Settings>}
312
+ */
313
+ function cleanFlagsForSettings(flags = {}) {
314
+ /** @type {LH.Util.RecursivePartial<LH.Config.Settings>} */
315
+ const settings = {};
316
+
317
+ for (const key of Object.keys(flags)) {
318
+ if (key in constants.defaultSettings) {
319
+ // @ts-expect-error tsc can't yet express that key is only a single type in each iteration, not a union of types.
320
+ settings[key] = flags[key];
321
+ }
322
+ }
323
+
324
+ return settings;
325
+ }
326
+
327
+ /**
328
+ * @param {LH.SharedFlagsSettings} settingsJson
329
+ * @param {LH.Flags|undefined} overrides
330
+ * @return {LH.Config.Settings}
331
+ */
332
+ function resolveSettings(settingsJson = {}, overrides = undefined) {
333
+ // If a locale is requested in flags or settings, use it. A typical CLI run will not have one,
334
+ // however `lookupLocale` will always determine which of our supported locales to use (falling
335
+ // back if necessary).
336
+ // TODO: could do more work to sniff out the user's locale
337
+ const locale = i18n.lookupLocale(overrides?.locale || settingsJson.locale);
338
+
339
+ // Fill in missing settings with defaults
340
+ const {defaultSettings} = constants;
341
+ const settingWithDefaults = mergeConfigFragment(deepClone(defaultSettings), settingsJson, true);
342
+
343
+ // Override any applicable settings with CLI flags
344
+ const settingsWithFlags = mergeConfigFragment(
345
+ settingWithDefaults,
346
+ cleanFlagsForSettings(overrides),
347
+ true
348
+ );
349
+
350
+ if (settingsWithFlags.budgets) {
351
+ settingsWithFlags.budgets = Budget.initializeBudget(settingsWithFlags.budgets);
352
+ }
353
+ // Locale is special and comes only from flags/settings/lookupLocale.
354
+ settingsWithFlags.locale = locale;
355
+
356
+ // Default constants uses the mobile UA. Explicitly stating to true asks LH to use the associated UA.
357
+ // It's a little awkward, but the alternatives are not allowing `true` or a dedicated `disableUAEmulation` setting.
358
+ if (settingsWithFlags.emulatedUserAgent === true) {
359
+ settingsWithFlags.emulatedUserAgent = constants.userAgents[settingsWithFlags.formFactor];
360
+ }
361
+
362
+ validation.assertValidSettings(settingsWithFlags);
363
+ return settingsWithFlags;
364
+ }
365
+
366
+ /**
367
+ * @param {LH.Config} config
368
+ * @param {string | undefined} configDir
369
+ * @param {{plugins?: string[]} | undefined} flags
370
+ * @return {Promise<LH.Config>}
371
+ */
372
+ async function mergePlugins(config, configDir, flags) {
373
+ const configPlugins = config.plugins || [];
374
+ const flagPlugins = flags?.plugins || [];
375
+ const pluginNames = new Set([...configPlugins, ...flagPlugins]);
376
+
377
+ for (const pluginName of pluginNames) {
378
+ validation.assertValidPluginName(config, pluginName);
379
+
380
+ // In bundled contexts, `resolveModulePath` will fail, so use the raw pluginName directly.
381
+ const pluginPath = isBundledEnvironment() ?
382
+ pluginName :
383
+ resolveModulePath(pluginName, configDir, 'plugin');
384
+ const rawPluginJson = await requireWrapper(pluginPath);
385
+ const pluginJson = ConfigPlugin.parsePlugin(rawPluginJson, pluginName);
386
+
387
+ config = mergeConfigFragment(config, pluginJson);
388
+ }
389
+
390
+ return config;
391
+ }
392
+
393
+
394
+ /**
395
+ * Turns a GathererJson into a GathererDefn which involves a few main steps:
396
+ * - Expanding the JSON shorthand the full definition format.
397
+ * - `require`ing in the implementation.
398
+ * - Creating a gatherer instance from the implementation.
399
+ * @param {LH.Config.GathererJson} gathererJson
400
+ * @param {Array<string>} coreGathererList
401
+ * @param {string=} configDir
402
+ * @return {Promise<LH.Config.GathererDefn>}
403
+ */
404
+ async function resolveGathererToDefn(gathererJson, coreGathererList, configDir) {
405
+ const gathererDefn = expandGathererShorthand(gathererJson);
406
+ if (gathererDefn.instance) {
407
+ return {
408
+ instance: gathererDefn.instance,
409
+ implementation: gathererDefn.implementation,
410
+ path: gathererDefn.path,
411
+ };
412
+ } else if (gathererDefn.implementation) {
413
+ const GathererClass = gathererDefn.implementation;
414
+ return {
415
+ instance: new GathererClass(),
416
+ implementation: gathererDefn.implementation,
417
+ path: gathererDefn.path,
418
+ };
419
+ } else if (gathererDefn.path) {
420
+ const path = gathererDefn.path;
421
+ return requireGatherer(path, coreGathererList, configDir);
422
+ } else {
423
+ throw new Error('Invalid expanded Gatherer: ' + JSON.stringify(gathererDefn));
424
+ }
425
+ }
426
+
427
+ /**
428
+ * Take an array of audits and audit paths and require any paths (possibly
429
+ * relative to the optional `configDir`) using `resolveModule`,
430
+ * leaving only an array of AuditDefns.
431
+ * @param {LH.Config['audits']} audits
432
+ * @param {string=} configDir
433
+ * @return {Promise<Array<LH.Config.AuditDefn>|null>}
434
+ */
435
+ async function resolveAuditsToDefns(audits, configDir) {
436
+ if (!audits) {
437
+ return null;
438
+ }
439
+
440
+ const coreList = Runner.getAuditList();
441
+ const auditDefnsPromises = audits.map(async (auditJson) => {
442
+ const auditDefn = expandAuditShorthand(auditJson);
443
+ let implementation;
444
+ if ('implementation' in auditDefn) {
445
+ implementation = auditDefn.implementation;
446
+ } else {
447
+ implementation = await requireAudit(auditDefn.path, coreList, configDir);
448
+ }
449
+
450
+ return {
451
+ implementation,
452
+ path: auditDefn.path,
453
+ options: auditDefn.options || {},
454
+ };
455
+ });
456
+ const auditDefns = await Promise.all(auditDefnsPromises);
457
+
458
+ const mergedAuditDefns = mergeOptionsOfItems(auditDefns);
459
+ mergedAuditDefns.forEach(audit => validation.assertValidAudit(audit));
460
+ return mergedAuditDefns;
461
+ }
462
+
463
+ /**
464
+ * Resolves the location of the specified module and returns an absolute
465
+ * string path to the file. Used for loading custom audits and gatherers.
466
+ * Throws an error if no module is found.
467
+ * @param {string} moduleIdentifier
468
+ * @param {string=} configDir The absolute path to the directory of the config file, if there is one.
469
+ * @param {string=} category Optional plugin category (e.g. 'audit') for better error messages.
470
+ * @return {string}
471
+ * @throws {Error}
472
+ */
473
+ function resolveModulePath(moduleIdentifier, configDir, category) {
474
+ // module in a node_modules/ that is...
475
+ // | | Lighthouse globally installed | Lighthouse locally installed |
476
+ // |--------------------------------|-------------------------------|------------------------------|
477
+ // | global | 1. | 1. |
478
+ // | in current working directory | 2. | 1. |
479
+ // | relative to config.js file | 5. | - |
480
+
481
+ // module given by a path that is...
482
+ // | | Lighthouse globally/locally installed |
483
+ // |-------------------------------------------|---------------------------------------|
484
+ // | absolute | 1. |
485
+ // | relative to the current working directory | 3. |
486
+ // | relative to the config.js file | 4. |
487
+
488
+ // 1.
489
+ // First try straight `require()`. Unlikely to be specified relative to this
490
+ // file, but adds support for Lighthouse modules from npm since
491
+ // `require()` walks up parent directories looking inside any node_modules/
492
+ // present. Also handles absolute paths.
493
+ try {
494
+ return require.resolve(moduleIdentifier);
495
+ } catch (e) {}
496
+
497
+ // 2.
498
+ // Lighthouse globally installed, node_modules/ in current working directory.
499
+ // ex: lighthouse https://test.com
500
+ //
501
+ // working directory/
502
+ // |-- node_modules/
503
+ // |-- package.json
504
+ try {
505
+ return require.resolve(moduleIdentifier, {paths: [process.cwd()]});
506
+ } catch (e) {}
507
+
508
+ // 3.
509
+ // See if the module resolves relative to the current working directory.
510
+ // Most useful to handle the case of invoking Lighthouse as a module, since
511
+ // then the config is an object and so has no path.
512
+ const cwdPath = path.resolve(process.cwd(), moduleIdentifier);
513
+ try {
514
+ return require.resolve(cwdPath);
515
+ } catch (e) {}
516
+
517
+ const errorString = 'Unable to locate ' + (category ? `${category}: ` : '') +
518
+ `\`${moduleIdentifier}\`.
519
+ Tried to resolve the module from these locations:
520
+ ${getModuleDirectory(import.meta)}
521
+ ${cwdPath}`;
522
+
523
+ if (!configDir) {
524
+ throw new Error(errorString);
525
+ }
526
+
527
+ // 4.
528
+ // Try looking up relative to the config file path. Just like the
529
+ // relative path passed to `require()` is found relative to the file it's
530
+ // in, this allows module paths to be specified relative to the config file.
531
+ const relativePath = path.resolve(configDir, moduleIdentifier);
532
+ try {
533
+ return require.resolve(relativePath);
534
+ } catch (requireError) {}
535
+
536
+ // 5.
537
+ // Lighthouse globally installed, node_modules/ in config directory.
538
+ // ex: lighthouse https://test.com --config-path=./config/config.js
539
+ //
540
+ // working directory/
541
+ // |-- config/
542
+ // |-- node_modules/
543
+ // |-- config.js
544
+ // |-- package.json
545
+ try {
546
+ return require.resolve(moduleIdentifier, {paths: [configDir]});
547
+ } catch (requireError) {}
548
+
549
+ throw new Error(errorString + `
550
+ ${relativePath}`);
551
+ }
552
+
553
+ /**
554
+ * Many objects in the config can be an object whose properties are not serializable.
555
+ * We use a shallow clone for these objects instead.
556
+ * Any value that isn't an object will not be cloned.
557
+ *
558
+ * @template T
559
+ * @param {T} item
560
+ * @return {T}
561
+ */
562
+ function shallowClone(item) {
563
+ if (typeof item === 'object') {
564
+ // Return copy of instance and prototype chain (in case item is instantiated class).
565
+ return Object.assign(
566
+ Object.create(
567
+ Object.getPrototypeOf(item)
568
+ ),
569
+ item
570
+ );
571
+ }
572
+
573
+ return item;
574
+ }
575
+
576
+ /**
577
+ * // TODO(bckenny): could adopt "jsonified" type to ensure T will survive JSON
578
+ * round trip: https://github.com/Microsoft/TypeScript/issues/21838
579
+ * @template T
580
+ * @param {T} json
581
+ * @return {T}
582
+ */
583
+ function deepClone(json) {
584
+ return JSON.parse(JSON.stringify(json));
585
+ }
586
+
587
+ /**
588
+ * Deep clone a config, copying over any "live" gatherer or audit that
589
+ * wouldn't make the JSON round trip.
590
+ * @param {LH.Config} json
591
+ * @return {LH.Config}
592
+ */
593
+ function deepCloneConfigJson(json) {
594
+ const cloned = deepClone(json);
595
+
596
+ // Copy arrays that could contain non-serializable properties to allow for programmatic
597
+ // injection of audit and gatherer implementations.
598
+ if (Array.isArray(cloned.passes) && Array.isArray(json.passes)) {
599
+ for (let i = 0; i < cloned.passes.length; i++) {
600
+ const pass = cloned.passes[i];
601
+ pass.gatherers = (json.passes[i].gatherers || []).map(gatherer => shallowClone(gatherer));
602
+ }
603
+ }
604
+
605
+ if (Array.isArray(json.audits)) {
606
+ cloned.audits = json.audits.map(audit => shallowClone(audit));
607
+ }
608
+
609
+ if (Array.isArray(json.artifacts)) {
610
+ cloned.artifacts = json.artifacts.map(artifact => ({
611
+ ...artifact,
612
+ gatherer: shallowClone(artifact.gatherer),
613
+ }));
614
+ }
615
+
616
+ return cloned;
617
+ }
618
+
619
+ export {
620
+ deepClone,
621
+ deepCloneConfigJson,
622
+ mergeConfigFragment,
623
+ mergeConfigFragmentArrayByKey,
624
+ mergeOptionsOfItems,
625
+ mergePlugins,
626
+ resolveAuditsToDefns,
627
+ resolveGathererToDefn,
628
+ resolveModulePath,
629
+ resolveSettings,
630
+ };
@@ -0,0 +1,46 @@
1
+ export default ConfigPlugin;
2
+ /**
3
+ * A set of methods for extracting and validating a Lighthouse plugin config.
4
+ */
5
+ declare class ConfigPlugin {
6
+ /**
7
+ * Extract and validate the list of AuditDefns added by the plugin (or undefined
8
+ * if no additional audits are being added by the plugin).
9
+ * @param {unknown} auditsJson
10
+ * @param {string} pluginName
11
+ * @return {Array<{path: string}>|undefined}
12
+ */
13
+ static _parseAuditsList(auditsJson: unknown, pluginName: string): Array<{
14
+ path: string;
15
+ }> | undefined;
16
+ /**
17
+ * Extract and validate the list of category AuditRefs added by the plugin.
18
+ * @param {unknown} auditRefsJson
19
+ * @param {string} pluginName
20
+ * @return {Array<LH.Config.AuditRefJson>}
21
+ */
22
+ static _parseAuditRefsList(auditRefsJson: unknown, pluginName: string): Array<LH.Config.AuditRefJson>;
23
+ /**
24
+ * Extract and validate the category added by the plugin.
25
+ * @param {unknown} categoryJson
26
+ * @param {string} pluginName
27
+ * @return {LH.Config.CategoryJson}
28
+ */
29
+ static _parseCategory(categoryJson: unknown, pluginName: string): LH.Config.CategoryJson;
30
+ /**
31
+ * Extract and validate groups JSON added by the plugin.
32
+ * @param {unknown} groupsJson
33
+ * @param {string} pluginName
34
+ * @return {Record<string, LH.Config.GroupJson>|undefined}
35
+ */
36
+ static _parseGroups(groupsJson: unknown, pluginName: string): Record<string, LH.Config.GroupJson> | undefined;
37
+ /**
38
+ * Extracts and validates a config from the provided plugin input, throwing
39
+ * if it deviates from the expected object shape.
40
+ * @param {unknown} pluginJson
41
+ * @param {string} pluginName
42
+ * @return {LH.Config}
43
+ */
44
+ static parsePlugin(pluginJson: unknown, pluginName: string): LH.Config;
45
+ }
46
+ //# sourceMappingURL=config-plugin.d.ts.map