lighthouse 9.6.8 → 10.0.0-dev.20230210

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,186 +0,0 @@
1
- /**
2
- * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
- */
6
- 'use strict';
7
-
8
- const Audit = require('./audit.js');
9
- const MainResource = require('../computed/main-resource.js');
10
- const i18n = require('../lib/i18n/i18n.js');
11
- const {
12
- evaluateRawCspsForXss,
13
- getTranslatedDescription,
14
- } = require('../lib/csp-evaluator.js');
15
-
16
- /** @typedef {import('../lib/csp-evaluator.js').Finding} Finding */
17
-
18
- const UIStrings = {
19
- /** Title of a Lighthouse audit that evaluates the security of a page's CSP. "CSP" stands for "Content Security Policy". "XSS" stands for "Cross Site Scripting". "CSP" and "XSS" do not need to be translated. */
20
- title: 'Ensure CSP is effective against XSS attacks',
21
- /** Description of a Lighthouse audit that evaluates the security of a page's CSP. This is displayed after a user expands the section to see more. No character length limits. 'Learn More' becomes link text to additional documentation. "CSP" stands for "Content Security Policy". "XSS" stands for "Cross Site Scripting". "CSP" and "XSS" do not need to be translated. */
22
- description: 'A strong Content Security Policy (CSP) significantly ' +
23
- 'reduces the risk of cross-site scripting (XSS) attacks. ' +
24
- '[Learn more](https://web.dev/csp-xss/)',
25
- /** Summary text for the results of a Lighthouse audit that evaluates the security of a page's CSP. This is displayed if no CSP is being enforced. "CSP" stands for "Content Security Policy". "CSP" does not need to be translated. */
26
- noCsp: 'No CSP found in enforcement mode',
27
- /** Message shown when one or more CSPs are defined in a <meta> tag. Shown in a table with a list of other CSP bypasses and warnings. "CSP" stands for "Content Security Policy". "CSP" and "HTTP" do not need to be translated. */
28
- metaTagMessage: 'The page contains a CSP defined in a <meta> tag. ' +
29
- 'Consider defining the CSP in an HTTP header if you can.',
30
- /** Label for a column in a data table; entries will be a directive of a CSP. "CSP" stands for "Content Security Policy". */
31
- columnDirective: 'Directive',
32
- /** Label for a column in a data table; entries will be the severity of an issue with the CSP. "CSP" stands for "Content Security Policy". */
33
- columnSeverity: 'Severity',
34
- /** Table item value calling out the presence of a syntax error. */
35
- itemSeveritySyntax: 'Syntax',
36
- };
37
-
38
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
39
-
40
- class CspXss extends Audit {
41
- /**
42
- * @return {LH.Audit.Meta}
43
- */
44
- static get meta() {
45
- return {
46
- id: 'csp-xss',
47
- scoreDisplayMode: Audit.SCORING_MODES.INFORMATIVE,
48
- title: str_(UIStrings.title),
49
- description: str_(UIStrings.description),
50
- requiredArtifacts: ['devtoolsLogs', 'MetaElements', 'URL'],
51
- };
52
- }
53
-
54
- /**
55
- * @param {LH.Artifacts} artifacts
56
- * @param {LH.Audit.Context} context
57
- * @return {Promise<{cspHeaders: string[], cspMetaTags: string[]}>}
58
- */
59
- static async getRawCsps(artifacts, context) {
60
- const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS];
61
- const mainResource = await MainResource.request({devtoolsLog, URL: artifacts.URL}, context);
62
-
63
- const cspMetaTags = artifacts.MetaElements
64
- .filter(m => {
65
- return m.httpEquiv && m.httpEquiv.toLowerCase() === 'content-security-policy';
66
- })
67
- .flatMap(m => (m.content || '').split(','))
68
- .filter(rawCsp => rawCsp.replace(/\s/g, ''));
69
- const cspHeaders = mainResource.responseHeaders
70
- .filter(h => {
71
- return h.name.toLowerCase() === 'content-security-policy';
72
- })
73
- .flatMap(h => h.value.split(','))
74
- .filter(rawCsp => rawCsp.replace(/\s/g, ''));
75
-
76
- return {cspHeaders, cspMetaTags};
77
- }
78
-
79
- /**
80
- * @param {Finding} finding
81
- * @param {LH.IcuMessage=} severity
82
- * @return {LH.Audit.Details.TableItem}
83
- */
84
- static findingToTableItem(finding, severity) {
85
- return {
86
- directive: finding.directive,
87
- description: getTranslatedDescription(finding),
88
- severity,
89
- };
90
- }
91
-
92
- /**
93
- * @param {Finding[][]} syntaxFindings
94
- * @param {string[]} rawCsps
95
- * @return {LH.Audit.Details.TableItem[]}
96
- */
97
- static constructSyntaxResults(syntaxFindings, rawCsps) {
98
- /** @type {LH.Audit.Details.TableItem[]} */
99
- const results = [];
100
-
101
- for (let i = 0; i < syntaxFindings.length; ++i) {
102
- const items = syntaxFindings[i].map(f => this.findingToTableItem(f));
103
- if (!items.length) continue;
104
- results.push({
105
- severity: str_(UIStrings.itemSeveritySyntax),
106
- description: {
107
- type: 'code',
108
- value: rawCsps[i],
109
- },
110
- subItems: {
111
- type: 'subitems',
112
- items,
113
- },
114
- });
115
- }
116
-
117
- return results;
118
- }
119
-
120
- /**
121
- * @param {string[]} cspHeaders
122
- * @param {string[]} cspMetaTags
123
- * @return {{score: number, results: LH.Audit.Details.TableItem[]}}
124
- */
125
- static constructResults(cspHeaders, cspMetaTags) {
126
- const rawCsps = [...cspHeaders, ...cspMetaTags];
127
- if (!rawCsps.length) {
128
- return {
129
- score: 0,
130
- results: [{
131
- severity: str_(i18n.UIStrings.itemSeverityHigh),
132
- description: str_(UIStrings.noCsp),
133
- directive: undefined,
134
- }],
135
- };
136
- }
137
-
138
- const {bypasses, warnings, syntax} = evaluateRawCspsForXss(rawCsps);
139
-
140
- const results = [
141
- ...this.constructSyntaxResults(syntax, rawCsps),
142
- ...bypasses.map(f => this.findingToTableItem(f, str_(i18n.UIStrings.itemSeverityHigh))),
143
- ...warnings.map(f => this.findingToTableItem(f, str_(i18n.UIStrings.itemSeverityMedium))),
144
- ];
145
-
146
- // Add extra warning for a CSP defined in a meta tag.
147
- if (cspMetaTags.length) {
148
- results.push({
149
- severity: str_(i18n.UIStrings.itemSeverityMedium),
150
- description: str_(UIStrings.metaTagMessage),
151
- directive: undefined,
152
- });
153
- }
154
-
155
- return {score: bypasses.length ? 0 : 1, results};
156
- }
157
-
158
- /**
159
- * @param {LH.Artifacts} artifacts
160
- * @param {LH.Audit.Context} context
161
- * @return {Promise<LH.Audit.Product>}
162
- */
163
- static async audit(artifacts, context) {
164
- const {cspHeaders, cspMetaTags} = await this.getRawCsps(artifacts, context);
165
- const {score, results} = this.constructResults(cspHeaders, cspMetaTags);
166
-
167
- /** @type {LH.Audit.Details.Table['headings']} */
168
- const headings = [
169
- /* eslint-disable max-len */
170
- {key: 'description', itemType: 'text', subItemsHeading: {key: 'description'}, text: str_(i18n.UIStrings.columnDescription)},
171
- {key: 'directive', itemType: 'code', subItemsHeading: {key: 'directive'}, text: str_(UIStrings.columnDirective)},
172
- {key: 'severity', itemType: 'text', subItemsHeading: {key: 'severity'}, text: str_(UIStrings.columnSeverity)},
173
- /* eslint-enable max-len */
174
- ];
175
- const details = Audit.makeTableDetails(headings, results);
176
-
177
- return {
178
- score,
179
- notApplicable: !results.length,
180
- details,
181
- };
182
- }
183
- }
184
-
185
- module.exports = CspXss;
186
- module.exports.UIStrings = UIStrings;
@@ -1,115 +0,0 @@
1
- /**
2
- * @license Copyright 2017 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
- */
6
- 'use strict';
7
-
8
- /**
9
- * @fileoverview Audits a page to determine if it is calling deprecated APIs.
10
- */
11
-
12
- const Audit = require('./audit.js');
13
- const JsBundles = require('../computed/js-bundles.js');
14
- const i18n = require('../lib/i18n/i18n.js');
15
- const {getIssueDetailDescription} = require('../lib/deprecations-strings.js');
16
-
17
- /* eslint-disable max-len */
18
- const UIStrings = {
19
- /** Title of a Lighthouse audit that provides detail on the use of deprecated APIs. This descriptive title is shown to users when the page does not use deprecated APIs. */
20
- title: 'Avoids deprecated APIs',
21
- /** Title of a Lighthouse audit that provides detail on the use of deprecated APIs. This descriptive title is shown to users when the page uses deprecated APIs. */
22
- failureTitle: 'Uses deprecated APIs',
23
- /** Description of a Lighthouse audit that tells the user why they should not use deprecated APIs on their page. This is displayed after a user expands the section to see more. No character length limits. 'Learn More' becomes link text to additional documentation. */
24
- description: 'Deprecated APIs will eventually be removed from the browser. ' +
25
- '[Learn more](https://web.dev/deprecations/).',
26
- /** [ICU Syntax] Label for the audit identifying the number of warnings generated by using deprecated APIs. */
27
- displayValue: `{itemCount, plural,
28
- =1 {1 warning found}
29
- other {# warnings found}
30
- }`,
31
- /** Header of the table column which displays the warning message describing use of a deprecated API by code running in the web page. */
32
- columnDeprecate: 'Deprecation / Warning',
33
- /** Table column header for line of code (eg. 432) that is using a deprecated API. */
34
- columnLine: 'Line',
35
- };
36
- /* eslint-enable max-len */
37
-
38
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
39
-
40
- class Deprecations extends Audit {
41
- /**
42
- * @return {LH.Audit.Meta}
43
- */
44
- static get meta() {
45
- return {
46
- id: 'deprecations',
47
- title: str_(UIStrings.title),
48
- failureTitle: str_(UIStrings.failureTitle),
49
- description: str_(UIStrings.description),
50
- requiredArtifacts: ['InspectorIssues', 'SourceMaps', 'ScriptElements'],
51
- };
52
- }
53
-
54
- /**
55
- * @param {LH.Artifacts} artifacts
56
- * @param {LH.Audit.Context} context
57
- * @return {Promise<LH.Audit.Product>}
58
- */
59
- static async audit(artifacts, context) {
60
- const bundles = await JsBundles.request(artifacts, context);
61
-
62
- const deprecations = artifacts.InspectorIssues.deprecationIssue
63
- .map(deprecation => {
64
- const {url, lineNumber, columnNumber} = deprecation.sourceCodeLocation;
65
- const bundle = bundles.find(bundle => bundle.script.src === url);
66
- const deprecationMeta = getIssueDetailDescription(deprecation);
67
-
68
- /** @type {LH.Audit.Details.TableSubItems=} */
69
- let subItems = undefined;
70
- if (deprecationMeta.links.length) {
71
- subItems = {
72
- type: 'subitems',
73
- items: deprecationMeta.links.map(link => ({
74
- type: 'link',
75
- url: link.link,
76
- text: link.linkTitle,
77
- })),
78
- };
79
- }
80
-
81
- // @ts-expect-error: The english string used to be included on the protocol, but no longer is.
82
- const legacyMessage = deprecation.message;
83
-
84
- /** @type {LH.Audit.Details.TableItem} */
85
- const item = {
86
- value: deprecationMeta.message || legacyMessage || deprecation.type,
87
- // Protocol.Audits.SourceCodeLocation.columnNumber is 1-indexed, but we use 0-indexed.
88
- source: Audit.makeSourceLocation(url, lineNumber, columnNumber - 1, bundle),
89
- subItems,
90
- };
91
- return item;
92
- });
93
-
94
- /** @type {LH.Audit.Details.Table['headings']} */
95
- const headings = [
96
- {key: 'value', itemType: 'text', text: str_(UIStrings.columnDeprecate)},
97
- {key: 'source', itemType: 'source-location', text: str_(i18n.UIStrings.columnSource)},
98
- ];
99
- const details = Audit.makeTableDetails(headings, deprecations);
100
-
101
- let displayValue;
102
- if (deprecations.length > 0) {
103
- displayValue = str_(UIStrings.displayValue, {itemCount: deprecations.length});
104
- }
105
-
106
- return {
107
- score: Number(deprecations.length === 0),
108
- displayValue,
109
- details,
110
- };
111
- }
112
- }
113
-
114
- module.exports = Deprecations;
115
- module.exports.UIStrings = UIStrings;
@@ -1,79 +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 Audit = require('./audit.js');
9
- const MainThreadTasksComputed = require('../computed/main-thread-tasks.js');
10
- const NetworkRecordsComputed = require('../computed/network-records.js');
11
- const NetworkAnalysisComputed = require('../computed/network-analysis.js');
12
- const NetworkAnalyzer = require('../lib/dependency-graph/simulator/network-analyzer.js');
13
-
14
- class Diagnostics extends Audit {
15
- /**
16
- * @return {LH.Audit.Meta}
17
- */
18
- static get meta() {
19
- return {
20
- id: 'diagnostics',
21
- scoreDisplayMode: Audit.SCORING_MODES.INFORMATIVE,
22
- title: 'Diagnostics',
23
- description: 'Collection of useful page vitals.',
24
- supportedModes: ['navigation'],
25
- requiredArtifacts: ['traces', 'devtoolsLogs'],
26
- };
27
- }
28
-
29
- /**
30
- * @param {LH.Artifacts} artifacts
31
- * @param {LH.Audit.Context} context
32
- * @return {Promise<LH.Audit.Product>}
33
- */
34
- static async audit(artifacts, context) {
35
- const trace = artifacts.traces[Audit.DEFAULT_PASS];
36
- const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS];
37
- const tasks = await MainThreadTasksComputed.request(trace, context);
38
- const records = await NetworkRecordsComputed.request(devtoolsLog, context);
39
- const analysis = await NetworkAnalysisComputed.request(devtoolsLog, context);
40
-
41
- const toplevelTasks = tasks.filter(t => !t.parent);
42
- const mainDocumentTransferSize = NetworkAnalyzer.findMainDocument(records).transferSize;
43
- const totalByteWeight = records.reduce((sum, r) => sum + (r.transferSize || 0), 0);
44
- const totalTaskTime = toplevelTasks.reduce((sum, t) => sum + (t.duration || 0), 0);
45
- const maxRtt = Math.max(...analysis.additionalRttByOrigin.values()) + analysis.rtt;
46
- const maxServerLatency = Math.max(...analysis.serverResponseTimeByOrigin.values());
47
-
48
- const diagnostics = {
49
- numRequests: records.length,
50
- numScripts: records.filter(r => r.resourceType === 'Script').length,
51
- numStylesheets: records.filter(r => r.resourceType === 'Stylesheet').length,
52
- numFonts: records.filter(r => r.resourceType === 'Font').length,
53
- numTasks: toplevelTasks.length,
54
- numTasksOver10ms: toplevelTasks.filter(t => t.duration > 10).length,
55
- numTasksOver25ms: toplevelTasks.filter(t => t.duration > 25).length,
56
- numTasksOver50ms: toplevelTasks.filter(t => t.duration > 50).length,
57
- numTasksOver100ms: toplevelTasks.filter(t => t.duration > 100).length,
58
- numTasksOver500ms: toplevelTasks.filter(t => t.duration > 500).length,
59
- rtt: analysis.rtt,
60
- throughput: analysis.throughput,
61
- maxRtt,
62
- maxServerLatency,
63
- totalByteWeight,
64
- totalTaskTime,
65
- mainDocumentTransferSize,
66
- };
67
-
68
- return {
69
- score: 1,
70
- details: {
71
- type: 'debugdata',
72
- // TODO: Consider not nesting diagnostics under `items`.
73
- items: [diagnostics],
74
- },
75
- };
76
- }
77
- }
78
-
79
- module.exports = Diagnostics;
@@ -1,96 +0,0 @@
1
- /**
2
- * @license Copyright 2020 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
- */
6
-
7
- /**
8
- * @fileoverview Audits a page to ensure charset it configured properly.
9
- * It must be defined within the first 1024 bytes of the HTML document, defined in the HTTP header, or the document source must start with a BOM.
10
- *
11
- * @see https://github.com/GoogleChrome/lighthouse/issues/10023
12
- */
13
- 'use strict';
14
-
15
- const Audit = require('../audit.js');
16
- const i18n = require('../../lib/i18n/i18n.js');
17
- const MainResource = require('../../computed/main-resource.js');
18
-
19
- const UIStrings = {
20
- /** Title of a Lighthouse audit that provides detail on if the charset is set properly for a page. This title is shown when the charset is defined correctly. Charset defines the character encoding (eg UTF-8) of the page content. */
21
- title: 'Properly defines charset',
22
- /** Title of a Lighthouse audit that provides detail on if the charset is set properly for a page. This title is shown when the charset meta tag is missing or defined too late in the page. */
23
- failureTitle: 'Charset declaration is missing or occurs too late in the HTML',
24
- /** Description of a Lighthouse audit that tells the user why the charset needs to be defined early on. */
25
- description: 'A character encoding declaration is required. It can be done with a `<meta>` tag ' +
26
- 'in the first 1024 bytes of the HTML or in the Content-Type HTTP response header. ' +
27
- '[Learn more](https://web.dev/charset/).',
28
- };
29
-
30
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
31
-
32
- const CONTENT_TYPE_HEADER = 'content-type';
33
- // /^[a-zA-Z0-9-_:.()]{2,}$/ matches all known IANA charset names (https://www.iana.org/assignments/character-sets/character-sets.xhtml)
34
- const IANA_REGEX = /^[a-zA-Z0-9-_:.()]{2,}$/;
35
- const CHARSET_HTML_REGEX = /<meta[^>]+charset[^<]+>/i;
36
- const CHARSET_HTTP_REGEX = /charset\s*=\s*[a-zA-Z0-9-_:.()]{2,}/i;
37
-
38
- class CharsetDefined extends Audit {
39
- /**
40
- * @return {LH.Audit.Meta}
41
- */
42
- static get meta() {
43
- return {
44
- id: 'charset',
45
- title: str_(UIStrings.title),
46
- failureTitle: str_(UIStrings.failureTitle),
47
- description: str_(UIStrings.description),
48
- requiredArtifacts: ['MainDocumentContent', 'URL', 'devtoolsLogs', 'MetaElements'],
49
- };
50
- }
51
-
52
- /**
53
- * @param {LH.Artifacts} artifacts
54
- * @param {LH.Audit.Context} context
55
- * @return {Promise<LH.Audit.Product>}
56
- */
57
- static async audit(artifacts, context) {
58
- const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS];
59
- const mainResource = await MainResource.request({devtoolsLog, URL: artifacts.URL}, context);
60
- let isCharsetSet = false;
61
- // Check the http header 'content-type' to see if charset is defined there
62
- if (mainResource.responseHeaders) {
63
- const contentTypeHeader = mainResource.responseHeaders
64
- .find(header => header.name.toLowerCase() === CONTENT_TYPE_HEADER);
65
-
66
- if (contentTypeHeader) {
67
- isCharsetSet = CHARSET_HTTP_REGEX.test(contentTypeHeader.value);
68
- }
69
- }
70
-
71
- // Check if there is a BOM byte marker
72
- const BOM_FIRSTCHAR = 0xFEFF;
73
- isCharsetSet = isCharsetSet || artifacts.MainDocumentContent.charCodeAt(0) === BOM_FIRSTCHAR;
74
-
75
- // Check if charset-ish meta tag is defined within the first 1024 characters(~1024 bytes) of the HTML document
76
- if (CHARSET_HTML_REGEX.test(artifacts.MainDocumentContent.slice(0, 1024))) {
77
- // If so, double-check the DOM attributes, considering both legacy http-equiv and html5 charset styles.
78
- isCharsetSet = isCharsetSet || artifacts.MetaElements.some(meta => {
79
- return (meta.charset && IANA_REGEX.test(meta.charset)) ||
80
- (meta.httpEquiv === 'content-type' &&
81
- meta.content &&
82
- CHARSET_HTTP_REGEX.test(meta.content));
83
- });
84
- }
85
-
86
- return {
87
- score: Number(isCharsetSet),
88
- };
89
- }
90
- }
91
-
92
- module.exports = CharsetDefined;
93
- module.exports.UIStrings = UIStrings;
94
- module.exports.CHARSET_HTML_REGEX = CHARSET_HTML_REGEX;
95
- module.exports.CHARSET_HTTP_REGEX = CHARSET_HTTP_REGEX;
96
- module.exports.IANA_REGEX = IANA_REGEX;
@@ -1,94 +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
- const Audit = require('../audit.js');
9
- const i18n = require('../../lib/i18n/i18n.js');
10
-
11
- const UIStrings = {
12
- /** Title of a Lighthouse audit that provides detail on the doctype of a page. This descriptive title is shown to users when the pages's doctype is set to HTML. */
13
- title: 'Page has the HTML doctype',
14
- /** Title of a Lighthouse audit that provides detail on the doctype of a page. This descriptive title is shown to users when the page's doctype is not set to HTML. */
15
- failureTitle: 'Page lacks the HTML doctype, thus triggering quirks-mode',
16
- /** Description of a Lighthouse audit that tells the user why they should define an HTML doctype. This is displayed after a user expands the section to see more. No character length limits. 'Learn More' becomes link text to additional documentation. */
17
- description: 'Specifying a doctype prevents the browser ' +
18
- 'from switching to quirks-mode. ' +
19
- '[Learn more](https://web.dev/doctype/).',
20
- /** Explanatory message stating that the document has no doctype. */
21
- explanationNoDoctype: 'Document must contain a doctype',
22
- /** Explanatory message stating that the publicId field is not empty. */
23
- explanationPublicId: 'Expected publicId to be an empty string',
24
- /** Explanatory message stating that the systemId field is not empty. */
25
- explanationSystemId: 'Expected systemId to be an empty string',
26
- /** Explanatory message stating that the doctype is set, but is not "html" and is therefore invalid. */
27
- explanationBadDoctype: 'Doctype name must be the lowercase string `html`',
28
- };
29
-
30
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
31
-
32
- class Doctype extends Audit {
33
- /**
34
- * @return {LH.Audit.Meta}
35
- */
36
- static get meta() {
37
- return {
38
- id: 'doctype',
39
- title: str_(UIStrings.title),
40
- failureTitle: str_(UIStrings.failureTitle),
41
- description: str_(UIStrings.description),
42
- requiredArtifacts: ['Doctype'],
43
- };
44
- }
45
-
46
- /**
47
- * @param {LH.Artifacts} artifacts
48
- * @return {LH.Audit.Product}
49
- */
50
- static audit(artifacts) {
51
- if (!artifacts.Doctype) {
52
- return {
53
- score: 0,
54
- explanation: str_(UIStrings.explanationNoDoctype),
55
- };
56
- }
57
-
58
- // only set constants once we know there is a doctype
59
- const doctypeName = artifacts.Doctype.name.trim();
60
- const doctypePublicId = artifacts.Doctype.publicId;
61
- const doctypeSystemId = artifacts.Doctype.systemId;
62
-
63
- if (doctypePublicId !== '') {
64
- return {
65
- score: 0,
66
- explanation: str_(UIStrings.explanationPublicId),
67
- };
68
- }
69
-
70
- if (doctypeSystemId !== '') {
71
- return {
72
- score: 0,
73
- explanation: str_(UIStrings.explanationSystemId),
74
- };
75
- }
76
-
77
- /* Note that the value for name is case sensitive,
78
- and must be the string `html`. For details see:
79
- https://html.spec.whatwg.org/multipage/parsing.html#the-initial-insertion-mode */
80
- if (doctypeName === 'html') {
81
- return {
82
- score: 1,
83
- };
84
- } else {
85
- return {
86
- score: 0,
87
- explanation: str_(UIStrings.explanationBadDoctype),
88
- };
89
- }
90
- }
91
- }
92
-
93
- module.exports = Doctype;
94
- module.exports.UIStrings = UIStrings;