lighthouse 9.6.8 → 10.0.0-dev.20230209

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 (1437) hide show
  1. package/.gitattributes +4 -1
  2. package/CONTRIBUTING.md +15 -15
  3. package/build-tracker.config.js +0 -1
  4. package/changelog-pre10.md +6085 -0
  5. package/cli/bin.d.ts +5 -0
  6. package/cli/bin.js +140 -0
  7. package/cli/cli-flags.d.ts +258 -0
  8. package/cli/cli-flags.js +553 -0
  9. package/cli/commands/commands.d.ts +4 -0
  10. package/cli/commands/commands.js +9 -0
  11. package/cli/commands/list-audits.d.ts +2 -0
  12. package/cli/commands/list-audits.js +15 -0
  13. package/cli/commands/list-locales.d.ts +2 -0
  14. package/cli/commands/list-locales.js +15 -0
  15. package/cli/commands/list-trace-categories.d.ts +2 -0
  16. package/cli/commands/list-trace-categories.js +14 -0
  17. package/cli/index.d.ts +3 -0
  18. package/cli/index.js +10 -0
  19. package/cli/printer.d.ts +28 -0
  20. package/cli/printer.js +99 -0
  21. package/cli/run.d.ts +24 -0
  22. package/cli/run.js +284 -0
  23. package/cli/sentry-prompt.d.ts +5 -0
  24. package/cli/sentry-prompt.js +78 -0
  25. package/cli/test/smokehouse/__snapshots__/report-assert-test.js.snap +71 -0
  26. package/cli/test/smokehouse/config/exclusions.d.ts +12 -0
  27. package/cli/test/smokehouse/config/exclusions.js +36 -0
  28. package/cli/test/smokehouse/core-tests.d.ts +4 -0
  29. package/cli/test/smokehouse/core-tests.js +134 -0
  30. package/cli/test/smokehouse/frontends/back-compat-util.d.ts +16 -0
  31. package/cli/test/smokehouse/frontends/back-compat-util.js +41 -0
  32. package/cli/test/smokehouse/frontends/lib.d.ts +8 -0
  33. package/cli/test/smokehouse/frontends/lib.js +48 -0
  34. package/cli/test/smokehouse/frontends/node.d.ts +2 -0
  35. package/cli/test/smokehouse/frontends/node.js +12 -0
  36. package/cli/test/smokehouse/frontends/smokehouse-bin.d.ts +3 -0
  37. package/cli/test/smokehouse/frontends/smokehouse-bin.js +258 -0
  38. package/cli/test/smokehouse/lib/child-process-error.d.ts +21 -0
  39. package/cli/test/smokehouse/lib/child-process-error.js +25 -0
  40. package/cli/test/smokehouse/lib/concurrent-mapper.d.ts +78 -0
  41. package/cli/test/smokehouse/lib/concurrent-mapper.js +125 -0
  42. package/cli/test/smokehouse/lib/local-console.d.ts +33 -0
  43. package/cli/test/smokehouse/lib/local-console.js +50 -0
  44. package/cli/test/smokehouse/lighthouse-runners/bundle.d.ts +16 -0
  45. package/cli/test/smokehouse/lighthouse-runners/bundle.js +158 -0
  46. package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +18 -0
  47. package/cli/test/smokehouse/lighthouse-runners/cli.js +134 -0
  48. package/cli/test/smokehouse/lighthouse-runners/devtools.d.ts +23 -0
  49. package/cli/test/smokehouse/lighthouse-runners/devtools.js +72 -0
  50. package/cli/test/smokehouse/readme.md +208 -0
  51. package/cli/test/smokehouse/report-assert-test.d.ts +2 -0
  52. package/cli/test/smokehouse/report-assert-test.js +298 -0
  53. package/cli/test/smokehouse/report-assert.d.ts +50 -0
  54. package/cli/test/smokehouse/report-assert.js +520 -0
  55. package/cli/test/smokehouse/smokehouse.d.ts +35 -0
  56. package/cli/test/smokehouse/smokehouse.js +336 -0
  57. package/cli/test/smokehouse/version-check-test.d.ts +2 -0
  58. package/cli/test/smokehouse/version-check-test.js +43 -0
  59. package/cli/test/smokehouse/version-check.d.ts +15 -0
  60. package/cli/test/smokehouse/version-check.js +48 -0
  61. package/commitlint.config.js +0 -1
  62. package/core/audits/accessibility/accesskeys.d.ts +10 -0
  63. package/core/audits/accessibility/accesskeys.js +44 -0
  64. package/core/audits/accessibility/aria-allowed-attr.d.ts +10 -0
  65. package/core/audits/accessibility/aria-allowed-attr.js +44 -0
  66. package/core/audits/accessibility/aria-command-name.d.ts +10 -0
  67. package/core/audits/accessibility/aria-command-name.js +42 -0
  68. package/core/audits/accessibility/aria-hidden-body.d.ts +10 -0
  69. package/core/audits/accessibility/aria-hidden-body.js +42 -0
  70. package/core/audits/accessibility/aria-hidden-focus.d.ts +10 -0
  71. package/core/audits/accessibility/aria-hidden-focus.js +42 -0
  72. package/core/audits/accessibility/aria-input-field-name.d.ts +10 -0
  73. package/core/audits/accessibility/aria-input-field-name.js +42 -0
  74. package/core/audits/accessibility/aria-meter-name.d.ts +10 -0
  75. package/core/audits/accessibility/aria-meter-name.js +42 -0
  76. package/core/audits/accessibility/aria-progressbar-name.d.ts +10 -0
  77. package/core/audits/accessibility/aria-progressbar-name.js +42 -0
  78. package/core/audits/accessibility/aria-required-attr.d.ts +10 -0
  79. package/core/audits/accessibility/aria-required-attr.js +43 -0
  80. package/core/audits/accessibility/aria-required-children.d.ts +10 -0
  81. package/core/audits/accessibility/aria-required-children.js +47 -0
  82. package/core/audits/accessibility/aria-required-parent.d.ts +10 -0
  83. package/core/audits/accessibility/aria-required-parent.js +45 -0
  84. package/core/audits/accessibility/aria-roles.d.ts +10 -0
  85. package/core/audits/accessibility/aria-roles.js +44 -0
  86. package/core/audits/accessibility/aria-toggle-field-name.d.ts +10 -0
  87. package/core/audits/accessibility/aria-toggle-field-name.js +42 -0
  88. package/core/audits/accessibility/aria-tooltip-name.d.ts +10 -0
  89. package/core/audits/accessibility/aria-tooltip-name.js +42 -0
  90. package/core/audits/accessibility/aria-treeitem-name.d.ts +10 -0
  91. package/core/audits/accessibility/aria-treeitem-name.js +42 -0
  92. package/core/audits/accessibility/aria-valid-attr-value.d.ts +10 -0
  93. package/core/audits/accessibility/aria-valid-attr-value.js +44 -0
  94. package/core/audits/accessibility/aria-valid-attr.d.ts +10 -0
  95. package/core/audits/accessibility/aria-valid-attr.js +44 -0
  96. package/core/audits/accessibility/axe-audit.d.ts +17 -0
  97. package/core/audits/accessibility/axe-audit.js +113 -0
  98. package/core/audits/accessibility/button-name.d.ts +10 -0
  99. package/core/audits/accessibility/button-name.js +44 -0
  100. package/core/audits/accessibility/bypass.d.ts +10 -0
  101. package/core/audits/accessibility/bypass.js +46 -0
  102. package/core/audits/accessibility/color-contrast.d.ts +10 -0
  103. package/core/audits/accessibility/color-contrast.js +45 -0
  104. package/core/audits/accessibility/definition-list.d.ts +10 -0
  105. package/core/audits/accessibility/definition-list.js +46 -0
  106. package/core/audits/accessibility/dlitem.d.ts +10 -0
  107. package/core/audits/accessibility/dlitem.js +44 -0
  108. package/core/audits/accessibility/document-title.d.ts +10 -0
  109. package/core/audits/accessibility/document-title.js +44 -0
  110. package/core/audits/accessibility/duplicate-id-active.d.ts +10 -0
  111. package/core/audits/accessibility/duplicate-id-active.js +42 -0
  112. package/core/audits/accessibility/duplicate-id-aria.d.ts +10 -0
  113. package/core/audits/accessibility/duplicate-id-aria.js +42 -0
  114. package/core/audits/accessibility/form-field-multiple-labels.d.ts +10 -0
  115. package/core/audits/accessibility/form-field-multiple-labels.js +43 -0
  116. package/core/audits/accessibility/frame-title.d.ts +10 -0
  117. package/core/audits/accessibility/frame-title.js +43 -0
  118. package/core/audits/accessibility/heading-order.d.ts +10 -0
  119. package/core/audits/accessibility/heading-order.js +42 -0
  120. package/core/audits/accessibility/html-has-lang.d.ts +10 -0
  121. package/core/audits/accessibility/html-has-lang.js +46 -0
  122. package/core/audits/accessibility/html-lang-valid.d.ts +10 -0
  123. package/core/audits/accessibility/html-lang-valid.js +45 -0
  124. package/core/audits/accessibility/image-alt.d.ts +10 -0
  125. package/core/audits/accessibility/image-alt.js +44 -0
  126. package/core/audits/accessibility/input-image-alt.d.ts +10 -0
  127. package/core/audits/accessibility/input-image-alt.js +44 -0
  128. package/core/audits/accessibility/label.d.ts +10 -0
  129. package/core/audits/accessibility/label.js +44 -0
  130. package/core/audits/accessibility/link-name.d.ts +10 -0
  131. package/core/audits/accessibility/link-name.js +45 -0
  132. package/core/audits/accessibility/list.d.ts +10 -0
  133. package/core/audits/accessibility/list.js +46 -0
  134. package/core/audits/accessibility/listitem.d.ts +10 -0
  135. package/core/audits/accessibility/listitem.js +45 -0
  136. package/core/audits/accessibility/manual/custom-controls-labels.d.ts +8 -0
  137. package/core/audits/accessibility/manual/custom-controls-labels.js +27 -0
  138. package/core/audits/accessibility/manual/custom-controls-roles.d.ts +8 -0
  139. package/core/audits/accessibility/manual/custom-controls-roles.js +27 -0
  140. package/core/audits/accessibility/manual/focus-traps.d.ts +8 -0
  141. package/core/audits/accessibility/manual/focus-traps.js +27 -0
  142. package/core/audits/accessibility/manual/focusable-controls.d.ts +8 -0
  143. package/core/audits/accessibility/manual/focusable-controls.js +27 -0
  144. package/core/audits/accessibility/manual/interactive-element-affordance.d.ts +8 -0
  145. package/core/audits/accessibility/manual/interactive-element-affordance.js +27 -0
  146. package/core/audits/accessibility/manual/logical-tab-order.d.ts +8 -0
  147. package/core/audits/accessibility/manual/logical-tab-order.js +27 -0
  148. package/core/audits/accessibility/manual/managed-focus.d.ts +8 -0
  149. package/core/audits/accessibility/manual/managed-focus.js +27 -0
  150. package/core/audits/accessibility/manual/offscreen-content-hidden.d.ts +9 -0
  151. package/core/audits/accessibility/manual/offscreen-content-hidden.js +28 -0
  152. package/core/audits/accessibility/manual/use-landmarks.d.ts +8 -0
  153. package/core/audits/accessibility/manual/use-landmarks.js +27 -0
  154. package/core/audits/accessibility/manual/visual-order-follows-dom.d.ts +8 -0
  155. package/core/audits/accessibility/manual/visual-order-follows-dom.js +27 -0
  156. package/core/audits/accessibility/meta-refresh.d.ts +10 -0
  157. package/core/audits/accessibility/meta-refresh.js +45 -0
  158. package/core/audits/accessibility/meta-viewport.d.ts +10 -0
  159. package/core/audits/accessibility/meta-viewport.js +46 -0
  160. package/core/audits/accessibility/object-alt.d.ts +10 -0
  161. package/core/audits/accessibility/object-alt.js +44 -0
  162. package/core/audits/accessibility/tabindex.d.ts +10 -0
  163. package/core/audits/accessibility/tabindex.js +44 -0
  164. package/core/audits/accessibility/td-headers-attr.d.ts +10 -0
  165. package/core/audits/accessibility/td-headers-attr.js +48 -0
  166. package/core/audits/accessibility/th-has-data-cells.d.ts +10 -0
  167. package/core/audits/accessibility/th-has-data-cells.js +48 -0
  168. package/core/audits/accessibility/valid-lang.d.ts +10 -0
  169. package/core/audits/accessibility/valid-lang.js +44 -0
  170. package/core/audits/accessibility/video-caption.d.ts +10 -0
  171. package/core/audits/accessibility/video-caption.js +46 -0
  172. package/core/audits/audit.d.ts +157 -0
  173. package/core/audits/audit.js +405 -0
  174. package/core/audits/autocomplete.d.ts +36 -0
  175. package/core/audits/autocomplete.js +290 -0
  176. package/core/audits/bf-cache.d.ts +21 -0
  177. package/core/audits/bf-cache.js +120 -0
  178. package/core/audits/bootup-time.d.ts +26 -0
  179. package/core/audits/bootup-time.js +151 -0
  180. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +82 -0
  181. package/core/audits/byte-efficiency/byte-efficiency-audit.js +260 -0
  182. package/core/audits/byte-efficiency/duplicated-javascript.d.ts +52 -0
  183. package/core/audits/byte-efficiency/duplicated-javascript.js +247 -0
  184. package/core/audits/byte-efficiency/efficient-animated-content.d.ts +23 -0
  185. package/core/audits/byte-efficiency/efficient-animated-content.js +92 -0
  186. package/core/audits/byte-efficiency/legacy-javascript.d.ts +100 -0
  187. package/core/audits/byte-efficiency/legacy-javascript.js +479 -0
  188. package/core/audits/byte-efficiency/modern-image-formats.d.ts +38 -0
  189. package/core/audits/byte-efficiency/modern-image-formats.js +186 -0
  190. package/core/audits/byte-efficiency/offscreen-images.d.ts +75 -0
  191. package/core/audits/byte-efficiency/offscreen-images.js +253 -0
  192. package/{lighthouse-core → core}/audits/byte-efficiency/polyfill-graph-data.json +0 -0
  193. package/core/audits/byte-efficiency/render-blocking-resources.d.ts +55 -0
  194. package/core/audits/byte-efficiency/render-blocking-resources.js +307 -0
  195. package/core/audits/byte-efficiency/total-byte-weight.d.ts +21 -0
  196. package/core/audits/byte-efficiency/total-byte-weight.js +109 -0
  197. package/core/audits/byte-efficiency/unminified-css.d.ts +36 -0
  198. package/core/audits/byte-efficiency/unminified-css.js +114 -0
  199. package/core/audits/byte-efficiency/unminified-javascript.d.ts +37 -0
  200. package/core/audits/byte-efficiency/unminified-javascript.js +118 -0
  201. package/core/audits/byte-efficiency/unused-css-rules.d.ts +16 -0
  202. package/core/audits/byte-efficiency/unused-css-rules.js +69 -0
  203. package/core/audits/byte-efficiency/unused-javascript.d.ts +27 -0
  204. package/core/audits/byte-efficiency/unused-javascript.js +163 -0
  205. package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +61 -0
  206. package/core/audits/byte-efficiency/uses-long-cache-ttl.js +297 -0
  207. package/core/audits/byte-efficiency/uses-optimized-images.d.ts +33 -0
  208. package/core/audits/byte-efficiency/uses-optimized-images.js +145 -0
  209. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +16 -0
  210. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.js +100 -0
  211. package/core/audits/byte-efficiency/uses-responsive-images.d.ts +45 -0
  212. package/core/audits/byte-efficiency/uses-responsive-images.js +201 -0
  213. package/core/audits/byte-efficiency/uses-text-compression.d.ts +14 -0
  214. package/core/audits/byte-efficiency/uses-text-compression.js +100 -0
  215. package/core/audits/content-width.d.ts +17 -0
  216. package/core/audits/content-width.js +76 -0
  217. package/core/audits/critical-request-chains.d.ts +44 -0
  218. package/core/audits/critical-request-chains.js +218 -0
  219. package/core/audits/csp-xss.d.ts +51 -0
  220. package/core/audits/csp-xss.js +186 -0
  221. package/core/audits/deprecations.d.ts +19 -0
  222. package/core/audits/deprecations.js +114 -0
  223. package/core/audits/diagnostics.d.ts +11 -0
  224. package/core/audits/diagnostics.js +79 -0
  225. package/core/audits/dobetterweb/charset.d.ts +19 -0
  226. package/core/audits/dobetterweb/charset.js +93 -0
  227. package/core/audits/dobetterweb/doctype.d.ts +21 -0
  228. package/core/audits/dobetterweb/doctype.js +120 -0
  229. package/core/audits/dobetterweb/dom-size.d.ts +26 -0
  230. package/core/audits/dobetterweb/dom-size.js +134 -0
  231. package/core/audits/dobetterweb/geolocation-on-start.d.ts +16 -0
  232. package/core/audits/dobetterweb/geolocation-on-start.js +69 -0
  233. package/core/audits/dobetterweb/inspector-issues.d.ts +45 -0
  234. package/core/audits/dobetterweb/inspector-issues.js +191 -0
  235. package/core/audits/dobetterweb/js-libraries.d.ts +15 -0
  236. package/core/audits/dobetterweb/js-libraries.js +87 -0
  237. package/core/audits/dobetterweb/no-document-write.d.ts +16 -0
  238. package/core/audits/dobetterweb/no-document-write.js +84 -0
  239. package/core/audits/dobetterweb/notification-on-start.d.ts +16 -0
  240. package/core/audits/dobetterweb/notification-on-start.js +68 -0
  241. package/core/audits/dobetterweb/paste-preventing-inputs.d.ts +15 -0
  242. package/core/audits/dobetterweb/paste-preventing-inputs.js +67 -0
  243. package/core/audits/dobetterweb/uses-http2.d.ts +72 -0
  244. package/core/audits/dobetterweb/uses-http2.js +264 -0
  245. package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +16 -0
  246. package/core/audits/dobetterweb/uses-passive-event-listeners.js +67 -0
  247. package/core/audits/errors-in-console.d.ts +31 -0
  248. package/core/audits/errors-in-console.js +120 -0
  249. package/core/audits/final-screenshot.d.ts +11 -0
  250. package/core/audits/final-screenshot.js +58 -0
  251. package/core/audits/font-display.d.ts +32 -0
  252. package/core/audits/font-display.js +193 -0
  253. package/core/audits/image-aspect-ratio.d.ts +30 -0
  254. package/core/audits/image-aspect-ratio.js +122 -0
  255. package/core/audits/image-size-responsive.d.ts +28 -0
  256. package/core/audits/image-size-responsive.js +332 -0
  257. package/core/audits/installable-manifest.d.ts +118 -0
  258. package/core/audits/installable-manifest.js +265 -0
  259. package/core/audits/is-on-https.d.ts +23 -0
  260. package/core/audits/is-on-https.js +123 -0
  261. package/core/audits/largest-contentful-paint-element.d.ts +14 -0
  262. package/core/audits/largest-contentful-paint-element.js +69 -0
  263. package/core/audits/layout-shift-elements.d.ts +15 -0
  264. package/core/audits/layout-shift-elements.js +74 -0
  265. package/core/audits/lcp-lazy-loaded.d.ts +21 -0
  266. package/core/audits/lcp-lazy-loaded.js +84 -0
  267. package/core/audits/long-tasks.d.ts +16 -0
  268. package/core/audits/long-tasks.js +124 -0
  269. package/core/audits/main-thread-tasks.d.ts +11 -0
  270. package/core/audits/main-thread-tasks.js +58 -0
  271. package/core/audits/mainthread-work-breakdown.d.ts +28 -0
  272. package/core/audits/mainthread-work-breakdown.js +135 -0
  273. package/core/audits/manual/manual-audit.d.ts +13 -0
  274. package/core/audits/manual/manual-audit.js +36 -0
  275. package/core/audits/manual/pwa-cross-browser.d.ts +12 -0
  276. package/core/audits/manual/pwa-cross-browser.js +40 -0
  277. package/core/audits/manual/pwa-each-page-has-url.d.ts +12 -0
  278. package/core/audits/manual/pwa-each-page-has-url.js +38 -0
  279. package/core/audits/manual/pwa-page-transitions.d.ts +12 -0
  280. package/core/audits/manual/pwa-page-transitions.js +38 -0
  281. package/core/audits/maskable-icon.d.ts +25 -0
  282. package/core/audits/maskable-icon.js +70 -0
  283. package/core/audits/metrics/cumulative-layout-shift.d.ts +21 -0
  284. package/core/audits/metrics/cumulative-layout-shift.js +79 -0
  285. package/core/audits/metrics/experimental-interaction-to-next-paint.d.ts +21 -0
  286. package/core/audits/metrics/experimental-interaction-to-next-paint.js +88 -0
  287. package/core/audits/metrics/first-contentful-paint-3g.d.ts +15 -0
  288. package/core/audits/metrics/first-contentful-paint-3g.js +69 -0
  289. package/core/audits/metrics/first-contentful-paint.d.ts +25 -0
  290. package/core/audits/metrics/first-contentful-paint.js +85 -0
  291. package/core/audits/metrics/first-meaningful-paint.d.ts +28 -0
  292. package/core/audits/metrics/first-meaningful-paint.js +89 -0
  293. package/core/audits/metrics/interactive.d.ts +31 -0
  294. package/core/audits/metrics/interactive.js +93 -0
  295. package/core/audits/metrics/largest-contentful-paint.d.ts +25 -0
  296. package/core/audits/metrics/largest-contentful-paint.js +94 -0
  297. package/core/audits/metrics/max-potential-fid.d.ts +23 -0
  298. package/core/audits/metrics/max-potential-fid.js +77 -0
  299. package/core/audits/metrics/speed-index.d.ts +27 -0
  300. package/core/audits/metrics/speed-index.js +88 -0
  301. package/core/audits/metrics/total-blocking-time.d.ts +32 -0
  302. package/core/audits/metrics/total-blocking-time.js +118 -0
  303. package/core/audits/metrics.d.ts +11 -0
  304. package/core/audits/metrics.js +73 -0
  305. package/core/audits/multi-check-audit.d.ts +28 -0
  306. package/core/audits/multi-check-audit.js +82 -0
  307. package/core/audits/network-requests.d.ts +11 -0
  308. package/core/audits/network-requests.js +129 -0
  309. package/core/audits/network-rtt.d.ts +15 -0
  310. package/core/audits/network-rtt.js +89 -0
  311. package/core/audits/network-server-latency.d.ts +15 -0
  312. package/core/audits/network-server-latency.js +88 -0
  313. package/core/audits/no-unload-listeners.d.ts +16 -0
  314. package/core/audits/no-unload-listeners.js +86 -0
  315. package/core/audits/non-composited-animations.d.ts +21 -0
  316. package/core/audits/non-composited-animations.js +205 -0
  317. package/core/audits/oopif-iframe-test-audit.d.ts +14 -0
  318. package/core/audits/oopif-iframe-test-audit.js +29 -0
  319. package/core/audits/performance-budget.d.ts +39 -0
  320. package/core/audits/performance-budget.js +154 -0
  321. package/core/audits/predictive-perf.d.ts +11 -0
  322. package/core/audits/predictive-perf.js +100 -0
  323. package/core/audits/preload-fonts.d.ts +29 -0
  324. package/core/audits/preload-fonts.js +106 -0
  325. package/core/audits/prioritize-lcp-image.d.ts +76 -0
  326. package/core/audits/prioritize-lcp-image.js +290 -0
  327. package/core/audits/redirects.d.ts +33 -0
  328. package/core/audits/redirects.js +164 -0
  329. package/core/audits/resource-summary.d.ts +16 -0
  330. package/core/audits/resource-summary.js +104 -0
  331. package/core/audits/screenshot-thumbnails.d.ts +33 -0
  332. package/core/audits/screenshot-thumbnails.js +168 -0
  333. package/core/audits/script-elements-test-audit.d.ts +14 -0
  334. package/core/audits/script-elements-test-audit.js +29 -0
  335. package/core/audits/script-treemap-data.d.ts +42 -0
  336. package/core/audits/script-treemap-data.js +287 -0
  337. package/core/audits/seo/canonical.d.ts +51 -0
  338. package/core/audits/seo/canonical.js +217 -0
  339. package/core/audits/seo/crawlable-anchors.d.ts +16 -0
  340. package/core/audits/seo/crawlable-anchors.js +93 -0
  341. package/core/audits/seo/font-size.d.ts +24 -0
  342. package/core/audits/seo/font-size.js +344 -0
  343. package/core/audits/seo/hreflang.d.ts +28 -0
  344. package/core/audits/seo/hreflang.js +148 -0
  345. package/core/audits/seo/http-status-code.d.ts +16 -0
  346. package/core/audits/seo/http-status-code.js +68 -0
  347. package/core/audits/seo/is-crawlable.d.ts +38 -0
  348. package/core/audits/seo/is-crawlable.js +223 -0
  349. package/core/audits/seo/link-text.d.ts +16 -0
  350. package/core/audits/seo/link-text.js +160 -0
  351. package/core/audits/seo/manual/structured-data.d.ts +12 -0
  352. package/core/audits/seo/manual/structured-data.js +37 -0
  353. package/core/audits/seo/meta-description.d.ts +16 -0
  354. package/core/audits/seo/meta-description.js +66 -0
  355. package/core/audits/seo/plugins.d.ts +15 -0
  356. package/core/audits/seo/plugins.js +150 -0
  357. package/core/audits/seo/robots-txt.d.ts +18 -0
  358. package/core/audits/seo/robots-txt.js +255 -0
  359. package/core/audits/seo/tap-targets.d.ts +50 -0
  360. package/core/audits/seo/tap-targets.js +352 -0
  361. package/core/audits/server-response-time.d.ts +21 -0
  362. package/core/audits/server-response-time.js +90 -0
  363. package/core/audits/service-worker.d.ts +46 -0
  364. package/core/audits/service-worker.js +182 -0
  365. package/core/audits/splash-screen.d.ts +37 -0
  366. package/core/audits/splash-screen.js +98 -0
  367. package/core/audits/themed-omnibox.d.ts +42 -0
  368. package/core/audits/themed-omnibox.js +102 -0
  369. package/core/audits/third-party-facades.d.ts +42 -0
  370. package/core/audits/third-party-facades.js +224 -0
  371. package/core/audits/third-party-summary.d.ts +59 -0
  372. package/core/audits/third-party-summary.js +257 -0
  373. package/core/audits/timing-budget.d.ts +43 -0
  374. package/core/audits/timing-budget.js +174 -0
  375. package/core/audits/unsized-images.d.ts +39 -0
  376. package/core/audits/unsized-images.js +162 -0
  377. package/core/audits/user-timings.d.ts +43 -0
  378. package/core/audits/user-timings.js +118 -0
  379. package/core/audits/uses-rel-preconnect.d.ts +37 -0
  380. package/core/audits/uses-rel-preconnect.js +253 -0
  381. package/core/audits/uses-rel-preload.d.ts +61 -0
  382. package/core/audits/uses-rel-preload.js +269 -0
  383. package/core/audits/valid-source-maps.d.ts +29 -0
  384. package/core/audits/valid-source-maps.js +160 -0
  385. package/core/audits/viewport.d.ts +17 -0
  386. package/core/audits/viewport.js +64 -0
  387. package/core/audits/violation-audit.d.ts +14 -0
  388. package/core/audits/violation-audit.js +49 -0
  389. package/core/audits/work-during-interaction.d.ts +82 -0
  390. package/core/audits/work-during-interaction.js +279 -0
  391. package/core/computed/computed-artifact.d.ts +15 -0
  392. package/core/computed/computed-artifact.js +62 -0
  393. package/core/computed/critical-request-chains.d.ts +40 -0
  394. package/core/computed/critical-request-chains.js +143 -0
  395. package/core/computed/entity-classification.d.ts +29 -0
  396. package/core/computed/entity-classification.js +103 -0
  397. package/core/computed/image-records.d.ts +24 -0
  398. package/core/computed/image-records.js +64 -0
  399. package/core/computed/js-bundles.d.ts +13 -0
  400. package/core/computed/js-bundles.js +120 -0
  401. package/core/computed/load-simulator.d.ts +28 -0
  402. package/core/computed/load-simulator.js +92 -0
  403. package/core/computed/main-resource.d.ts +25 -0
  404. package/core/computed/main-resource.js +35 -0
  405. package/core/computed/main-thread-tasks.d.ts +15 -0
  406. package/core/computed/main-thread-tasks.js +25 -0
  407. package/core/computed/manifest-values.d.ts +24 -0
  408. package/core/computed/manifest-values.js +136 -0
  409. package/core/computed/metrics/cumulative-layout-shift.d.ts +53 -0
  410. package/core/computed/metrics/cumulative-layout-shift.js +125 -0
  411. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +19 -0
  412. package/core/computed/metrics/first-contentful-paint-all-frames.js +37 -0
  413. package/core/computed/metrics/first-contentful-paint.d.ts +15 -0
  414. package/core/computed/metrics/first-contentful-paint.js +40 -0
  415. package/core/computed/metrics/first-meaningful-paint.d.ts +15 -0
  416. package/core/computed/metrics/first-meaningful-paint.js +44 -0
  417. package/core/computed/metrics/interactive.d.ts +61 -0
  418. package/core/computed/metrics/interactive.js +192 -0
  419. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +48 -0
  420. package/core/computed/metrics/lantern-first-contentful-paint.js +204 -0
  421. package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +12 -0
  422. package/core/computed/metrics/lantern-first-meaningful-paint.js +83 -0
  423. package/core/computed/metrics/lantern-interactive.d.ts +31 -0
  424. package/core/computed/metrics/lantern-interactive.js +113 -0
  425. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +25 -0
  426. package/core/computed/metrics/lantern-largest-contentful-paint.js +111 -0
  427. package/core/computed/metrics/lantern-max-potential-fid.d.ts +30 -0
  428. package/core/computed/metrics/lantern-max-potential-fid.js +93 -0
  429. package/core/computed/metrics/lantern-metric.d.ts +78 -0
  430. package/core/computed/metrics/lantern-metric.js +162 -0
  431. package/core/computed/metrics/lantern-speed-index.d.ts +38 -0
  432. package/core/computed/metrics/lantern-speed-index.js +150 -0
  433. package/core/computed/metrics/lantern-total-blocking-time.d.ts +31 -0
  434. package/core/computed/metrics/lantern-total-blocking-time.js +126 -0
  435. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +20 -0
  436. package/core/computed/metrics/largest-contentful-paint-all-frames.js +45 -0
  437. package/core/computed/metrics/largest-contentful-paint.d.ts +15 -0
  438. package/core/computed/metrics/largest-contentful-paint.js +52 -0
  439. package/core/computed/metrics/max-potential-fid.d.ts +15 -0
  440. package/core/computed/metrics/max-potential-fid.js +45 -0
  441. package/core/computed/metrics/metric.d.ts +38 -0
  442. package/core/computed/metrics/metric.js +100 -0
  443. package/core/computed/metrics/navigation-metric.d.ts +16 -0
  444. package/core/computed/metrics/navigation-metric.js +46 -0
  445. package/core/computed/metrics/responsiveness.d.ts +87 -0
  446. package/core/computed/metrics/responsiveness.js +160 -0
  447. package/core/computed/metrics/speed-index.d.ts +10 -0
  448. package/core/computed/metrics/speed-index.js +40 -0
  449. package/core/computed/metrics/tbt-utils.d.ts +18 -0
  450. package/core/computed/metrics/tbt-utils.js +56 -0
  451. package/core/computed/metrics/timing-summary.d.ts +46 -0
  452. package/core/computed/metrics/timing-summary.js +157 -0
  453. package/core/computed/metrics/total-blocking-time.d.ts +23 -0
  454. package/core/computed/metrics/total-blocking-time.js +74 -0
  455. package/core/computed/module-duplication.d.ts +37 -0
  456. package/core/computed/module-duplication.js +138 -0
  457. package/core/computed/network-analysis.d.ts +20 -0
  458. package/core/computed/network-analysis.js +64 -0
  459. package/core/computed/network-records.d.ts +15 -0
  460. package/core/computed/network-records.js +22 -0
  461. package/core/computed/page-dependency-graph.d.ts +88 -0
  462. package/core/computed/page-dependency-graph.js +516 -0
  463. package/core/computed/processed-navigation.d.ts +21 -0
  464. package/core/computed/processed-navigation.js +37 -0
  465. package/core/computed/processed-trace.d.ts +14 -0
  466. package/core/computed/processed-trace.js +21 -0
  467. package/core/computed/resource-summary.d.ts +46 -0
  468. package/core/computed/resource-summary.js +118 -0
  469. package/core/computed/screenshots.d.ts +20 -0
  470. package/core/computed/screenshots.js +29 -0
  471. package/core/computed/speedline.d.ts +15 -0
  472. package/core/computed/speedline.js +55 -0
  473. package/core/computed/unused-css.d.ts +62 -0
  474. package/core/computed/unused-css.js +153 -0
  475. package/core/computed/unused-javascript-summary.d.ts +71 -0
  476. package/core/computed/unused-javascript-summary.js +155 -0
  477. package/core/computed/user-timings.d.ts +31 -0
  478. package/core/computed/user-timings.js +83 -0
  479. package/core/computed/viewport-meta.d.ts +35 -0
  480. package/core/computed/viewport-meta.js +56 -0
  481. package/core/config/budget.d.ts +74 -0
  482. package/core/config/budget.js +340 -0
  483. package/core/config/config-helpers.d.ts +94 -0
  484. package/core/config/config-helpers.js +630 -0
  485. package/core/config/config-plugin.d.ts +46 -0
  486. package/core/config/config-plugin.js +250 -0
  487. package/core/config/config.d.ts +28 -0
  488. package/core/config/config.js +344 -0
  489. package/core/config/constants.d.ts +86 -0
  490. package/core/config/constants.js +175 -0
  491. package/core/config/default-config.d.ts +5 -0
  492. package/core/config/default-config.js +637 -0
  493. package/core/config/desktop-config.d.ts +5 -0
  494. package/core/config/desktop-config.js +21 -0
  495. package/core/config/experimental-config.d.ts +13 -0
  496. package/core/config/experimental-config.js +29 -0
  497. package/core/config/filters.d.ts +83 -0
  498. package/core/config/filters.js +344 -0
  499. package/core/config/full-config.d.ts +9 -0
  500. package/core/config/full-config.js +13 -0
  501. package/core/config/lr-desktop-config.d.ts +4 -0
  502. package/core/config/lr-desktop-config.js +28 -0
  503. package/core/config/lr-mobile-config.d.ts +9 -0
  504. package/core/config/lr-mobile-config.js +33 -0
  505. package/core/config/metrics-to-audits.d.ts +19 -0
  506. package/core/config/metrics-to-audits.js +61 -0
  507. package/core/config/perf-config.d.ts +9 -0
  508. package/core/config/perf-config.js +16 -0
  509. package/core/config/validation.d.ts +77 -0
  510. package/core/config/validation.js +312 -0
  511. package/core/gather/base-artifacts.d.ts +16 -0
  512. package/core/gather/base-artifacts.js +95 -0
  513. package/core/gather/base-gatherer.d.ts +72 -0
  514. package/core/gather/base-gatherer.js +108 -0
  515. package/core/gather/driver/dom.d.ts +20 -0
  516. package/core/gather/driver/dom.js +57 -0
  517. package/core/gather/driver/environment.d.ts +35 -0
  518. package/core/gather/driver/environment.js +105 -0
  519. package/core/gather/driver/execution-context.d.ts +101 -0
  520. package/core/gather/driver/execution-context.js +262 -0
  521. package/core/gather/driver/navigation.d.ts +33 -0
  522. package/core/gather/driver/navigation.js +182 -0
  523. package/core/gather/driver/network-monitor.d.ts +82 -0
  524. package/core/gather/driver/network-monitor.js +260 -0
  525. package/core/gather/driver/network.d.ts +10 -0
  526. package/core/gather/driver/network.js +27 -0
  527. package/core/gather/driver/prepare.d.ts +52 -0
  528. package/core/gather/driver/prepare.js +244 -0
  529. package/core/gather/driver/service-workers.d.ts +16 -0
  530. package/core/gather/driver/service-workers.js +52 -0
  531. package/core/gather/driver/storage.d.ts +24 -0
  532. package/core/gather/driver/storage.js +149 -0
  533. package/core/gather/driver/target-manager.d.ts +61 -0
  534. package/core/gather/driver/target-manager.js +209 -0
  535. package/core/gather/driver/wait-for-condition.d.ts +116 -0
  536. package/core/gather/driver/wait-for-condition.js +544 -0
  537. package/core/gather/driver.d.ts +30 -0
  538. package/core/gather/driver.js +92 -0
  539. package/core/gather/fetcher.d.ts +63 -0
  540. package/core/gather/fetcher.js +143 -0
  541. package/core/gather/gatherers/accessibility.d.ts +23 -0
  542. package/core/gather/gatherers/accessibility.js +199 -0
  543. package/core/gather/gatherers/anchor-elements.d.ts +10 -0
  544. package/core/gather/gatherers/anchor-elements.js +132 -0
  545. package/core/gather/gatherers/bf-cache-failures.d.ts +43 -0
  546. package/core/gather/gatherers/bf-cache-failures.js +179 -0
  547. package/core/gather/gatherers/cache-contents.d.ts +11 -0
  548. package/core/gather/gatherers/cache-contents.js +58 -0
  549. package/core/gather/gatherers/console-messages.d.ts +39 -0
  550. package/core/gather/gatherers/console-messages.js +174 -0
  551. package/core/gather/gatherers/css-usage.d.ts +39 -0
  552. package/core/gather/gatherers/css-usage.js +150 -0
  553. package/core/gather/gatherers/devtools-log-compat.d.ts +13 -0
  554. package/core/gather/gatherers/devtools-log-compat.js +35 -0
  555. package/core/gather/gatherers/devtools-log.d.ts +48 -0
  556. package/core/gather/gatherers/devtools-log.js +115 -0
  557. package/core/gather/gatherers/dobetterweb/doctype.d.ts +10 -0
  558. package/core/gather/gatherers/dobetterweb/doctype.js +47 -0
  559. package/core/gather/gatherers/dobetterweb/domstats.d.ts +10 -0
  560. package/core/gather/gatherers/dobetterweb/domstats.js +102 -0
  561. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +61 -0
  562. package/core/gather/gatherers/dobetterweb/optimized-images.js +193 -0
  563. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +30 -0
  564. package/core/gather/gatherers/dobetterweb/response-compression.js +155 -0
  565. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +53 -0
  566. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +237 -0
  567. package/core/gather/gatherers/full-page-screenshot.d.ts +35 -0
  568. package/core/gather/gatherers/full-page-screenshot.js +258 -0
  569. package/core/gather/gatherers/gatherer.d.ts +46 -0
  570. package/core/gather/gatherers/gatherer.js +58 -0
  571. package/core/gather/gatherers/global-listeners.d.ts +27 -0
  572. package/core/gather/gatherers/global-listeners.js +91 -0
  573. package/core/gather/gatherers/iframe-elements.d.ts +11 -0
  574. package/core/gather/gatherers/iframe-elements.js +67 -0
  575. package/core/gather/gatherers/image-elements.d.ts +35 -0
  576. package/core/gather/gatherers/image-elements.js +378 -0
  577. package/core/gather/gatherers/inputs.d.ts +10 -0
  578. package/core/gather/gatherers/inputs.js +118 -0
  579. package/core/gather/gatherers/inspector-issues.d.ts +38 -0
  580. package/core/gather/gatherers/inspector-issues.js +126 -0
  581. package/core/gather/gatherers/installability-errors.d.ts +17 -0
  582. package/core/gather/gatherers/installability-errors.js +56 -0
  583. package/core/gather/gatherers/js-usage.d.ts +22 -0
  584. package/core/gather/gatherers/js-usage.js +74 -0
  585. package/core/gather/gatherers/link-elements.d.ts +39 -0
  586. package/core/gather/gatherers/link-elements.js +181 -0
  587. package/core/gather/gatherers/main-document-content.d.ts +27 -0
  588. package/core/gather/gatherers/main-document-content.js +53 -0
  589. package/core/gather/gatherers/meta-elements.d.ts +10 -0
  590. package/core/gather/gatherers/meta-elements.js +67 -0
  591. package/core/gather/gatherers/network-user-agent.d.ts +18 -0
  592. package/core/gather/gatherers/network-user-agent.js +41 -0
  593. package/core/gather/gatherers/script-elements.d.ts +26 -0
  594. package/core/gather/gatherers/script-elements.js +110 -0
  595. package/core/gather/gatherers/scripts.d.ts +27 -0
  596. package/core/gather/gatherers/scripts.js +139 -0
  597. package/core/gather/gatherers/seo/embedded-content.d.ts +10 -0
  598. package/core/gather/gatherers/seo/embedded-content.js +63 -0
  599. package/core/gather/gatherers/seo/font-size.d.ts +131 -0
  600. package/core/gather/gatherers/seo/font-size.js +339 -0
  601. package/core/gather/gatherers/seo/robots-txt.d.ts +10 -0
  602. package/core/gather/gatherers/seo/robots-txt.js +27 -0
  603. package/core/gather/gatherers/seo/tap-targets.d.ts +21 -0
  604. package/core/gather/gatherers/seo/tap-targets.js +389 -0
  605. package/core/gather/gatherers/service-worker.d.ts +16 -0
  606. package/core/gather/gatherers/service-worker.js +44 -0
  607. package/core/gather/gatherers/source-maps.d.ts +50 -0
  608. package/core/gather/gatherers/source-maps.js +155 -0
  609. package/core/gather/gatherers/stacks.d.ts +38 -0
  610. package/core/gather/gatherers/stacks.js +137 -0
  611. package/core/gather/gatherers/trace-compat.d.ts +13 -0
  612. package/core/gather/gatherers/trace-compat.js +35 -0
  613. package/core/gather/gatherers/trace-elements.d.ts +83 -0
  614. package/core/gather/gatherers/trace-elements.js +349 -0
  615. package/core/gather/gatherers/trace.d.ts +23 -0
  616. package/core/gather/gatherers/trace.js +130 -0
  617. package/core/gather/gatherers/viewport-dimensions.d.ts +10 -0
  618. package/core/gather/gatherers/viewport-dimensions.js +57 -0
  619. package/core/gather/gatherers/web-app-manifest.d.ts +32 -0
  620. package/core/gather/gatherers/web-app-manifest.js +106 -0
  621. package/core/gather/navigation-runner.d.ts +94 -0
  622. package/core/gather/navigation-runner.js +386 -0
  623. package/core/gather/runner-helpers.d.ts +39 -0
  624. package/core/gather/runner-helpers.js +159 -0
  625. package/core/gather/session.d.ts +50 -0
  626. package/core/gather/session.js +114 -0
  627. package/core/gather/snapshot-runner.d.ts +10 -0
  628. package/core/gather/snapshot-runner.js +67 -0
  629. package/core/gather/timespan-runner.d.ts +12 -0
  630. package/core/gather/timespan-runner.js +85 -0
  631. package/core/index.cjs +21 -0
  632. package/core/index.d.cts +4 -0
  633. package/core/index.d.ts +88 -0
  634. package/core/index.js +172 -0
  635. package/core/legacy/config/config.d.ts +107 -0
  636. package/core/legacy/config/config.js +566 -0
  637. package/core/legacy/config/legacy-default-config.d.ts +4 -0
  638. package/core/legacy/config/legacy-default-config.js +87 -0
  639. package/core/legacy/gather/connections/connection.d.ts +75 -0
  640. package/core/legacy/gather/connections/connection.js +181 -0
  641. package/core/legacy/gather/connections/cri.d.ts +27 -0
  642. package/core/legacy/gather/connections/cri.js +162 -0
  643. package/core/legacy/gather/connections/raw.d.ts +20 -0
  644. package/core/legacy/gather/connections/raw.js +57 -0
  645. package/core/legacy/gather/driver.d.ts +215 -0
  646. package/core/legacy/gather/driver.js +469 -0
  647. package/core/legacy/gather/gather-runner.d.ts +166 -0
  648. package/core/legacy/gather/gather-runner.js +590 -0
  649. package/core/lib/arbitrary-equality-map.d.ts +47 -0
  650. package/core/lib/arbitrary-equality-map.js +80 -0
  651. package/core/lib/asset-saver.d.ts +101 -0
  652. package/core/lib/asset-saver.js +451 -0
  653. package/core/lib/axe.d.ts +2 -0
  654. package/core/lib/axe.js +17 -0
  655. package/core/lib/bf-cache-strings.d.ts +121 -0
  656. package/core/lib/bf-cache-strings.js +661 -0
  657. package/core/lib/cdt/Common.d.ts +3 -0
  658. package/core/lib/cdt/Common.js +12 -0
  659. package/core/lib/cdt/Platform.d.ts +26 -0
  660. package/core/lib/cdt/Platform.js +57 -0
  661. package/core/lib/cdt/SDK.d.ts +2 -0
  662. package/core/lib/cdt/SDK.js +28 -0
  663. package/core/lib/cdt/generated/ParsedURL.d.ts +28 -0
  664. package/core/lib/cdt/generated/ParsedURL.js +178 -0
  665. package/core/lib/cdt/generated/SourceMap.d.ts +100 -0
  666. package/core/lib/cdt/generated/SourceMap.js +527 -0
  667. package/core/lib/cdt/package.json +4 -0
  668. package/core/lib/csp-evaluator.d.ts +41 -0
  669. package/core/lib/csp-evaluator.js +170 -0
  670. package/core/lib/dependency-graph/base-node.d.ts +161 -0
  671. package/core/lib/dependency-graph/base-node.js +364 -0
  672. package/core/lib/dependency-graph/cpu-node.d.ts +34 -0
  673. package/core/lib/dependency-graph/cpu-node.js +86 -0
  674. package/core/lib/dependency-graph/network-node.d.ts +43 -0
  675. package/core/lib/dependency-graph/network-node.js +99 -0
  676. package/core/lib/dependency-graph/simulator/connection-pool.d.ts +58 -0
  677. package/core/lib/dependency-graph/simulator/connection-pool.js +171 -0
  678. package/core/lib/dependency-graph/simulator/dns-cache.d.ts +42 -0
  679. package/core/lib/dependency-graph/simulator/dns-cache.js +74 -0
  680. package/core/lib/dependency-graph/simulator/network-analyzer.d.ts +166 -0
  681. package/core/lib/dependency-graph/simulator/network-analyzer.js +479 -0
  682. package/core/lib/dependency-graph/simulator/simulator-timing-map.d.ts +153 -0
  683. package/core/lib/dependency-graph/simulator/simulator-timing-map.js +220 -0
  684. package/core/lib/dependency-graph/simulator/simulator.d.ts +154 -0
  685. package/core/lib/dependency-graph/simulator/simulator.js +540 -0
  686. package/core/lib/dependency-graph/simulator/tcp-connection.d.ts +89 -0
  687. package/core/lib/dependency-graph/simulator/tcp-connection.js +230 -0
  688. package/core/lib/deprecations-strings.d.ts +66 -0
  689. package/core/lib/deprecations-strings.js +654 -0
  690. package/core/lib/emulation.d.ts +43 -0
  691. package/core/lib/emulation.js +163 -0
  692. package/core/lib/i18n/README.md +290 -0
  693. package/core/lib/i18n/i18n.d.ts +81 -0
  694. package/core/lib/i18n/i18n.js +229 -0
  695. package/core/lib/icons.d.ts +22 -0
  696. package/core/lib/icons.js +82 -0
  697. package/core/lib/lantern-trace-saver.d.ts +20 -0
  698. package/core/lib/lantern-trace-saver.js +260 -0
  699. package/core/lib/lh-env.d.ts +2 -0
  700. package/core/lib/lh-env.js +15 -0
  701. package/core/lib/lh-error.d.ts +328 -0
  702. package/core/lib/lh-error.js +425 -0
  703. package/core/lib/lh-trace-processor.d.ts +5 -0
  704. package/core/lib/lh-trace-processor.js +45 -0
  705. package/core/lib/lighthouse-compatibility.d.ts +8 -0
  706. package/core/lib/lighthouse-compatibility.js +139 -0
  707. package/core/lib/manifest-parser.d.ts +186 -0
  708. package/core/lib/manifest-parser.js +495 -0
  709. package/core/lib/median-run.d.ts +17 -0
  710. package/core/lib/median-run.js +92 -0
  711. package/core/lib/minification-estimator.d.ts +9 -0
  712. package/core/lib/minification-estimator.js +192 -0
  713. package/core/lib/minify-devtoolslog.d.ts +6 -0
  714. package/core/lib/minify-devtoolslog.js +86 -0
  715. package/core/lib/navigation-error.d.ts +39 -0
  716. package/core/lib/navigation-error.js +175 -0
  717. package/core/lib/network-recorder.d.ts +115 -0
  718. package/core/lib/network-recorder.js +341 -0
  719. package/core/lib/network-request.d.ts +247 -0
  720. package/core/lib/network-request.js +590 -0
  721. package/core/lib/page-functions.d.ts +149 -0
  722. package/core/lib/page-functions.js +544 -0
  723. package/core/lib/proto-preprocessor.d.ts +13 -0
  724. package/core/lib/proto-preprocessor.js +133 -0
  725. package/core/lib/rect-helpers.d.ts +100 -0
  726. package/core/lib/rect-helpers.js +251 -0
  727. package/core/lib/script-helpers.d.ts +17 -0
  728. package/core/lib/script-helpers.js +31 -0
  729. package/core/lib/sentry.d.ts +32 -0
  730. package/core/lib/sentry.js +143 -0
  731. package/core/lib/stack-packs.d.ts +16 -0
  732. package/core/lib/stack-packs.js +126 -0
  733. package/core/lib/statistics.d.ts +28 -0
  734. package/core/lib/statistics.js +103 -0
  735. package/core/lib/tappable-rects.d.ts +8 -0
  736. package/core/lib/tappable-rects.js +98 -0
  737. package/core/lib/third-party-web.d.ts +32 -0
  738. package/core/lib/third-party-web.js +52 -0
  739. package/core/lib/timing-trace-saver.d.ts +21 -0
  740. package/core/lib/timing-trace-saver.js +96 -0
  741. package/core/lib/tracehouse/cpu-profile-model.d.ts +228 -0
  742. package/core/lib/tracehouse/cpu-profile-model.js +591 -0
  743. package/core/lib/tracehouse/main-thread-tasks.d.ts +162 -0
  744. package/core/lib/tracehouse/main-thread-tasks.js +688 -0
  745. package/core/lib/tracehouse/task-groups.d.ts +66 -0
  746. package/core/lib/tracehouse/task-groups.js +111 -0
  747. package/core/lib/tracehouse/task-summary.d.ts +18 -0
  748. package/core/lib/tracehouse/task-summary.js +86 -0
  749. package/core/lib/tracehouse/trace-processor.d.ts +284 -0
  750. package/core/lib/tracehouse/trace-processor.js +1016 -0
  751. package/core/lib/traces/metric-trace-events.d.ts +65 -0
  752. package/core/lib/traces/metric-trace-events.js +200 -0
  753. package/core/lib/url-utils.d.ts +100 -0
  754. package/core/lib/url-utils.js +266 -0
  755. package/core/runner.d.ts +114 -0
  756. package/core/runner.js +563 -0
  757. package/core/scoring.d.ts +26 -0
  758. package/core/scoring.js +91 -0
  759. package/core/scripts/download-chrome.sh +36 -0
  760. package/core/scripts/manual-chrome-launcher.js +50 -0
  761. package/core/user-flow.d.ts +106 -0
  762. package/core/user-flow.js +354 -0
  763. package/dist/report/bundle.esm.js +1485 -1281
  764. package/dist/report/flow.js +37 -25
  765. package/dist/report/standalone.js +35 -19
  766. package/eslint-local-rules.cjs +106 -0
  767. package/eslint-local-rules.d.cts +6 -0
  768. package/esm-utils.d.ts +14 -0
  769. package/esm-utils.js +38 -0
  770. package/flow-report/api.d.ts +7 -0
  771. package/flow-report/assets/standalone-flow-template.html +1 -1
  772. package/flow-report/clients/standalone.d.ts +7 -0
  773. package/flow-report/src/app.d.ts +11 -0
  774. package/flow-report/src/app.tsx +1 -1
  775. package/flow-report/src/common.d.ts +20 -0
  776. package/flow-report/src/common.tsx +3 -3
  777. package/flow-report/src/header.d.ts +10 -0
  778. package/flow-report/src/header.tsx +1 -1
  779. package/flow-report/src/help-dialog.d.ts +10 -0
  780. package/flow-report/src/i18n/i18n.d.ts +212 -0
  781. package/flow-report/src/i18n/i18n.tsx +24 -19
  782. package/flow-report/src/i18n/localized-strings.d.ts +9 -0
  783. package/flow-report/src/i18n/ui-strings.d.ts +48 -0
  784. package/flow-report/src/icons.d.ts +18 -0
  785. package/flow-report/src/sidebar/flow.d.ts +8 -0
  786. package/flow-report/src/sidebar/sidebar.d.ts +17 -0
  787. package/flow-report/src/sidebar/sidebar.tsx +7 -4
  788. package/flow-report/src/summary/category.d.ts +19 -0
  789. package/flow-report/src/summary/category.tsx +10 -10
  790. package/flow-report/src/summary/summary.d.ts +18 -0
  791. package/flow-report/src/summary/summary.tsx +4 -4
  792. package/flow-report/src/topbar.d.ts +15 -0
  793. package/flow-report/src/topbar.tsx +14 -30
  794. package/flow-report/src/util.d.ts +30 -0
  795. package/flow-report/src/util.ts +2 -13
  796. package/flow-report/src/wrappers/category-score.d.ts +12 -0
  797. package/flow-report/src/wrappers/markdown.d.ts +10 -0
  798. package/flow-report/src/wrappers/report.d.ts +10 -0
  799. package/flow-report/src/wrappers/report.tsx +1 -1
  800. package/flow-report/src/wrappers/styles.d.ts +8 -0
  801. package/flow-report/test/app-test.d.ts +7 -0
  802. package/flow-report/test/common-test.d.ts +7 -0
  803. package/flow-report/test/common-test.tsx +11 -12
  804. package/flow-report/test/flow-report-pptr-test.d.ts +7 -0
  805. package/flow-report/test/flow-report-pptr-test.ts +21 -8
  806. package/flow-report/test/header-test.d.ts +7 -0
  807. package/flow-report/test/run-flow-report-tests.sh +20 -0
  808. package/flow-report/test/sample-flow.d.ts +7 -0
  809. package/flow-report/test/sample-flow.ts +1 -1
  810. package/flow-report/test/setup/env-setup.d.ts +11 -0
  811. package/flow-report/test/setup/env-setup.ts +47 -24
  812. package/flow-report/test/sidebar/flow-test.d.ts +7 -0
  813. package/flow-report/test/sidebar/sidebar-test.d.ts +7 -0
  814. package/flow-report/test/sidebar/sidebar-test.tsx +30 -3
  815. package/flow-report/test/summary/category-test.d.ts +7 -0
  816. package/flow-report/test/summary/summary-test.d.ts +7 -0
  817. package/flow-report/test/summary/summary-test.tsx +1 -1
  818. package/flow-report/test/topbar-test.d.ts +7 -0
  819. package/flow-report/test/topbar-test.tsx +11 -12
  820. package/flow-report/test/util-test.d.ts +7 -0
  821. package/flow-report/test/util-test.tsx +3 -3
  822. package/flow-report/test/wrappers/category-score-test.d.ts +7 -0
  823. package/flow-report/test/wrappers/markdown-test.d.ts +7 -0
  824. package/flow-report/tsconfig.json +5 -3
  825. package/flow-report/types/flow-report.d.ts +8 -1
  826. package/package.json +86 -80
  827. package/readme.md +27 -40
  828. package/report/README.md +8 -9
  829. package/report/assets/standalone-template.html +1 -1
  830. package/report/assets/styles.css +35 -17
  831. package/report/assets/templates.html +14 -37
  832. package/report/clients/bundle.d.ts +6 -0
  833. package/report/clients/bundle.js +1 -2
  834. package/report/clients/standalone.d.ts +2 -0
  835. package/report/clients/standalone.js +0 -1
  836. package/report/generator/file-namer.d.ts +35 -0
  837. package/report/generator/file-namer.js +7 -3
  838. package/report/generator/flow-report-assets.d.ts +9 -0
  839. package/report/generator/flow-report-assets.js +10 -6
  840. package/report/generator/report-assets.d.ts +8 -0
  841. package/report/generator/report-assets.js +8 -5
  842. package/report/generator/report-generator.d.ts +59 -0
  843. package/report/generator/report-generator.js +76 -34
  844. package/report/generator/tsconfig.json +1 -2
  845. package/report/renderer/api.d.ts +31 -0
  846. package/report/renderer/api.js +0 -2
  847. package/report/renderer/category-renderer.d.ts +176 -0
  848. package/report/renderer/category-renderer.js +39 -41
  849. package/report/renderer/components.d.ts +10 -0
  850. package/report/renderer/components.js +364 -448
  851. package/report/renderer/crc-details-renderer.d.ts +73 -0
  852. package/report/renderer/crc-details-renderer.js +28 -30
  853. package/report/renderer/details-renderer.d.ts +141 -0
  854. package/report/renderer/details-renderer.js +44 -92
  855. package/report/renderer/dom.d.ts +125 -0
  856. package/report/renderer/dom.js +13 -10
  857. package/report/renderer/drop-down-menu.d.ts +70 -0
  858. package/report/renderer/drop-down-menu.js +0 -1
  859. package/report/renderer/element-screenshot-renderer.d.ts +79 -0
  860. package/report/renderer/element-screenshot-renderer.js +11 -12
  861. package/report/renderer/features-util.d.ts +13 -0
  862. package/report/renderer/features-util.js +0 -1
  863. package/report/renderer/i18n-formatter.d.ts +100 -0
  864. package/report/renderer/i18n-formatter.js +263 -0
  865. package/report/renderer/logger.d.ts +47 -0
  866. package/report/renderer/logger.js +0 -1
  867. package/report/renderer/open-tab.d.ts +19 -0
  868. package/report/renderer/open-tab.js +4 -4
  869. package/report/renderer/performance-category-renderer.d.ts +56 -0
  870. package/report/renderer/performance-category-renderer.js +29 -26
  871. package/report/renderer/pwa-category-renderer.d.ts +55 -0
  872. package/report/renderer/pwa-category-renderer.js +8 -8
  873. package/report/renderer/report-globals.d.ts +21 -0
  874. package/report/renderer/report-globals.js +49 -0
  875. package/report/renderer/report-renderer.d.ts +57 -0
  876. package/report/renderer/report-renderer.js +54 -52
  877. package/report/renderer/report-ui-features.d.ts +71 -0
  878. package/report/renderer/report-ui-features.js +44 -39
  879. package/report/renderer/report-utils.d.ts +129 -0
  880. package/report/renderer/report-utils.js +448 -0
  881. package/report/renderer/snippet-renderer.d.ts +85 -0
  882. package/report/renderer/snippet-renderer.js +5 -5
  883. package/report/renderer/swap-locale-feature.d.ts +31 -0
  884. package/report/renderer/swap-locale-feature.js +2 -3
  885. package/report/renderer/text-encoding.d.ts +26 -0
  886. package/report/renderer/text-encoding.js +0 -1
  887. package/report/renderer/topbar-features.d.ts +82 -0
  888. package/report/renderer/topbar-features.js +2 -2
  889. package/report/test/clients/bundle-test.js +5 -10
  890. package/report/test/generator/file-namer-test.js +3 -4
  891. package/report/test/generator/report-generator-test.js +49 -24
  892. package/report/test/renderer/category-renderer-test.js +19 -15
  893. package/report/test/renderer/components-test.js +36 -37
  894. package/report/test/renderer/crc-details-renderer-test.js +11 -10
  895. package/report/test/renderer/details-renderer-test.js +91 -41
  896. package/report/test/renderer/dom-test.js +38 -14
  897. package/report/test/renderer/element-screenshot-renderer-test.js +14 -12
  898. package/report/test/renderer/i18n-formatter-test.js +179 -0
  899. package/report/test/renderer/performance-category-renderer-test.js +43 -31
  900. package/report/test/renderer/pwa-category-renderer-test.js +17 -13
  901. package/report/test/renderer/report-renderer-axe-test.js +12 -15
  902. package/report/test/renderer/report-renderer-test.js +17 -15
  903. package/report/test/renderer/report-ui-features-test.js +304 -89
  904. package/report/test/renderer/report-utils-test.js +219 -0
  905. package/report/test/renderer/snippet-renderer-test.js +11 -10
  906. package/report/test/renderer/text-encoding-test.js +2 -5
  907. package/report/test-assets/faux-psi-template.html +1 -1
  908. package/report/test-assets/faux-psi.d.ts +34 -0
  909. package/report/test-assets/faux-psi.js +83 -68
  910. package/report/test-assets/lhr-3.0.0.json +2332 -0
  911. package/report/test-assets/lhr-4.3.0.json +4754 -0
  912. package/report/test-assets/lhr-5.0.0.json +5994 -0
  913. package/report/test-assets/lhr-6.0.0.json +7222 -0
  914. package/report/test-assets/lhr-8.5.0.json +8679 -0
  915. package/report/tsconfig.json +1 -2
  916. package/report/types/augment-dom.d.ts +1 -1
  917. package/root.d.ts +3 -0
  918. package/root.js +9 -19
  919. package/shared/localization/format.d.ts +106 -0
  920. package/shared/localization/format.js +27 -21
  921. package/shared/localization/i18n-module.d.ts +4 -0
  922. package/shared/localization/i18n-module.js +7 -3
  923. package/shared/localization/locales/ar-XB.json +1658 -1007
  924. package/shared/localization/locales/ar.json +1659 -1008
  925. package/shared/localization/locales/bg.json +1657 -1006
  926. package/shared/localization/locales/ca.json +1664 -1013
  927. package/shared/localization/locales/cs.json +1659 -1008
  928. package/shared/localization/locales/da.json +1658 -1007
  929. package/shared/localization/locales/de.json +1794 -1143
  930. package/shared/localization/locales/el.json +1657 -1006
  931. package/shared/localization/locales/en-GB.json +1658 -1007
  932. package/shared/localization/locales/en-US.json +1471 -1066
  933. package/shared/localization/locales/en-XA.json +1658 -1007
  934. package/shared/localization/locales/en-XL.json +1471 -1066
  935. package/shared/localization/locales/es-419.json +1660 -1009
  936. package/shared/localization/locales/es.json +1665 -1014
  937. package/shared/localization/locales/fi.json +1658 -1007
  938. package/shared/localization/locales/fil.json +1659 -1008
  939. package/shared/localization/locales/fr.json +1660 -1009
  940. package/shared/localization/locales/he.json +1678 -1027
  941. package/shared/localization/locales/hi.json +1661 -1010
  942. package/shared/localization/locales/hr.json +1658 -1007
  943. package/shared/localization/locales/hu.json +1657 -1006
  944. package/shared/localization/locales/id.json +1658 -1007
  945. package/shared/localization/locales/it.json +1678 -1027
  946. package/shared/localization/locales/ja.json +1657 -1006
  947. package/shared/localization/locales/ko.json +1658 -1007
  948. package/shared/localization/locales/lt.json +1658 -1007
  949. package/shared/localization/locales/lv.json +1658 -1007
  950. package/shared/localization/locales/nl.json +1659 -1008
  951. package/shared/localization/locales/no.json +1662 -1011
  952. package/shared/localization/locales/pl.json +1657 -1006
  953. package/shared/localization/locales/pt-PT.json +1678 -1027
  954. package/shared/localization/locales/pt.json +1659 -1008
  955. package/shared/localization/locales/ro.json +1657 -1006
  956. package/shared/localization/locales/ru.json +1657 -1006
  957. package/shared/localization/locales/sk.json +1657 -1006
  958. package/shared/localization/locales/sl.json +1657 -1006
  959. package/shared/localization/locales/sr-Latn.json +1658 -1007
  960. package/shared/localization/locales/sr.json +1658 -1007
  961. package/shared/localization/locales/sv.json +1664 -1013
  962. package/shared/localization/locales/ta.json +1658 -1007
  963. package/shared/localization/locales/te.json +1688 -1037
  964. package/shared/localization/locales/th.json +1666 -1015
  965. package/shared/localization/locales/tr.json +1658 -1007
  966. package/shared/localization/locales/uk.json +1657 -1006
  967. package/shared/localization/locales/vi.json +1659 -1008
  968. package/shared/localization/locales/zh-HK.json +1658 -1007
  969. package/shared/localization/locales/zh-TW.json +1661 -1010
  970. package/shared/localization/locales/zh.json +1658 -1007
  971. package/shared/localization/locales.d.ts +7 -0
  972. package/shared/localization/locales.js +54 -51
  973. package/shared/localization/swap-flow-locale.d.ts +6 -0
  974. package/shared/localization/swap-flow-locale.js +6 -3
  975. package/shared/localization/swap-locale.d.ts +39 -0
  976. package/shared/localization/swap-locale.js +7 -8
  977. package/shared/test/localization/format-test.js +73 -56
  978. package/shared/test/localization/locales-test.js +2 -4
  979. package/shared/test/localization/swap-locale-test.js +10 -11
  980. package/shared/test/util-test.js +214 -0
  981. package/shared/tsconfig.json +1 -2
  982. package/shared/type-verifiers.d.ts +23 -0
  983. package/shared/type-verifiers.js +1 -2
  984. package/shared/types/shared.d.ts +2 -2
  985. package/shared/util.d.ts +122 -0
  986. package/shared/util.js +332 -0
  987. package/third-party/axe/valid-langs.d.ts +9 -0
  988. package/third-party/axe/valid-langs.js +1 -1
  989. package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +5 -7
  990. package/third-party/chromium-synchronization/installability-errors-test.js +4 -8
  991. package/third-party/download-content-shell/README.md +1 -0
  992. package/third-party/download-content-shell/download-content-shell.js +12 -6
  993. package/third-party/download-content-shell/utils.js +8 -8
  994. package/tsconfig-base.json +6 -1
  995. package/tsconfig.json +84 -90
  996. package/types/artifacts.d.ts +135 -78
  997. package/types/audit.d.ts +9 -8
  998. package/types/config.d.ts +26 -38
  999. package/types/externs.d.ts +9 -101
  1000. package/types/gatherer.d.ts +35 -27
  1001. package/types/internal/cssstyle.d.ts +23 -0
  1002. package/types/{enquirer.d.ts → internal/enquirer.d.ts} +0 -0
  1003. package/types/{es-main.d.ts → internal/es-main.d.ts} +0 -0
  1004. package/types/internal/global.d.ts +15 -0
  1005. package/types/{http-link-header/index.d.ts → internal/http-link-header.d.ts} +0 -0
  1006. package/types/{jsonlint-mod.d.ts → internal/jsonlint-mod.d.ts} +0 -0
  1007. package/types/internal/lighthouse-logger.d.ts +34 -0
  1008. package/types/internal/lookup-closest-locale.d.ts +13 -0
  1009. package/types/{metaviewport-parser/index.d.ts → internal/metaviewport-parser.d.ts} +0 -0
  1010. package/types/{node-fetch.d.ts → internal/node-fetch.d.ts} +0 -0
  1011. package/types/internal/node.d.ts +44 -0
  1012. package/types/{parse-cache-control/index.d.ts → internal/parse-cache-control.d.ts} +0 -0
  1013. package/types/{pretty-json-stringify/index.d.ts → internal/pretty-json-stringify.d.ts} +0 -0
  1014. package/types/internal/query-selector.d.ts +36 -0
  1015. package/types/{rollup-plugin-postprocess.d.ts → internal/rollup-plugin-postprocess.d.ts} +0 -0
  1016. package/types/internal/smokehouse.d.ts +83 -0
  1017. package/types/internal/test.d.ts +53 -0
  1018. package/types/lh.d.ts +81 -0
  1019. package/types/lh.js +13 -0
  1020. package/types/lhr/audit-details.d.ts +6 -53
  1021. package/types/lhr/audit-result.d.ts +2 -2
  1022. package/types/lhr/flow-result.d.ts +28 -0
  1023. package/types/lhr/lhr.d.ts +53 -6
  1024. package/types/lhr/settings.d.ts +18 -1
  1025. package/types/lhr/treemap.d.ts +5 -4
  1026. package/types/lhr/tsconfig.json +0 -2
  1027. package/types/protocol.d.ts +32 -18
  1028. package/types/puppeteer.d.ts +27 -0
  1029. package/types/user-flow.d.ts +27 -6
  1030. package/types/utility-types.d.ts +72 -0
  1031. package/vercel.json +6 -0
  1032. package/eslint-local-rules.js +0 -106
  1033. package/flow-report/.eslintrc.cjs +0 -51
  1034. package/flow-report/jest.config.js +0 -24
  1035. package/flow-report/package.json +0 -4
  1036. package/flow-report/test/setup/global-setup.ts +0 -11
  1037. package/jest.config.js +0 -30
  1038. package/lighthouse-cli/.eslintrc.cjs +0 -29
  1039. package/lighthouse-cli/bin.js +0 -152
  1040. package/lighthouse-cli/cli-flags.js +0 -530
  1041. package/lighthouse-cli/commands/commands.js +0 -10
  1042. package/lighthouse-cli/commands/list-audits.js +0 -16
  1043. package/lighthouse-cli/commands/list-locales.js +0 -16
  1044. package/lighthouse-cli/commands/list-trace-categories.js +0 -16
  1045. package/lighthouse-cli/index.js +0 -14
  1046. package/lighthouse-cli/package.json +0 -4
  1047. package/lighthouse-cli/printer.js +0 -100
  1048. package/lighthouse-cli/run.js +0 -286
  1049. package/lighthouse-cli/sentry-prompt.js +0 -79
  1050. package/lighthouse-cli/test/smokehouse/core-tests.js +0 -129
  1051. package/lighthouse-cli/test/smokehouse/frontends/back-compat-util.js +0 -42
  1052. package/lighthouse-cli/test/smokehouse/frontends/lib.js +0 -49
  1053. package/lighthouse-cli/test/smokehouse/frontends/node.js +0 -13
  1054. package/lighthouse-cli/test/smokehouse/frontends/smokehouse-bin.js +0 -262
  1055. package/lighthouse-cli/test/smokehouse/lib/child-process-error.js +0 -26
  1056. package/lighthouse-cli/test/smokehouse/lib/concurrent-mapper.js +0 -126
  1057. package/lighthouse-cli/test/smokehouse/lib/local-console.js +0 -51
  1058. package/lighthouse-cli/test/smokehouse/lighthouse-runners/bundle.js +0 -68
  1059. package/lighthouse-cli/test/smokehouse/lighthouse-runners/cli.js +0 -151
  1060. package/lighthouse-cli/test/smokehouse/lighthouse-runners/devtools.js +0 -106
  1061. package/lighthouse-cli/test/smokehouse/readme.md +0 -204
  1062. package/lighthouse-cli/test/smokehouse/report-assert.js +0 -493
  1063. package/lighthouse-cli/test/smokehouse/smokehouse.js +0 -284
  1064. package/lighthouse-cli/test/smokehouse/version-check-test.js +0 -46
  1065. package/lighthouse-cli/test/smokehouse/version-check.js +0 -49
  1066. package/lighthouse-core/audits/accessibility/accesskeys.js +0 -45
  1067. package/lighthouse-core/audits/accessibility/aria-allowed-attr.js +0 -45
  1068. package/lighthouse-core/audits/accessibility/aria-command-name.js +0 -43
  1069. package/lighthouse-core/audits/accessibility/aria-hidden-body.js +0 -43
  1070. package/lighthouse-core/audits/accessibility/aria-hidden-focus.js +0 -43
  1071. package/lighthouse-core/audits/accessibility/aria-input-field-name.js +0 -43
  1072. package/lighthouse-core/audits/accessibility/aria-meter-name.js +0 -43
  1073. package/lighthouse-core/audits/accessibility/aria-progressbar-name.js +0 -43
  1074. package/lighthouse-core/audits/accessibility/aria-required-attr.js +0 -44
  1075. package/lighthouse-core/audits/accessibility/aria-required-children.js +0 -48
  1076. package/lighthouse-core/audits/accessibility/aria-required-parent.js +0 -46
  1077. package/lighthouse-core/audits/accessibility/aria-roles.js +0 -45
  1078. package/lighthouse-core/audits/accessibility/aria-toggle-field-name.js +0 -43
  1079. package/lighthouse-core/audits/accessibility/aria-tooltip-name.js +0 -43
  1080. package/lighthouse-core/audits/accessibility/aria-treeitem-name.js +0 -43
  1081. package/lighthouse-core/audits/accessibility/aria-valid-attr-value.js +0 -45
  1082. package/lighthouse-core/audits/accessibility/aria-valid-attr.js +0 -45
  1083. package/lighthouse-core/audits/accessibility/axe-audit.js +0 -114
  1084. package/lighthouse-core/audits/accessibility/button-name.js +0 -45
  1085. package/lighthouse-core/audits/accessibility/bypass.js +0 -46
  1086. package/lighthouse-core/audits/accessibility/color-contrast.js +0 -46
  1087. package/lighthouse-core/audits/accessibility/definition-list.js +0 -47
  1088. package/lighthouse-core/audits/accessibility/dlitem.js +0 -45
  1089. package/lighthouse-core/audits/accessibility/document-title.js +0 -45
  1090. package/lighthouse-core/audits/accessibility/duplicate-id-active.js +0 -43
  1091. package/lighthouse-core/audits/accessibility/duplicate-id-aria.js +0 -43
  1092. package/lighthouse-core/audits/accessibility/form-field-multiple-labels.js +0 -44
  1093. package/lighthouse-core/audits/accessibility/frame-title.js +0 -44
  1094. package/lighthouse-core/audits/accessibility/heading-order.js +0 -43
  1095. package/lighthouse-core/audits/accessibility/html-has-lang.js +0 -47
  1096. package/lighthouse-core/audits/accessibility/html-lang-valid.js +0 -46
  1097. package/lighthouse-core/audits/accessibility/image-alt.js +0 -45
  1098. package/lighthouse-core/audits/accessibility/input-image-alt.js +0 -45
  1099. package/lighthouse-core/audits/accessibility/label.js +0 -45
  1100. package/lighthouse-core/audits/accessibility/link-name.js +0 -46
  1101. package/lighthouse-core/audits/accessibility/list.js +0 -47
  1102. package/lighthouse-core/audits/accessibility/listitem.js +0 -46
  1103. package/lighthouse-core/audits/accessibility/manual/custom-controls-labels.js +0 -28
  1104. package/lighthouse-core/audits/accessibility/manual/custom-controls-roles.js +0 -28
  1105. package/lighthouse-core/audits/accessibility/manual/focus-traps.js +0 -28
  1106. package/lighthouse-core/audits/accessibility/manual/focusable-controls.js +0 -28
  1107. package/lighthouse-core/audits/accessibility/manual/interactive-element-affordance.js +0 -28
  1108. package/lighthouse-core/audits/accessibility/manual/logical-tab-order.js +0 -28
  1109. package/lighthouse-core/audits/accessibility/manual/managed-focus.js +0 -28
  1110. package/lighthouse-core/audits/accessibility/manual/offscreen-content-hidden.js +0 -29
  1111. package/lighthouse-core/audits/accessibility/manual/use-landmarks.js +0 -28
  1112. package/lighthouse-core/audits/accessibility/manual/visual-order-follows-dom.js +0 -28
  1113. package/lighthouse-core/audits/accessibility/meta-refresh.js +0 -46
  1114. package/lighthouse-core/audits/accessibility/meta-viewport.js +0 -47
  1115. package/lighthouse-core/audits/accessibility/object-alt.js +0 -45
  1116. package/lighthouse-core/audits/accessibility/tabindex.js +0 -45
  1117. package/lighthouse-core/audits/accessibility/td-headers-attr.js +0 -49
  1118. package/lighthouse-core/audits/accessibility/th-has-data-cells.js +0 -48
  1119. package/lighthouse-core/audits/accessibility/valid-lang.js +0 -45
  1120. package/lighthouse-core/audits/accessibility/video-caption.js +0 -46
  1121. package/lighthouse-core/audits/apple-touch-icon.js +0 -72
  1122. package/lighthouse-core/audits/audit.js +0 -391
  1123. package/lighthouse-core/audits/autocomplete.js +0 -290
  1124. package/lighthouse-core/audits/bootup-time.js +0 -152
  1125. package/lighthouse-core/audits/byte-efficiency/byte-efficiency-audit.js +0 -258
  1126. package/lighthouse-core/audits/byte-efficiency/duplicated-javascript.js +0 -249
  1127. package/lighthouse-core/audits/byte-efficiency/efficient-animated-content.js +0 -92
  1128. package/lighthouse-core/audits/byte-efficiency/legacy-javascript.js +0 -472
  1129. package/lighthouse-core/audits/byte-efficiency/modern-image-formats.js +0 -186
  1130. package/lighthouse-core/audits/byte-efficiency/offscreen-images.js +0 -252
  1131. package/lighthouse-core/audits/byte-efficiency/render-blocking-resources.js +0 -309
  1132. package/lighthouse-core/audits/byte-efficiency/total-byte-weight.js +0 -111
  1133. package/lighthouse-core/audits/byte-efficiency/unminified-css.js +0 -117
  1134. package/lighthouse-core/audits/byte-efficiency/unminified-javascript.js +0 -120
  1135. package/lighthouse-core/audits/byte-efficiency/unused-css-rules.js +0 -71
  1136. package/lighthouse-core/audits/byte-efficiency/unused-javascript.js +0 -161
  1137. package/lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js +0 -298
  1138. package/lighthouse-core/audits/byte-efficiency/uses-optimized-images.js +0 -145
  1139. package/lighthouse-core/audits/byte-efficiency/uses-responsive-images-snapshot.js +0 -100
  1140. package/lighthouse-core/audits/byte-efficiency/uses-responsive-images.js +0 -177
  1141. package/lighthouse-core/audits/byte-efficiency/uses-text-compression.js +0 -100
  1142. package/lighthouse-core/audits/content-width.js +0 -77
  1143. package/lighthouse-core/audits/critical-request-chains.js +0 -220
  1144. package/lighthouse-core/audits/csp-xss.js +0 -186
  1145. package/lighthouse-core/audits/deprecations.js +0 -115
  1146. package/lighthouse-core/audits/diagnostics.js +0 -79
  1147. package/lighthouse-core/audits/dobetterweb/charset.js +0 -96
  1148. package/lighthouse-core/audits/dobetterweb/doctype.js +0 -94
  1149. package/lighthouse-core/audits/dobetterweb/dom-size.js +0 -123
  1150. package/lighthouse-core/audits/dobetterweb/geolocation-on-start.js +0 -70
  1151. package/lighthouse-core/audits/dobetterweb/inspector-issues.js +0 -192
  1152. package/lighthouse-core/audits/dobetterweb/js-libraries.js +0 -88
  1153. package/lighthouse-core/audits/dobetterweb/no-document-write.js +0 -85
  1154. package/lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js +0 -225
  1155. package/lighthouse-core/audits/dobetterweb/notification-on-start.js +0 -69
  1156. package/lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js +0 -66
  1157. package/lighthouse-core/audits/dobetterweb/uses-http2.js +0 -258
  1158. package/lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js +0 -68
  1159. package/lighthouse-core/audits/errors-in-console.js +0 -118
  1160. package/lighthouse-core/audits/final-screenshot.js +0 -59
  1161. package/lighthouse-core/audits/font-display.js +0 -193
  1162. package/lighthouse-core/audits/full-page-screenshot.js +0 -43
  1163. package/lighthouse-core/audits/image-aspect-ratio.js +0 -122
  1164. package/lighthouse-core/audits/image-size-responsive.js +0 -331
  1165. package/lighthouse-core/audits/installable-manifest.js +0 -266
  1166. package/lighthouse-core/audits/is-on-https.js +0 -125
  1167. package/lighthouse-core/audits/largest-contentful-paint-element.js +0 -70
  1168. package/lighthouse-core/audits/layout-shift-elements.js +0 -75
  1169. package/lighthouse-core/audits/lcp-lazy-loaded.js +0 -85
  1170. package/lighthouse-core/audits/long-tasks.js +0 -124
  1171. package/lighthouse-core/audits/main-thread-tasks.js +0 -59
  1172. package/lighthouse-core/audits/mainthread-work-breakdown.js +0 -134
  1173. package/lighthouse-core/audits/manual/manual-audit.js +0 -37
  1174. package/lighthouse-core/audits/manual/pwa-cross-browser.js +0 -41
  1175. package/lighthouse-core/audits/manual/pwa-each-page-has-url.js +0 -39
  1176. package/lighthouse-core/audits/manual/pwa-page-transitions.js +0 -39
  1177. package/lighthouse-core/audits/maskable-icon.js +0 -71
  1178. package/lighthouse-core/audits/metrics/cumulative-layout-shift.js +0 -79
  1179. package/lighthouse-core/audits/metrics/experimental-interaction-to-next-paint.js +0 -88
  1180. package/lighthouse-core/audits/metrics/first-contentful-paint-3g.js +0 -67
  1181. package/lighthouse-core/audits/metrics/first-contentful-paint.js +0 -85
  1182. package/lighthouse-core/audits/metrics/first-meaningful-paint.js +0 -89
  1183. package/lighthouse-core/audits/metrics/interactive.js +0 -93
  1184. package/lighthouse-core/audits/metrics/largest-contentful-paint.js +0 -114
  1185. package/lighthouse-core/audits/metrics/max-potential-fid.js +0 -76
  1186. package/lighthouse-core/audits/metrics/speed-index.js +0 -88
  1187. package/lighthouse-core/audits/metrics/total-blocking-time.js +0 -117
  1188. package/lighthouse-core/audits/metrics.js +0 -73
  1189. package/lighthouse-core/audits/multi-check-audit.js +0 -83
  1190. package/lighthouse-core/audits/network-requests.js +0 -130
  1191. package/lighthouse-core/audits/network-rtt.js +0 -90
  1192. package/lighthouse-core/audits/network-server-latency.js +0 -89
  1193. package/lighthouse-core/audits/no-unload-listeners.js +0 -95
  1194. package/lighthouse-core/audits/non-composited-animations.js +0 -206
  1195. package/lighthouse-core/audits/oopif-iframe-test-audit.js +0 -30
  1196. package/lighthouse-core/audits/performance-budget.js +0 -154
  1197. package/lighthouse-core/audits/predictive-perf.js +0 -101
  1198. package/lighthouse-core/audits/preload-fonts.js +0 -107
  1199. package/lighthouse-core/audits/preload-lcp-image.js +0 -272
  1200. package/lighthouse-core/audits/redirects.js +0 -163
  1201. package/lighthouse-core/audits/resource-summary.js +0 -104
  1202. package/lighthouse-core/audits/screenshot-thumbnails.js +0 -163
  1203. package/lighthouse-core/audits/script-treemap-data.js +0 -288
  1204. package/lighthouse-core/audits/seo/canonical.js +0 -218
  1205. package/lighthouse-core/audits/seo/crawlable-anchors.js +0 -94
  1206. package/lighthouse-core/audits/seo/font-size.js +0 -344
  1207. package/lighthouse-core/audits/seo/hreflang.js +0 -149
  1208. package/lighthouse-core/audits/seo/http-status-code.js +0 -70
  1209. package/lighthouse-core/audits/seo/is-crawlable.js +0 -155
  1210. package/lighthouse-core/audits/seo/link-text.js +0 -158
  1211. package/lighthouse-core/audits/seo/manual/structured-data.js +0 -38
  1212. package/lighthouse-core/audits/seo/meta-description.js +0 -67
  1213. package/lighthouse-core/audits/seo/plugins.js +0 -152
  1214. package/lighthouse-core/audits/seo/robots-txt.js +0 -256
  1215. package/lighthouse-core/audits/seo/tap-targets.js +0 -352
  1216. package/lighthouse-core/audits/server-response-time.js +0 -106
  1217. package/lighthouse-core/audits/service-worker.js +0 -179
  1218. package/lighthouse-core/audits/splash-screen.js +0 -99
  1219. package/lighthouse-core/audits/themed-omnibox.js +0 -110
  1220. package/lighthouse-core/audits/third-party-facades.js +0 -221
  1221. package/lighthouse-core/audits/third-party-summary.js +0 -259
  1222. package/lighthouse-core/audits/timing-budget.js +0 -174
  1223. package/lighthouse-core/audits/unsized-images.js +0 -163
  1224. package/lighthouse-core/audits/user-timings.js +0 -120
  1225. package/lighthouse-core/audits/uses-rel-preconnect.js +0 -254
  1226. package/lighthouse-core/audits/uses-rel-preload.js +0 -267
  1227. package/lighthouse-core/audits/valid-source-maps.js +0 -157
  1228. package/lighthouse-core/audits/viewport.js +0 -65
  1229. package/lighthouse-core/audits/violation-audit.js +0 -50
  1230. package/lighthouse-core/audits/work-during-interaction.js +0 -280
  1231. package/lighthouse-core/computed/computed-artifact.js +0 -62
  1232. package/lighthouse-core/computed/critical-request-chains.js +0 -146
  1233. package/lighthouse-core/computed/image-records.js +0 -63
  1234. package/lighthouse-core/computed/js-bundles.js +0 -119
  1235. package/lighthouse-core/computed/load-simulator.js +0 -92
  1236. package/lighthouse-core/computed/main-resource.js +0 -34
  1237. package/lighthouse-core/computed/main-thread-tasks.js +0 -25
  1238. package/lighthouse-core/computed/manifest-values.js +0 -135
  1239. package/lighthouse-core/computed/metrics/cumulative-layout-shift.js +0 -129
  1240. package/lighthouse-core/computed/metrics/first-contentful-paint-all-frames.js +0 -37
  1241. package/lighthouse-core/computed/metrics/first-contentful-paint.js +0 -40
  1242. package/lighthouse-core/computed/metrics/first-meaningful-paint.js +0 -44
  1243. package/lighthouse-core/computed/metrics/interactive.js +0 -193
  1244. package/lighthouse-core/computed/metrics/lantern-first-contentful-paint.js +0 -204
  1245. package/lighthouse-core/computed/metrics/lantern-first-meaningful-paint.js +0 -83
  1246. package/lighthouse-core/computed/metrics/lantern-interactive.js +0 -113
  1247. package/lighthouse-core/computed/metrics/lantern-largest-contentful-paint.js +0 -111
  1248. package/lighthouse-core/computed/metrics/lantern-max-potential-fid.js +0 -93
  1249. package/lighthouse-core/computed/metrics/lantern-metric.js +0 -167
  1250. package/lighthouse-core/computed/metrics/lantern-speed-index.js +0 -150
  1251. package/lighthouse-core/computed/metrics/lantern-total-blocking-time.js +0 -126
  1252. package/lighthouse-core/computed/metrics/largest-contentful-paint-all-frames.js +0 -45
  1253. package/lighthouse-core/computed/metrics/largest-contentful-paint.js +0 -52
  1254. package/lighthouse-core/computed/metrics/max-potential-fid.js +0 -45
  1255. package/lighthouse-core/computed/metrics/metric.js +0 -100
  1256. package/lighthouse-core/computed/metrics/navigation-metric.js +0 -46
  1257. package/lighthouse-core/computed/metrics/responsiveness.js +0 -157
  1258. package/lighthouse-core/computed/metrics/speed-index.js +0 -40
  1259. package/lighthouse-core/computed/metrics/tbt-utils.js +0 -57
  1260. package/lighthouse-core/computed/metrics/timing-summary.js +0 -150
  1261. package/lighthouse-core/computed/metrics/total-blocking-time.js +0 -74
  1262. package/lighthouse-core/computed/module-duplication.js +0 -136
  1263. package/lighthouse-core/computed/network-analysis.js +0 -64
  1264. package/lighthouse-core/computed/network-records.js +0 -21
  1265. package/lighthouse-core/computed/page-dependency-graph.js +0 -488
  1266. package/lighthouse-core/computed/processed-navigation.js +0 -21
  1267. package/lighthouse-core/computed/processed-trace.js +0 -21
  1268. package/lighthouse-core/computed/resource-summary.js +0 -114
  1269. package/lighthouse-core/computed/screenshots.js +0 -29
  1270. package/lighthouse-core/computed/speedline.js +0 -54
  1271. package/lighthouse-core/computed/trace-of-tab.js +0 -30
  1272. package/lighthouse-core/computed/unused-css.js +0 -154
  1273. package/lighthouse-core/computed/unused-javascript-summary.js +0 -175
  1274. package/lighthouse-core/computed/user-timings.js +0 -83
  1275. package/lighthouse-core/computed/viewport-meta.js +0 -56
  1276. package/lighthouse-core/config/budget.js +0 -341
  1277. package/lighthouse-core/config/config-helpers.js +0 -590
  1278. package/lighthouse-core/config/config-plugin.js +0 -225
  1279. package/lighthouse-core/config/config.js +0 -544
  1280. package/lighthouse-core/config/constants.js +0 -169
  1281. package/lighthouse-core/config/default-config.js +0 -632
  1282. package/lighthouse-core/config/desktop-config.js +0 -21
  1283. package/lighthouse-core/config/experimental-config.js +0 -30
  1284. package/lighthouse-core/config/full-config.js +0 -14
  1285. package/lighthouse-core/config/lr-desktop-config.js +0 -25
  1286. package/lighthouse-core/config/lr-mobile-config.js +0 -31
  1287. package/lighthouse-core/config/metrics-to-audits.js +0 -61
  1288. package/lighthouse-core/config/perf-config.js +0 -17
  1289. package/lighthouse-core/fraggle-rock/api.js +0 -77
  1290. package/lighthouse-core/fraggle-rock/config/config.js +0 -281
  1291. package/lighthouse-core/fraggle-rock/config/default-config.js +0 -205
  1292. package/lighthouse-core/fraggle-rock/config/filters.js +0 -335
  1293. package/lighthouse-core/fraggle-rock/config/validation.js +0 -313
  1294. package/lighthouse-core/fraggle-rock/gather/base-artifacts.js +0 -99
  1295. package/lighthouse-core/fraggle-rock/gather/base-gatherer.js +0 -107
  1296. package/lighthouse-core/fraggle-rock/gather/driver.js +0 -88
  1297. package/lighthouse-core/fraggle-rock/gather/navigation-runner.js +0 -339
  1298. package/lighthouse-core/fraggle-rock/gather/runner-helpers.js +0 -160
  1299. package/lighthouse-core/fraggle-rock/gather/session.js +0 -182
  1300. package/lighthouse-core/fraggle-rock/gather/snapshot-runner.js +0 -68
  1301. package/lighthouse-core/fraggle-rock/gather/timespan-runner.js +0 -82
  1302. package/lighthouse-core/fraggle-rock/user-flow.js +0 -229
  1303. package/lighthouse-core/gather/connections/connection.js +0 -179
  1304. package/lighthouse-core/gather/connections/cri.js +0 -171
  1305. package/lighthouse-core/gather/connections/raw.js +0 -58
  1306. package/lighthouse-core/gather/devtools-log.js +0 -61
  1307. package/lighthouse-core/gather/driver/dom.js +0 -58
  1308. package/lighthouse-core/gather/driver/environment.js +0 -105
  1309. package/lighthouse-core/gather/driver/execution-context.js +0 -249
  1310. package/lighthouse-core/gather/driver/navigation.js +0 -179
  1311. package/lighthouse-core/gather/driver/network-monitor.js +0 -290
  1312. package/lighthouse-core/gather/driver/network.js +0 -28
  1313. package/lighthouse-core/gather/driver/prepare.js +0 -226
  1314. package/lighthouse-core/gather/driver/service-workers.js +0 -53
  1315. package/lighthouse-core/gather/driver/storage.js +0 -125
  1316. package/lighthouse-core/gather/driver/target-manager.js +0 -125
  1317. package/lighthouse-core/gather/driver/wait-for-condition.js +0 -535
  1318. package/lighthouse-core/gather/driver.js +0 -482
  1319. package/lighthouse-core/gather/fetcher.js +0 -318
  1320. package/lighthouse-core/gather/gather-runner.js +0 -622
  1321. package/lighthouse-core/gather/gatherers/accessibility.js +0 -172
  1322. package/lighthouse-core/gather/gatherers/anchor-elements.js +0 -133
  1323. package/lighthouse-core/gather/gatherers/cache-contents.js +0 -59
  1324. package/lighthouse-core/gather/gatherers/console-messages.js +0 -173
  1325. package/lighthouse-core/gather/gatherers/css-usage.js +0 -149
  1326. package/lighthouse-core/gather/gatherers/devtools-log-compat.js +0 -36
  1327. package/lighthouse-core/gather/gatherers/devtools-log.js +0 -66
  1328. package/lighthouse-core/gather/gatherers/dobetterweb/doctype.js +0 -46
  1329. package/lighthouse-core/gather/gatherers/dobetterweb/domstats.js +0 -103
  1330. package/lighthouse-core/gather/gatherers/dobetterweb/optimized-images.js +0 -192
  1331. package/lighthouse-core/gather/gatherers/dobetterweb/password-inputs-with-prevented-paste.js +0 -50
  1332. package/lighthouse-core/gather/gatherers/dobetterweb/response-compression.js +0 -154
  1333. package/lighthouse-core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +0 -238
  1334. package/lighthouse-core/gather/gatherers/full-page-screenshot.js +0 -235
  1335. package/lighthouse-core/gather/gatherers/gatherer.js +0 -59
  1336. package/lighthouse-core/gather/gatherers/global-listeners.js +0 -92
  1337. package/lighthouse-core/gather/gatherers/iframe-elements.js +0 -65
  1338. package/lighthouse-core/gather/gatherers/image-elements.js +0 -375
  1339. package/lighthouse-core/gather/gatherers/inputs.js +0 -113
  1340. package/lighthouse-core/gather/gatherers/inspector-issues.js +0 -127
  1341. package/lighthouse-core/gather/gatherers/installability-errors.js +0 -48
  1342. package/lighthouse-core/gather/gatherers/js-usage.js +0 -145
  1343. package/lighthouse-core/gather/gatherers/link-elements.js +0 -184
  1344. package/lighthouse-core/gather/gatherers/main-document-content.js +0 -56
  1345. package/lighthouse-core/gather/gatherers/meta-elements.js +0 -68
  1346. package/lighthouse-core/gather/gatherers/network-user-agent.js +0 -42
  1347. package/lighthouse-core/gather/gatherers/script-elements.js +0 -160
  1348. package/lighthouse-core/gather/gatherers/seo/embedded-content.js +0 -64
  1349. package/lighthouse-core/gather/gatherers/seo/font-size.js +0 -380
  1350. package/lighthouse-core/gather/gatherers/seo/robots-txt.js +0 -56
  1351. package/lighthouse-core/gather/gatherers/seo/tap-targets.js +0 -370
  1352. package/lighthouse-core/gather/gatherers/service-worker.js +0 -45
  1353. package/lighthouse-core/gather/gatherers/source-maps.js +0 -150
  1354. package/lighthouse-core/gather/gatherers/stacks.js +0 -125
  1355. package/lighthouse-core/gather/gatherers/trace-compat.js +0 -36
  1356. package/lighthouse-core/gather/gatherers/trace-elements.js +0 -349
  1357. package/lighthouse-core/gather/gatherers/trace.js +0 -131
  1358. package/lighthouse-core/gather/gatherers/viewport-dimensions.js +0 -58
  1359. package/lighthouse-core/gather/gatherers/web-app-manifest.js +0 -102
  1360. package/lighthouse-core/index.js +0 -80
  1361. package/lighthouse-core/lib/arbitrary-equality-map.js +0 -81
  1362. package/lighthouse-core/lib/asset-saver.js +0 -341
  1363. package/lighthouse-core/lib/axe.js +0 -13
  1364. package/lighthouse-core/lib/cdt/Platform.js +0 -55
  1365. package/lighthouse-core/lib/cdt/SDK.js +0 -28
  1366. package/lighthouse-core/lib/cdt/generated/SourceMap.js +0 -346
  1367. package/lighthouse-core/lib/csp-evaluator.js +0 -173
  1368. package/lighthouse-core/lib/dependency-graph/base-node.js +0 -363
  1369. package/lighthouse-core/lib/dependency-graph/cpu-node.js +0 -86
  1370. package/lighthouse-core/lib/dependency-graph/network-node.js +0 -99
  1371. package/lighthouse-core/lib/dependency-graph/simulator/connection-pool.js +0 -171
  1372. package/lighthouse-core/lib/dependency-graph/simulator/dns-cache.js +0 -73
  1373. package/lighthouse-core/lib/dependency-graph/simulator/network-analyzer.js +0 -498
  1374. package/lighthouse-core/lib/dependency-graph/simulator/simulator-timing-map.js +0 -212
  1375. package/lighthouse-core/lib/dependency-graph/simulator/simulator.js +0 -523
  1376. package/lighthouse-core/lib/dependency-graph/simulator/tcp-connection.js +0 -206
  1377. package/lighthouse-core/lib/deprecations-strings.js +0 -573
  1378. package/lighthouse-core/lib/emulation.js +0 -164
  1379. package/lighthouse-core/lib/i18n/README.md +0 -273
  1380. package/lighthouse-core/lib/i18n/i18n.js +0 -221
  1381. package/lighthouse-core/lib/icons.js +0 -85
  1382. package/lighthouse-core/lib/lantern-trace-saver.js +0 -198
  1383. package/lighthouse-core/lib/lh-env.js +0 -14
  1384. package/lighthouse-core/lib/lh-error.js +0 -421
  1385. package/lighthouse-core/lib/lh-trace-processor.js +0 -46
  1386. package/lighthouse-core/lib/manifest-parser.js +0 -513
  1387. package/lighthouse-core/lib/median-run.js +0 -92
  1388. package/lighthouse-core/lib/minification-estimator.js +0 -193
  1389. package/lighthouse-core/lib/minify-devtoolslog.js +0 -87
  1390. package/lighthouse-core/lib/minify-trace.js +0 -173
  1391. package/lighthouse-core/lib/navigation-error.js +0 -145
  1392. package/lighthouse-core/lib/network-recorder.js +0 -337
  1393. package/lighthouse-core/lib/network-request.js +0 -545
  1394. package/lighthouse-core/lib/page-functions.js +0 -559
  1395. package/lighthouse-core/lib/proto-preprocessor.js +0 -133
  1396. package/lighthouse-core/lib/rect-helpers.js +0 -252
  1397. package/lighthouse-core/lib/script-helpers.js +0 -24
  1398. package/lighthouse-core/lib/sentry.js +0 -144
  1399. package/lighthouse-core/lib/stack-packs.js +0 -120
  1400. package/lighthouse-core/lib/statistics.js +0 -104
  1401. package/lighthouse-core/lib/tappable-rects.js +0 -99
  1402. package/lighthouse-core/lib/third-party-web.js +0 -53
  1403. package/lighthouse-core/lib/timing-trace-saver.js +0 -97
  1404. package/lighthouse-core/lib/tracehouse/cpu-profile-model.js +0 -592
  1405. package/lighthouse-core/lib/tracehouse/main-thread-tasks.js +0 -688
  1406. package/lighthouse-core/lib/tracehouse/task-groups.js +0 -112
  1407. package/lighthouse-core/lib/tracehouse/task-summary.js +0 -87
  1408. package/lighthouse-core/lib/tracehouse/trace-processor.js +0 -962
  1409. package/lighthouse-core/lib/traces/pwmetrics-events.js +0 -200
  1410. package/lighthouse-core/lib/url-shim.js +0 -274
  1411. package/lighthouse-core/runner.js +0 -518
  1412. package/lighthouse-core/scoring.js +0 -93
  1413. package/lighthouse-core/scripts/download-chrome.sh +0 -36
  1414. package/lighthouse-core/scripts/manual-chrome-launcher.js +0 -51
  1415. package/lighthouse-core/scripts/package.json +0 -4
  1416. package/lighthouse-core/util-commonjs.js +0 -708
  1417. package/now.json +0 -14
  1418. package/report/.eslintrc.cjs +0 -35
  1419. package/report/generator/package.json +0 -4
  1420. package/report/package.json +0 -4
  1421. package/report/renderer/i18n.js +0 -198
  1422. package/report/renderer/util.js +0 -705
  1423. package/report/test/generator/package.json +0 -4
  1424. package/report/test/renderer/i18n-test.js +0 -140
  1425. package/report/test/renderer/util-test.js +0 -479
  1426. package/third-party/snyk/snapshot.json +0 -182
  1427. package/types/cssstyle/index.d.ts +0 -23
  1428. package/types/global-lh.d.ts +0 -81
  1429. package/types/jest.d.ts +0 -25
  1430. package/types/jsonld/index.d.ts +0 -19
  1431. package/types/lhr/flow.d.ts +0 -32
  1432. package/types/lighthouse-logger/index.d.ts +0 -33
  1433. package/types/lookup-closest-locale/index.d.ts +0 -11
  1434. package/types/node.d.ts +0 -12
  1435. package/types/query-selector.d.ts +0 -36
  1436. package/types/smokehouse.d.ts +0 -80
  1437. package/types/structured-data.d.ts +0 -36
