lighthouse 10.1.1 → 10.2.0-dev.20230504

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 (403) hide show
  1. package/cli/cli-flags.d.ts +1 -1
  2. package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +1 -1
  3. package/cli/test/smokehouse/report-assert.d.ts +1 -1
  4. package/core/audits/accessibility/accesskeys.d.ts +1 -1
  5. package/core/audits/accessibility/accesskeys.js +1 -1
  6. package/core/audits/accessibility/aria-allowed-attr.d.ts +1 -1
  7. package/core/audits/accessibility/aria-allowed-attr.js +1 -1
  8. package/core/audits/accessibility/aria-command-name.d.ts +1 -1
  9. package/core/audits/accessibility/aria-command-name.js +1 -1
  10. package/core/audits/accessibility/aria-hidden-body.d.ts +1 -1
  11. package/core/audits/accessibility/aria-hidden-body.js +1 -1
  12. package/core/audits/accessibility/aria-hidden-focus.d.ts +1 -1
  13. package/core/audits/accessibility/aria-hidden-focus.js +1 -1
  14. package/core/audits/accessibility/aria-input-field-name.d.ts +1 -1
  15. package/core/audits/accessibility/aria-input-field-name.js +1 -1
  16. package/core/audits/accessibility/aria-meter-name.d.ts +1 -1
  17. package/core/audits/accessibility/aria-meter-name.js +1 -1
  18. package/core/audits/accessibility/aria-progressbar-name.d.ts +1 -1
  19. package/core/audits/accessibility/aria-progressbar-name.js +1 -1
  20. package/core/audits/accessibility/aria-required-attr.d.ts +1 -1
  21. package/core/audits/accessibility/aria-required-attr.js +1 -1
  22. package/core/audits/accessibility/aria-required-children.d.ts +1 -1
  23. package/core/audits/accessibility/aria-required-children.js +1 -1
  24. package/core/audits/accessibility/aria-required-parent.d.ts +1 -1
  25. package/core/audits/accessibility/aria-required-parent.js +1 -1
  26. package/core/audits/accessibility/aria-roles.d.ts +1 -1
  27. package/core/audits/accessibility/aria-roles.js +1 -1
  28. package/core/audits/accessibility/aria-toggle-field-name.d.ts +1 -1
  29. package/core/audits/accessibility/aria-toggle-field-name.js +1 -1
  30. package/core/audits/accessibility/aria-tooltip-name.d.ts +1 -1
  31. package/core/audits/accessibility/aria-tooltip-name.js +1 -1
  32. package/core/audits/accessibility/aria-treeitem-name.d.ts +1 -1
  33. package/core/audits/accessibility/aria-treeitem-name.js +1 -1
  34. package/core/audits/accessibility/aria-valid-attr-value.d.ts +1 -1
  35. package/core/audits/accessibility/aria-valid-attr-value.js +1 -1
  36. package/core/audits/accessibility/aria-valid-attr.d.ts +1 -1
  37. package/core/audits/accessibility/aria-valid-attr.js +1 -1
  38. package/core/audits/accessibility/axe-audit.d.ts +1 -1
  39. package/core/audits/accessibility/button-name.d.ts +1 -1
  40. package/core/audits/accessibility/button-name.js +1 -1
  41. package/core/audits/accessibility/bypass.d.ts +1 -1
  42. package/core/audits/accessibility/bypass.js +1 -1
  43. package/core/audits/accessibility/color-contrast.d.ts +1 -1
  44. package/core/audits/accessibility/color-contrast.js +1 -1
  45. package/core/audits/accessibility/definition-list.d.ts +1 -1
  46. package/core/audits/accessibility/definition-list.js +1 -1
  47. package/core/audits/accessibility/dlitem.d.ts +1 -1
  48. package/core/audits/accessibility/dlitem.js +1 -1
  49. package/core/audits/accessibility/document-title.d.ts +1 -1
  50. package/core/audits/accessibility/document-title.js +1 -1
  51. package/core/audits/accessibility/duplicate-id-active.d.ts +1 -1
  52. package/core/audits/accessibility/duplicate-id-active.js +1 -1
  53. package/core/audits/accessibility/duplicate-id-aria.d.ts +1 -1
  54. package/core/audits/accessibility/duplicate-id-aria.js +1 -1
  55. package/core/audits/accessibility/form-field-multiple-labels.d.ts +1 -1
  56. package/core/audits/accessibility/form-field-multiple-labels.js +1 -1
  57. package/core/audits/accessibility/frame-title.d.ts +1 -1
  58. package/core/audits/accessibility/frame-title.js +1 -1
  59. package/core/audits/accessibility/heading-order.d.ts +1 -1
  60. package/core/audits/accessibility/heading-order.js +1 -1
  61. package/core/audits/accessibility/html-has-lang.d.ts +1 -1
  62. package/core/audits/accessibility/html-has-lang.js +1 -1
  63. package/core/audits/accessibility/html-lang-valid.d.ts +1 -1
  64. package/core/audits/accessibility/html-lang-valid.js +1 -1
  65. package/core/audits/accessibility/image-alt.d.ts +1 -1
  66. package/core/audits/accessibility/image-alt.js +1 -1
  67. package/core/audits/accessibility/input-image-alt.d.ts +1 -1
  68. package/core/audits/accessibility/input-image-alt.js +1 -1
  69. package/core/audits/accessibility/label.d.ts +1 -1
  70. package/core/audits/accessibility/label.js +1 -1
  71. package/core/audits/accessibility/link-name.d.ts +1 -1
  72. package/core/audits/accessibility/link-name.js +1 -1
  73. package/core/audits/accessibility/list.d.ts +1 -1
  74. package/core/audits/accessibility/list.js +1 -1
  75. package/core/audits/accessibility/listitem.d.ts +1 -1
  76. package/core/audits/accessibility/listitem.js +1 -1
  77. package/core/audits/accessibility/manual/custom-controls-labels.d.ts +1 -1
  78. package/core/audits/accessibility/manual/custom-controls-roles.d.ts +1 -1
  79. package/core/audits/accessibility/manual/focus-traps.d.ts +1 -1
  80. package/core/audits/accessibility/manual/focusable-controls.d.ts +1 -1
  81. package/core/audits/accessibility/manual/interactive-element-affordance.d.ts +1 -1
  82. package/core/audits/accessibility/manual/logical-tab-order.d.ts +1 -1
  83. package/core/audits/accessibility/manual/managed-focus.d.ts +1 -1
  84. package/core/audits/accessibility/manual/offscreen-content-hidden.d.ts +1 -1
  85. package/core/audits/accessibility/manual/use-landmarks.d.ts +1 -1
  86. package/core/audits/accessibility/manual/visual-order-follows-dom.d.ts +1 -1
  87. package/core/audits/accessibility/meta-refresh.d.ts +1 -1
  88. package/core/audits/accessibility/meta-refresh.js +1 -1
  89. package/core/audits/accessibility/meta-viewport.d.ts +1 -1
  90. package/core/audits/accessibility/meta-viewport.js +1 -1
  91. package/core/audits/accessibility/object-alt.d.ts +1 -1
  92. package/core/audits/accessibility/object-alt.js +1 -1
  93. package/core/audits/accessibility/tabindex.d.ts +1 -1
  94. package/core/audits/accessibility/tabindex.js +1 -1
  95. package/core/audits/accessibility/td-headers-attr.d.ts +1 -1
  96. package/core/audits/accessibility/td-headers-attr.js +1 -1
  97. package/core/audits/accessibility/th-has-data-cells.d.ts +1 -1
  98. package/core/audits/accessibility/th-has-data-cells.js +1 -1
  99. package/core/audits/accessibility/valid-lang.d.ts +1 -1
  100. package/core/audits/accessibility/valid-lang.js +1 -1
  101. package/core/audits/accessibility/video-caption.d.ts +1 -1
  102. package/core/audits/accessibility/video-caption.js +1 -1
  103. package/core/audits/audit.d.ts +1 -1
  104. package/core/audits/autocomplete.d.ts +1 -1
  105. package/core/audits/bf-cache.d.ts +1 -1
  106. package/core/audits/bootup-time.d.ts +1 -1
  107. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +1 -1
  108. package/core/audits/byte-efficiency/duplicated-javascript.d.ts +1 -1
  109. package/core/audits/byte-efficiency/efficient-animated-content.d.ts +2 -2
  110. package/core/audits/byte-efficiency/legacy-javascript.d.ts +2 -2
  111. package/core/audits/byte-efficiency/modern-image-formats.d.ts +1 -1
  112. package/core/audits/byte-efficiency/offscreen-images.d.ts +2 -2
  113. package/core/audits/byte-efficiency/render-blocking-resources.d.ts +1 -1
  114. package/core/audits/byte-efficiency/total-byte-weight.d.ts +1 -1
  115. package/core/audits/byte-efficiency/unminified-css.d.ts +1 -1
  116. package/core/audits/byte-efficiency/unminified-javascript.d.ts +1 -1
  117. package/core/audits/byte-efficiency/unused-css-rules.d.ts +1 -1
  118. package/core/audits/byte-efficiency/unused-javascript.d.ts +1 -1
  119. package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +3 -3
  120. package/core/audits/byte-efficiency/uses-optimized-images.d.ts +1 -1
  121. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +1 -1
  122. package/core/audits/byte-efficiency/uses-responsive-images.d.ts +2 -2
  123. package/core/audits/byte-efficiency/uses-text-compression.d.ts +1 -1
  124. package/core/audits/content-width.d.ts +1 -1
  125. package/core/audits/critical-request-chains.d.ts +1 -1
  126. package/core/audits/csp-xss.d.ts +1 -1
  127. package/core/audits/deprecations.d.ts +1 -1
  128. package/core/audits/diagnostics.d.ts +1 -1
  129. package/core/audits/dobetterweb/charset.d.ts +1 -1
  130. package/core/audits/dobetterweb/doctype.d.ts +1 -1
  131. package/core/audits/dobetterweb/dom-size.d.ts +1 -1
  132. package/core/audits/dobetterweb/geolocation-on-start.d.ts +1 -1
  133. package/core/audits/dobetterweb/inspector-issues.d.ts +1 -1
  134. package/core/audits/dobetterweb/js-libraries.d.ts +1 -1
  135. package/core/audits/dobetterweb/no-document-write.d.ts +1 -1
  136. package/core/audits/dobetterweb/notification-on-start.d.ts +1 -1
  137. package/core/audits/dobetterweb/paste-preventing-inputs.d.ts +1 -1
  138. package/core/audits/dobetterweb/uses-http2.d.ts +3 -3
  139. package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +1 -1
  140. package/core/audits/errors-in-console.d.ts +1 -1
  141. package/core/audits/final-screenshot.d.ts +1 -1
  142. package/core/audits/font-display.d.ts +1 -1
  143. package/core/audits/image-aspect-ratio.d.ts +1 -1
  144. package/core/audits/image-size-responsive.d.ts +1 -1
  145. package/core/audits/installable-manifest.d.ts +1 -1
  146. package/core/audits/is-on-https.d.ts +1 -1
  147. package/core/audits/largest-contentful-paint-element.d.ts +17 -3
  148. package/core/audits/largest-contentful-paint-element.js +77 -4
  149. package/core/audits/layout-shift-elements.d.ts +1 -1
  150. package/core/audits/lcp-lazy-loaded.d.ts +1 -1
  151. package/core/audits/long-tasks.d.ts +1 -1
  152. package/core/audits/main-thread-tasks.d.ts +1 -1
  153. package/core/audits/mainthread-work-breakdown.d.ts +1 -1
  154. package/core/audits/manual/manual-audit.d.ts +1 -1
  155. package/core/audits/manual/pwa-cross-browser.d.ts +1 -1
  156. package/core/audits/manual/pwa-each-page-has-url.d.ts +1 -1
  157. package/core/audits/manual/pwa-page-transitions.d.ts +1 -1
  158. package/core/audits/maskable-icon.d.ts +1 -1
  159. package/core/audits/metrics/cumulative-layout-shift.d.ts +1 -1
  160. package/core/audits/metrics/experimental-interaction-to-next-paint.d.ts +1 -1
  161. package/core/audits/metrics/first-contentful-paint-3g.d.ts +1 -1
  162. package/core/audits/metrics/first-contentful-paint.d.ts +1 -1
  163. package/core/audits/metrics/first-meaningful-paint.d.ts +1 -1
  164. package/core/audits/metrics/interactive.d.ts +1 -1
  165. package/core/audits/metrics/largest-contentful-paint.d.ts +1 -1
  166. package/core/audits/metrics/max-potential-fid.d.ts +1 -1
  167. package/core/audits/metrics/speed-index.d.ts +1 -1
  168. package/core/audits/metrics/total-blocking-time.d.ts +1 -1
  169. package/core/audits/metrics.d.ts +1 -1
  170. package/core/audits/multi-check-audit.d.ts +1 -1
  171. package/core/audits/network-requests.d.ts +1 -1
  172. package/core/audits/network-requests.js +1 -0
  173. package/core/audits/network-rtt.d.ts +1 -1
  174. package/core/audits/network-server-latency.d.ts +1 -1
  175. package/core/audits/no-unload-listeners.d.ts +1 -1
  176. package/core/audits/non-composited-animations.d.ts +1 -1
  177. package/core/audits/performance-budget.d.ts +2 -2
  178. package/core/audits/predictive-perf.d.ts +1 -1
  179. package/core/audits/predictive-perf.js +10 -3
  180. package/core/audits/preload-fonts.d.ts +1 -1
  181. package/core/audits/prioritize-lcp-image.d.ts +2 -13
  182. package/core/audits/prioritize-lcp-image.js +3 -55
  183. package/core/audits/redirects.d.ts +2 -2
  184. package/core/audits/resource-summary.d.ts +1 -1
  185. package/core/audits/screenshot-thumbnails.d.ts +2 -2
  186. package/core/audits/script-treemap-data.d.ts +1 -1
  187. package/core/audits/seo/canonical.d.ts +1 -1
  188. package/core/audits/seo/crawlable-anchors.d.ts +1 -1
  189. package/core/audits/seo/font-size.d.ts +1 -1
  190. package/core/audits/seo/hreflang.d.ts +1 -1
  191. package/core/audits/seo/http-status-code.d.ts +1 -1
  192. package/core/audits/seo/is-crawlable.d.ts +1 -1
  193. package/core/audits/seo/link-text.d.ts +1 -1
  194. package/core/audits/seo/manual/structured-data.d.ts +1 -1
  195. package/core/audits/seo/meta-description.d.ts +1 -1
  196. package/core/audits/seo/plugins.d.ts +1 -1
  197. package/core/audits/seo/robots-txt.d.ts +1 -1
  198. package/core/audits/seo/tap-targets.d.ts +1 -1
  199. package/core/audits/server-response-time.d.ts +1 -1
  200. package/core/audits/service-worker.d.ts +1 -1
  201. package/core/audits/splash-screen.d.ts +2 -2
  202. package/core/audits/themed-omnibox.d.ts +2 -2
  203. package/core/audits/third-party-facades.d.ts +2 -2
  204. package/core/audits/third-party-summary.d.ts +2 -2
  205. package/core/audits/timing-budget.d.ts +3 -3
  206. package/core/audits/unsized-images.d.ts +1 -1
  207. package/core/audits/user-timings.d.ts +1 -1
  208. package/core/audits/uses-rel-preconnect.d.ts +1 -1
  209. package/core/audits/uses-rel-preload.d.ts +2 -2
  210. package/core/audits/valid-source-maps.d.ts +2 -2
  211. package/core/audits/viewport.d.ts +1 -1
  212. package/core/audits/violation-audit.d.ts +1 -1
  213. package/core/audits/work-during-interaction.d.ts +2 -2
  214. package/core/computed/critical-request-chains.d.ts +1 -1
  215. package/core/computed/document-urls.d.ts +32 -0
  216. package/core/computed/document-urls.js +53 -0
  217. package/core/computed/entity-classification.js +0 -1
  218. package/core/computed/lcp-image-record.d.ts +26 -0
  219. package/core/computed/lcp-image-record.js +74 -0
  220. package/core/computed/load-simulator.d.ts +2 -2
  221. package/core/computed/metrics/cumulative-layout-shift.d.ts +1 -1
  222. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
  223. package/core/computed/metrics/first-contentful-paint.d.ts +7 -1
  224. package/core/computed/metrics/first-meaningful-paint.d.ts +7 -1
  225. package/core/computed/metrics/interactive.d.ts +7 -1
  226. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +1 -1
  227. package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +1 -1
  228. package/core/computed/metrics/lantern-interactive.d.ts +1 -1
  229. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +1 -1
  230. package/core/computed/metrics/lantern-max-potential-fid.d.ts +1 -1
  231. package/core/computed/metrics/lantern-metric.d.ts +1 -1
  232. package/core/computed/metrics/lantern-speed-index.d.ts +1 -1
  233. package/core/computed/metrics/lantern-total-blocking-time.d.ts +1 -1
  234. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
  235. package/core/computed/metrics/largest-contentful-paint.d.ts +7 -1
  236. package/core/computed/metrics/lcp-breakdown.d.ts +23 -0
  237. package/core/computed/metrics/lcp-breakdown.js +58 -0
  238. package/core/computed/metrics/max-potential-fid.d.ts +7 -1
  239. package/core/computed/metrics/metric.d.ts +2 -2
  240. package/core/computed/metrics/metric.js +1 -1
  241. package/core/computed/metrics/navigation-metric.d.ts +3 -3
  242. package/core/computed/metrics/navigation-metric.js +1 -1
  243. package/core/computed/metrics/responsiveness.d.ts +1 -1
  244. package/core/computed/metrics/speed-index.d.ts +7 -1
  245. package/core/computed/metrics/time-to-first-byte.d.ts +16 -0
  246. package/core/computed/metrics/time-to-first-byte.js +60 -0
  247. package/core/computed/metrics/timing-summary.js +10 -0
  248. package/core/computed/metrics/total-blocking-time.d.ts +7 -1
  249. package/core/computed/network-records.d.ts +1 -1
  250. package/core/computed/page-dependency-graph.d.ts +4 -13
  251. package/core/computed/page-dependency-graph.js +2 -33
  252. package/core/computed/processed-navigation.d.ts +1 -1
  253. package/core/computed/resource-summary.d.ts +4 -4
  254. package/core/config/default-config.d.ts +1 -1
  255. package/core/config/desktop-config.d.ts +1 -1
  256. package/core/gather/base-gatherer.d.ts +1 -1
  257. package/core/gather/driver/execution-context.d.ts +1 -1
  258. package/core/gather/driver/network-monitor.d.ts +2 -2
  259. package/core/gather/driver/target-manager.d.ts +2 -1
  260. package/core/gather/driver/target-manager.js +5 -3
  261. package/core/gather/driver/wait-for-condition.js +12 -0
  262. package/core/gather/driver.d.ts +3 -3
  263. package/core/gather/fetcher.d.ts +1 -1
  264. package/core/gather/gatherers/accessibility.d.ts +1 -1
  265. package/core/gather/gatherers/anchor-elements.d.ts +1 -1
  266. package/core/gather/gatherers/bf-cache-failures.d.ts +1 -1
  267. package/core/gather/gatherers/cache-contents.d.ts +1 -1
  268. package/core/gather/gatherers/console-messages.d.ts +1 -1
  269. package/core/gather/gatherers/css-usage.d.ts +1 -1
  270. package/core/gather/gatherers/devtools-log-compat.d.ts +1 -1
  271. package/core/gather/gatherers/devtools-log.d.ts +1 -1
  272. package/core/gather/gatherers/dobetterweb/doctype.d.ts +1 -1
  273. package/core/gather/gatherers/dobetterweb/domstats.d.ts +1 -1
  274. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +2 -2
  275. package/core/gather/gatherers/dobetterweb/optimized-images.js +2 -2
  276. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +2 -2
  277. package/core/gather/gatherers/dobetterweb/response-compression.js +1 -2
  278. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +1 -1
  279. package/core/gather/gatherers/full-page-screenshot.d.ts +1 -1
  280. package/core/gather/gatherers/global-listeners.d.ts +1 -1
  281. package/core/gather/gatherers/iframe-elements.d.ts +1 -1
  282. package/core/gather/gatherers/image-elements.d.ts +1 -1
  283. package/core/gather/gatherers/inputs.d.ts +1 -1
  284. package/core/gather/gatherers/inspector-issues.d.ts +1 -1
  285. package/core/gather/gatherers/installability-errors.d.ts +1 -1
  286. package/core/gather/gatherers/js-usage.d.ts +1 -1
  287. package/core/gather/gatherers/link-elements.d.ts +1 -1
  288. package/core/gather/gatherers/main-document-content.d.ts +1 -1
  289. package/core/gather/gatherers/meta-elements.d.ts +1 -1
  290. package/core/gather/gatherers/network-user-agent.d.ts +1 -1
  291. package/core/gather/gatherers/script-elements.d.ts +2 -2
  292. package/core/gather/gatherers/script-elements.js +1 -2
  293. package/core/gather/gatherers/scripts.d.ts +1 -3
  294. package/core/gather/gatherers/scripts.js +0 -3
  295. package/core/gather/gatherers/seo/embedded-content.d.ts +1 -1
  296. package/core/gather/gatherers/seo/font-size.d.ts +1 -1
  297. package/core/gather/gatherers/seo/robots-txt.d.ts +1 -1
  298. package/core/gather/gatherers/seo/tap-targets.d.ts +1 -1
  299. package/core/gather/gatherers/service-worker.d.ts +1 -1
  300. package/core/gather/gatherers/source-maps.d.ts +1 -1
  301. package/core/gather/gatherers/stacks.d.ts +1 -1
  302. package/core/gather/gatherers/trace-compat.d.ts +1 -1
  303. package/core/gather/gatherers/trace-elements.d.ts +2 -2
  304. package/core/gather/gatherers/trace.d.ts +1 -1
  305. package/core/gather/gatherers/viewport-dimensions.d.ts +1 -1
  306. package/core/gather/gatherers/web-app-manifest.d.ts +1 -1
  307. package/core/gather/navigation-runner.d.ts +3 -3
  308. package/core/gather/navigation-runner.js +1 -1
  309. package/core/gather/runner-helpers.js +18 -4
  310. package/core/index.cjs +28 -0
  311. package/core/index.d.ts +2 -2
  312. package/core/legacy/gather/connections/connection.d.ts +3 -1
  313. package/core/legacy/gather/connections/connection.js +15 -0
  314. package/core/legacy/gather/connections/cri.d.ts +2 -2
  315. package/core/legacy/gather/connections/raw.d.ts +1 -1
  316. package/core/legacy/gather/driver.d.ts +3 -3
  317. package/core/legacy/gather/gather-runner.js +1 -1
  318. package/core/lib/dependency-graph/cpu-node.d.ts +2 -2
  319. package/core/lib/dependency-graph/network-node.d.ts +3 -3
  320. package/core/lib/dependency-graph/simulator/connection-pool.d.ts +2 -2
  321. package/core/lib/dependency-graph/simulator/dns-cache.d.ts +1 -1
  322. package/core/lib/dependency-graph/simulator/simulator.d.ts +5 -5
  323. package/core/lib/lh-trace-processor.d.ts +1 -1
  324. package/core/lib/navigation-error.d.ts +2 -2
  325. package/core/lib/network-recorder.d.ts +17 -11
  326. package/core/lib/network-recorder.js +24 -31
  327. package/core/lib/network-request.d.ts +7 -8
  328. package/core/lib/network-request.js +8 -6
  329. package/core/lib/stack-packs.js +9 -1
  330. package/core/lib/tracehouse/main-thread-tasks.d.ts +1 -1
  331. package/core/lib/tracehouse/task-summary.d.ts +1 -1
  332. package/core/lib/url-utils.js +1 -0
  333. package/core/runner.d.ts +2 -2
  334. package/core/runner.js +8 -2
  335. package/core/scoring.d.ts +1 -1
  336. package/core/user-flow.d.ts +1 -1
  337. package/dist/report/bundle.esm.js +3 -1
  338. package/dist/report/flow.js +3 -3
  339. package/dist/report/standalone.js +5 -5
  340. package/package.json +9 -8
  341. package/report/README.md +1 -1
  342. package/report/assets/styles.css +0 -4
  343. package/report/renderer/components.js +1 -1
  344. package/report/renderer/performance-category-renderer.d.ts +1 -1
  345. package/report/renderer/pwa-category-renderer.d.ts +1 -1
  346. package/report/renderer/report-globals.d.ts +1 -1
  347. package/report/renderer/report-renderer.d.ts +1 -1
  348. package/report/renderer/report-ui-features.d.ts +1 -1
  349. package/report/renderer/topbar-features.d.ts +1 -1
  350. package/shared/localization/i18n-module.d.ts +2 -2
  351. package/shared/localization/locales/ar-XB.json +113 -53
  352. package/shared/localization/locales/ar.json +113 -53
  353. package/shared/localization/locales/bg.json +113 -53
  354. package/shared/localization/locales/ca.json +115 -55
  355. package/shared/localization/locales/cs.json +113 -53
  356. package/shared/localization/locales/da.json +114 -54
  357. package/shared/localization/locales/de.json +113 -53
  358. package/shared/localization/locales/el.json +113 -53
  359. package/shared/localization/locales/en-GB.json +107 -47
  360. package/shared/localization/locales/en-US.json +92 -44
  361. package/shared/localization/locales/en-XA.json +113 -53
  362. package/shared/localization/locales/en-XL.json +92 -44
  363. package/shared/localization/locales/es-419.json +113 -53
  364. package/shared/localization/locales/es.json +114 -54
  365. package/shared/localization/locales/fi.json +113 -53
  366. package/shared/localization/locales/fil.json +113 -53
  367. package/shared/localization/locales/fr.json +113 -53
  368. package/shared/localization/locales/he.json +114 -54
  369. package/shared/localization/locales/hi.json +116 -56
  370. package/shared/localization/locales/hr.json +113 -53
  371. package/shared/localization/locales/hu.json +113 -53
  372. package/shared/localization/locales/id.json +113 -53
  373. package/shared/localization/locales/it.json +114 -54
  374. package/shared/localization/locales/ja.json +116 -56
  375. package/shared/localization/locales/ko.json +113 -53
  376. package/shared/localization/locales/lt.json +113 -53
  377. package/shared/localization/locales/lv.json +113 -53
  378. package/shared/localization/locales/nl.json +117 -57
  379. package/shared/localization/locales/no.json +114 -54
  380. package/shared/localization/locales/pl.json +125 -65
  381. package/shared/localization/locales/pt-PT.json +117 -57
  382. package/shared/localization/locales/pt.json +113 -53
  383. package/shared/localization/locales/ro.json +113 -53
  384. package/shared/localization/locales/ru.json +113 -53
  385. package/shared/localization/locales/sk.json +112 -52
  386. package/shared/localization/locales/sl.json +113 -53
  387. package/shared/localization/locales/sr-Latn.json +113 -53
  388. package/shared/localization/locales/sr.json +113 -53
  389. package/shared/localization/locales/sv.json +113 -53
  390. package/shared/localization/locales/ta.json +113 -53
  391. package/shared/localization/locales/te.json +113 -53
  392. package/shared/localization/locales/th.json +113 -53
  393. package/shared/localization/locales/tr.json +113 -53
  394. package/shared/localization/locales/uk.json +115 -55
  395. package/shared/localization/locales/vi.json +113 -53
  396. package/shared/localization/locales/zh-HK.json +113 -53
  397. package/shared/localization/locales/zh-TW.json +113 -53
  398. package/shared/localization/locales/zh.json +113 -53
  399. package/shared/util.js +2 -0
  400. package/types/artifacts.d.ts +4 -0
  401. package/types/externs.d.ts +1 -1
  402. package/types/internal/test.d.ts +1 -1
  403. package/types/protocol.d.ts +3 -0
