lighthouse 9.5.0-dev.20220710 → 9.5.0-dev.20220713

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
@@ -5,22 +5,24 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const path = require('path');
9
- const log = require('lighthouse-logger');
10
- const Runner = require('../../runner.js');
11
- const format = require('../../../shared/localization/format.js');
12
- const defaultConfig = require('./default-config.js');
13
- const {defaultNavigationConfig, nonSimulatedPassConfigOverrides} = require('../../config/constants.js'); // eslint-disable-line max-len
14
- const {
8
+ import path from 'path';
9
+ import log from 'lighthouse-logger';
10
+ import {Runner} from '../../runner.js';
11
+ import defaultConfig from './default-config.js';
12
+ import {defaultNavigationConfig, nonSimulatedPassConfigOverrides} from '../../config/constants.js'; // eslint-disable-line max-len
13
+
14
+ import {
15
15
  isFRGathererDefn,
16
16
  throwInvalidDependencyOrder,
17
17
  isValidArtifactDependency,
18
18
  throwInvalidArtifactDependency,
19
19
  assertArtifactTopologicalOrder,
20
20
  assertValidConfig,
21
- } = require('./validation.js');
22
- const {filterConfigByGatherMode, filterConfigByExplicitFilters} = require('./filters.js');
23
- const {
21
+ } from './validation.js';
22
+
23
+ import {filterConfigByGatherMode, filterConfigByExplicitFilters} from './filters.js';
24
+
25
+ import {
24
26
  deepCloneConfigJson,
25
27
  resolveSettings,
26
28
  resolveAuditsToDefns,
@@ -28,8 +30,12 @@ const {
28
30
  mergePlugins,
29
31
  mergeConfigFragment,
30
32
  mergeConfigFragmentArrayByKey,
31
- } = require('../../config/config-helpers.js');
32
- const defaultConfigPath = path.join(__dirname, './default-config.js');
33
+ } from '../../config/config-helpers.js';
34
+
35
+ import {getModuleDirectory} from '../../../esm-utils.js';
36
+ import * as format from '../../../shared/localization/format.js';
37
+
38
+ const defaultConfigPath = path.join(getModuleDirectory(import.meta), './default-config.js');
33
39
 
34
40
  /** @typedef {LH.Config.FRContext & {gatherMode: LH.Gatherer.GatherMode}} ConfigContext */
35
41
 
@@ -134,7 +140,8 @@ async function resolveArtifactsToDefns(artifacts, configDir) {
134
140
  const artifactDefnsBySymbol = new Map();
135
141
 
136
142
  const coreGathererList = Runner.getGathererList();
137
- const artifactDefnsPromises = artifacts.map(async (artifactJson) => {
143
+ const artifactDefns = [];
144
+ for (const artifactJson of artifacts) {
138
145
  /** @type {LH.Config.GathererJson} */
139
146
  // @ts-expect-error - remove when legacy runner path is removed.
140
147
  const gathererJson = artifactJson.gatherer;
@@ -155,9 +162,8 @@ async function resolveArtifactsToDefns(artifacts, configDir) {
155
162
 
156
163
  const symbol = artifact.gatherer.instance.meta.symbol;
157
164
  if (symbol) artifactDefnsBySymbol.set(symbol, artifact);
158
- return artifact;
159
- });
160
- const artifactDefns = await Promise.all(artifactDefnsPromises);
165
+ artifactDefns.push(artifact);
166
+ }
161
167
 
162
168
  log.timeEnd(status);
163
169
  return artifactDefns;
@@ -323,4 +329,8 @@ function getConfigDisplayString(config) {
323
329
  return JSON.stringify(jsonConfig, null, 2);
324
330
  }
325
331
 
326
- module.exports = {resolveWorkingCopy, initializeConfig, getConfigDisplayString};
332
+ export {
333
+ resolveWorkingCopy,
334
+ initializeConfig,
335
+ getConfigDisplayString,
336
+ };
@@ -5,9 +5,9 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const legacyDefaultConfig = require('../../config/default-config.js');
9
- const m2a = require('../../config/metrics-to-audits.js');
10
- const {deepClone} = require('../../config/config-helpers.js');
8
+ import legacyDefaultConfig from '../../config/default-config.js';
9
+ import {deepClone} from '../../config/config-helpers.js';
10
+ import {metricsToAudits} from '../../config/metrics-to-audits.js';
11
11
 
12
12
  /** @type {LH.Config.AuditJson[]} */
13
13
  const frAudits = [
@@ -21,7 +21,7 @@ const frCategoryAuditRefExtensions = {
21
21
  'performance': [
22
22
  {id: 'uses-responsive-images-snapshot', weight: 0},
23
23
  {id: 'experimental-interaction-to-next-paint', weight: 0, group: 'metrics', acronym: 'INP',
24
- relevantAudits: m2a.inpRelevantAudits},
24
+ relevantAudits: metricsToAudits.inpRelevantAudits},
25
25
  {id: 'work-during-interaction', weight: 0},
26
26
  ],
27
27
  };
@@ -205,4 +205,4 @@ const defaultConfig = {
205
205
  groups: legacyDefaultConfig.groups,
206
206
  };
207
207
 
208
- module.exports = defaultConfig;
208
+ export default defaultConfig;
@@ -5,9 +5,8 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const log = require('lighthouse-logger');
9
-
10
- const Audit = require('../../audits/audit.js');
8
+ import log from 'lighthouse-logger';
9
+ import {Audit} from '../../audits/audit.js';
11
10
 
12
11
  /** @type {Record<keyof LH.FRBaseArtifacts, string>} */
13
12
  const baseArtifactKeySource = {
@@ -324,7 +323,7 @@ function filterConfigByExplicitFilters(config, filters) {
324
323
  };
325
324
  }
326
325
 
327
- module.exports = {
326
+ export {
328
327
  filterConfigByGatherMode,
329
328
  filterConfigByExplicitFilters,
330
329
  filterArtifactsByGatherMode,
@@ -5,9 +5,9 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const Audit = require('../../audits/audit.js');
9
- const BaseFRGatherer = require('../gather/base-gatherer.js');
10
- const i18n = require('../../lib/i18n/i18n.js');
8
+ import {Audit} from '../../audits/audit.js';
9
+ import BaseFRGatherer from '../gather/base-gatherer.js';
10
+ import * as i18n from '../../lib/i18n/i18n.js';
11
11
 
12
12
  /**
13
13
  * @param {LH.Config.GathererDefn | LH.Config.AnyFRGathererDefn} gathererDefn
@@ -297,7 +297,7 @@ function throwInvalidArtifactDependency(artifactId, dependencyKey) {
297
297
  );
298
298
  }
299
299
 
300
- module.exports = {
300
+ export {
301
301
  isFRGathererDefn,
302
302
  isValidArtifactDependency,
303
303
  assertValidPluginName,
@@ -5,13 +5,11 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const log = require('lighthouse-logger');
9
- const isDeepEqual = require('lodash/isEqual.js');
10
- const {
11
- getBrowserVersion,
12
- getBenchmarkIndex,
13
- getEnvironmentWarnings,
14
- } = require('../../gather/driver/environment.js');
8
+ import log from 'lighthouse-logger';
9
+ import isDeepEqual from 'lodash/isEqual.js';
10
+ import {
11
+ getBrowserVersion, getBenchmarkIndex, getEnvironmentWarnings,
12
+ } from '../../gather/driver/environment.js';
15
13
 
16
14
  /**
17
15
  * @param {LH.Config.FRConfig} config
@@ -96,7 +94,7 @@ function finalizeArtifacts(baseArtifacts, gathererArtifacts) {
96
94
  return artifacts;
97
95
  }
98
96
 
99
- module.exports = {
97
+ export {
100
98
  getBaseArtifacts,
101
99
  finalizeArtifacts,
102
100
  };
@@ -104,4 +104,5 @@ class FRGatherer {
104
104
  }
105
105
  }
106
106
 
107
- module.exports = FRGatherer;
107
+ // TODO(esmodules): do not use default export
108
+ export default FRGatherer;
@@ -5,10 +5,10 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const log = require('lighthouse-logger');
9
- const ExecutionContext = require('../../gather/driver/execution-context.js');
10
- const Fetcher = require('../../gather/fetcher.js');
11
- const TargetManager = require('../../gather/driver/target-manager.js');
8
+ import log from 'lighthouse-logger';
9
+ import {ExecutionContext} from '../../gather/driver/execution-context.js';
10
+ import {TargetManager} from '../../gather/driver/target-manager.js';
11
+ import {Fetcher} from '../../gather/fetcher.js';
12
12
 
13
13
  /** @return {*} */
14
14
  const throwNotConnectedFn = () => {
@@ -89,4 +89,4 @@ class Driver {
89
89
  }
90
90
  }
91
91
 
92
- module.exports = Driver;
92
+ export {Driver};
@@ -5,29 +5,25 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const puppeteer = require('puppeteer-core');
9
- const log = require('lighthouse-logger');
10
- const Driver = require('./driver.js');
11
- const Runner = require('../../runner.js');
12
- const {
13
- getEmptyArtifactState,
14
- collectPhaseArtifacts,
15
- awaitArtifacts,
16
- } = require('./runner-helpers.js');
17
- const prepare = require('../../gather/driver/prepare.js');
18
- const {gotoURL} = require('../../gather/driver/navigation.js');
19
- const storage = require('../../gather/driver/storage.js');
20
- const emulation = require('../../lib/emulation.js');
21
- const {defaultNavigationConfig} = require('../../config/constants.js');
22
- const {initializeConfig} = require('../config/config.js');
23
- const {getBaseArtifacts, finalizeArtifacts} = require('./base-artifacts.js');
24
- const format = require('../../../shared/localization/format.js');
25
- const LighthouseError = require('../../lib/lh-error.js');
26
- const URL = require('../../lib/url-shim.js');
27
- const {getPageLoadError} = require('../../lib/navigation-error.js');
28
- const Trace = require('../../gather/gatherers/trace.js');
29
- const DevtoolsLog = require('../../gather/gatherers/devtools-log.js');
30
- const NetworkRecords = require('../../computed/network-records.js');
8
+ import puppeteer from 'puppeteer-core';
9
+ import log from 'lighthouse-logger';
10
+ import {Driver} from './driver.js';
11
+ import {Runner} from '../../runner.js';
12
+ import {getEmptyArtifactState, collectPhaseArtifacts, awaitArtifacts} from './runner-helpers.js';
13
+ import * as prepare from '../../gather/driver/prepare.js';
14
+ import {gotoURL} from '../../gather/driver/navigation.js';
15
+ import * as storage from '../../gather/driver/storage.js';
16
+ import * as emulation from '../../lib/emulation.js';
17
+ import {defaultNavigationConfig} from '../../config/constants.js';
18
+ import {initializeConfig} from '../config/config.js';
19
+ import {getBaseArtifacts, finalizeArtifacts} from './base-artifacts.js';
20
+ import format from '../../../shared/localization/format.js';
21
+ import {LighthouseError} from '../../lib/lh-error.js';
22
+ import URL from '../../lib/url-shim.js';
23
+ import {getPageLoadError} from '../../lib/navigation-error.js';
24
+ import Trace from '../../gather/gatherers/trace.js';
25
+ import DevtoolsLog from '../../gather/gatherers/devtools-log.js';
26
+ import NetworkRecords from '../../computed/network-records.js';
31
27
 
32
28
  /** @typedef {{skipAboutBlank?: boolean}} InternalOptions */
33
29
 
@@ -148,11 +144,11 @@ async function _collectDebugData(navigationContext, phaseState) {
148
144
  const getArtifactState = phaseState.artifactState.getArtifact;
149
145
 
150
146
  const devtoolsLogArtifactId = devtoolsLogArtifactDefn?.id;
151
- const devtoolsLog = devtoolsLogArtifactId && await getArtifactState[devtoolsLogArtifactId];
152
- const records = devtoolsLog && await NetworkRecords.request(devtoolsLog, navigationContext);
147
+ const devtoolsLog = devtoolsLogArtifactId && (await getArtifactState[devtoolsLogArtifactId]);
148
+ const records = devtoolsLog && (await NetworkRecords.request(devtoolsLog, navigationContext));
153
149
 
154
150
  const traceArtifactId = traceArtifactDefn?.id;
155
- const trace = traceArtifactId && await getArtifactState[traceArtifactId];
151
+ const trace = traceArtifactId && (await getArtifactState[traceArtifactId]);
156
152
 
157
153
  return {devtoolsLog, records, trace};
158
154
  }
@@ -356,7 +352,7 @@ async function navigationGather(requestor, options) {
356
352
  return {artifacts, runnerOptions};
357
353
  }
358
354
 
359
- module.exports = {
355
+ export {
360
356
  navigationGather,
361
357
  _setup,
362
358
  _setupNavigation,
@@ -7,7 +7,7 @@
7
7
 
8
8
  /**
9
9
  * @typedef CollectPhaseArtifactOptions
10
- * @property {import('./driver.js')} driver
10
+ * @property {import('./driver.js').Driver} driver
11
11
  * @property {Array<LH.Config.AnyArtifactDefn>} artifactDefinitions
12
12
  * @property {ArtifactState} artifactState
13
13
  * @property {LH.FRBaseArtifacts} baseArtifacts
@@ -23,7 +23,7 @@
23
23
 
24
24
  /** @typedef {LH.Gatherer.FRTransitionalContext<LH.Gatherer.DependencyKey>['dependencies']} Dependencies */
25
25
 
26
- const log = require('lighthouse-logger');
26
+ import log from 'lighthouse-logger';
27
27
 
28
28
  /**
29
29
  *
@@ -149,7 +149,7 @@ async function awaitArtifacts(artifactState) {
149
149
  return artifacts;
150
150
  }
151
151
 
152
- module.exports = {
152
+ export {
153
153
  getEmptyArtifactState,
154
154
  awaitArtifacts,
155
155
  collectPhaseArtifacts,
@@ -5,8 +5,8 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const EventEmitter = require('events').EventEmitter;
9
- const LighthouseError = require('../../lib/lh-error.js');
8
+ import EventEmitter from 'events';
9
+ import {LighthouseError} from '../../lib/lh-error.js';
10
10
 
11
11
  // Controls how long to wait for a response after sending a DevTools protocol command.
12
12
  const DEFAULT_PROTOCOL_TIMEOUT = 30000;
@@ -111,4 +111,4 @@ class ProtocolSession extends CrdpEventEmitter {
111
111
  }
112
112
  }
113
113
 
114
- module.exports = ProtocolSession;
114
+ export {ProtocolSession};
@@ -5,16 +5,12 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const log = require('lighthouse-logger');
9
- const Driver = require('./driver.js');
10
- const Runner = require('../../runner.js');
11
- const {
12
- getEmptyArtifactState,
13
- collectPhaseArtifacts,
14
- awaitArtifacts,
15
- } = require('./runner-helpers.js');
16
- const {initializeConfig} = require('../config/config.js');
17
- const {getBaseArtifacts, finalizeArtifacts} = require('./base-artifacts.js');
8
+ import log from 'lighthouse-logger';
9
+ import {Driver} from './driver.js';
10
+ import {Runner} from '../../runner.js';
11
+ import {getEmptyArtifactState, collectPhaseArtifacts, awaitArtifacts} from './runner-helpers.js';
12
+ import {initializeConfig} from '../config/config.js';
13
+ import {getBaseArtifacts, finalizeArtifacts} from './base-artifacts.js';
18
14
 
19
15
  /**
20
16
  * @param {{page: LH.Puppeteer.Page, config?: LH.Config.Json, configContext?: LH.Config.FRContext}} options
@@ -65,6 +61,6 @@ async function snapshotGather(options) {
65
61
  return {artifacts, runnerOptions};
66
62
  }
67
63
 
68
- module.exports = {
64
+ export {
69
65
  snapshotGather,
70
66
  };
@@ -5,17 +5,13 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const log = require('lighthouse-logger');
9
- const Driver = require('./driver.js');
10
- const Runner = require('../../runner.js');
11
- const {
12
- getEmptyArtifactState,
13
- collectPhaseArtifacts,
14
- awaitArtifacts,
15
- } = require('./runner-helpers.js');
16
- const {prepareTargetForTimespanMode} = require('../../gather/driver/prepare.js');
17
- const {initializeConfig} = require('../config/config.js');
18
- const {getBaseArtifacts, finalizeArtifacts} = require('./base-artifacts.js');
8
+ import log from 'lighthouse-logger';
9
+ import {Driver} from './driver.js';
10
+ import {Runner} from '../../runner.js';
11
+ import {getEmptyArtifactState, collectPhaseArtifacts, awaitArtifacts} from './runner-helpers.js';
12
+ import {prepareTargetForTimespanMode} from '../../gather/driver/prepare.js';
13
+ import {initializeConfig} from '../config/config.js';
14
+ import {getBaseArtifacts, finalizeArtifacts} from './base-artifacts.js';
19
15
 
20
16
  /**
21
17
  * @param {{page: LH.Puppeteer.Page, config?: LH.Config.Json, configContext?: LH.Config.FRContext}} options
@@ -78,6 +74,6 @@ async function startTimespanGather(options) {
78
74
  };
79
75
  }
80
76
 
81
- module.exports = {
77
+ export {
82
78
  startTimespanGather,
83
79
  };
@@ -5,12 +5,12 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const {generateFlowReportHtml} = require('../../report/generator/report-generator.js');
9
- const {snapshotGather} = require('./gather/snapshot-runner.js');
10
- const {startTimespanGather} = require('./gather/timespan-runner.js');
11
- const {navigationGather} = require('./gather/navigation-runner.js');
12
- const Runner = require('../runner.js');
13
- const {initializeConfig} = require('./config/config.js');
8
+ import ReportGenerator from '../../report/generator/report-generator.js';
9
+ import {snapshotGather} from './gather/snapshot-runner.js';
10
+ import {startTimespanGather} from './gather/timespan-runner.js';
11
+ import {navigationGather} from './gather/navigation-runner.js';
12
+ import {Runner} from '../runner.js';
13
+ import {initializeConfig} from './config/config.js';
14
14
 
15
15
  /** @typedef {Parameters<snapshotGather>[0]} FrOptions */
16
16
  /** @typedef {Omit<FrOptions, 'page'> & {name?: string}} UserFlowOptions */
@@ -220,7 +220,7 @@ class UserFlow {
220
220
  */
221
221
  async generateReport() {
222
222
  const flowResult = await this.createFlowResult();
223
- return generateFlowReportHtml(flowResult);
223
+ return ReportGenerator.generateFlowReportHtml(flowResult);
224
224
  }
225
225
 
226
226
  /**
@@ -273,7 +273,7 @@ async function auditGatherSteps(gatherSteps, options) {
273
273
  }
274
274
 
275
275
 
276
- module.exports = {
276
+ export {
277
277
  UserFlow,
278
278
  auditGatherSteps,
279
279
  };
@@ -5,9 +5,9 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const EventEmitter = require('events').EventEmitter;
9
- const log = require('lighthouse-logger');
10
- const LighthouseError = require('../../lib/lh-error.js');
8
+ import {EventEmitter} from 'events';
9
+ import log from 'lighthouse-logger';
10
+ import {LighthouseError} from '../../lib/lh-error.js';
11
11
 
12
12
  // TODO(bckenny): CommandCallback properties should be tied by command type after
13
13
  // https://github.com/Microsoft/TypeScript/pull/22348. See driver.js TODO.
@@ -176,4 +176,4 @@ class Connection {
176
176
  }
177
177
  }
178
178
 
179
- module.exports = Connection;
179
+ export {Connection};
@@ -5,11 +5,11 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const Connection = require('./connection.js');
9
- const WebSocket = require('ws');
10
- const http = require('http');
11
- const log = require('lighthouse-logger');
12
- const LighthouseError = require('../../lib/lh-error.js');
8
+ import {Connection} from './connection.js';
9
+ import WebSocket from 'ws';
10
+ import http from 'http';
11
+ import log from 'lighthouse-logger';
12
+ import {LighthouseError} from '../../lib/lh-error.js';
13
13
 
14
14
  const DEFAULT_HOSTNAME = '127.0.0.1';
15
15
  const CONNECT_TIMEOUT = 10000;
@@ -158,4 +158,4 @@ class CriConnection extends Connection {
158
158
  }
159
159
  }
160
160
 
161
- module.exports = CriConnection;
161
+ export {CriConnection};
@@ -5,7 +5,7 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const Connection = require('./connection.js');
8
+ import {Connection} from './connection.js';
9
9
 
10
10
  /* eslint-disable no-unused-vars */
11
11
 
@@ -55,4 +55,4 @@ class RawConnection extends Connection {
55
55
  }
56
56
  }
57
57
 
58
- module.exports = RawConnection;
58
+ export {RawConnection};
@@ -55,4 +55,4 @@ async function resolveDevtoolsNodePathToObjectId(session, path) {
55
55
  }
56
56
  }
57
57
 
58
- module.exports = {resolveNodeIdToObjectId, resolveDevtoolsNodePathToObjectId};
58
+ export {resolveNodeIdToObjectId, resolveDevtoolsNodePathToObjectId};
@@ -5,10 +5,10 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const log = require('lighthouse-logger');
9
- const constants = require('../../config/constants.js');
10
- const pageFunctions = require('../../lib/page-functions.js');
11
- const i18n = require('../../lib/i18n/i18n.js');
8
+ import log from 'lighthouse-logger';
9
+ import * as constants from '../../config/constants.js';
10
+ import {pageFunctions} from '../../lib/page-functions.js';
11
+ import * as i18n from '../../lib/i18n/i18n.js';
12
12
 
13
13
  const UIStrings = {
14
14
  /**
@@ -27,7 +27,7 @@ const UIStrings = {
27
27
  */
28
28
  const SLOW_CPU_BENCHMARK_INDEX_THRESHOLD = 1000;
29
29
 
30
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
30
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
31
31
 
32
32
  /**
33
33
  * @param {LH.Gatherer.FRProtocolSession} session
@@ -96,7 +96,7 @@ function getEnvironmentWarnings(context) {
96
96
  ].filter(/** @return {s is LH.IcuMessage} */ s => !!s);
97
97
  }
98
98
 
99
- module.exports = {
99
+ export {
100
100
  UIStrings,
101
101
  getBrowserVersion,
102
102
  getBenchmarkIndex,
@@ -7,7 +7,7 @@
7
7
 
8
8
  /* global window */
9
9
 
10
- const pageFunctions = require('../../lib/page-functions.js');
10
+ import {pageFunctions} from '../../lib/page-functions.js';
11
11
 
12
12
  class ExecutionContext {
13
13
  /** @param {LH.Gatherer.FRProtocolSession} session */
@@ -249,4 +249,4 @@ class ExecutionContext {
249
249
  }
250
250
  }
251
251
 
252
- module.exports = ExecutionContext;
252
+ export {ExecutionContext};
@@ -5,12 +5,12 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const log = require('lighthouse-logger');
9
- const NetworkMonitor = require('./network-monitor.js');
10
- const {waitForFullyLoaded, waitForFrameNavigated, waitForUserToContinue} = require('./wait-for-condition.js'); // eslint-disable-line max-len
11
- const constants = require('../../config/constants.js');
12
- const i18n = require('../../lib/i18n/i18n.js');
13
- const URL = require('../../lib/url-shim.js');
8
+ import log from 'lighthouse-logger';
9
+ import {NetworkMonitor} from './network-monitor.js';
10
+ import {waitForFullyLoaded, waitForFrameNavigated, waitForUserToContinue} from './wait-for-condition.js'; // eslint-disable-line max-len
11
+ import * as constants from '../../config/constants.js';
12
+ import * as i18n from '../../lib/i18n/i18n.js';
13
+ import URL from '../../lib/url-shim.js';
14
14
 
15
15
  const UIStrings = {
16
16
  /**
@@ -28,7 +28,7 @@ const UIStrings = {
28
28
  'Results may be incomplete.',
29
29
  };
30
30
 
31
- const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
31
+ const str_ = i18n.createMessageInstanceIdFn(import.meta.url, UIStrings);
32
32
 
33
33
 
34
34
  // Controls how long to wait after FCP before continuing
@@ -179,4 +179,4 @@ function getNavigationWarnings(navigation) {
179
179
  return warnings;
180
180
  }
181
181
 
182
- module.exports = {gotoURL, getNavigationWarnings, UIStrings};
182
+ export {gotoURL, getNavigationWarnings, UIStrings};
@@ -10,11 +10,12 @@
10
10
  * status inspection state.
11
11
  */
12
12
 
13
- const log = require('lighthouse-logger');
14
- const {EventEmitter} = require('events');
15
- const NetworkRecorder = require('../../lib/network-recorder.js');
16
- const NetworkRequest = require('../../lib/network-request.js');
17
- const URL = require('../../lib/url-shim.js');
13
+ import log from 'lighthouse-logger';
14
+
15
+ import {EventEmitter} from 'events';
16
+ import {NetworkRecorder} from '../../lib/network-recorder.js';
17
+ import {NetworkRequest} from '../../lib/network-request.js';
18
+ import URL from '../../lib/url-shim.js';
18
19
 
19
20
  /** @typedef {import('../../lib/network-recorder.js').NetworkRecorderEventMap} NetworkRecorderEventMap */
20
21
  /** @typedef {'network-2-idle'|'network-critical-idle'|'networkidle'|'networkbusy'|'network-critical-busy'|'network-2-busy'} NetworkMonitorEvent_ */
@@ -256,4 +257,4 @@ class NetworkMonitor extends NetworkMonitorEventEmitter {
256
257
  }
257
258
  }
258
259
 
259
- module.exports = NetworkMonitor;
260
+ export {NetworkMonitor};
@@ -5,7 +5,7 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const NetworkRequest = require('../../lib/network-request.js');
8
+ import {NetworkRequest} from '../../lib/network-request.js';
9
9
 
10
10
  /**
11
11
  * Return the body of the response with the given ID. Rejects if getting the
@@ -25,4 +25,4 @@ async function fetchResponseBodyFromCache(session, requestId, timeout = 1000) {
25
25
  return result.body;
26
26
  }
27
27
 
28
- module.exports = {fetchResponseBodyFromCache};
28
+ export {fetchResponseBodyFromCache};