lighthouse 9.5.0-dev.20220711 → 9.5.0-dev.20220714

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 (380) hide show
  1. package/{esm-utils.mjs → esm-utils.js} +2 -2
  2. package/flow-report/tsconfig.json +1 -0
  3. package/lighthouse-cli/bin.js +5 -9
  4. package/lighthouse-cli/commands/list-audits.js +2 -2
  5. package/lighthouse-cli/commands/list-trace-categories.js +1 -2
  6. package/lighthouse-cli/run.js +2 -2
  7. package/lighthouse-cli/test/smokehouse/core-tests.js +3 -2
  8. package/lighthouse-cli/test/smokehouse/frontends/smokehouse-bin.js +4 -3
  9. package/lighthouse-cli/test/smokehouse/lighthouse-runners/bundle.js +8 -4
  10. package/lighthouse-cli/test/smokehouse/lighthouse-runners/cli.js +1 -1
  11. package/lighthouse-cli/test/smokehouse/lighthouse-runners/devtools.js +17 -68
  12. package/lighthouse-cli/test/smokehouse/smokehouse.js +10 -1
  13. package/lighthouse-core/audits/accessibility/accesskeys.js +6 -5
  14. package/lighthouse-core/audits/accessibility/aria-allowed-attr.js +6 -5
  15. package/lighthouse-core/audits/accessibility/aria-command-name.js +6 -5
  16. package/lighthouse-core/audits/accessibility/aria-hidden-body.js +6 -5
  17. package/lighthouse-core/audits/accessibility/aria-hidden-focus.js +6 -5
  18. package/lighthouse-core/audits/accessibility/aria-input-field-name.js +6 -5
  19. package/lighthouse-core/audits/accessibility/aria-meter-name.js +6 -5
  20. package/lighthouse-core/audits/accessibility/aria-progressbar-name.js +6 -5
  21. package/lighthouse-core/audits/accessibility/aria-required-attr.js +6 -5
  22. package/lighthouse-core/audits/accessibility/aria-required-children.js +6 -5
  23. package/lighthouse-core/audits/accessibility/aria-required-parent.js +6 -5
  24. package/lighthouse-core/audits/accessibility/aria-roles.js +6 -5
  25. package/lighthouse-core/audits/accessibility/aria-toggle-field-name.js +6 -5
  26. package/lighthouse-core/audits/accessibility/aria-tooltip-name.js +6 -5
  27. package/lighthouse-core/audits/accessibility/aria-treeitem-name.js +6 -5
  28. package/lighthouse-core/audits/accessibility/aria-valid-attr-value.js +6 -5
  29. package/lighthouse-core/audits/accessibility/aria-valid-attr.js +6 -5
  30. package/lighthouse-core/audits/accessibility/axe-audit.js +6 -5
  31. package/lighthouse-core/audits/accessibility/button-name.js +6 -5
  32. package/lighthouse-core/audits/accessibility/bypass.js +6 -5
  33. package/lighthouse-core/audits/accessibility/color-contrast.js +6 -5
  34. package/lighthouse-core/audits/accessibility/definition-list.js +6 -5
  35. package/lighthouse-core/audits/accessibility/dlitem.js +6 -5
  36. package/lighthouse-core/audits/accessibility/document-title.js +6 -5
  37. package/lighthouse-core/audits/accessibility/duplicate-id-active.js +6 -5
  38. package/lighthouse-core/audits/accessibility/duplicate-id-aria.js +6 -5
  39. package/lighthouse-core/audits/accessibility/form-field-multiple-labels.js +6 -5
  40. package/lighthouse-core/audits/accessibility/frame-title.js +6 -5
  41. package/lighthouse-core/audits/accessibility/heading-order.js +6 -5
  42. package/lighthouse-core/audits/accessibility/html-has-lang.js +6 -5
  43. package/lighthouse-core/audits/accessibility/html-lang-valid.js +6 -5
  44. package/lighthouse-core/audits/accessibility/image-alt.js +6 -5
  45. package/lighthouse-core/audits/accessibility/input-image-alt.js +6 -5
  46. package/lighthouse-core/audits/accessibility/label.js +6 -5
  47. package/lighthouse-core/audits/accessibility/link-name.js +6 -5
  48. package/lighthouse-core/audits/accessibility/list.js +6 -5
  49. package/lighthouse-core/audits/accessibility/listitem.js +6 -5
  50. package/lighthouse-core/audits/accessibility/manual/custom-controls-labels.js +2 -2
  51. package/lighthouse-core/audits/accessibility/manual/custom-controls-roles.js +2 -2
  52. package/lighthouse-core/audits/accessibility/manual/focus-traps.js +2 -2
  53. package/lighthouse-core/audits/accessibility/manual/focusable-controls.js +2 -2
  54. package/lighthouse-core/audits/accessibility/manual/interactive-element-affordance.js +2 -2
  55. package/lighthouse-core/audits/accessibility/manual/logical-tab-order.js +2 -2
  56. package/lighthouse-core/audits/accessibility/manual/managed-focus.js +2 -2
  57. package/lighthouse-core/audits/accessibility/manual/offscreen-content-hidden.js +2 -2
  58. package/lighthouse-core/audits/accessibility/manual/use-landmarks.js +2 -2
  59. package/lighthouse-core/audits/accessibility/manual/visual-order-follows-dom.js +2 -2
  60. package/lighthouse-core/audits/accessibility/meta-refresh.js +6 -5
  61. package/lighthouse-core/audits/accessibility/meta-viewport.js +6 -5
  62. package/lighthouse-core/audits/accessibility/object-alt.js +6 -5
  63. package/lighthouse-core/audits/accessibility/tabindex.js +6 -5
  64. package/lighthouse-core/audits/accessibility/td-headers-attr.js +6 -5
  65. package/lighthouse-core/audits/accessibility/th-has-data-cells.js +6 -5
  66. package/lighthouse-core/audits/accessibility/valid-lang.js +6 -5
  67. package/lighthouse-core/audits/accessibility/video-caption.js +6 -5
  68. package/lighthouse-core/audits/apple-touch-icon.js +5 -5
  69. package/lighthouse-core/audits/audit.js +4 -4
  70. package/lighthouse-core/audits/autocomplete.js +6 -6
  71. package/lighthouse-core/audits/bootup-time.js +9 -9
  72. package/lighthouse-core/audits/byte-efficiency/byte-efficiency-audit.js +12 -12
  73. package/lighthouse-core/audits/byte-efficiency/duplicated-javascript.js +9 -8
  74. package/lighthouse-core/audits/byte-efficiency/efficient-animated-content.js +7 -7
  75. package/lighthouse-core/audits/byte-efficiency/legacy-javascript.js +18 -10
  76. package/lighthouse-core/audits/byte-efficiency/modern-image-formats.js +7 -7
  77. package/lighthouse-core/audits/byte-efficiency/offscreen-images.js +11 -11
  78. package/lighthouse-core/audits/byte-efficiency/render-blocking-resources.js +15 -15
  79. package/lighthouse-core/audits/byte-efficiency/total-byte-weight.js +7 -7
  80. package/lighthouse-core/audits/byte-efficiency/unminified-css.js +8 -8
  81. package/lighthouse-core/audits/byte-efficiency/unminified-javascript.js +8 -8
  82. package/lighthouse-core/audits/byte-efficiency/unused-css-rules.js +7 -7
  83. package/lighthouse-core/audits/byte-efficiency/unused-javascript.js +9 -9
  84. package/lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js +10 -10
  85. package/lighthouse-core/audits/byte-efficiency/uses-optimized-images.js +7 -7
  86. package/lighthouse-core/audits/byte-efficiency/uses-responsive-images-snapshot.js +8 -8
  87. package/lighthouse-core/audits/byte-efficiency/uses-responsive-images.js +9 -10
  88. package/lighthouse-core/audits/byte-efficiency/uses-text-compression.js +7 -7
  89. package/lighthouse-core/audits/content-width.js +5 -5
  90. package/lighthouse-core/audits/critical-request-chains.js +6 -6
  91. package/lighthouse-core/audits/csp-xss.js +7 -10
  92. package/lighthouse-core/audits/deprecations.js +7 -6
  93. package/lighthouse-core/audits/diagnostics.js +6 -6
  94. package/lighthouse-core/audits/dobetterweb/charset.js +6 -9
  95. package/lighthouse-core/audits/dobetterweb/doctype.js +5 -5
  96. package/lighthouse-core/audits/dobetterweb/dom-size.js +5 -5
  97. package/lighthouse-core/audits/dobetterweb/geolocation-on-start.js +5 -5
  98. package/lighthouse-core/audits/dobetterweb/inspector-issues.js +6 -5
  99. package/lighthouse-core/audits/dobetterweb/js-libraries.js +5 -5
  100. package/lighthouse-core/audits/dobetterweb/no-document-write.js +5 -5
  101. package/lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js +12 -8
  102. package/lighthouse-core/audits/dobetterweb/notification-on-start.js +5 -5
  103. package/lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js +5 -5
  104. package/lighthouse-core/audits/dobetterweb/uses-http2.js +15 -14
  105. package/lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js +5 -5
  106. package/lighthouse-core/audits/errors-in-console.js +8 -7
  107. package/lighthouse-core/audits/final-screenshot.js +5 -5
  108. package/lighthouse-core/audits/font-display.js +8 -8
  109. package/lighthouse-core/audits/full-page-screenshot.js +2 -2
  110. package/lighthouse-core/audits/image-aspect-ratio.js +6 -6
  111. package/lighthouse-core/audits/image-size-responsive.js +6 -6
  112. package/lighthouse-core/audits/installable-manifest.js +6 -6
  113. package/lighthouse-core/audits/is-on-https.js +8 -8
  114. package/lighthouse-core/audits/largest-contentful-paint-element.js +5 -5
  115. package/lighthouse-core/audits/layout-shift-elements.js +5 -5
  116. package/lighthouse-core/audits/lcp-lazy-loaded.js +5 -5
  117. package/lighthouse-core/audits/long-tasks.js +10 -10
  118. package/lighthouse-core/audits/main-thread-tasks.js +3 -3
  119. package/lighthouse-core/audits/mainthread-work-breakdown.js +7 -7
  120. package/lighthouse-core/audits/manual/manual-audit.js +2 -2
  121. package/lighthouse-core/audits/manual/pwa-cross-browser.js +5 -5
  122. package/lighthouse-core/audits/manual/pwa-each-page-has-url.js +5 -5
  123. package/lighthouse-core/audits/manual/pwa-page-transitions.js +5 -5
  124. package/lighthouse-core/audits/maskable-icon.js +6 -6
  125. package/lighthouse-core/audits/metrics/cumulative-layout-shift.js +6 -6
  126. package/lighthouse-core/audits/metrics/experimental-interaction-to-next-paint.js +6 -6
  127. package/lighthouse-core/audits/metrics/first-contentful-paint-3g.js +6 -4
  128. package/lighthouse-core/audits/metrics/first-contentful-paint.js +6 -6
  129. package/lighthouse-core/audits/metrics/first-meaningful-paint.js +6 -6
  130. package/lighthouse-core/audits/metrics/interactive.js +6 -6
  131. package/lighthouse-core/audits/metrics/largest-contentful-paint.js +6 -6
  132. package/lighthouse-core/audits/metrics/max-potential-fid.js +6 -6
  133. package/lighthouse-core/audits/metrics/speed-index.js +6 -6
  134. package/lighthouse-core/audits/metrics/total-blocking-time.js +6 -6
  135. package/lighthouse-core/audits/metrics.js +3 -3
  136. package/lighthouse-core/audits/multi-check-audit.js +2 -2
  137. package/lighthouse-core/audits/network-requests.js +5 -5
  138. package/lighthouse-core/audits/network-rtt.js +7 -7
  139. package/lighthouse-core/audits/network-server-latency.js +7 -7
  140. package/lighthouse-core/audits/no-unload-listeners.js +6 -6
  141. package/lighthouse-core/audits/non-composited-animations.js +6 -5
  142. package/lighthouse-core/audits/oopif-iframe-test-audit.js +1 -1
  143. package/lighthouse-core/audits/performance-budget.js +8 -8
  144. package/lighthouse-core/audits/predictive-perf.js +9 -10
  145. package/lighthouse-core/audits/preload-fonts.js +8 -7
  146. package/lighthouse-core/audits/preload-lcp-image.js +11 -11
  147. package/lighthouse-core/audits/redirects.js +11 -11
  148. package/lighthouse-core/audits/resource-summary.js +6 -6
  149. package/lighthouse-core/audits/screenshot-thumbnails.js +5 -5
  150. package/lighthouse-core/audits/script-elements-test-audit.js +1 -1
  151. package/lighthouse-core/audits/script-treemap-data.js +7 -6
  152. package/lighthouse-core/audits/seo/canonical.js +7 -7
  153. package/lighthouse-core/audits/seo/crawlable-anchors.js +5 -5
  154. package/lighthouse-core/audits/seo/font-size.js +8 -6
  155. package/lighthouse-core/audits/seo/hreflang.js +7 -6
  156. package/lighthouse-core/audits/seo/http-status-code.js +7 -6
  157. package/lighthouse-core/audits/seo/is-crawlable.js +11 -9
  158. package/lighthouse-core/audits/seo/link-text.js +7 -6
  159. package/lighthouse-core/audits/seo/manual/structured-data.js +5 -5
  160. package/lighthouse-core/audits/seo/meta-description.js +5 -5
  161. package/lighthouse-core/audits/seo/plugins.js +6 -6
  162. package/lighthouse-core/audits/seo/robots-txt.js +7 -6
  163. package/lighthouse-core/audits/seo/tap-targets.js +12 -9
  164. package/lighthouse-core/audits/server-response-time.js +6 -6
  165. package/lighthouse-core/audits/service-worker.js +6 -6
  166. package/lighthouse-core/audits/splash-screen.js +6 -6
  167. package/lighthouse-core/audits/themed-omnibox.js +7 -7
  168. package/lighthouse-core/audits/third-party-facades.js +14 -13
  169. package/lighthouse-core/audits/third-party-summary.js +9 -9
  170. package/lighthouse-core/audits/timing-budget.js +8 -8
  171. package/lighthouse-core/audits/unsized-images.js +6 -6
  172. package/lighthouse-core/audits/user-timings.js +6 -6
  173. package/lighthouse-core/audits/uses-rel-preconnect.js +15 -15
  174. package/lighthouse-core/audits/uses-rel-preload.js +13 -13
  175. package/lighthouse-core/audits/valid-source-maps.js +6 -6
  176. package/lighthouse-core/audits/viewport.js +6 -6
  177. package/lighthouse-core/audits/violation-audit.js +3 -3
  178. package/lighthouse-core/audits/work-during-interaction.js +15 -15
  179. package/lighthouse-core/computed/computed-artifact.js +3 -3
  180. package/lighthouse-core/computed/critical-request-chains.js +5 -5
  181. package/lighthouse-core/computed/image-records.js +3 -3
  182. package/lighthouse-core/computed/js-bundles.js +4 -4
  183. package/lighthouse-core/computed/load-simulator.js +8 -5
  184. package/lighthouse-core/computed/main-resource.js +4 -4
  185. package/lighthouse-core/computed/main-thread-tasks.js +4 -4
  186. package/lighthouse-core/computed/manifest-values.js +3 -3
  187. package/lighthouse-core/computed/metrics/cumulative-layout-shift.js +4 -4
  188. package/lighthouse-core/computed/metrics/first-contentful-paint-all-frames.js +3 -3
  189. package/lighthouse-core/computed/metrics/first-contentful-paint.js +4 -4
  190. package/lighthouse-core/computed/metrics/first-meaningful-paint.js +5 -5
  191. package/lighthouse-core/computed/metrics/interactive.js +8 -9
  192. package/lighthouse-core/computed/metrics/lantern-first-contentful-paint.js +7 -7
  193. package/lighthouse-core/computed/metrics/lantern-first-meaningful-paint.js +5 -5
  194. package/lighthouse-core/computed/metrics/lantern-interactive.js +7 -7
  195. package/lighthouse-core/computed/metrics/lantern-largest-contentful-paint.js +5 -5
  196. package/lighthouse-core/computed/metrics/lantern-max-potential-fid.js +6 -6
  197. package/lighthouse-core/computed/metrics/lantern-metric.js +10 -10
  198. package/lighthouse-core/computed/metrics/lantern-speed-index.js +8 -8
  199. package/lighthouse-core/computed/metrics/lantern-total-blocking-time.js +8 -8
  200. package/lighthouse-core/computed/metrics/largest-contentful-paint-all-frames.js +5 -4
  201. package/lighthouse-core/computed/metrics/largest-contentful-paint.js +6 -5
  202. package/lighthouse-core/computed/metrics/max-potential-fid.js +6 -6
  203. package/lighthouse-core/computed/metrics/metric.js +6 -6
  204. package/lighthouse-core/computed/metrics/navigation-metric.js +2 -2
  205. package/lighthouse-core/computed/metrics/responsiveness.js +3 -3
  206. package/lighthouse-core/computed/metrics/speed-index.js +5 -5
  207. package/lighthouse-core/computed/metrics/tbt-utils.js +1 -1
  208. package/lighthouse-core/computed/metrics/timing-summary.js +15 -15
  209. package/lighthouse-core/computed/metrics/total-blocking-time.js +7 -7
  210. package/lighthouse-core/computed/module-duplication.js +3 -3
  211. package/lighthouse-core/computed/network-analysis.js +4 -4
  212. package/lighthouse-core/computed/network-records.js +3 -3
  213. package/lighthouse-core/computed/page-dependency-graph.js +11 -11
  214. package/lighthouse-core/computed/processed-navigation.js +3 -3
  215. package/lighthouse-core/computed/processed-trace.js +3 -3
  216. package/lighthouse-core/computed/resource-summary.js +7 -7
  217. package/lighthouse-core/computed/screenshots.js +2 -2
  218. package/lighthouse-core/computed/speedline.js +5 -5
  219. package/lighthouse-core/computed/trace-of-tab.js +6 -5
  220. package/lighthouse-core/computed/unused-css.js +4 -4
  221. package/lighthouse-core/computed/unused-javascript-summary.js +2 -2
  222. package/lighthouse-core/computed/user-timings.js +3 -3
  223. package/lighthouse-core/computed/viewport-meta.js +3 -4
  224. package/lighthouse-core/config/budget.js +1 -1
  225. package/lighthouse-core/config/config-helpers.js +47 -19
  226. package/lighthouse-core/config/config-plugin.js +2 -2
  227. package/lighthouse-core/config/config.js +16 -14
  228. package/lighthouse-core/config/constants.js +1 -1
  229. package/lighthouse-core/config/default-config.js +11 -10
  230. package/lighthouse-core/config/desktop-config.js +2 -2
  231. package/lighthouse-core/config/experimental-config.js +1 -1
  232. package/lighthouse-core/config/full-config.js +1 -1
  233. package/lighthouse-core/config/lr-desktop-config.js +2 -2
  234. package/lighthouse-core/config/lr-mobile-config.js +1 -1
  235. package/lighthouse-core/config/metrics-to-audits.js +1 -1
  236. package/lighthouse-core/config/perf-config.js +1 -1
  237. package/lighthouse-core/fraggle-rock/api.js +8 -8
  238. package/lighthouse-core/fraggle-rock/config/config.js +27 -17
  239. package/lighthouse-core/fraggle-rock/config/default-config.js +5 -5
  240. package/lighthouse-core/fraggle-rock/config/filters.js +3 -4
  241. package/lighthouse-core/fraggle-rock/config/validation.js +4 -4
  242. package/lighthouse-core/fraggle-rock/gather/base-artifacts.js +6 -8
  243. package/lighthouse-core/fraggle-rock/gather/base-gatherer.js +2 -1
  244. package/lighthouse-core/fraggle-rock/gather/driver.js +5 -5
  245. package/lighthouse-core/fraggle-rock/gather/navigation-runner.js +23 -27
  246. package/lighthouse-core/fraggle-rock/gather/runner-helpers.js +3 -3
  247. package/lighthouse-core/fraggle-rock/gather/session.js +3 -3
  248. package/lighthouse-core/fraggle-rock/gather/snapshot-runner.js +7 -11
  249. package/lighthouse-core/fraggle-rock/gather/timespan-runner.js +8 -12
  250. package/lighthouse-core/fraggle-rock/user-flow.js +8 -8
  251. package/lighthouse-core/gather/connections/connection.js +4 -4
  252. package/lighthouse-core/gather/connections/cri.js +6 -6
  253. package/lighthouse-core/gather/connections/raw.js +2 -2
  254. package/lighthouse-core/gather/driver/dom.js +1 -1
  255. package/lighthouse-core/gather/driver/environment.js +6 -6
  256. package/lighthouse-core/gather/driver/execution-context.js +2 -2
  257. package/lighthouse-core/gather/driver/navigation.js +8 -8
  258. package/lighthouse-core/gather/driver/network-monitor.js +7 -6
  259. package/lighthouse-core/gather/driver/network.js +2 -2
  260. package/lighthouse-core/gather/driver/prepare.js +5 -5
  261. package/lighthouse-core/gather/driver/service-workers.js +1 -1
  262. package/lighthouse-core/gather/driver/storage.js +4 -4
  263. package/lighthouse-core/gather/driver/target-manager.js +9 -4
  264. package/lighthouse-core/gather/driver/wait-for-condition.js +6 -5
  265. package/lighthouse-core/gather/driver.js +11 -16
  266. package/lighthouse-core/gather/fetcher.js +1 -1
  267. package/lighthouse-core/gather/gather-runner.js +22 -22
  268. package/lighthouse-core/gather/gatherers/accessibility.js +6 -5
  269. package/lighthouse-core/gather/gatherers/anchor-elements.js +6 -5
  270. package/lighthouse-core/gather/gatherers/cache-contents.js +2 -2
  271. package/lighthouse-core/gather/gatherers/console-messages.js +2 -2
  272. package/lighthouse-core/gather/gatherers/css-usage.js +6 -5
  273. package/lighthouse-core/gather/gatherers/devtools-log-compat.js +4 -3
  274. package/lighthouse-core/gather/gatherers/devtools-log.js +3 -3
  275. package/lighthouse-core/gather/gatherers/dobetterweb/doctype.js +2 -2
  276. package/lighthouse-core/gather/gatherers/dobetterweb/domstats.js +3 -3
  277. package/lighthouse-core/gather/gatherers/dobetterweb/optimized-images.js +8 -8
  278. package/lighthouse-core/gather/gatherers/dobetterweb/password-inputs-with-prevented-paste.js +4 -3
  279. package/lighthouse-core/gather/gatherers/dobetterweb/response-compression.js +10 -10
  280. package/lighthouse-core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +4 -4
  281. package/lighthouse-core/gather/gatherers/full-page-screenshot.js +7 -6
  282. package/lighthouse-core/gather/gatherers/gatherer.js +1 -1
  283. package/lighthouse-core/gather/gatherers/global-listeners.js +2 -2
  284. package/lighthouse-core/gather/gatherers/iframe-elements.js +4 -3
  285. package/lighthouse-core/gather/gatherers/image-elements.js +5 -5
  286. package/lighthouse-core/gather/gatherers/inputs.js +5 -4
  287. package/lighthouse-core/gather/gatherers/inspector-issues.js +4 -4
  288. package/lighthouse-core/gather/gatherers/installability-errors.js +3 -3
  289. package/lighthouse-core/gather/gatherers/js-usage.js +2 -2
  290. package/lighthouse-core/gather/gatherers/link-elements.js +7 -7
  291. package/lighthouse-core/gather/gatherers/main-document-content.js +5 -5
  292. package/lighthouse-core/gather/gatherers/meta-elements.js +3 -3
  293. package/lighthouse-core/gather/gatherers/network-user-agent.js +3 -3
  294. package/lighthouse-core/gather/gatherers/script-elements.js +6 -6
  295. package/lighthouse-core/gather/gatherers/scripts.js +2 -2
  296. package/lighthouse-core/gather/gatherers/seo/embedded-content.js +4 -3
  297. package/lighthouse-core/gather/gatherers/seo/font-size.js +8 -5
  298. package/lighthouse-core/gather/gatherers/seo/robots-txt.js +2 -2
  299. package/lighthouse-core/gather/gatherers/seo/tap-targets.js +5 -4
  300. package/lighthouse-core/gather/gatherers/service-worker.js +3 -3
  301. package/lighthouse-core/gather/gatherers/source-maps.js +3 -3
  302. package/lighthouse-core/gather/gatherers/stacks.js +12 -4
  303. package/lighthouse-core/gather/gatherers/trace-compat.js +4 -3
  304. package/lighthouse-core/gather/gatherers/trace-elements.js +13 -12
  305. package/lighthouse-core/gather/gatherers/trace.js +4 -3
  306. package/lighthouse-core/gather/gatherers/viewport-dimensions.js +2 -2
  307. package/lighthouse-core/gather/gatherers/web-app-manifest.js +5 -5
  308. package/lighthouse-core/index.cjs +21 -0
  309. package/lighthouse-core/index.js +25 -23
  310. package/lighthouse-core/lib/arbitrary-equality-map.js +2 -2
  311. package/lighthouse-core/lib/asset-saver.js +15 -12
  312. package/lighthouse-core/lib/axe.js +9 -4
  313. package/lighthouse-core/lib/cdt/package.json +4 -0
  314. package/lighthouse-core/lib/csp-evaluator.js +11 -13
  315. package/lighthouse-core/lib/dependency-graph/base-node.js +2 -2
  316. package/lighthouse-core/lib/dependency-graph/cpu-node.js +2 -2
  317. package/lighthouse-core/lib/dependency-graph/network-node.js +3 -3
  318. package/lighthouse-core/lib/dependency-graph/simulator/connection-pool.js +4 -4
  319. package/lighthouse-core/lib/dependency-graph/simulator/dns-cache.js +1 -1
  320. package/lighthouse-core/lib/dependency-graph/simulator/network-analyzer.js +11 -10
  321. package/lighthouse-core/lib/dependency-graph/simulator/simulator-timing-map.js +5 -5
  322. package/lighthouse-core/lib/dependency-graph/simulator/simulator.js +12 -10
  323. package/lighthouse-core/lib/dependency-graph/simulator/tcp-connection.js +1 -1
  324. package/lighthouse-core/lib/emulation.js +2 -2
  325. package/lighthouse-core/lib/i18n/README.md +1 -1
  326. package/lighthouse-core/lib/i18n/i18n.js +13 -13
  327. package/lighthouse-core/lib/icons.js +2 -2
  328. package/lighthouse-core/lib/lantern-trace-saver.js +1 -1
  329. package/lighthouse-core/lib/lh-env.js +7 -5
  330. package/lighthouse-core/lib/lh-error.js +4 -4
  331. package/lighthouse-core/lib/lh-trace-processor.js +3 -3
  332. package/lighthouse-core/lib/manifest-parser.js +4 -4
  333. package/lighthouse-core/lib/median-run.js +1 -1
  334. package/lighthouse-core/lib/minification-estimator.js +1 -1
  335. package/lighthouse-core/lib/minify-devtoolslog.js +1 -1
  336. package/lighthouse-core/lib/minify-trace.js +3 -3
  337. package/lighthouse-core/lib/navigation-error.js +6 -6
  338. package/lighthouse-core/lib/network-recorder.js +4 -4
  339. package/lighthouse-core/lib/network-request.js +2 -3
  340. package/lighthouse-core/lib/page-functions.js +2 -1
  341. package/lighthouse-core/lib/proto-preprocessor.js +7 -6
  342. package/lighthouse-core/lib/rect-helpers.js +1 -1
  343. package/lighthouse-core/lib/script-helpers.js +4 -1
  344. package/lighthouse-core/lib/sentry.js +4 -4
  345. package/lighthouse-core/lib/stack-packs.js +4 -4
  346. package/lighthouse-core/lib/statistics.js +1 -1
  347. package/lighthouse-core/lib/tappable-rects.js +2 -2
  348. package/lighthouse-core/lib/third-party-web.js +2 -2
  349. package/lighthouse-core/lib/timing-trace-saver.js +1 -1
  350. package/lighthouse-core/lib/tracehouse/cpu-profile-model.js +8 -8
  351. package/lighthouse-core/lib/tracehouse/main-thread-tasks.js +2 -2
  352. package/lighthouse-core/lib/tracehouse/task-groups.js +1 -1
  353. package/lighthouse-core/lib/tracehouse/task-summary.js +2 -2
  354. package/lighthouse-core/lib/tracehouse/trace-processor.js +2 -3
  355. package/lighthouse-core/lib/traces/pwmetrics-events.js +4 -3
  356. package/lighthouse-core/lib/url-shim.js +6 -4
  357. package/lighthouse-core/package.json +4 -0
  358. package/lighthouse-core/runner.js +40 -34
  359. package/lighthouse-core/scoring.js +2 -2
  360. package/lighthouse-core/{util-commonjs.js → util.cjs} +0 -0
  361. package/package.json +4 -2
  362. package/report/test/generator/report-generator-test.js +4 -3
  363. package/report/test/renderer/report-renderer-axe-test.js +2 -2
  364. package/root.js +10 -2
  365. package/shared/package.json +4 -0
  366. package/shared/test/localization/format-test.js +23 -13
  367. package/shared/test/localization/swap-locale-test.js +1 -0
  368. package/third-party/axe/valid-langs.js +1 -1
  369. package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +3 -3
  370. package/third-party/chromium-synchronization/installability-errors-test.js +3 -3
  371. package/third-party/download-content-shell/download-content-shell.js +6 -5
  372. package/third-party/download-content-shell/utils.js +8 -8
  373. package/tsconfig.json +3 -1
  374. package/types/artifacts.d.ts +9 -11
  375. package/types/audit.d.ts +2 -2
  376. package/types/config.d.ts +1 -1
  377. package/types/cssstyle/index.d.ts +1 -1
  378. package/types/gatherer.d.ts +7 -7
  379. package/types/global-lh.d.ts +2 -2
  380. package/types/smokehouse.d.ts +2 -0