@@ -119,7 +119,7 @@ class TargetManager extends ProtocolEventEmitter {
119
119
  const targetName = target.targetInfo.url || target.targetInfo.targetId;
120
120
  log.verbose('target-manager', `target ${targetName} attached`);
121
121
 
122
- const trueProtocolListener = this._getProtocolEventListener(newSession.id());
122
+ const trueProtocolListener = this._getProtocolEventListener(targetType, newSession.id());
123
123
  /** @type {(event: unknown) => void} */
124
124
  // @ts-expect-error - pptr currently typed only for single arg emits.
125
125
  const protocolListener = trueProtocolListener;
@@ -156,9 +156,10 @@ class TargetManager extends ProtocolEventEmitter {
156
156
  /**
157
157
  * Returns a listener for all protocol events from session, and augments the
158
158
  * event with the sessionId.
159
+ * @param {LH.Protocol.TargetType} targetType
159
160
  * @param {string} sessionId
160
161
  */
161
- _getProtocolEventListener(sessionId) {
162
+ _getProtocolEventListener(targetType, sessionId) {
162
163
  /**
163
164
  * @template {keyof LH.Protocol.RawEventMessageRecord} EventName
164
165
  * @param {EventName} method
@@ -166,7 +167,8 @@ class TargetManager extends ProtocolEventEmitter {
166
167
  */
167
168
  const onProtocolEvent = (method, params) => {
168
169
  // Cast because tsc 4.7 still can't quite track the dependent parameters.
169
- const payload = /** @type {LH.Protocol.RawEventMessage} */ ({method, params, sessionId});
170
+ const payload = /** @type {LH.Protocol.RawEventMessage} */ (
171
+ {method, params, targetType, sessionId});
170
172
  this.emit('protocolevent', payload);
171
173
  };
172
174
 
@@ -487,6 +487,18 @@ async function waitForFullyLoaded(session, networkMonitor, options) {
487
487
  throw new LighthouseError(LighthouseError.errors.PAGE_HUNG);
488
488
  }
489
489
 
490
+ // Log remaining inflight requests if any.
491
+ const inflightRequestUrls = networkMonitor
492
+ .getInflightRequests()
493
+ .map((request) => request.url);
494
+ if (inflightRequestUrls.length > 0) {
495
+ log.warn(
496
+ 'waitFor',
497
+ 'Remaining inflight requests URLs',
498
+ inflightRequestUrls
499
+ );
500
+ }
501
+
490
502
  return {timedOut: true};
491
503
  };
492
504
  });
@@ -24,7 +24,7 @@ export class Driver implements LH.Gatherer.FRTransitionalDriver {
24
24
  /** @return {Promise<void>} */
25
25
  disconnect(): Promise<void>;
26
26
  }
27
- import { TargetManager } from "./driver/target-manager.js";
28
- import { ExecutionContext } from "./driver/execution-context.js";
29
- import { Fetcher } from "./fetcher.js";
27
+ import { TargetManager } from './driver/target-manager.js';
28
+ import { ExecutionContext } from './driver/execution-context.js';
29
+ import { Fetcher } from './fetcher.js';
30
30
  //# sourceMappingURL=driver.d.ts.map
@@ -59,5 +59,5 @@ export class Fetcher {
59
59
  */
60
60
  _wrapWithTimeout<T>(promise: Promise<T>, ms: number): Promise<T>;
61
61
  }
62
- import * as LH from "../../types/lh.js";
62
+ import * as LH from '../../types/lh.js';
63
63
  //# sourceMappingURL=fetcher.d.ts.map
@@ -10,7 +10,7 @@ declare class Accessibility extends FRGatherer {
10
10
  */
11
11
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts.Accessibility>;
12
12
  }
13
- import FRGatherer from "../base-gatherer.js";
13
+ import FRGatherer from '../base-gatherer.js';
14
14
  /**
15
15
  * @return {Promise<LH.Artifacts.Accessibility>}
16
16
  */
@@ -6,5 +6,5 @@ declare class AnchorElements extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['AnchorElements']>;
8
8
  }