@@ -1,370 +0,0 @@
1
- /**
2
- * @license Copyright 2018 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
- */
6
- 'use strict';
7
-
8
- /* global document, window, getComputedStyle, getElementsInDocument, Node, getNodeDetails, getRectCenterPoint */
9
-
10
- const FRGatherer = require('../../../fraggle-rock/gather/base-gatherer.js');
11
- const pageFunctions = require('../../../lib/page-functions.js');
12
- const RectHelpers = require('../../../lib/rect-helpers.js');
13
-
14
- const TARGET_SELECTORS = [
15
- 'button',
16
- 'a',
17
- 'input',
18
- 'textarea',
19
- 'select',
20
- 'option',
21
- '[role=button]',
22
- '[role=checkbox]',
23
- '[role=link]',
24
- '[role=menuitem]',
25
- '[role=menuitemcheckbox]',
26
- '[role=menuitemradio]',
27
- '[role=option]',
28
- '[role=scrollbar]',
29
- '[role=slider]',
30
- '[role=spinbutton]',
31
- ];
32
- const tapTargetsSelector = TARGET_SELECTORS.join(',');
33
-
34
- /**
35
- * @param {HTMLElement} element
36
- * @return {boolean}
37
- */
38
- /* c8 ignore start */
39
- function elementIsVisible(element) {
40
- return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
41
- }
42
- /* c8 ignore stop */
43
-
44
- /**
45
- * @param {Element} element
46
- * @return {LH.Artifacts.Rect[]}
47
- */
48
- /* c8 ignore start */
49
- function getClientRects(element) {
50
- const clientRects = Array.from(
51
- element.getClientRects()
52
- ).map(clientRect => {
53
- // Contents of DOMRect get lost when returned from Runtime.evaluate call,
54
- // so we convert them to plain objects.
55
- const {width, height, left, top, right, bottom} = clientRect;
56
- return {width, height, left, top, right, bottom};
57
- });
58
-
59
- for (const child of element.children) {
60
- clientRects.push(...getClientRects(child));
61
- }
62
-
63
- return clientRects;
64
- }
65
- /* c8 ignore stop */
66
-
67
- /**
68
- * @param {Element} element
69
- * @param {string} tapTargetsSelector
70
- * @return {boolean}
71
- */
72
- /* c8 ignore start */
73
- function elementHasAncestorTapTarget(element, tapTargetsSelector) {
74
- if (!element.parentElement) {
75
- return false;
76
- }
77
- if (element.parentElement.matches(tapTargetsSelector)) {
78
- return true;
79
- }
80
- return elementHasAncestorTapTarget(element.parentElement, tapTargetsSelector);
81
- }
82
- /* c8 ignore stop */
83
-
84
- /**
85
- * @param {Element} element
86
- */
87
- /* c8 ignore start */
88
- function hasTextNodeSiblingsFormingTextBlock(element) {
89
- if (!element.parentElement) {
90
- return false;
91
- }
92
-
93
- const parentElement = element.parentElement;
94
-
95
- const nodeText = element.textContent || '';
96
- const parentText = parentElement.textContent || '';
97
- if (parentText.length - nodeText.length < 5) {
98
- // Parent text mostly consists of this node, so the parent
99
- // is not a text block container
100
- return false;
101
- }
102
-
103
- for (const sibling of element.parentElement.childNodes) {
104
- if (sibling === element) {
105
- continue;
106
- }
107
- const siblingTextContent = (sibling.textContent || '').trim();
108
- // Only count text in text nodes so that a series of e.g. buttons isn't counted
109
- // as a text block.
110
- // This works reasonably well, but means we miss text blocks where all text is e.g.
111
- // wrapped in spans
112
- if (sibling.nodeType === Node.TEXT_NODE && siblingTextContent.length > 0) {
113
- return true;
114
- }
115
- }
116
-
117
- return false;
118
- }
119
- /* c8 ignore stop */
120
-
121
- /**
122
- * Check if element is in a block of text, such as paragraph with a bunch of links in it.
123
- * Makes a reasonable guess, but for example gets it wrong if the element is surrounded by other
124
- * HTML elements instead of direct text nodes.
125
- * @param {Element} element
126
- * @return {boolean}
127
- */
128
- /* c8 ignore start */
129
- function elementIsInTextBlock(element) {
130
- const {display} = getComputedStyle(element);
131
- if (display !== 'inline' && display !== 'inline-block') {
132
- return false;
133
- }
134
-
135
- if (hasTextNodeSiblingsFormingTextBlock(element)) {
136
- return true;
137
- } else if (element.parentElement) {
138
- return elementIsInTextBlock(element.parentElement);
139
- } else {
140
- return false;
141
- }
142
- }
143
- /* c8 ignore stop */
144
-
145
- /**
146
- * @param {Element} el
147
- * @param {{x: number, y: number}} elCenterPoint
148
- */
149
- /* c8 ignore start */
150
- function elementCenterIsAtZAxisTop(el, elCenterPoint) {
151
- const viewportHeight = window.innerHeight;
152
- const targetScrollY = Math.floor(elCenterPoint.y / viewportHeight) * viewportHeight;
153
- if (window.scrollY !== targetScrollY) {
154
- window.scrollTo(0, targetScrollY);
155
- }
156
-
157
- const topEl = document.elementFromPoint(
158
- elCenterPoint.x,
159
- elCenterPoint.y - window.scrollY
160
- );
161
-
162
- return topEl === el || el.contains(topEl);
163
- }
164
- /* c8 ignore stop */
165
-
166
- /**
167
- * Finds all position sticky/absolute elements on the page and adds a class
168
- * that disables pointer events on them.
169
- * @param {string} className
170
- * @return {() => void} - undo function to re-enable pointer events
171
- */
172
- /* c8 ignore start */
173
- function disableFixedAndStickyElementPointerEvents(className) {
174
- document.querySelectorAll('*').forEach(el => {
175
- const position = getComputedStyle(el).position;
176
- if (position === 'fixed' || position === 'sticky') {
177
- el.classList.add(className);
178
- }
179
- });
180
-
181
- return function undo() {
182
- Array.from(document.getElementsByClassName(className)).forEach(el => {
183
- el.classList.remove(className);
184
- });
185
- };
186
- }
187
- /* c8 ignore stop */
188
-
189
- /**
190
- * @param {string} tapTargetsSelector
191
- * @param {string} className
192
- * @return {LH.Artifacts.TapTarget[]}
193
- */
194
- /* c8 ignore start */
195
- function gatherTapTargets(tapTargetsSelector, className) {
196
- /** @type {LH.Artifacts.TapTarget[]} */
197
- const targets = [];
198
-
199
- // Capture element positions relative to the top of the page
200
- window.scrollTo(0, 0);
201
-
202
- /** @type {HTMLElement[]} */
203
- // @ts-expect-error - getElementsInDocument put into scope via stringification
204
- const tapTargetElements = getElementsInDocument(tapTargetsSelector);
205
-
206
- /** @type {{
207
- tapTargetElement: Element,
208
- clientRects: LH.Artifacts.Rect[]
209
- }[]} */
210
- const tapTargetsWithClientRects = [];
211
- tapTargetElements.forEach(tapTargetElement => {
212
- // Filter out tap targets that are likely to cause false failures:
213
- if (elementHasAncestorTapTarget(tapTargetElement, tapTargetsSelector)) {
214
- // This is usually intentional, either the tap targets trigger the same action
215
- // or there's a child with a related action (like a delete button for an item)
216
- return;
217
- }
218
- if (elementIsInTextBlock(tapTargetElement)) {
219
- // Links inside text blocks cause a lot of failures, and there's also an exception for them
220
- // in the Web Content Accessibility Guidelines https://www.w3.org/TR/WCAG21/#target-size
221
- return;
222
- }
223
- if (!elementIsVisible(tapTargetElement)) {
224
- return;
225
- }
226
-
227
- tapTargetsWithClientRects.push({
228
- tapTargetElement,
229
- clientRects: getClientRects(tapTargetElement),
230
- });
231
- });
232
-
233
- // Disable pointer events so that tap targets below them don't get
234
- // detected as non-tappable (they are tappable, just not while the viewport
235
- // is at the current scroll position)
236
- const reenableFixedAndStickyElementPointerEvents =
237
- disableFixedAndStickyElementPointerEvents(className);
238
-
239
- /** @type {{
240
- tapTargetElement: Element,
241
- visibleClientRects: LH.Artifacts.Rect[]
242
- }[]} */
243
- const tapTargetsWithVisibleClientRects = [];
244
- // We use separate loop here to get visible client rects because that involves
245
- // scrolling around the page for elementCenterIsAtZAxisTop, which would affect the
246
- // client rect positions.
247
- tapTargetsWithClientRects.forEach(({tapTargetElement, clientRects}) => {
248
- // Filter out empty client rects
249
- let visibleClientRects = clientRects.filter(cr => cr.width !== 0 && cr.height !== 0);
250
-
251
- // Filter out client rects that are invisible, e.g because they are in a position absolute element
252
- // with a lower z-index than the main content.
253
- // This will also filter out all position fixed or sticky tap targets elements because we disable pointer
254
- // events on them before running this. That's the correct behavior because whether a position fixed/stick
255
- // element overlaps with another tap target depends on the scroll position.
256
- visibleClientRects = visibleClientRects.filter(rect => {
257
- // Just checking the center can cause false failures for large partially hidden tap targets,
258
- // but that should be a rare edge case
259
- // @ts-expect-error - put into scope via stringification
260
- const rectCenterPoint = getRectCenterPoint(rect);
261
- return elementCenterIsAtZAxisTop(tapTargetElement, rectCenterPoint);
262
- });
263
-
264
- if (visibleClientRects.length > 0) {
265
- tapTargetsWithVisibleClientRects.push({
266
- tapTargetElement,
267
- visibleClientRects,
268
- });
269
- }
270
- });
271
-
272
- for (const {tapTargetElement, visibleClientRects} of tapTargetsWithVisibleClientRects) {
273
- targets.push({
274
- clientRects: visibleClientRects,
275
- href: /** @type {HTMLAnchorElement} */(tapTargetElement)['href'] || '',
276
- // @ts-expect-error - getNodeDetails put into scope via stringification
277
- node: getNodeDetails(tapTargetElement),
278
- });
279
- }
280
-
281
- reenableFixedAndStickyElementPointerEvents();
282
-
283
- return targets;
284
- }
285
- /* c8 ignore stop */
286
-
287
- class TapTargets extends FRGatherer {
288
- constructor() {
289
- super();
290
- /**
291
- * This needs to be in the constructor.
292
- * https://github.com/GoogleChrome/lighthouse/issues/12134
293
- * @type {LH.Gatherer.GathererMeta}
294
- */
295
- this.meta = {
296
- supportedModes: ['snapshot', 'navigation'],
297
- };
298
- }
299
-
300
- /**
301
- * @param {LH.Gatherer.FRProtocolSession} session
302
- * @param {string} className
303
- * @return {Promise<string>}
304
- */
305
- async addStyleRule(session, className) {
306
- const frameTreeResponse = await session.sendCommand('Page.getFrameTree');
307
- const {styleSheetId} = await session.sendCommand('CSS.createStyleSheet', {
308
- frameId: frameTreeResponse.frameTree.frame.id,
309
- });
310
- const ruleText = `.${className} { pointer-events: none !important }`;
311
- await session.sendCommand('CSS.setStyleSheetText', {
312
- styleSheetId,
313
- text: ruleText,
314
- });
315
- return styleSheetId;
316
- }
317
-
318
- /**
319
- * @param {LH.Gatherer.FRProtocolSession} session
320
- * @param {string} styleSheetId
321
- */
322
- async removeStyleRule(session, styleSheetId) {
323
- await session.sendCommand('CSS.setStyleSheetText', {
324
- styleSheetId,
325
- text: '',
326
- });
327
- }
328
-
329
- /**
330
- * @param {LH.Gatherer.FRTransitionalContext} passContext
331
- * @return {Promise<LH.Artifacts.TapTarget[]>} All visible tap targets with their positions and sizes
332
- */
333
- async getArtifact(passContext) {
334
- const session = passContext.driver.defaultSession;
335
- await session.sendCommand('DOM.enable');
336
- await session.sendCommand('CSS.enable');
337
-
338
- const className = 'lighthouse-disable-pointer-events';
339
- const styleSheetId = await this.addStyleRule(session, className);
340
-
341
- const tapTargets = await passContext.driver.executionContext.evaluate(gatherTapTargets, {
342
- args: [tapTargetsSelector, className],
343
- useIsolation: true,
344
- deps: [
345
- pageFunctions.getNodeDetailsString,
346
- pageFunctions.getElementsInDocument,
347
- disableFixedAndStickyElementPointerEvents,
348
- elementIsVisible,
349
- elementHasAncestorTapTarget,
350
- elementCenterIsAtZAxisTop,
351
- getClientRects,
352
- hasTextNodeSiblingsFormingTextBlock,
353
- elementIsInTextBlock,
354
- RectHelpers.getRectCenterPoint,
355
- pageFunctions.getNodePath,
356
- pageFunctions.getNodeSelector,
357
- pageFunctions.getNodeLabel,
358
- ],
359
- });
360
-
361
- await this.removeStyleRule(session, styleSheetId);
362
-
363
- await session.sendCommand('CSS.disable');
364
- await session.sendCommand('DOM.disable');
365
-
366
- return tapTargets;
367
- }
368
- }
369
-
370
- module.exports = TapTargets;
@@ -1,45 +0,0 @@
1
- /**
2
- * @license Copyright 2016 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
- */
6
- 'use strict';
7
-
8
- const FRGatherer = require('../../fraggle-rock/gather/base-gatherer.js');
9
- const serviceWorkers = require('../driver/service-workers.js');
10
-
11
- class ServiceWorker extends FRGatherer {
12
- /** @type {LH.Gatherer.GathererMeta} */
13
- meta = {
14
- supportedModes: ['navigation'],
15
- };
16
-
17
- /**
18
- * @param {LH.Gatherer.PassContext} passContext
19
- * @return {Promise<LH.Artifacts['ServiceWorker']>}
20
- */
21
- async beforePass(passContext) {
22
- return this.getArtifact({...passContext, dependencies: {}});
23
- }
24
-
25
- // This gatherer is run in a separate pass for legacy mode.
26
- // Legacy compat code is in `beforePass`.
27
- async afterPass() { }
28
-
29
- /**
30
- * @param {LH.Gatherer.FRTransitionalContext} context
31
- * @return {Promise<LH.Artifacts['ServiceWorker']>}
32
- */
33
- async getArtifact(context) {
34
- const session = context.driver.defaultSession;
35
- const {versions} = await serviceWorkers.getServiceWorkerVersions(session);
36
- const {registrations} = await serviceWorkers.getServiceWorkerRegistrations(session);
37
-
38
- return {
39
- versions,
40
- registrations,
41
- };
42
- }
43
- }
44
-
45
- module.exports = ServiceWorker;
@@ -1,150 +0,0 @@
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
- 'use strict';
7
-
8
- const FRGatherer = require('../../fraggle-rock/gather/base-gatherer.js');
9
- const URL = require('../../lib/url-shim.js');
10
-
11
- /**
12
- * @fileoverview Gets JavaScript source maps.
13
- */
14
- class SourceMaps extends FRGatherer {
15
- /** @type {LH.Gatherer.GathererMeta} */
16
- meta = {
17
- supportedModes: ['timespan', 'navigation'],
18
- };
19
-
20
- constructor() {
21
- super();
22
- /** @type {LH.Crdp.Debugger.ScriptParsedEvent[]} */
23
- this._scriptParsedEvents = [];
24
- this.onScriptParsed = this.onScriptParsed.bind(this);
25
- }
26
-
27
- /**
28
- * @param {LH.Gatherer.FRTransitionalDriver} driver
29
- * @param {string} sourceMapUrl
30
- * @return {Promise<LH.Artifacts.RawSourceMap>}
31
- */
32
- async fetchSourceMap(driver, sourceMapUrl) {
33
- const response = await driver.fetcher.fetchResource(sourceMapUrl, {timeout: 1500});
34
- if (response.content === null) {
35
- throw new Error(`Failed fetching source map (${response.status})`);
36
- }
37
- return JSON.parse(response.content);
38
- }
39
-
40
- /**
41
- * @param {string} sourceMapURL
42
- * @return {LH.Artifacts.RawSourceMap}
43
- */
44
- parseSourceMapFromDataUrl(sourceMapURL) {
45
- const buffer = Buffer.from(sourceMapURL.split(',')[1], 'base64');
46
- return JSON.parse(buffer.toString());
47
- }
48
-
49
- /**
50
- * @param {LH.Crdp.Debugger.ScriptParsedEvent} event
51
- */
52
- onScriptParsed(event) {
53
- if (event.sourceMapURL) {
54
- this._scriptParsedEvents.push(event);
55
- }
56
- }
57
-
58
- /**
59
- * @param {string} url
60
- * @param {string} base
61
- * @return {string|undefined}
62
- */
63
- _resolveUrl(url, base) {
64
- try {
65
- return new URL(url, base).href;
66
- } catch (e) {
67
- return;
68
- }
69
- }
70
-
71
- /**
72
- * @param {LH.Gatherer.FRTransitionalDriver} driver
73
- * @param {LH.Crdp.Debugger.ScriptParsedEvent} event
74
- * @return {Promise<LH.Artifacts.SourceMap>}
75
- */
76
- async _retrieveMapFromScriptParsedEvent(driver, event) {
77
- if (!event.sourceMapURL) {
78
- throw new Error('precondition failed: event.sourceMapURL should exist');
79
- }
80
-
81
- // `sourceMapURL` is simply the URL found in either a magic comment or an x-sourcemap header.
82
- // It has not been resolved to a base url.
83
- const isSourceMapADataUri = event.sourceMapURL.startsWith('data:');
84
- const scriptUrl = event.url;
85
- const rawSourceMapUrl = isSourceMapADataUri ?
86
- event.sourceMapURL :
87
- this._resolveUrl(event.sourceMapURL, event.url);
88
-
89
- if (!rawSourceMapUrl) {
90
- return {
91
- scriptUrl,
92
- errorMessage: `Could not resolve map url: ${event.sourceMapURL}`,
93
- };
94
- }
95
-
96
- // sourceMapUrl isn't included in the the artifact if it was a data URL.
97
- const sourceMapUrl = isSourceMapADataUri ? undefined : rawSourceMapUrl;
98
-
99
- try {
100
- const map = isSourceMapADataUri ?
101
- this.parseSourceMapFromDataUrl(rawSourceMapUrl) :
102
- await this.fetchSourceMap(driver, rawSourceMapUrl);
103
- if (map.sections) {
104
- map.sections = map.sections.filter(section => section.map);
105
- }
106
- return {
107
- scriptUrl,
108
- sourceMapUrl,
109
- map,
110
- };
111
- } catch (err) {
112
- return {
113
- scriptUrl,
114
- sourceMapUrl,
115
- errorMessage: err.toString(),
116
- };
117
- }
118
- }
119
-
120
- /**
121
- * @param {LH.Gatherer.FRTransitionalContext} context
122
- */
123
- async startSensitiveInstrumentation(context) {
124
- const session = context.driver.defaultSession;
125
- session.on('Debugger.scriptParsed', this.onScriptParsed);
126
- await session.sendCommand('Debugger.enable');
127
- }
128
-
129
- /**
130
- * @param {LH.Gatherer.FRTransitionalContext} context
131
- */
132
- async stopSensitiveInstrumentation(context) {
133
- const session = context.driver.defaultSession;
134
- await session.sendCommand('Debugger.disable');
135
- session.off('Debugger.scriptParsed', this.onScriptParsed);
136
- }
137
-
138
- /**
139
- * @param {LH.Gatherer.FRTransitionalContext} context
140
- * @return {Promise<LH.Artifacts['SourceMaps']>}
141
- */
142
- async getArtifact(context) {
143
- await context.driver.fetcher.enable();
144
- const eventProcessPromises = this._scriptParsedEvents
145
- .map((event) => this._retrieveMapFromScriptParsedEvent(context.driver, event));
146
- return Promise.all(eventProcessPromises);
147
- }
148
- }
149
-
150
- module.exports = SourceMaps;
@@ -1,125 +0,0 @@
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
- 'use strict';
7
-
8
- /**
9
- * @fileoverview Gathers a list of detected JS libraries and their versions.
10
- */
11
-
12
- /* global window */
13
- /* global d41d8cd98f00b204e9800998ecf8427e_LibraryDetectorTests */
14
-
15
- const fs = require('fs');
16
- const log = require('lighthouse-logger');
17
- const FRGatherer = require('../../fraggle-rock/gather/base-gatherer.js');
18
- const libDetectorSource = fs.readFileSync(
19
- require.resolve('js-library-detector/library/libraries.js'), 'utf8');
20
-
21
- /** @typedef {false | {version: string|number|null}} JSLibraryDetectorTestResult */
22
- /**
23
- * @typedef JSLibraryDetectorTest
24
- * @property {string} id
25
- * @property {string} icon
26
- * @property {string} url
27
- * @property {string|null} npm npm module name, if applicable to library.
28
- * @property {function(Window): JSLibraryDetectorTestResult | Promise<JSLibraryDetectorTestResult>} test Returns false if library is not present, otherwise returns an object that contains the library version (set to null if the version is not detected).
29
- */
30
-
31
- /**
32
- * @typedef JSLibrary
33
- * @property {string} id
34
- * @property {string} name
35
- * @property {string|number|null} version
36
- * @property {string|null} npm
37
- */
38
-
39
- /**
40
- * Obtains a list of detected JS libraries and their versions.
41
- */
42
- /* c8 ignore start */
43
- async function detectLibraries() {
44
- /** @type {JSLibrary[]} */
45
- const libraries = [];
46
-
47
- // d41d8cd98f00b204e9800998ecf8427e_ is a consistent prefix used by the detect libraries
48
- // see https://github.com/HTTPArchive/httparchive/issues/77#issuecomment-291320900
49
- /** @type {Record<string, JSLibraryDetectorTest>} */
50
- // @ts-expect-error - injected libDetectorSource var
51
- const libraryDetectorTests = d41d8cd98f00b204e9800998ecf8427e_LibraryDetectorTests; // eslint-disable-line
52
-
53
- for (const [name, lib] of Object.entries(libraryDetectorTests)) {
54
- try {
55
- /** @type {NodeJS.Timeout|undefined} */
56
- let timeout;
57
- // Some library detections are async that can never return.
58
- // Guard ourselves from PROTOCL_TIMEOUT by limiting each detection to a max of 1s.
59
- // See https://github.com/GoogleChrome/lighthouse/issues/11124.
60
- const timeoutPromise = new Promise(r => timeout = setTimeout(() => r(false), 1000));
61
-
62
- const result = await Promise.race([lib.test(window), timeoutPromise]);
63
- if (timeout) clearTimeout(timeout);
64
- if (result) {
65
- libraries.push({
66
- id: lib.id,
67
- name: name,
68
- version: result.version,
69
- npm: lib.npm,
70
- });
71
- }
72
- } catch (e) {}
73
- }
74
-
75
- return libraries;
76
- }
77
- /* c8 ignore stop */
78
-
79
-
80
- /** @implements {LH.Gatherer.FRGathererInstance} */
81
- class Stacks extends FRGatherer {
82
- constructor() {
83
- super();
84
-
85
- /** @type {LH.Gatherer.GathererMeta} */
86
- this.meta = {
87
- supportedModes: ['snapshot', 'navigation'],
88
- };
89
- }
90
-
91
- /**
92
- * @param {LH.Gatherer.FRTransitionalDriver['executionContext']} executionContext
93
- * @return {Promise<LH.Artifacts['Stacks']>}
94
- */
95
- static async collectStacks(executionContext) {
96
- const status = {msg: 'Collect stacks', id: 'lh:gather:collectStacks'};
97
- log.time(status);
98
-
99
- const jsLibraries = await executionContext.evaluate(detectLibraries, {
100
- args: [],
101
- deps: [libDetectorSource],
102
- });
103
-
104
- /** @type {LH.Artifacts['Stacks']} */
105
- const stacks = jsLibraries.map(lib => ({
106
- detector: 'js',
107
- id: lib.id,
108
- name: lib.name,
109
- version: typeof lib.version === 'number' ? String(lib.version) : (lib.version || undefined),
110
- npm: lib.npm || undefined,
111
- }));
112
- log.timeEnd(status);
113
- return stacks;
114
- }
115
-
116
- /**
117
- * @param {LH.Gatherer.FRTransitionalContext} context
118
- * @return {Promise<LH.Artifacts['Stacks']>}
119
- */
120
- async getArtifact(context) {
121
- return Stacks.collectStacks(context.driver.executionContext);
122
- }
123
- }
124
-
125
- module.exports = Stacks;