@@ -11,10 +11,10 @@
11
11
  */
12
12
  'use strict';
13
13
 
14
- const Audit = require('../audit.js');
15
- const UsesResponsiveImages = require('./uses-responsive-images.js');
16
- const URL = require('../../lib/url-shim.js');
17
- const i18n = require('../../lib/i18n/i18n.js');
14
+ import {Audit} from '../audit.js';
15
+ import * as UsesResponsiveImages from './uses-responsive-images.js';
16
+ import URL from '../../lib/url-shim.js';
17
+ import * as i18n from '../../lib/i18n/i18n.js';
18
18
 
19
19
  const UIStrings = {
20
20
  /** Descriptive title of a Lighthouse audit that checks if images match their displayed dimensions. This is displayed when the audit is passing. */
@@ -27,7 +27,7 @@ const UIStrings = {
27
27
  columnActualDimensions: 'Actual dimensions',
28
28
  };
29
29
 
30
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
30
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
31
31
 
32
32
  // Based on byte threshold of 4096, with 3 bytes per pixel.
33
33
  const IGNORE_THRESHOLD_IN_PIXELS = 1365;
@@ -58,7 +58,7 @@ class UsesResponsiveImagesSnapshot extends Audit {
58
58
  for (const image of artifacts.ImageElements) {
59
59
  if (!image.naturalDimensions) continue;
60
60
  const actual = image.naturalDimensions;
61
- const displayed = UsesResponsiveImages.getDisplayedDimensions(
61
+ const displayed = UsesResponsiveImages.default.getDisplayedDimensions(
62
62
  {...image, naturalWidth: actual.width, naturalHeight: actual.height},
63
63
  artifacts.ViewportDimensions
64
64
  );
@@ -96,5 +96,5 @@ class UsesResponsiveImagesSnapshot extends Audit {
96
96
  }
97
97
  }
98
98
 
99
- module.exports = UsesResponsiveImagesSnapshot;
100
- module.exports.UIStrings = UIStrings;
99
+ export default UsesResponsiveImagesSnapshot;
100
+ export {UIStrings};
@@ -13,11 +13,11 @@
13
13
  */
14
14
  'use strict';
15
15
 
16
- const ByteEfficiencyAudit = require('./byte-efficiency-audit.js');
17
- const NetworkRequest = require('../../lib/network-request.js');
18
- const ImageRecords = require('../../computed/image-records.js');
19
- const URL = require('../../lib/url-shim.js');
20
- const i18n = require('../../lib/i18n/i18n.js');
16
+ import {ByteEfficiencyAudit} from './byte-efficiency-audit.js';
17
+ import {NetworkRequest} from '../../lib/network-request.js';
18
+ import ImageRecords from '../../computed/image-records.js';
19
+ import URL from '../../lib/url-shim.js';
20
+ import * as i18n from '../../lib/i18n/i18n.js';
21
21
 
22
22
  const UIStrings = {
23
23
  /** Imperative title of a Lighthouse audit that tells the user to resize images to match the display dimensions. This is displayed in a list of audit titles that Lighthouse generates. */
@@ -29,7 +29,7 @@ const UIStrings = {
29
29
  '[Learn more](https://web.dev/uses-responsive-images/).',
30
30
  };
31
31
 
32
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
32
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
33
33
 
34
34
  const IGNORE_THRESHOLD_IN_BYTES = 4096;
35
35
 
@@ -131,7 +131,7 @@ class UsesResponsiveImages extends ByteEfficiencyAudit {
131
131
  * @param {LH.Artifacts} artifacts
132
132
  * @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
133
133
  * @param {LH.Audit.Context} context
134
- * @return {Promise<ByteEfficiencyAudit.ByteEfficiencyProduct>}
134
+ * @return {Promise<import('./byte-efficiency-audit.js').ByteEfficiencyProduct>}
135
135
  */
136
136
  static async audit_(artifacts, networkRecords, context) {
137
137
  const images = await ImageRecords.request({
@@ -197,6 +197,5 @@ class UsesResponsiveImages extends ByteEfficiencyAudit {
197
197
  }
198
198
  }
199
199
 
200
- module.exports = UsesResponsiveImages;
201
- module.exports.UIStrings = UIStrings;
202
- module.exports.str_ = str_;
200
+ export default UsesResponsiveImages;
201
+ export {UIStrings, str_};
@@ -9,9 +9,9 @@
9
9
  */
10
10
  'use strict';
11
11
 
12
- const ByteEfficiencyAudit = require('./byte-efficiency-audit.js');
13
- const URL = require('../../lib/url-shim.js');
14
- const i18n = require('../../lib/i18n/i18n.js');
12
+ import {ByteEfficiencyAudit} from './byte-efficiency-audit.js';
13
+ import URL from '../../lib/url-shim.js';
14
+ import * as i18n from '../../lib/i18n/i18n.js';
15
15
 
16
16
  const UIStrings = {
17
17
  /** Imperative title of a Lighthouse audit that tells the user to enable text compression (like gzip) in order to enhance the performance of a page. This is displayed in a list of audit titles that Lighthouse generates. */
@@ -22,7 +22,7 @@ const UIStrings = {
22
22
  ' [Learn more](https://web.dev/uses-text-compression/).',
23
23
  };
24
24
 
25
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
25
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
26
26
 
27
27
  const IGNORE_THRESHOLD_IN_BYTES = 1400;
28
28
  const IGNORE_THRESHOLD_IN_PERCENT = 0.1;
@@ -43,7 +43,7 @@ class ResponsesAreCompressed extends ByteEfficiencyAudit {
43
43
 
44
44
  /**
45
45
  * @param {LH.Artifacts} artifacts
46
- * @return {ByteEfficiencyAudit.ByteEfficiencyProduct}
46
+ * @return {import('./byte-efficiency-audit.js').ByteEfficiencyProduct}
47
47
  */
48
48
  static audit_(artifacts) {
49
49
  const uncompressedResponses = artifacts.ResponseCompression;
@@ -96,5 +96,5 @@ class ResponsesAreCompressed extends ByteEfficiencyAudit {
96
96
  }
97
97
  }
98
98
 
99
- module.exports = ResponsesAreCompressed;
100
- module.exports.UIStrings = UIStrings;
99
+ export default ResponsesAreCompressed;
100
+ export {UIStrings};
@@ -5,8 +5,8 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const Audit = require('./audit.js');
9
- const i18n = require('../lib/i18n/i18n.js');
8
+ import {Audit} from './audit.js';
9
+ import * as i18n from '../lib/i18n/i18n.js';
10
10
 
11
11
  const UIStrings = {
12
12
  /** Title of a Lighthouse audit that provides detail on the content size of a web site compared to the viewport, which is the size of the screen the site is displayed on. This descriptive title is shown to users when the site's content is sized appropriately. */
@@ -26,7 +26,7 @@ const UIStrings = {
26
26
  'size of {outerWidth}px.',
27
27
  };
28
28
 
29
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
29
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
30
30
 
31
31
  class ContentWidth extends Audit {
32
32
  /**
@@ -73,5 +73,5 @@ class ContentWidth extends Audit {
73
73
  }
74
74
  }
75
75
 
76
- module.exports = ContentWidth;
77
- module.exports.UIStrings = UIStrings;
76
+ export default ContentWidth;
77
+ export {UIStrings};
@@ -5,9 +5,9 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const Audit = require('./audit.js');
9
- const i18n = require('../lib/i18n/i18n.js');
10
- const ComputedChains = require('../computed/critical-request-chains.js');
8
+ import {Audit} from './audit.js';
9
+ import * as i18n from '../lib/i18n/i18n.js';
10
+ import ComputedChains from '../computed/critical-request-chains.js';
11
11
 
12
12
  const UIStrings = {
13
13
  /** Imperative title of a Lighthouse audit that tells the user to reduce the depth of critical network requests to enhance initial load of a page. Critical request chains are series of dependent network requests that are important for page rendering. For example, here's a 4-request-deep chain: The biglogo.jpg image is required, but is requested via the styles.css style code, which is requested by the initialize.js javascript, which is requested by the page's HTML. This is displayed in a list of audit titles that Lighthouse generates. */
@@ -25,7 +25,7 @@ const UIStrings = {
25
25
  }`,
26
26
  };
27
27
 
28
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
28
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
29
29
 
30
30
  class CriticalRequestChains extends Audit {
31
31
  /**
@@ -216,5 +216,5 @@ class CriticalRequestChains extends Audit {
216
216
  }
217
217
  }
218
218
 
219
- module.exports = CriticalRequestChains;
220
- module.exports.UIStrings = UIStrings;
219
+ export default CriticalRequestChains;
220
+ export {UIStrings};
@@ -5,13 +5,10 @@
5
5
  */
6
6
  'use strict';
7
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');
8
+ import {Audit} from './audit.js';
9
+ import MainResource from '../computed/main-resource.js';
10
+ import * as i18n from '../lib/i18n/i18n.js';
11
+ import {evaluateRawCspsForXss, getTranslatedDescription} from '../lib/csp-evaluator.js';
15
12
 
16
13
  /** @typedef {import('../lib/csp-evaluator.js').Finding} Finding */
17
14
 
@@ -35,7 +32,7 @@ const UIStrings = {
35
32
  itemSeveritySyntax: 'Syntax',
36
33
  };
37
34
 
38
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
35
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
39
36
 
40
37
  class CspXss extends Audit {
41
38
  /**
@@ -182,5 +179,5 @@ class CspXss extends Audit {
182
179
  }
183
180
  }
184
181
 
185
- module.exports = CspXss;
186
- module.exports.UIStrings = UIStrings;
182
+ export default CspXss;
183
+ export {UIStrings};
@@ -9,9 +9,10 @@
9
9
  * @fileoverview Audits a page to determine if it is calling deprecated APIs.
10
10
  */
11
11
 
12
- const Audit = require('./audit.js');
13
- const JsBundles = require('../computed/js-bundles.js');
14
- const i18n = require('../lib/i18n/i18n.js');
12
+ import {Audit} from './audit.js';
13
+
14
+ import JsBundles from '../computed/js-bundles.js';
15
+ import * as i18n from '../lib/i18n/i18n.js';
15
16
 
16
17
  const UIStrings = {
17
18
  /** 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. */
@@ -32,7 +33,7 @@ const UIStrings = {
32
33
  columnLine: 'Line',
33
34
  };
34
35
 
35
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
36
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
36
37
 
37
38
  class Deprecations extends Audit {
38
39
  /**
@@ -90,5 +91,5 @@ class Deprecations extends Audit {
90
91
  }
91
92
  }
92
93
 
93
- module.exports = Deprecations;
94
- module.exports.UIStrings = UIStrings;
94
+ export default Deprecations;
95
+ export {UIStrings};
@@ -5,11 +5,11 @@
5
5
  */
6
6
  'use strict';
7
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 MainResource = require('../computed/main-resource.js');
8
+ import {Audit} from './audit.js';
9
+ import MainThreadTasksComputed from '../computed/main-thread-tasks.js';
10
+ import NetworkRecordsComputed from '../computed/network-records.js';
11
+ import NetworkAnalysisComputed from '../computed/network-analysis.js';
12
+ import MainResource from '../computed/main-resource.js';
13
13
 
14
14
  class Diagnostics extends Audit {
15
15
  /**
@@ -77,4 +77,4 @@ class Diagnostics extends Audit {
77
77
  }
78
78
  }
79
79
 
80
- module.exports = Diagnostics;
80
+ export default Diagnostics;
@@ -12,9 +12,9 @@
12
12
  */
13
13
  'use strict';
14
14
 
15
- const Audit = require('../audit.js');
16
- const i18n = require('../../lib/i18n/i18n.js');
17
- const MainResource = require('../../computed/main-resource.js');
15
+ import {Audit} from '../audit.js';
16
+ import * as i18n from '../../lib/i18n/i18n.js';
17
+ import MainResource from '../../computed/main-resource.js';
18
18
 
19
19
  const UIStrings = {
20
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. */
@@ -27,7 +27,7 @@ const UIStrings = {
27
27
  '[Learn more](https://web.dev/charset/).',
28
28
  };
29
29
 
30
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
30
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
31
31
 
32
32
  const CONTENT_TYPE_HEADER = 'content-type';
33
33
  // /^[a-zA-Z0-9-_:.()]{2,}$/ matches all known IANA charset names (https://www.iana.org/assignments/character-sets/character-sets.xhtml)
@@ -89,8 +89,5 @@ class CharsetDefined extends Audit {
89
89
  }
90
90
  }
91
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;
92
+ export default CharsetDefined;
93
+ export {UIStrings, CHARSET_HTML_REGEX, CHARSET_HTTP_REGEX, IANA_REGEX};
@@ -5,8 +5,8 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const Audit = require('../audit.js');
9
- const i18n = require('../../lib/i18n/i18n.js');
8
+ import {Audit} from '../audit.js';
9
+ import * as i18n from '../../lib/i18n/i18n.js';
10
10
 
11
11
  const UIStrings = {
12
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. */
@@ -29,7 +29,7 @@ const UIStrings = {
29
29
  explanationBadDoctype: 'Doctype name must be the string `html`',
30
30
  };
31
31
 
32
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
32
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
33
33
 
34
34
  class Doctype extends Audit {
35
35
  /**
@@ -101,5 +101,5 @@ class Doctype extends Audit {
101
101
  }
102
102
  }
103
103
 
104
- module.exports = Doctype;
105
- module.exports.UIStrings = UIStrings;
104
+ export default Doctype;
105
+ export {UIStrings};
@@ -12,8 +12,8 @@
12
12
 
13
13
  'use strict';
14
14
 
15
- const Audit = require('../audit.js');
16
- const i18n = require('../../lib/i18n/i18n.js');
15
+ import {Audit} from '../audit.js';
16
+ import * as i18n from '../../lib/i18n/i18n.js';
17
17
 
18
18
  const UIStrings = {
19
19
  /** Title of a diagnostic audit that provides detail on the size of the web page's DOM. The size of a DOM is characterized by the total number of DOM elements and greatest DOM depth. This descriptive title is shown to users when the amount is acceptable and no user action is required. */
@@ -41,7 +41,7 @@ const UIStrings = {
41
41
  statisticDOMWidth: 'Maximum Child Elements',
42
42
  };
43
43
 
44
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
44
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
45
45
 
46
46
  class DOMSize extends Audit {
47
47
  /**
@@ -119,5 +119,5 @@ class DOMSize extends Audit {
119
119
  }
120
120
  }
121
121
 
122
- module.exports = DOMSize;
123
- module.exports.UIStrings = UIStrings;
122
+ export default DOMSize;
123
+ export {UIStrings};
@@ -11,8 +11,8 @@
11
11
 
12
12
  'use strict';
13
13
 
14
- const ViolationAudit = require('../violation-audit.js');
15
- const i18n = require('../../lib/i18n/i18n.js');
14
+ import ViolationAudit from '../violation-audit.js';
15
+ import * as i18n from '../../lib/i18n/i18n.js';
16
16
 
17
17
  const UIStrings = {
18
18
  /** Title of a Lighthouse audit that provides detail on geolocation permission requests while the page is loading. This descriptive title is shown to users when the page does not ask for geolocation permissions on load. */
@@ -25,7 +25,7 @@ const UIStrings = {
25
25
  '[Learn more](https://web.dev/geolocation-on-start/).',
26
26
  };
27
27
 
28
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
28
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
29
29
 
30
30
  class GeolocationOnStart extends ViolationAudit {
31
31
  /**
@@ -66,5 +66,5 @@ class GeolocationOnStart extends ViolationAudit {
66
66
  }
67
67
  }
68
68
 
69
- module.exports = GeolocationOnStart;
70
- module.exports.UIStrings = UIStrings;
69
+ export default GeolocationOnStart;
70
+ export {UIStrings};
@@ -15,8 +15,9 @@
15
15
  /** @typedef {{url: string}} IssueSubItem */
16
16
  /** @typedef {{issueType: string|LH.IcuMessage, subItems: Array<IssueSubItem>}} IssueItem */
17
17
 
18
- const Audit = require('../audit.js');
19
- const i18n = require('../../lib/i18n/i18n.js');
18
+ import {Audit} from '../audit.js';
19
+
20
+ import * as i18n from '../../lib/i18n/i18n.js';
20
21
 
21
22
  const UIStrings = {
22
23
  /** Title of a Lighthouse audit that provides detail on various types of problems with a website, like security or network errors. This descriptive title is shown to users when no issues were logged into the Chrome DevTools Issues panel. */
@@ -35,7 +36,7 @@ const UIStrings = {
35
36
  issueTypeHeavyAds: 'Heavy resource usage by ads',
36
37
  };
37
38
 
38
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
39
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
39
40
 
40
41
  class IssuesPanelEntries extends Audit {
41
42
  /**
@@ -188,5 +189,5 @@ class IssuesPanelEntries extends Audit {
188
189
  }
189
190
  }
190
191
 
191
- module.exports = IssuesPanelEntries;
192
- module.exports.UIStrings = UIStrings;
192
+ export default IssuesPanelEntries;
193
+ export {UIStrings};
@@ -10,8 +10,8 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const Audit = require('../audit.js');
14
- const i18n = require('../../lib/i18n/i18n.js');
13
+ import {Audit} from '../audit.js';
14
+ import * as i18n from '../../lib/i18n/i18n.js';
15
15
 
16
16
  const UIStrings = {
17
17
  /** Title of a Lighthouse audit that provides detail on the Javascript libraries that are used on the page. */
@@ -22,7 +22,7 @@ const UIStrings = {
22
22
  columnVersion: 'Version',
23
23
  };
24
24
 
25
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
25
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
26
26
 
27
27
  class JsLibrariesAudit extends Audit {
28
28
  /**
@@ -84,5 +84,5 @@ class JsLibrariesAudit extends Audit {
84
84
  }
85
85
  }
86
86
 
87
- module.exports = JsLibrariesAudit;
88
- module.exports.UIStrings = UIStrings;
87
+ export default JsLibrariesAudit;
88
+ export {UIStrings};
@@ -28,8 +28,8 @@
28
28
 
29
29
  'use strict';
30
30
 
31
- const ViolationAudit = require('../violation-audit.js');
32
- const i18n = require('../../lib/i18n/i18n.js');
31
+ import ViolationAudit from '../violation-audit.js';
32
+ import * as i18n from '../../lib/i18n/i18n.js';
33
33
 
34
34
  const UIStrings = {
35
35
  /** Title of a Lighthouse audit that provides detail on the page's use of the `document.write` API. This descriptive title is shown to users when the page does not use `document.write`. */
@@ -42,7 +42,7 @@ const UIStrings = {
42
42
  '[Learn more](https://web.dev/no-document-write/).',
43
43
  };
44
44
 
45
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
45
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
46
46
 
47
47
  class NoDocWriteAudit extends ViolationAudit {
48
48
  /**
@@ -81,5 +81,5 @@ class NoDocWriteAudit extends ViolationAudit {
81
81
  }
82
82
  }
83
83
 
84
- module.exports = NoDocWriteAudit;
85
- module.exports.UIStrings = UIStrings;
84
+ export default NoDocWriteAudit;
85
+ export {UIStrings};
@@ -12,11 +12,15 @@
12
12
 
13
13
  'use strict';
14
14
 
15
- const Audit = require('../audit.js');
16
- const Sentry = require('../../lib/sentry.js');
17
- const semver = require('semver');
18
- const snykDatabase = require('../../../third-party/snyk/snapshot.json');
19
- const i18n = require('../../lib/i18n/i18n.js');
15
+ import fs from 'fs';
16
+ import {Audit} from '../audit.js';
17
+ import {Sentry} from '../../lib/sentry.js';
18
+ import semver from 'semver';
19
+ import * as i18n from '../../lib/i18n/i18n.js';
20
+ import {LH_ROOT} from '../../../root.js';
21
+
22
+ const snykDatabase = JSON.parse(
23
+ fs.readFileSync(`${LH_ROOT}/third-party/snyk/snapshot.json`, 'utf-8'));
20
24
 
21
25
  const UIStrings = {
22
26
  /** Title of a Lighthouse audit that provides detail on Javascript libraries the page uses. This descriptive title is shown to users when all Javascript libraries are free of known security vulnerabilities. */
@@ -42,7 +46,7 @@ const UIStrings = {
42
46
  columnSeverity: 'Highest Severity',
43
47
  };
44
48
 
45
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
49
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
46
50
 
47
51
  const SEMVER_REGEX = /^(\d+\.\d+\.\d+)[^-0-9]+/;
48
52
 
@@ -221,5 +225,5 @@ class NoVulnerableLibrariesAudit extends Audit {
221
225
  }
222
226
  }
223
227
 
224
- module.exports = NoVulnerableLibrariesAudit;
225
- module.exports.UIStrings = UIStrings;
228
+ export default NoVulnerableLibrariesAudit;
229
+ export {UIStrings};
@@ -11,8 +11,8 @@
11
11
 
12
12
  'use strict';
13
13
 
14
- const ViolationAudit = require('../violation-audit.js');
15
- const i18n = require('../../lib/i18n/i18n.js');
14
+ import ViolationAudit from '../violation-audit.js';
15
+ import * as i18n from '../../lib/i18n/i18n.js';
16
16
 
17
17
  const UIStrings = {
18
18
  /** Title of a Lighthouse audit that provides detail on the page's notification permission requests. This descriptive title is shown to users when the page does not ask for notification permission on load. */
@@ -25,7 +25,7 @@ const UIStrings = {
25
25
  'instead. [Learn more](https://web.dev/notification-on-start/).',
26
26
  };
27
27
 
28
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
28
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
29
29
 
30
30
  class NotificationOnStart extends ViolationAudit {
31
31
  /**
@@ -65,5 +65,5 @@ class NotificationOnStart extends ViolationAudit {
65
65
  }
66
66
  }
67
67
 
68
- module.exports = NotificationOnStart;
69
- module.exports.UIStrings = UIStrings;
68
+ export default NotificationOnStart;
69
+ export {UIStrings};
@@ -5,8 +5,8 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const Audit = require('../audit.js');
9
- const i18n = require('../../lib/i18n/i18n.js');
8
+ import {Audit} from '../audit.js';
9
+ import * as i18n from '../../lib/i18n/i18n.js';
10
10
 
11
11
  const UIStrings = {
12
12
  /** Title of a Lighthouse audit that provides detail on the ability to paste into password fields. This descriptive title is shown to users when the page allows pasting of content into password fields. */
@@ -18,7 +18,7 @@ const UIStrings = {
18
18
  '[Learn more](https://web.dev/password-inputs-can-be-pasted-into/).',
19
19
  };
20
20
 
21
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
21
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
22
22
 
23
23
  class PasswordInputsCanBePastedIntoAudit extends Audit {
24
24
  /**
@@ -62,5 +62,5 @@ class PasswordInputsCanBePastedIntoAudit extends Audit {
62
62
  }
63
63
  }
64
64
 
65
- module.exports = PasswordInputsCanBePastedIntoAudit;
66
- module.exports.UIStrings = UIStrings;
65
+ export default PasswordInputsCanBePastedIntoAudit;
66
+ export {UIStrings};
@@ -10,19 +10,20 @@
10
10
  * origin are over the http/2 protocol.
11
11
  */
12
12
 
13
- /** @typedef {import('../../lib/dependency-graph/simulator/simulator')} Simulator */
13
+ /** @typedef {import('../../lib/dependency-graph/simulator/simulator').Simulator} Simulator */
14
14
  /** @typedef {import('../../lib/dependency-graph/base-node.js').Node} Node */
15
15
 
16
- const Audit = require('../audit.js');
17
- const ThirdParty = require('../../lib/third-party-web.js');
18
- const URL = require('../../lib/url-shim.js');
19
- const ByteEfficiencyAudit = require('../byte-efficiency/byte-efficiency-audit.js');
20
- const Interactive = require('../../computed/metrics/lantern-interactive.js');
21
- const NetworkRequest = require('../../lib/network-request.js');
22
- const NetworkRecords = require('../../computed/network-records.js');
23
- const LoadSimulator = require('../../computed/load-simulator.js');
24
- const PageDependencyGraph = require('../../computed/page-dependency-graph.js');
25
- const i18n = require('../../lib/i18n/i18n.js');
16
+ import {Audit} from '../audit.js';
17
+
18
+ import ThirdParty from '../../lib/third-party-web.js';
19
+ import URL from '../../lib/url-shim.js';
20
+ import {ByteEfficiencyAudit} from '../byte-efficiency/byte-efficiency-audit.js';
21
+ import Interactive from '../../computed/metrics/lantern-interactive.js';
22
+ import {NetworkRequest} from '../../lib/network-request.js';
23
+ import NetworkRecords from '../../computed/network-records.js';
24
+ import LoadSimulator from '../../computed/load-simulator.js';
25
+ import PageDependencyGraph from '../../computed/page-dependency-graph.js';
26
+ import * as i18n from '../../lib/i18n/i18n.js';
26
27
 
27
28
  const UIStrings = {
28
29
  /** Imperative title of a Lighthouse audit that tells the user to enable HTTP/2. This is displayed in a list of audit titles that Lighthouse generates. */
@@ -39,7 +40,7 @@ const UIStrings = {
39
40
  columnProtocol: 'Protocol',
40
41
  };
41
42
 
42
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
43
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
43
44
 
44
45
  /** @type {Set<LH.Artifacts.NetworkRequest['resourceType']>} */
45
46
  const STATIC_RESOURCE_TYPES = new Set([
@@ -255,5 +256,5 @@ class UsesHTTP2Audit extends Audit {
255
256
  }
256
257
  }
257
258
 
258
- module.exports = UsesHTTP2Audit;
259
- module.exports.UIStrings = UIStrings;
259
+ export default UsesHTTP2Audit;
260
+ export {UIStrings};