9
- import FRGatherer from "../base-gatherer.js";
9
+ import FRGatherer from '../base-gatherer.js';
10
10
  //# sourceMappingURL=anchor-elements.d.ts.map
@@ -39,5 +39,5 @@ declare class BFCacheFailures extends FRGatherer {
39
39
  */
40
40
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['BFCacheFailures']>;
41
41
  }
42
- import FRGatherer from "../base-gatherer.js";
42
+ import FRGatherer from '../base-gatherer.js';
43
43
  //# sourceMappingURL=bf-cache-failures.d.ts.map
@@ -7,5 +7,5 @@ declare class CacheContents extends FRGatherer {
7
7
  */
8
8
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['CacheContents']>;
9
9
  }
10
- import FRGatherer from "../base-gatherer.js";
10
+ import FRGatherer from '../base-gatherer.js';
11
11
  //# sourceMappingURL=cache-contents.d.ts.map
@@ -35,5 +35,5 @@ declare class ConsoleMessages extends FRGatherer {
35
35
  */
36
36
  getArtifact(): Promise<LH.Artifacts['ConsoleMessages']>;
37
37
  }
38
- import FRGatherer from "../base-gatherer.js";
38
+ import FRGatherer from '../base-gatherer.js';
39
39
  //# sourceMappingURL=console-messages.d.ts.map
@@ -35,5 +35,5 @@ declare class CSSUsage extends FRGatherer {
35
35
  */
36
36
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['CSSUsage']>;
37
37
  }
38
- import FRGatherer from "../base-gatherer.js";
38
+ import FRGatherer from '../base-gatherer.js';
39
39
  //# sourceMappingURL=css-usage.d.ts.map
@@ -9,5 +9,5 @@ declare class DevtoolsLogCompat extends FRGatherer implements LH.Gatherer.FRGath
9
9
  */
10
10
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>): Promise<LH.Artifacts['devtoolsLogs']>;
11
11
  }
12
- import FRGatherer from "../base-gatherer.js";
12
+ import FRGatherer from '../base-gatherer.js';
13
13
  //# sourceMappingURL=devtools-log-compat.d.ts.map
@@ -44,5 +44,5 @@ export class DevtoolsMessageLog {
44
44
  */
45
45
  record(message: LH.Protocol.RawEventMessage): void;
46
46
  }
47
- import FRGatherer from "../base-gatherer.js";
47
+ import FRGatherer from '../base-gatherer.js';
48
48
  //# sourceMappingURL=devtools-log.d.ts.map
@@ -6,5 +6,5 @@ declare class Doctype extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['Doctype']>;
8
8
  }
9
- import FRGatherer from "../../base-gatherer.js";
9
+ import FRGatherer from '../../base-gatherer.js';
10
10
  //# sourceMappingURL=doctype.d.ts.map
@@ -6,5 +6,5 @@ declare class DOMStats extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['DOMStats']>;
8
8
  }
9
- import FRGatherer from "../../base-gatherer.js";
9
+ import FRGatherer from '../../base-gatherer.js';
10
10
  //# sourceMappingURL=domstats.d.ts.map
@@ -56,6 +56,6 @@ declare class OptimizedImages extends FRGatherer {
56
56
  */
57
57
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['OptimizedImages']>;
58
58
  }
59
- import FRGatherer from "../../base-gatherer.js";
60
- import { NetworkRequest } from "../../../lib/network-request.js";
59
+ import FRGatherer from '../../base-gatherer.js';
60
+ import { NetworkRequest } from '../../../lib/network-request.js';
61
61
  //# sourceMappingURL=optimized-images.d.ts.map
@@ -54,8 +54,8 @@ class OptimizedImages extends FRGatherer {
54
54
  /** @type {Set<string>} */
55
55
  const seenUrls = new Set();
56
56
  return networkRecords.reduce((prev, record) => {
57
- // Skip records that we've seen before, never finished, or came from child targets (OOPIFS).
58
- if (seenUrls.has(record.url) || !record.finished || record.sessionId) {
57
+ // Skip records that we've seen before, never finished, or came from OOPIFs.
58
+ if (seenUrls.has(record.url) || !record.finished || record.isOutOfProcessIframe) {
59
59
  return prev;
60
60
  }
61
61
 
@@ -25,6 +25,6 @@ declare class ResponseCompression extends FRGatherer {
25
25
  */
26
26
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['ResponseCompression']>;
27
27
  }
28
- import FRGatherer from "../../base-gatherer.js";
29
- import { NetworkRequest } from "../../../lib/network-request.js";
28
+ import FRGatherer from '../../base-gatherer.js';
29
+ import { NetworkRequest } from '../../../lib/network-request.js';
30
30
  //# sourceMappingURL=response-compression.d.ts.map
@@ -55,8 +55,7 @@ class ResponseCompression extends FRGatherer {
55
55
  const unoptimizedResponses = [];
56
56
 
57
57
  networkRecords.forEach(record => {
58
- // Ignore records from child targets (OOPIFS).
59
- if (record.sessionId) return;
58
+ if (record.isOutOfProcessIframe) return;
60
59
 
61
60
  const mimeType = record.mimeType;
62
61
  const resourceType = record.resourceType || NetworkRequest.TYPES.Other;
@@ -49,5 +49,5 @@ declare class TagsBlockingFirstPaint extends FRGatherer {
49
49
  */
50
50
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['TagsBlockingFirstPaint']>;
51
51
  }
52
- import FRGatherer from "../../base-gatherer.js";
52
+ import FRGatherer from '../../base-gatherer.js';
53
53
  //# sourceMappingURL=tags-blocking-first-paint.d.ts.map
@@ -31,5 +31,5 @@ declare class FullPageScreenshot extends FRGatherer {
31
31
  */
32
32
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['FullPageScreenshot']>;
33
33
  }
34
- import FRGatherer from "../base-gatherer.js";
34
+ import FRGatherer from '../base-gatherer.js';
35
35
  //# sourceMappingURL=full-page-screenshot.d.ts.map
@@ -23,5 +23,5 @@ declare class GlobalListeners extends FRGatherer {
23
23
  */
24
24
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['GlobalListeners']>;
25
25
  }
26
- import FRGatherer from "../base-gatherer.js";
26
+ import FRGatherer from '../base-gatherer.js';
27
27
  //# sourceMappingURL=global-listeners.d.ts.map
@@ -7,5 +7,5 @@ declare class IFrameElements extends FRGatherer {
7
7
  */
8
8
  override getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['IFrameElements']>;
9
9
  }
10
- import FRGatherer from "../base-gatherer.js";
10
+ import FRGatherer from '../base-gatherer.js';
11
11
  //# sourceMappingURL=iframe-elements.d.ts.map
@@ -31,5 +31,5 @@ declare class ImageElements extends FRGatherer {
31
31
  */
32
32
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['ImageElements']>;
33
33
  }
34
- import FRGatherer from "../base-gatherer.js";
34
+ import FRGatherer from '../base-gatherer.js';
35
35
  //# sourceMappingURL=image-elements.d.ts.map
@@ -6,5 +6,5 @@ declare class Inputs extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['Inputs']>;
8
8
  }
9
- import FRGatherer from "../base-gatherer.js";
9
+ import FRGatherer from '../base-gatherer.js';
10
10
  //# sourceMappingURL=inputs.d.ts.map
@@ -34,5 +34,5 @@ declare class InspectorIssues extends FRGatherer {
34
34
  */
35
35
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['InspectorIssues']>;
36
36
  }
37
- import FRGatherer from "../base-gatherer.js";
37
+ import FRGatherer from '../base-gatherer.js';
38
38
  //# sourceMappingURL=inspector-issues.d.ts.map
@@ -13,5 +13,5 @@ declare class InstallabilityErrors extends FRGatherer {
13
13
  */
14
14
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['InstallabilityErrors']>;
15
15
  }
16
- import FRGatherer from "../base-gatherer.js";
16
+ import FRGatherer from '../base-gatherer.js';
17
17
  //# sourceMappingURL=installability-errors.d.ts.map
@@ -18,5 +18,5 @@ declare class JsUsage extends FRGatherer {
18
18
  */
19
19
  getArtifact(): Promise<LH.Artifacts['JsUsage']>;
20
20
  }
21
- import FRGatherer from "../base-gatherer.js";
21
+ import FRGatherer from '../base-gatherer.js';
22
22
  //# sourceMappingURL=js-usage.d.ts.map
@@ -38,5 +38,5 @@ declare class LinkElements extends FRGatherer {
38
38
  export namespace UIStrings {
39
39
  const headerParseWarning: string;
40
40
  }
41
- import FRGatherer from "../base-gatherer.js";
41
+ import FRGatherer from '../base-gatherer.js';
42
42
  //# sourceMappingURL=link-elements.d.ts.map
@@ -23,5 +23,5 @@ declare class MainDocumentContent extends FRGatherer {
23
23
  */
24
24
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['MainDocumentContent']>;
25
25
  }
26
- import FRGatherer from "../base-gatherer.js";
26
+ import FRGatherer from '../base-gatherer.js';
27
27
  //# sourceMappingURL=main-document-content.d.ts.map
@@ -6,5 +6,5 @@ declare class MetaElements extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['MetaElements']>;
8
8
  }
9
- import FRGatherer from "../base-gatherer.js";
9
+ import FRGatherer from '../base-gatherer.js';
10
10
  //# sourceMappingURL=meta-elements.d.ts.map
@@ -14,5 +14,5 @@ declare class NetworkUserAgent extends FRGatherer implements LH.Gatherer.FRGathe
14
14
  */
15
15
  getArtifact(context: LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>): Promise<LH.Artifacts['NetworkUserAgent']>;
16
16
  }
17
- import FRGatherer from "../base-gatherer.js";
17
+ import FRGatherer from '../base-gatherer.js';
18
18
  //# sourceMappingURL=network-user-agent.d.ts.map
@@ -21,6 +21,6 @@ declare class ScriptElements extends FRGatherer {
21
21
  */
22
22
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<import("../../index.js").Artifacts.ScriptElement[]>;
23
23
  }
24
- import FRGatherer from "../base-gatherer.js";
25
- import { NetworkRequest } from "../../lib/network-request.js";
24
+ import FRGatherer from '../base-gatherer.js';
25
+ import { NetworkRequest } from '../../lib/network-request.js';
26
26
  //# sourceMappingURL=script-elements.d.ts.map
@@ -65,8 +65,7 @@ class ScriptElements extends FRGatherer {
65
65
 
66
66
  const scriptRecords = networkRecords
67
67
  .filter(record => record.resourceType === NetworkRequest.TYPES.Script)
68
- // Ignore records from OOPIFs
69
- .filter(record => !record.sessionId);
68
+ .filter(record => !record.isOutOfProcessIframe);
70
69
 
71
70
  for (let i = 0; i < scriptRecords.length; i++) {
72
71
  const record = scriptRecords[i];
@@ -7,8 +7,6 @@ declare class Scripts extends FRGatherer {
7
7
  _scriptParsedEvents: LH.Crdp.Debugger.ScriptParsedEvent[];
8
8
  /** @type {Array<string | undefined>} */
9
9
  _scriptContents: Array<string | undefined>;
10
- /** @type {string|null|undefined} */
11
- _mainSessionId: string | null | undefined;
12
10
  /**
13
11
  * @param {LH.Crdp.Debugger.ScriptParsedEvent} params
14
12
  */
@@ -23,5 +21,5 @@ declare class Scripts extends FRGatherer {
23
21
  stopInstrumentation(context: LH.Gatherer.FRTransitionalContext): Promise<void>;
24
22
  getArtifact(): Promise<import("../../index.js").Artifacts.Script[]>;
25
23
  }
26
- import FRGatherer from "../base-gatherer.js";
24
+ import FRGatherer from '../base-gatherer.js';
27
25
  //# sourceMappingURL=scripts.d.ts.map
@@ -59,9 +59,6 @@ class Scripts extends FRGatherer {
59
59
  /** @type {Array<string | undefined>} */
60
60
  _scriptContents = [];
61
61
 
62
- /** @type {string|null|undefined} */
63
- _mainSessionId = null;
64
-
65
62
  constructor() {
66
63
  super();
67
64
  this.onScriptParsed = this.onScriptParsed.bind(this);
@@ -6,5 +6,5 @@ declare class EmbeddedContent extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['EmbeddedContent']>;
8
8
  }
9
- import FRGatherer from "../../base-gatherer.js";
9
+ import FRGatherer from '../../base-gatherer.js';
10
10
  //# sourceMappingURL=embedded-content.d.ts.map
@@ -127,5 +127,5 @@ export function getEffectiveFontRule({ attributesStyle, inlineStyle, matchedCSSR
127
127
  * @return {NodeFontData['cssRule']|undefined}
128
128
  */
129
129
  export function findMostSpecificMatchedCSSRule(matchedCSSRules: import("devtools-protocol").Protocol.CSS.RuleMatch[] | undefined, isDeclarationOfInterest: (arg0: LH.Crdp.CSS.CSSStyle) => boolean | string | undefined): NodeFontData['cssRule'] | undefined;
130
- import FRGatherer from "../../base-gatherer.js";
130
+ import FRGatherer from '../../base-gatherer.js';
131
131
  //# sourceMappingURL=font-size.d.ts.map
@@ -6,5 +6,5 @@ declare class RobotsTxt extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['RobotsTxt']>;
8
8
  }
9
- import FRGatherer from "../../base-gatherer.js";
9
+ import FRGatherer from '../../base-gatherer.js';
10
10
  //# sourceMappingURL=robots-txt.d.ts.map
@@ -17,5 +17,5 @@ declare class TapTargets extends FRGatherer {
17
17
  */
18
18
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts.TapTarget[]>;
19
19
  }
20
- import FRGatherer from "../../base-gatherer.js";
20
+ import FRGatherer from '../../base-gatherer.js';
21
21
  //# sourceMappingURL=tap-targets.d.ts.map
@@ -12,5 +12,5 @@ declare class ServiceWorker extends FRGatherer {
12
12
  */
13
13
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['ServiceWorker']>;
14
14
  }
15
- import FRGatherer from "../base-gatherer.js";
15
+ import FRGatherer from '../base-gatherer.js';
16
16
  //# sourceMappingURL=service-worker.d.ts.map
@@ -46,5 +46,5 @@ declare class SourceMaps extends FRGatherer {
46
46
  */
47
47
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['SourceMaps']>;
48
48
  }
49
- import FRGatherer from "../base-gatherer.js";
49
+ import FRGatherer from '../base-gatherer.js';
50
50
  //# sourceMappingURL=source-maps.d.ts.map
@@ -34,5 +34,5 @@ declare class Stacks extends FRGatherer implements LH.Gatherer.FRGathererInstanc
34
34
  */
35
35
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['Stacks']>;
36
36
  }
37
- import FRGatherer from "../base-gatherer.js";
37
+ import FRGatherer from '../base-gatherer.js';
38
38
  //# sourceMappingURL=stacks.d.ts.map
@@ -9,5 +9,5 @@ declare class TraceCompat extends FRGatherer implements LH.Gatherer.FRGathererIn
9
9
  */
10
10
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext<'Trace'>): Promise<LH.Artifacts['traces']>;
11
11
  }
12
- import FRGatherer from "../base-gatherer.js";
12
+ import FRGatherer from '../base-gatherer.js';
13
13
  //# sourceMappingURL=trace-compat.d.ts.map
@@ -78,6 +78,6 @@ declare class TraceElements extends FRGatherer {
78
78
  */
79
79
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts.TraceElement[]>;
80
80
  }
81
- import FRGatherer from "../base-gatherer.js";
82
- import Trace from "./trace.js";
81
+ import FRGatherer from '../base-gatherer.js';
82
+ import Trace from './trace.js';
83
83
  //# sourceMappingURL=trace-elements.d.ts.map
@@ -19,5 +19,5 @@ declare class Trace extends FRGatherer {
19
19
  stopSensitiveInstrumentation({ driver }: LH.Gatherer.FRTransitionalContext): Promise<void>;
20
20
  getArtifact(): import("../../index.js").Trace;
21
21
  }
22
- import FRGatherer from "../base-gatherer.js";
22
+ import FRGatherer from '../base-gatherer.js';
23
23
  //# sourceMappingURL=trace.d.ts.map
@@ -6,5 +6,5 @@ declare class ViewportDimensions extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts.ViewportDimensions>;
8
8
  }
9
- import FRGatherer from "../base-gatherer.js";
9
+ import FRGatherer from '../base-gatherer.js';
10
10
  //# sourceMappingURL=viewport-dimensions.d.ts.map
@@ -28,5 +28,5 @@ declare class WebAppManifest extends FRGatherer {
28
28
  */
29
29
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['WebAppManifest']>;
30
30
  }
31
- import FRGatherer from "../base-gatherer.js";
31
+ import FRGatherer from '../base-gatherer.js';
32
32
  //# sourceMappingURL=web-app-manifest.d.ts.map
@@ -75,9 +75,9 @@ export function _cleanup({ requestedUrl, driver, resolvedConfig, lhBrowser, lhPa
75
75
  lhBrowser?: LH.Puppeteer.Browser;
76
76
  lhPage?: LH.Puppeteer.Page;
77
77
  }): Promise<void>;
78
- import { Driver } from "./driver.js";
79
- import { collectPhaseArtifacts } from "./runner-helpers.js";
80
- import { LighthouseError } from "../lib/lh-error.js";
78
+ import { Driver } from './driver.js';
79
+ import { collectPhaseArtifacts } from './runner-helpers.js';
80
+ import { LighthouseError } from '../lib/lh-error.js';
81
81
  /**
82
82
  * @param {NavigationContext} navigationContext
83
83
  * @param {PhaseState} phaseState
@@ -353,7 +353,7 @@ async function navigationGather(page, requestor, options = {}) {
353
353
  // therefore we connect to the browser in the gatherFn callback.
354
354
  if (!page) {
355
355
  const {hostname = DEFAULT_HOSTNAME, port = DEFAULT_PORT} = flags;
356
- lhBrowser = await puppeteer.connect({browserURL: `http://${hostname}:${port}`});
356
+ lhBrowser = await puppeteer.connect({browserURL: `http://${hostname}:${port}`, defaultViewport: null});
357
357
  lhPage = await lhBrowser.newPage();
358
358
  page = lhPage;
359
359
  }
@@ -78,19 +78,27 @@ async function collectPhaseArtifacts(options) {
78
78
  } = options;
79
79
  const priorPhase = phaseToPriorPhase[phase];
80
80
  const priorPhaseArtifacts = (priorPhase && artifactState[priorPhase]) || {};
81
+ const isFinalPhase = phase === 'getArtifact';
81
82
 
82
83
  for (const artifactDefn of artifactDefinitions) {
83
- const logLevel = phase === 'getArtifact' ? 'log' : 'verbose';
84
- log[logLevel](`artifacts:${phase}`, artifactDefn.id);
84
+ log.verbose(`artifacts:${phase}`, artifactDefn.id);
85
85
  const gatherer = artifactDefn.gatherer.instance;
86
86
 
87
87
  const priorArtifactPromise = priorPhaseArtifacts[artifactDefn.id] || Promise.resolve();
88
88
  const artifactPromise = priorArtifactPromise.then(async () => {
89
- const dependencies = phase === 'getArtifact'
89
+ const dependencies = isFinalPhase
90
90
  ? await collectArtifactDependencies(artifactDefn, artifactState.getArtifact)
91
91
  : /** @type {Dependencies} */ ({});
92
92
 
93
- return gatherer[phase]({
93
+ const status = {
94
+ msg: `Getting artifact: ${artifactDefn.id}`,
95
+ id: `lh:gather:getArtifact:${artifactDefn.id}`,
96
+ };
97
+ if (isFinalPhase) {
98
+ log.time(status);
99
+ }
100
+
101
+ const artifact = await gatherer[phase]({
94
102
  gatherMode,
95
103
  driver,
96
104
  page,
@@ -99,6 +107,12 @@ async function collectPhaseArtifacts(options) {
99
107
  computedCache,
100
108
  settings,
101
109
  });
110
+
111
+ if (isFinalPhase) {
112
+ log.timeEnd(status);
113
+ }
114
+
115
+ return artifact;
102
116
  });
103
117
 
104
118
  await artifactPromise.catch(() => {});
package/core/index.cjs CHANGED
@@ -17,5 +17,33 @@ const legacyNavigation = async function legacyNavigation(...args) {
17
17
  return legacyNavigation(...args);
18
18
  };
19
19
 
20
+ /** @type {import('./index.js')['startFlow']} */
21
+ const startFlow = async function startFlow(...args) {
22
+ const {startFlow} = await import('./index.js');
23
+ return startFlow(...args);
24
+ };
25
+
26
+ /** @type {import('./index.js')['navigation']} */
27
+ const navigation = async function navigation(...args) {
28
+ const {navigation} = await import('./index.js');
29
+ return navigation(...args);
30
+ };
31
+
32
+ /** @type {import('./index.js')['startTimespan']} */
33
+ const startTimespan = async function startTimespan(...args) {
34
+ const {startTimespan} = await import('./index.js');
35
+ return startTimespan(...args);
36
+ };
37
+
38
+ /** @type {import('./index.js')['snapshot']} */
39
+ const snapshot = async function snapshot(...args) {
40
+ const {snapshot} = await import('./index.js');
41
+ return snapshot(...args);
42
+ };
43
+
20
44
  module.exports = lighthouse;
21
45
  module.exports.legacyNavigation = legacyNavigation;
46
+ module.exports.startFlow = startFlow;
47
+ module.exports.navigation = navigation;
48
+ module.exports.startTimespan = startTimespan;
49
+ module.exports.snapshot = snapshot;
package/core/index.d.ts CHANGED
@@ -83,6 +83,6 @@ export function auditFlowArtifacts(flowArtifacts: LH.UserFlow.FlowArtifacts, con
83
83
  }>;
84
84
  export function getAuditList(): string[];
85
85
  export const traceCategories: string[];
86
- import * as LH from "../types/lh.js";
87
- import { UserFlow } from "./user-flow.js";
86
+ import * as LH from '../types/lh.js';
87
+ import { UserFlow } from './user-flow.js';
88
88
  //# sourceMappingURL=index.d.ts.map
@@ -17,6 +17,8 @@ export class Connection {
17
17
  _lastCommandId: number;
18
18
  /** @type {Map<number, CommandCallback>} */
19
19
  _callbacks: Map<number, CommandCallback>;
20
+ /** @type {Map<string, LH.Protocol.TargetType>} */
21
+ _sessionIdToTargetType: Map<string, LH.Protocol.TargetType>;
20
22
  _eventEmitter: CrdpEventMessageEmitter | null;
21
23
  /**
22
24
  * @return {Promise<void>}
@@ -71,5 +73,5 @@ export class Connection {
71
73
  */
72
74
  protected dispose(): void;
73
75
  }
74
- import * as LH from "../../../../types/lh.js";
76
+ import * as LH from '../../../../types/lh.js';
75
77
  //# sourceMappingURL=connection.d.ts.map