lighthouse 9.5.0-dev.20230118 → 9.5.0-dev.20230119

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 (505) hide show
  1. package/cli/bin.d.ts +5 -0
  2. package/cli/cli-flags.d.ts +258 -0
  3. package/cli/commands/commands.d.ts +4 -0
  4. package/cli/commands/list-audits.d.ts +2 -0
  5. package/cli/commands/list-locales.d.ts +2 -0
  6. package/cli/commands/list-trace-categories.d.ts +2 -0
  7. package/cli/index.d.ts +3 -0
  8. package/cli/printer.d.ts +28 -0
  9. package/cli/run.d.ts +24 -0
  10. package/cli/sentry-prompt.d.ts +5 -0
  11. package/cli/test/smokehouse/config/exclusions.d.ts +12 -0
  12. package/cli/test/smokehouse/core-tests.d.ts +4 -0
  13. package/cli/test/smokehouse/frontends/back-compat-util.d.ts +16 -0
  14. package/cli/test/smokehouse/frontends/lib.d.ts +8 -0
  15. package/cli/test/smokehouse/frontends/node.d.ts +2 -0
  16. package/cli/test/smokehouse/frontends/smokehouse-bin.d.ts +3 -0
  17. package/cli/test/smokehouse/lib/child-process-error.d.ts +21 -0
  18. package/cli/test/smokehouse/lib/concurrent-mapper.d.ts +78 -0
  19. package/cli/test/smokehouse/lib/local-console.d.ts +33 -0
  20. package/cli/test/smokehouse/lighthouse-runners/bundle.d.ts +16 -0
  21. package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +18 -0
  22. package/cli/test/smokehouse/lighthouse-runners/devtools.d.ts +23 -0
  23. package/cli/test/smokehouse/report-assert-test.d.ts +2 -0
  24. package/cli/test/smokehouse/report-assert.d.ts +50 -0
  25. package/cli/test/smokehouse/smokehouse.d.ts +35 -0
  26. package/cli/test/smokehouse/version-check-test.d.ts +2 -0
  27. package/cli/test/smokehouse/version-check.d.ts +15 -0
  28. package/core/audits/accessibility/accesskeys.d.ts +10 -0
  29. package/core/audits/accessibility/aria-allowed-attr.d.ts +10 -0
  30. package/core/audits/accessibility/aria-command-name.d.ts +10 -0
  31. package/core/audits/accessibility/aria-hidden-body.d.ts +10 -0
  32. package/core/audits/accessibility/aria-hidden-focus.d.ts +10 -0
  33. package/core/audits/accessibility/aria-input-field-name.d.ts +10 -0
  34. package/core/audits/accessibility/aria-meter-name.d.ts +10 -0
  35. package/core/audits/accessibility/aria-progressbar-name.d.ts +10 -0
  36. package/core/audits/accessibility/aria-required-attr.d.ts +10 -0
  37. package/core/audits/accessibility/aria-required-children.d.ts +10 -0
  38. package/core/audits/accessibility/aria-required-parent.d.ts +10 -0
  39. package/core/audits/accessibility/aria-roles.d.ts +10 -0
  40. package/core/audits/accessibility/aria-toggle-field-name.d.ts +10 -0
  41. package/core/audits/accessibility/aria-tooltip-name.d.ts +10 -0
  42. package/core/audits/accessibility/aria-treeitem-name.d.ts +10 -0
  43. package/core/audits/accessibility/aria-valid-attr-value.d.ts +10 -0
  44. package/core/audits/accessibility/aria-valid-attr.d.ts +10 -0
  45. package/core/audits/accessibility/axe-audit.d.ts +17 -0
  46. package/core/audits/accessibility/button-name.d.ts +10 -0
  47. package/core/audits/accessibility/bypass.d.ts +10 -0
  48. package/core/audits/accessibility/color-contrast.d.ts +10 -0
  49. package/core/audits/accessibility/definition-list.d.ts +10 -0
  50. package/core/audits/accessibility/dlitem.d.ts +10 -0
  51. package/core/audits/accessibility/document-title.d.ts +10 -0
  52. package/core/audits/accessibility/duplicate-id-active.d.ts +10 -0
  53. package/core/audits/accessibility/duplicate-id-aria.d.ts +10 -0
  54. package/core/audits/accessibility/form-field-multiple-labels.d.ts +10 -0
  55. package/core/audits/accessibility/frame-title.d.ts +10 -0
  56. package/core/audits/accessibility/heading-order.d.ts +10 -0
  57. package/core/audits/accessibility/html-has-lang.d.ts +10 -0
  58. package/core/audits/accessibility/html-lang-valid.d.ts +10 -0
  59. package/core/audits/accessibility/image-alt.d.ts +10 -0
  60. package/core/audits/accessibility/input-image-alt.d.ts +10 -0
  61. package/core/audits/accessibility/label.d.ts +10 -0
  62. package/core/audits/accessibility/link-name.d.ts +10 -0
  63. package/core/audits/accessibility/list.d.ts +10 -0
  64. package/core/audits/accessibility/listitem.d.ts +10 -0
  65. package/core/audits/accessibility/manual/custom-controls-labels.d.ts +8 -0
  66. package/core/audits/accessibility/manual/custom-controls-roles.d.ts +8 -0
  67. package/core/audits/accessibility/manual/focus-traps.d.ts +8 -0
  68. package/core/audits/accessibility/manual/focusable-controls.d.ts +8 -0
  69. package/core/audits/accessibility/manual/interactive-element-affordance.d.ts +8 -0
  70. package/core/audits/accessibility/manual/logical-tab-order.d.ts +8 -0
  71. package/core/audits/accessibility/manual/managed-focus.d.ts +8 -0
  72. package/core/audits/accessibility/manual/offscreen-content-hidden.d.ts +9 -0
  73. package/core/audits/accessibility/manual/use-landmarks.d.ts +8 -0
  74. package/core/audits/accessibility/manual/visual-order-follows-dom.d.ts +8 -0
  75. package/core/audits/accessibility/meta-refresh.d.ts +10 -0
  76. package/core/audits/accessibility/meta-viewport.d.ts +10 -0
  77. package/core/audits/accessibility/object-alt.d.ts +10 -0
  78. package/core/audits/accessibility/tabindex.d.ts +10 -0
  79. package/core/audits/accessibility/td-headers-attr.d.ts +10 -0
  80. package/core/audits/accessibility/th-has-data-cells.d.ts +10 -0
  81. package/core/audits/accessibility/valid-lang.d.ts +10 -0
  82. package/core/audits/accessibility/video-caption.d.ts +10 -0
  83. package/core/audits/audit.d.ts +150 -0
  84. package/core/audits/audit.js +1 -0
  85. package/core/audits/autocomplete.d.ts +36 -0
  86. package/core/audits/bf-cache.d.ts +21 -0
  87. package/core/audits/bootup-time.d.ts +26 -0
  88. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +82 -0
  89. package/core/audits/byte-efficiency/duplicated-javascript.d.ts +52 -0
  90. package/core/audits/byte-efficiency/efficient-animated-content.d.ts +23 -0
  91. package/core/audits/byte-efficiency/legacy-javascript.d.ts +99 -0
  92. package/core/audits/byte-efficiency/modern-image-formats.d.ts +38 -0
  93. package/core/audits/byte-efficiency/offscreen-images.d.ts +75 -0
  94. package/core/audits/byte-efficiency/render-blocking-resources.d.ts +55 -0
  95. package/core/audits/byte-efficiency/total-byte-weight.d.ts +21 -0
  96. package/core/audits/byte-efficiency/unminified-css.d.ts +36 -0
  97. package/core/audits/byte-efficiency/unminified-javascript.d.ts +37 -0
  98. package/core/audits/byte-efficiency/unused-css-rules.d.ts +16 -0
  99. package/core/audits/byte-efficiency/unused-javascript.d.ts +27 -0
  100. package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +61 -0
  101. package/core/audits/byte-efficiency/uses-optimized-images.d.ts +33 -0
  102. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +16 -0
  103. package/core/audits/byte-efficiency/uses-responsive-images.d.ts +45 -0
  104. package/core/audits/byte-efficiency/uses-text-compression.d.ts +14 -0
  105. package/core/audits/content-width.d.ts +17 -0
  106. package/core/audits/critical-request-chains.d.ts +44 -0
  107. package/core/audits/csp-xss.d.ts +51 -0
  108. package/core/audits/deprecations.d.ts +19 -0
  109. package/core/audits/diagnostics.d.ts +11 -0
  110. package/core/audits/dobetterweb/charset.d.ts +19 -0
  111. package/core/audits/dobetterweb/doctype.d.ts +21 -0
  112. package/core/audits/dobetterweb/dom-size.d.ts +26 -0
  113. package/core/audits/dobetterweb/geolocation-on-start.d.ts +16 -0
  114. package/core/audits/dobetterweb/inspector-issues.d.ts +45 -0
  115. package/core/audits/dobetterweb/js-libraries.d.ts +15 -0
  116. package/core/audits/dobetterweb/no-document-write.d.ts +16 -0
  117. package/core/audits/dobetterweb/notification-on-start.d.ts +16 -0
  118. package/core/audits/dobetterweb/password-inputs-can-be-pasted-into.d.ts +15 -0
  119. package/core/audits/dobetterweb/uses-http2.d.ts +69 -0
  120. package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +16 -0
  121. package/core/audits/errors-in-console.d.ts +31 -0
  122. package/core/audits/final-screenshot.d.ts +11 -0
  123. package/core/audits/font-display.d.ts +32 -0
  124. package/core/audits/image-aspect-ratio.d.ts +30 -0
  125. package/core/audits/image-size-responsive.d.ts +28 -0
  126. package/core/audits/installable-manifest.d.ts +118 -0
  127. package/core/audits/is-on-https.d.ts +23 -0
  128. package/core/audits/largest-contentful-paint-element.d.ts +14 -0
  129. package/core/audits/layout-shift-elements.d.ts +15 -0
  130. package/core/audits/lcp-lazy-loaded.d.ts +21 -0
  131. package/core/audits/long-tasks.d.ts +16 -0
  132. package/core/audits/main-thread-tasks.d.ts +11 -0
  133. package/core/audits/mainthread-work-breakdown.d.ts +28 -0
  134. package/core/audits/manual/manual-audit.d.ts +13 -0
  135. package/core/audits/manual/pwa-cross-browser.d.ts +12 -0
  136. package/core/audits/manual/pwa-each-page-has-url.d.ts +12 -0
  137. package/core/audits/manual/pwa-page-transitions.d.ts +12 -0
  138. package/core/audits/maskable-icon.d.ts +25 -0
  139. package/core/audits/metrics/cumulative-layout-shift.d.ts +21 -0
  140. package/core/audits/metrics/experimental-interaction-to-next-paint.d.ts +21 -0
  141. package/core/audits/metrics/first-contentful-paint-3g.d.ts +15 -0
  142. package/core/audits/metrics/first-contentful-paint.d.ts +25 -0
  143. package/core/audits/metrics/first-meaningful-paint.d.ts +28 -0
  144. package/core/audits/metrics/interactive.d.ts +31 -0
  145. package/core/audits/metrics/largest-contentful-paint.d.ts +25 -0
  146. package/core/audits/metrics/max-potential-fid.d.ts +23 -0
  147. package/core/audits/metrics/speed-index.d.ts +27 -0
  148. package/core/audits/metrics/total-blocking-time.d.ts +32 -0
  149. package/core/audits/metrics.d.ts +11 -0
  150. package/core/audits/multi-check-audit.d.ts +28 -0
  151. package/core/audits/network-requests.d.ts +11 -0
  152. package/core/audits/network-rtt.d.ts +15 -0
  153. package/core/audits/network-server-latency.d.ts +15 -0
  154. package/core/audits/no-unload-listeners.d.ts +16 -0
  155. package/core/audits/non-composited-animations.d.ts +21 -0
  156. package/core/audits/oopif-iframe-test-audit.d.ts +14 -0
  157. package/core/audits/performance-budget.d.ts +39 -0
  158. package/core/audits/predictive-perf.d.ts +11 -0
  159. package/core/audits/preload-fonts.d.ts +29 -0
  160. package/core/audits/preload-lcp-image.d.ts +67 -0
  161. package/core/audits/redirects.d.ts +33 -0
  162. package/core/audits/resource-summary.d.ts +16 -0
  163. package/core/audits/screenshot-thumbnails.d.ts +32 -0
  164. package/core/audits/script-elements-test-audit.d.ts +14 -0
  165. package/core/audits/script-treemap-data.d.ts +42 -0
  166. package/core/audits/seo/canonical.d.ts +51 -0
  167. package/core/audits/seo/crawlable-anchors.d.ts +16 -0
  168. package/core/audits/seo/font-size.d.ts +24 -0
  169. package/core/audits/seo/hreflang.d.ts +28 -0
  170. package/core/audits/seo/http-status-code.d.ts +16 -0
  171. package/core/audits/seo/is-crawlable.d.ts +38 -0
  172. package/core/audits/seo/link-text.d.ts +16 -0
  173. package/core/audits/seo/manual/structured-data.d.ts +12 -0
  174. package/core/audits/seo/meta-description.d.ts +16 -0
  175. package/core/audits/seo/plugins.d.ts +15 -0
  176. package/core/audits/seo/robots-txt.d.ts +18 -0
  177. package/core/audits/seo/tap-targets.d.ts +50 -0
  178. package/core/audits/server-response-time.d.ts +21 -0
  179. package/core/audits/service-worker.d.ts +46 -0
  180. package/core/audits/splash-screen.d.ts +37 -0
  181. package/core/audits/themed-omnibox.d.ts +42 -0
  182. package/core/audits/third-party-facades.d.ts +41 -0
  183. package/core/audits/third-party-summary.d.ts +58 -0
  184. package/core/audits/timing-budget.d.ts +43 -0
  185. package/core/audits/unsized-images.d.ts +39 -0
  186. package/core/audits/user-timings.d.ts +43 -0
  187. package/core/audits/uses-rel-preconnect.d.ts +37 -0
  188. package/core/audits/uses-rel-preload.d.ts +61 -0
  189. package/core/audits/valid-source-maps.d.ts +27 -0
  190. package/core/audits/viewport.d.ts +17 -0
  191. package/core/audits/violation-audit.d.ts +14 -0
  192. package/core/audits/work-during-interaction.d.ts +82 -0
  193. package/core/computed/computed-artifact.d.ts +15 -0
  194. package/core/computed/critical-request-chains.d.ts +40 -0
  195. package/core/computed/image-records.d.ts +24 -0
  196. package/core/computed/js-bundles.d.ts +13 -0
  197. package/core/computed/load-simulator.d.ts +28 -0
  198. package/core/computed/main-resource.d.ts +25 -0
  199. package/core/computed/main-thread-tasks.d.ts +15 -0
  200. package/core/computed/manifest-values.d.ts +24 -0
  201. package/core/computed/metrics/cumulative-layout-shift.d.ts +53 -0
  202. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +19 -0
  203. package/core/computed/metrics/first-contentful-paint.d.ts +15 -0
  204. package/core/computed/metrics/first-meaningful-paint.d.ts +15 -0
  205. package/core/computed/metrics/interactive.d.ts +61 -0
  206. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +48 -0
  207. package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +12 -0
  208. package/core/computed/metrics/lantern-interactive.d.ts +31 -0
  209. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +25 -0
  210. package/core/computed/metrics/lantern-max-potential-fid.d.ts +30 -0
  211. package/core/computed/metrics/lantern-metric.d.ts +78 -0
  212. package/core/computed/metrics/lantern-speed-index.d.ts +38 -0
  213. package/core/computed/metrics/lantern-total-blocking-time.d.ts +31 -0
  214. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +20 -0
  215. package/core/computed/metrics/largest-contentful-paint.d.ts +15 -0
  216. package/core/computed/metrics/max-potential-fid.d.ts +15 -0
  217. package/core/computed/metrics/metric.d.ts +38 -0
  218. package/core/computed/metrics/navigation-metric.d.ts +16 -0
  219. package/core/computed/metrics/responsiveness.d.ts +87 -0
  220. package/core/computed/metrics/speed-index.d.ts +10 -0
  221. package/core/computed/metrics/tbt-utils.d.ts +18 -0
  222. package/core/computed/metrics/timing-summary.d.ts +46 -0
  223. package/core/computed/metrics/total-blocking-time.d.ts +23 -0
  224. package/core/computed/module-duplication.d.ts +37 -0
  225. package/core/computed/network-analysis.d.ts +20 -0
  226. package/core/computed/network-records.d.ts +15 -0
  227. package/core/computed/network-records.js +1 -0
  228. package/core/computed/page-dependency-graph.d.ts +88 -0
  229. package/core/computed/processed-navigation.d.ts +15 -0
  230. package/core/computed/processed-trace.d.ts +14 -0
  231. package/core/computed/resource-summary.d.ts +44 -0
  232. package/core/computed/screenshots.d.ts +20 -0
  233. package/core/computed/speedline.d.ts +15 -0
  234. package/core/computed/unused-css.d.ts +62 -0
  235. package/core/computed/unused-javascript-summary.d.ts +71 -0
  236. package/core/computed/user-timings.d.ts +31 -0
  237. package/core/computed/viewport-meta.d.ts +35 -0
  238. package/core/config/budget.d.ts +74 -0
  239. package/core/config/config-helpers.d.ts +94 -0
  240. package/core/config/config-plugin.d.ts +46 -0
  241. package/core/config/config.d.ts +28 -0
  242. package/core/config/constants.d.ts +86 -0
  243. package/core/config/default-config.d.ts +5 -0
  244. package/core/config/default-config.js +1 -0
  245. package/core/config/desktop-config.d.ts +5 -0
  246. package/core/config/desktop-config.js +1 -0
  247. package/core/config/experimental-config.d.ts +13 -0
  248. package/core/config/filters.d.ts +83 -0
  249. package/core/config/full-config.d.ts +9 -0
  250. package/core/config/lr-desktop-config.d.ts +4 -0
  251. package/core/config/lr-mobile-config.d.ts +9 -0
  252. package/core/config/metrics-to-audits.d.ts +19 -0
  253. package/core/config/perf-config.d.ts +9 -0
  254. package/core/config/validation.d.ts +77 -0
  255. package/core/gather/base-artifacts.d.ts +16 -0
  256. package/core/gather/base-gatherer.d.ts +72 -0
  257. package/core/gather/base-gatherer.js +2 -0
  258. package/core/gather/driver/dom.d.ts +20 -0
  259. package/core/gather/driver/environment.d.ts +35 -0
  260. package/core/gather/driver/execution-context.d.ts +101 -0
  261. package/core/gather/driver/execution-context.js +1 -7
  262. package/core/gather/driver/navigation.d.ts +33 -0
  263. package/core/gather/driver/network-monitor.d.ts +82 -0
  264. package/core/gather/driver/network.d.ts +10 -0
  265. package/core/gather/driver/prepare.d.ts +46 -0
  266. package/core/gather/driver/service-workers.d.ts +16 -0
  267. package/core/gather/driver/storage.d.ts +24 -0
  268. package/core/gather/driver/target-manager.d.ts +61 -0
  269. package/core/gather/driver/wait-for-condition.d.ts +116 -0
  270. package/core/gather/driver/wait-for-condition.js +3 -2
  271. package/core/gather/driver.d.ts +30 -0
  272. package/core/gather/fetcher.d.ts +63 -0
  273. package/core/gather/fetcher.js +2 -0
  274. package/core/gather/gatherers/accessibility.d.ts +23 -0
  275. package/core/gather/gatherers/anchor-elements.d.ts +10 -0
  276. package/core/gather/gatherers/bf-cache-failures.d.ts +43 -0
  277. package/core/gather/gatherers/cache-contents.d.ts +11 -0
  278. package/core/gather/gatherers/console-messages.d.ts +39 -0
  279. package/core/gather/gatherers/css-usage.d.ts +39 -0
  280. package/core/gather/gatherers/devtools-log-compat.d.ts +13 -0
  281. package/core/gather/gatherers/devtools-log.d.ts +48 -0
  282. package/core/gather/gatherers/dobetterweb/doctype.d.ts +10 -0
  283. package/core/gather/gatherers/dobetterweb/domstats.d.ts +10 -0
  284. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +61 -0
  285. package/core/gather/gatherers/dobetterweb/password-inputs-with-prevented-paste.d.ts +10 -0
  286. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +30 -0
  287. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +53 -0
  288. package/core/gather/gatherers/full-page-screenshot.d.ts +35 -0
  289. package/core/gather/gatherers/gatherer.d.ts +46 -0
  290. package/core/gather/gatherers/global-listeners.d.ts +27 -0
  291. package/core/gather/gatherers/iframe-elements.d.ts +11 -0
  292. package/core/gather/gatherers/image-elements.d.ts +35 -0
  293. package/core/gather/gatherers/inputs.d.ts +10 -0
  294. package/core/gather/gatherers/inspector-issues.d.ts +38 -0
  295. package/core/gather/gatherers/installability-errors.d.ts +17 -0
  296. package/core/gather/gatherers/js-usage.d.ts +22 -0
  297. package/core/gather/gatherers/link-elements.d.ts +39 -0
  298. package/core/gather/gatherers/main-document-content.d.ts +27 -0
  299. package/core/gather/gatherers/meta-elements.d.ts +10 -0
  300. package/core/gather/gatherers/network-user-agent.d.ts +18 -0
  301. package/core/gather/gatherers/script-elements.d.ts +26 -0
  302. package/core/gather/gatherers/scripts.d.ts +27 -0
  303. package/core/gather/gatherers/seo/embedded-content.d.ts +10 -0
  304. package/core/gather/gatherers/seo/font-size.d.ts +131 -0
  305. package/core/gather/gatherers/seo/robots-txt.d.ts +10 -0
  306. package/core/gather/gatherers/seo/tap-targets.d.ts +21 -0
  307. package/core/gather/gatherers/service-worker.d.ts +16 -0
  308. package/core/gather/gatherers/source-maps.d.ts +50 -0
  309. package/core/gather/gatherers/stacks.d.ts +38 -0
  310. package/core/gather/gatherers/trace-compat.d.ts +13 -0
  311. package/core/gather/gatherers/trace-elements.d.ts +83 -0
  312. package/core/gather/gatherers/trace.d.ts +23 -0
  313. package/core/gather/gatherers/viewport-dimensions.d.ts +10 -0
  314. package/core/gather/gatherers/web-app-manifest.d.ts +32 -0
  315. package/core/gather/navigation-runner.d.ts +92 -0
  316. package/core/gather/runner-helpers.d.ts +39 -0
  317. package/core/gather/session.d.ts +50 -0
  318. package/core/gather/snapshot-runner.d.ts +10 -0
  319. package/core/gather/timespan-runner.d.ts +12 -0
  320. package/core/index.d.cts +4 -0
  321. package/core/index.d.ts +88 -0
  322. package/core/index.js +2 -0
  323. package/core/legacy/config/config.d.ts +107 -0
  324. package/core/legacy/config/legacy-default-config.d.ts +4 -0
  325. package/core/legacy/gather/connections/connection.d.ts +75 -0
  326. package/core/legacy/gather/connections/connection.js +1 -0
  327. package/core/legacy/gather/connections/cri.d.ts +27 -0
  328. package/core/legacy/gather/connections/raw.d.ts +20 -0
  329. package/core/legacy/gather/driver.d.ts +214 -0
  330. package/core/legacy/gather/driver.js +1 -0
  331. package/core/legacy/gather/gather-runner.d.ts +166 -0
  332. package/core/lib/arbitrary-equality-map.d.ts +47 -0
  333. package/core/lib/asset-saver.d.ts +101 -0
  334. package/core/lib/axe.d.ts +2 -0
  335. package/core/lib/bf-cache-strings.d.ts +121 -0
  336. package/core/lib/cdt/Common.d.ts +3 -0
  337. package/core/lib/cdt/Platform.d.ts +26 -0
  338. package/core/lib/cdt/SDK.d.ts +2 -0
  339. package/core/lib/cdt/generated/ParsedURL.d.ts +28 -0
  340. package/core/lib/cdt/generated/SourceMap.d.ts +100 -0
  341. package/core/lib/csp-evaluator.d.ts +41 -0
  342. package/core/lib/dependency-graph/base-node.d.ts +161 -0
  343. package/core/lib/dependency-graph/cpu-node.d.ts +34 -0
  344. package/core/lib/dependency-graph/cpu-node.js +1 -0
  345. package/core/lib/dependency-graph/network-node.d.ts +43 -0
  346. package/core/lib/dependency-graph/network-node.js +1 -0
  347. package/core/lib/dependency-graph/simulator/connection-pool.d.ts +58 -0
  348. package/core/lib/dependency-graph/simulator/connection-pool.js +1 -0
  349. package/core/lib/dependency-graph/simulator/dns-cache.d.ts +42 -0
  350. package/core/lib/dependency-graph/simulator/dns-cache.js +2 -0
  351. package/core/lib/dependency-graph/simulator/network-analyzer.d.ts +166 -0
  352. package/core/lib/dependency-graph/simulator/simulator-timing-map.d.ts +153 -0
  353. package/core/lib/dependency-graph/simulator/simulator-timing-map.js +2 -2
  354. package/core/lib/dependency-graph/simulator/simulator.d.ts +154 -0
  355. package/core/lib/dependency-graph/simulator/simulator.js +3 -2
  356. package/core/lib/dependency-graph/simulator/tcp-connection.d.ts +89 -0
  357. package/core/lib/deprecations-strings.d.ts +66 -0
  358. package/core/lib/emulation.d.ts +43 -0
  359. package/core/lib/i18n/i18n.d.ts +81 -0
  360. package/core/lib/icons.d.ts +22 -0
  361. package/core/lib/lantern-trace-saver.d.ts +20 -0
  362. package/core/lib/lh-env.d.ts +2 -0
  363. package/core/lib/lh-error.d.ts +328 -0
  364. package/core/lib/lh-trace-processor.d.ts +5 -0
  365. package/core/lib/manifest-parser.d.ts +186 -0
  366. package/core/lib/median-run.d.ts +17 -0
  367. package/core/lib/minification-estimator.d.ts +9 -0
  368. package/core/lib/minify-devtoolslog.d.ts +6 -0
  369. package/core/lib/minify-trace.d.ts +6 -0
  370. package/core/lib/navigation-error.d.ts +39 -0
  371. package/core/lib/network-recorder.d.ts +115 -0
  372. package/core/lib/network-request.d.ts +245 -0
  373. package/core/lib/network-request.js +1 -0
  374. package/core/lib/page-functions.d.ts +149 -0
  375. package/core/lib/proto-preprocessor.d.ts +13 -0
  376. package/core/lib/rect-helpers.d.ts +100 -0
  377. package/core/lib/script-helpers.d.ts +17 -0
  378. package/core/lib/sentry.d.ts +32 -0
  379. package/core/lib/stack-packs.d.ts +16 -0
  380. package/core/lib/statistics.d.ts +28 -0
  381. package/core/lib/tappable-rects.d.ts +8 -0
  382. package/core/lib/third-party-web.d.ts +32 -0
  383. package/core/lib/timing-trace-saver.d.ts +21 -0
  384. package/core/lib/tracehouse/cpu-profile-model.d.ts +228 -0
  385. package/core/lib/tracehouse/main-thread-tasks.d.ts +162 -0
  386. package/core/lib/tracehouse/main-thread-tasks.js +1 -0
  387. package/core/lib/tracehouse/task-groups.d.ts +66 -0
  388. package/core/lib/tracehouse/task-summary.d.ts +18 -0
  389. package/core/lib/tracehouse/trace-processor.d.ts +275 -0
  390. package/core/lib/traces/metric-trace-events.d.ts +65 -0
  391. package/core/lib/url-utils.d.ts +100 -0
  392. package/core/runner.d.ts +109 -0
  393. package/core/scoring.d.ts +26 -0
  394. package/core/user-flow.d.ts +106 -0
  395. package/core/user-flow.js +1 -0
  396. package/core/util.d.cts +230 -0
  397. package/eslint-local-rules.d.cts +6 -0
  398. package/esm-utils.d.ts +14 -0
  399. package/flow-report/api.d.ts +7 -0
  400. package/flow-report/clients/standalone.d.ts +7 -0
  401. package/flow-report/src/app.d.ts +11 -0
  402. package/flow-report/src/common.d.ts +20 -0
  403. package/flow-report/src/header.d.ts +10 -0
  404. package/flow-report/src/help-dialog.d.ts +10 -0
  405. package/flow-report/src/i18n/i18n.d.ts +209 -0
  406. package/flow-report/src/i18n/localized-strings.d.ts +9 -0
  407. package/flow-report/src/i18n/ui-strings.d.ts +48 -0
  408. package/flow-report/src/icons.d.ts +18 -0
  409. package/flow-report/src/sidebar/flow.d.ts +8 -0
  410. package/flow-report/src/sidebar/sidebar.d.ts +17 -0
  411. package/flow-report/src/summary/category.d.ts +19 -0
  412. package/flow-report/src/summary/summary.d.ts +18 -0
  413. package/flow-report/src/topbar.d.ts +15 -0
  414. package/flow-report/src/util.d.ts +30 -0
  415. package/flow-report/src/wrappers/category-score.d.ts +12 -0
  416. package/flow-report/src/wrappers/markdown.d.ts +10 -0
  417. package/flow-report/src/wrappers/report.d.ts +10 -0
  418. package/flow-report/src/wrappers/styles.d.ts +8 -0
  419. package/flow-report/test/app-test.d.ts +7 -0
  420. package/flow-report/test/common-test.d.ts +7 -0
  421. package/flow-report/test/flow-report-pptr-test.d.ts +7 -0
  422. package/flow-report/test/header-test.d.ts +7 -0
  423. package/flow-report/test/sample-flow.d.ts +7 -0
  424. package/flow-report/test/setup/env-setup.d.ts +11 -0
  425. package/flow-report/test/sidebar/flow-test.d.ts +7 -0
  426. package/flow-report/test/sidebar/sidebar-test.d.ts +7 -0
  427. package/flow-report/test/summary/category-test.d.ts +7 -0
  428. package/flow-report/test/summary/summary-test.d.ts +7 -0
  429. package/flow-report/test/topbar-test.d.ts +7 -0
  430. package/flow-report/test/util-test.d.ts +7 -0
  431. package/flow-report/test/wrappers/category-score-test.d.ts +7 -0
  432. package/flow-report/test/wrappers/markdown-test.d.ts +7 -0
  433. package/flow-report/tsconfig.json +1 -1
  434. package/package.json +5 -2
  435. package/report/clients/bundle.d.ts +6 -0
  436. package/report/clients/standalone.d.ts +2 -0
  437. package/report/generator/file-namer.d.ts +35 -0
  438. package/report/generator/flow-report-assets.d.ts +9 -0
  439. package/report/generator/report-assets.d.ts +8 -0
  440. package/report/generator/report-generator.d.ts +59 -0
  441. package/report/renderer/api.d.ts +31 -0
  442. package/report/renderer/category-renderer.d.ts +176 -0
  443. package/report/renderer/components.d.ts +10 -0
  444. package/report/renderer/crc-details-renderer.d.ts +73 -0
  445. package/report/renderer/details-renderer.d.ts +141 -0
  446. package/report/renderer/dom.d.ts +125 -0
  447. package/report/renderer/drop-down-menu.d.ts +70 -0
  448. package/report/renderer/element-screenshot-renderer.d.ts +79 -0
  449. package/report/renderer/features-util.d.ts +13 -0
  450. package/report/renderer/i18n.d.ts +106 -0
  451. package/report/renderer/logger.d.ts +47 -0
  452. package/report/renderer/open-tab.d.ts +19 -0
  453. package/report/renderer/performance-category-renderer.d.ts +56 -0
  454. package/report/renderer/pwa-category-renderer.d.ts +55 -0
  455. package/report/renderer/report-renderer.d.ts +57 -0
  456. package/report/renderer/report-ui-features.d.ts +71 -0
  457. package/report/renderer/snippet-renderer.d.ts +85 -0
  458. package/report/renderer/swap-locale-feature.d.ts +31 -0
  459. package/report/renderer/text-encoding.d.ts +26 -0
  460. package/report/renderer/topbar-features.d.ts +82 -0
  461. package/report/renderer/util.d.ts +230 -0
  462. package/report/test-assets/faux-psi.d.ts +34 -0
  463. package/report/types/augment-dom.d.ts +1 -1
  464. package/root.d.ts +3 -0
  465. package/shared/localization/format.d.ts +106 -0
  466. package/shared/localization/i18n-module.d.ts +4 -0
  467. package/shared/localization/locales.d.ts +7 -0
  468. package/shared/localization/swap-flow-locale.d.ts +6 -0
  469. package/shared/localization/swap-locale.d.ts +39 -0
  470. package/shared/type-verifiers.d.ts +23 -0
  471. package/third-party/axe/valid-langs.d.ts +9 -0
  472. package/types/artifacts.d.ts +40 -38
  473. package/types/audit.d.ts +6 -6
  474. package/types/config.d.ts +3 -3
  475. package/types/externs.d.ts +7 -3
  476. package/types/gatherer.d.ts +27 -21
  477. package/types/{cssstyle/index.d.ts → internal/cssstyle.d.ts} +0 -0
  478. package/types/{enquirer.d.ts → internal/enquirer.d.ts} +0 -0
  479. package/types/{es-main.d.ts → internal/es-main.d.ts} +0 -0
  480. package/types/internal/global.d.ts +15 -0
  481. package/types/{http-link-header/index.d.ts → internal/http-link-header.d.ts} +0 -0
  482. package/types/{jsonlint-mod.d.ts → internal/jsonlint-mod.d.ts} +0 -0
  483. package/types/{lighthouse-logger/index.d.ts → internal/lighthouse-logger.d.ts} +0 -0
  484. package/types/{lookup-closest-locale/index.d.ts → internal/lookup-closest-locale.d.ts} +3 -1
  485. package/types/{metaviewport-parser/index.d.ts → internal/metaviewport-parser.d.ts} +0 -0
  486. package/types/{node-fetch.d.ts → internal/node-fetch.d.ts} +0 -0
  487. package/types/{node.d.ts → internal/node.d.ts} +0 -0
  488. package/types/{parse-cache-control/index.d.ts → internal/parse-cache-control.d.ts} +0 -0
  489. package/types/{pretty-json-stringify/index.d.ts → internal/pretty-json-stringify.d.ts} +0 -0
  490. package/types/{query-selector.d.ts → internal/query-selector.d.ts} +1 -1
  491. package/types/{rollup-plugin-postprocess.d.ts → internal/rollup-plugin-postprocess.d.ts} +0 -0
  492. package/types/{smokehouse.d.ts → internal/smokehouse.d.ts} +3 -3
  493. package/types/{test.d.ts → internal/test.d.ts} +0 -0
  494. package/types/lh.d.ts +81 -0
  495. package/types/lh.js +13 -0
  496. package/types/lhr/audit-details.d.ts +2 -2
  497. package/types/lhr/audit-result.d.ts +2 -2
  498. package/types/lhr/flow-result.d.ts +1 -1
  499. package/types/lhr/lhr.d.ts +2 -2
  500. package/types/lhr/settings.d.ts +1 -1
  501. package/types/lhr/treemap.d.ts +2 -2
  502. package/types/protocol.d.ts +8 -3
  503. package/types/puppeteer.d.ts +11 -6
  504. package/types/user-flow.d.ts +14 -5
  505. package/types/global-lh.d.ts +0 -85
@@ -0,0 +1,35 @@
1
+ export namespace UIStrings {
2
+ const warningSlowHostCpu: string;
3
+ }
4
+ /**
5
+ * @param {LH.Gatherer.FRProtocolSession} session
6
+ * @return {Promise<LH.Crdp.Browser.GetVersionResponse & {milestone: number}>}
7
+ */
8
+ export function getBrowserVersion(session: LH.Gatherer.FRProtocolSession): Promise<import("devtools-protocol").Protocol.Browser.GetVersionResponse & {
9
+ milestone: number;
10
+ }>;
11
+ /**
12
+ * Computes the benchmark index to get a rough estimate of device class.
13
+ * @param {LH.Gatherer.FRTransitionalDriver['executionContext']} executionContext
14
+ * @return {Promise<number>}
15
+ */
16
+ export function getBenchmarkIndex(executionContext: LH.Gatherer.FRTransitionalDriver['executionContext']): Promise<number>;
17
+ /**
18
+ * Returns a warning if the host device appeared to be underpowered according to BenchmarkIndex.
19
+ *
20
+ * @param {{settings: LH.Config.Settings; baseArtifacts: Pick<LH.Artifacts, 'BenchmarkIndex'>}} context
21
+ * @return {LH.IcuMessage | undefined}
22
+ */
23
+ export function getSlowHostCpuWarning(context: {
24
+ settings: LH.Config.Settings;
25
+ baseArtifacts: Pick<LH.Artifacts, 'BenchmarkIndex'>;
26
+ }): LH.IcuMessage | undefined;
27
+ /**
28
+ * @param {{settings: LH.Config.Settings, baseArtifacts: Pick<LH.Artifacts, 'BenchmarkIndex'>}} context
29
+ * @return {Array<LH.IcuMessage>}
30
+ */
31
+ export function getEnvironmentWarnings(context: {
32
+ settings: LH.Config.Settings;
33
+ baseArtifacts: Pick<LH.Artifacts, 'BenchmarkIndex'>;
34
+ }): Array<LH.IcuMessage>;
35
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1,101 @@
1
+ export class ExecutionContext {
2
+ /**
3
+ * Prefix every script evaluation with a shadowing of common globals that tend to be ponyfilled
4
+ * incorrectly by many sites. This allows functions to still refer to `Promise` instead of
5
+ * Lighthouse-specific backups like `__nativePromise` (injected by `cacheNativesOnNewDocument` above).
6
+ */
7
+ static _cachedNativesPreamble: string;
8
+ /**
9
+ * Serializes an array of arguments for use in an `eval` string across the protocol.
10
+ * @param {unknown[]} args
11
+ * @return {string}
12
+ */
13
+ static serializeArguments(args: unknown[]): string;
14
+ /** @param {LH.Gatherer.FRProtocolSession} session */
15
+ constructor(session: LH.Gatherer.FRProtocolSession);
16
+ _session: LH.Gatherer.FRProtocolSession;
17
+ /** @type {number|undefined} */
18
+ _executionContextId: number | undefined;
19
+ /**
20
+ * Marks how many execution context ids have been created, for purposes of having a unique
21
+ * value (that doesn't expose the actual execution context id) to
22
+ * use for __lighthouseExecutionContextUniqueIdentifier.
23
+ * @type {number}
24
+ */
25
+ _executionContextIdentifiersCreated: number;
26
+ /**
27
+ * Returns the isolated context ID currently in use.
28
+ */
29
+ getContextId(): number | undefined;
30
+ /**
31
+ * Clears the remembered context ID. Use this method when we have knowledge that the runtime context
32
+ * we were using has been destroyed by the browser and is no longer available.
33
+ */
34
+ clearContextId(): void;
35
+ /**
36
+ * Returns the cached isolated execution context ID or creates a new execution context for the main
37
+ * frame. The cached execution context is cleared on every gotoURL invocation, so a new one will
38
+ * always be created on the first call on a new page.
39
+ * @return {Promise<number>}
40
+ */
41
+ _getOrCreateIsolatedContextId(): Promise<number>;
42
+ /**
43
+ * Evaluate an expression in the given execution context; an undefined contextId implies the main
44
+ * page without isolation.
45
+ * @param {string} expression
46
+ * @param {number|undefined} contextId
47
+ * @return {Promise<*>}
48
+ */
49
+ _evaluateInContext(expression: string, contextId: number | undefined): Promise<any>;
50
+ /**
51
+ * Note: Prefer `evaluate` instead.
52
+ * Evaluate an expression in the context of the current page. If useIsolation is true, the expression
53
+ * will be evaluated in a content script that has access to the page's DOM but whose JavaScript state
54
+ * is completely separate.
55
+ * Returns a promise that resolves on the expression's value.
56
+ * @param {string} expression
57
+ * @param {{useIsolation?: boolean}=} options
58
+ * @return {Promise<*>}
59
+ */
60
+ evaluateAsync(expression: string, options?: {
61
+ useIsolation?: boolean;
62
+ } | undefined): Promise<any>;
63
+ /**
64
+ * Evaluate a function in the context of the current page.
65
+ * If `useIsolation` is true, the function will be evaluated in a content script that has
66
+ * access to the page's DOM but whose JavaScript state is completely separate.
67
+ * Returns a promise that resolves on a value of `mainFn`'s return type.
68
+ * @template {unknown[]} T, R
69
+ * @param {((...args: T) => R)} mainFn The main function to call.
70
+ * @param {{args: T, useIsolation?: boolean, deps?: Array<Function|string>}} options `args` should
71
+ * match the args of `mainFn`, and can be any serializable value. `deps` are functions that must be
72
+ * defined for `mainFn` to work.
73
+ * @return {Promise<Awaited<R>>}
74
+ */
75
+ evaluate<T extends unknown[], R>(mainFn: (...args: T) => R, options: {
76
+ args: T;
77
+ useIsolation?: boolean | undefined;
78
+ deps?: (string | Function)[] | undefined;
79
+ }): Promise<Awaited<R>>;
80
+ /**
81
+ * Evaluate a function on every new frame from now on.
82
+ * @template {unknown[]} T
83
+ * @param {((...args: T) => void)} mainFn The main function to call.
84
+ * @param {{args: T, deps?: Array<Function|string>}} options `args` should
85
+ * match the args of `mainFn`, and can be any serializable value. `deps` are functions that must be
86
+ * defined for `mainFn` to work.
87
+ * @return {Promise<void>}
88
+ */
89
+ evaluateOnNewDocument<T_1 extends unknown[]>(mainFn: (...args: T_1) => void, options: {
90
+ args: T_1;
91
+ deps?: (string | Function)[] | undefined;
92
+ }): Promise<void>;
93
+ /**
94
+ * Cache native functions/objects inside window so we are sure polyfills do not overwrite the
95
+ * native implementations when the page loads.
96
+ * @return {Promise<void>}
97
+ */
98
+ cacheNativesOnNewDocument(): Promise<void>;
99
+ }
100
+ import * as LH from "../../../types/lh.js";
101
+ //# sourceMappingURL=execution-context.d.ts.map
@@ -6,6 +6,7 @@
6
6
 
7
7
  /* global window */
8
8
 
9
+ import * as LH from '../../../types/lh.js';
9
10
  import {pageFunctions} from '../../lib/page-functions.js';
10
11
 
11
12
  class ExecutionContext {
@@ -232,13 +233,6 @@ class ExecutionContext {
232
233
  window.__nativeFetch = window.fetch;
233
234
  window.__ElementMatches = window.Element.prototype.matches;
234
235
  window.__HTMLElementBoundingClientRect = window.HTMLElement.prototype.getBoundingClientRect;
235
- // Ensure the native `performance.now` is not overwritable.
236
- const performance = window.performance;
237
- const performanceNow = window.performance.now;
238
- Object.defineProperty(performance, 'now', {
239
- value: () => performanceNow.call(performance),
240
- writable: false,
241
- });
242
236
  /* c8 ignore stop */
243
237
  }, {args: []});
244
238
  }
@@ -0,0 +1,33 @@
1
+ export type NavigationOptions = {
2
+ waitUntil: Array<'fcp' | 'load' | 'navigated'>;
3
+ } & LH.Config.SharedPassNavigationJson & Partial<Pick<LH.Config.Settings, 'maxWaitForFcp' | 'maxWaitForLoad' | 'debugNavigation'>>;
4
+ /**
5
+ * Navigates to the given URL, assuming that the page is not already on this URL.
6
+ * Resolves on the url of the loaded page, taking into account any redirects.
7
+ * Typical use of this method involves navigating to a neutral page such as `about:blank` in between
8
+ * navigations.
9
+ *
10
+ * @param {LH.Gatherer.FRTransitionalDriver} driver
11
+ * @param {LH.NavigationRequestor} requestor
12
+ * @param {NavigationOptions} options
13
+ * @return {Promise<{requestedUrl: string, mainDocumentUrl: string, warnings: Array<LH.IcuMessage>}>}
14
+ */
15
+ export function gotoURL(driver: LH.Gatherer.FRTransitionalDriver, requestor: LH.NavigationRequestor, options: NavigationOptions): Promise<{
16
+ requestedUrl: string;
17
+ mainDocumentUrl: string;
18
+ warnings: Array<LH.IcuMessage>;
19
+ }>;
20
+ /**
21
+ * @param {{timedOut: boolean, requestedUrl: string, mainDocumentUrl: string; }} navigation
22
+ * @return {Array<LH.IcuMessage>}
23
+ */
24
+ export function getNavigationWarnings(navigation: {
25
+ timedOut: boolean;
26
+ requestedUrl: string;
27
+ mainDocumentUrl: string;
28
+ }): Array<LH.IcuMessage>;
29
+ export namespace UIStrings {
30
+ const warningRedirected: string;
31
+ const warningTimeout: string;
32
+ }
33
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1,82 @@
1
+ export type NetworkRecorderEventMap = import('../../lib/network-recorder.js').NetworkRecorderEventMap;
2
+ export type NetworkMonitorEvent_ = 'network-2-idle' | 'network-critical-idle' | 'networkidle' | 'networkbusy' | 'network-critical-busy' | 'network-2-busy';
3
+ export type NetworkMonitorEventMap = Record<NetworkMonitorEvent_, []> & NetworkRecorderEventMap;
4
+ export type NetworkMonitorEvent = keyof NetworkMonitorEventMap;
5
+ export type NetworkMonitorEmitter = LH.Protocol.StrictEventEmitterClass<NetworkMonitorEventMap>;
6
+ declare const NetworkMonitor_base: NetworkMonitorEmitter;
7
+ export class NetworkMonitor extends NetworkMonitor_base {
8
+ /**
9
+ * Finds all time periods where the number of inflight requests is less than or equal to the
10
+ * number of allowed concurrent requests.
11
+ * @param {Array<LH.Artifacts.NetworkRequest>} requests
12
+ * @param {number} allowedConcurrentRequests
13
+ * @param {number=} endTime
14
+ * @return {Array<{start: number, end: number}>}
15
+ */
16
+ static findNetworkQuietPeriods(requests: Array<LH.Artifacts.NetworkRequest>, allowedConcurrentRequests: number, endTime?: number | undefined): Array<{
17
+ start: number;
18
+ end: number;
19
+ }>;
20
+ /** @param {LH.Gatherer.FRTransitionalDriver['targetManager']} targetManager */
21
+ constructor(targetManager: LH.Gatherer.FRTransitionalDriver['targetManager']);
22
+ /** @type {NetworkRecorder|undefined} */
23
+ _networkRecorder: NetworkRecorder | undefined;
24
+ /** @type {Array<LH.Crdp.Page.Frame>} */
25
+ _frameNavigations: Array<LH.Crdp.Page.Frame>;
26
+ /** @type {LH.Gatherer.FRTransitionalDriver['targetManager']} */
27
+ _targetManager: LH.Gatherer.FRTransitionalDriver['targetManager'];
28
+ /** @type {LH.Gatherer.FRProtocolSession} */
29
+ _session: LH.Gatherer.FRProtocolSession;
30
+ /** @param {LH.Crdp.Page.FrameNavigatedEvent} event */
31
+ _onFrameNavigated: (event: LH.Crdp.Page.FrameNavigatedEvent) => number;
32
+ /** @param {LH.Protocol.RawEventMessage} event */
33
+ _onProtocolMessage: (event: LH.Protocol.RawEventMessage) => void;
34
+ /**
35
+ * @return {Promise<void>}
36
+ */
37
+ enable(): Promise<void>;
38
+ /**
39
+ * @return {Promise<void>}
40
+ */
41
+ disable(): Promise<void>;
42
+ /** @return {Promise<{requestedUrl?: string, mainDocumentUrl?: string}>} */
43
+ getNavigationUrls(): Promise<{
44
+ requestedUrl?: string | undefined;
45
+ mainDocumentUrl?: string | undefined;
46
+ }>;
47
+ /**
48
+ * @return {Array<NetworkRequest>}
49
+ */
50
+ getInflightRequests(): Array<NetworkRequest>;
51
+ /**
52
+ * Returns whether the network is completely idle (i.e. there are 0 inflight network requests).
53
+ */
54
+ isIdle(): boolean;
55
+ /**
56
+ * Returns whether any important resources for the page are in progress.
57
+ * Above-the-fold images and XHRs should be included.
58
+ * Tracking pixels, low priority images, and cross frame requests should be excluded.
59
+ * @return {boolean}
60
+ */
61
+ isCriticalIdle(): boolean;
62
+ /**
63
+ * Returns whether the network is semi-idle (i.e. there are 2 or fewer inflight network requests).
64
+ */
65
+ is2Idle(): boolean;
66
+ /**
67
+ * Returns whether the number of currently inflight requests is less than or
68
+ * equal to the number of allowed concurrent requests.
69
+ * @param {number} allowedRequests
70
+ * @param {(request: NetworkRequest) => boolean} [requestFilter]
71
+ * @return {boolean}
72
+ */
73
+ _isActiveIdlePeriod(allowedRequests: number, requestFilter?: ((request: NetworkRequest) => boolean) | undefined): boolean;
74
+ /**
75
+ * Emits the appropriate network status event.
76
+ */
77
+ _emitNetworkStatus(): void;
78
+ }
79
+ import { NetworkRecorder } from "../../lib/network-recorder.js";
80
+ import { NetworkRequest } from "../../lib/network-request.js";
81
+ export {};
82
+ //# sourceMappingURL=network-monitor.d.ts.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Return the body of the response with the given ID. Rejects if getting the
3
+ * body times out.
4
+ * @param {LH.Gatherer.FRProtocolSession} session
5
+ * @param {string} requestId
6
+ * @param {number} [timeout]
7
+ * @return {Promise<string>}
8
+ */
9
+ export function fetchResponseBodyFromCache(session: LH.Gatherer.FRProtocolSession, requestId: string, timeout?: number | undefined): Promise<string>;
10
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Prepares a target for observational analysis by setting throttling and network headers/blocked patterns.
3
+ *
4
+ * This method assumes `prepareTargetForNavigationMode` or `prepareTargetForTimespanMode` has already been invoked.
5
+ *
6
+ * @param {LH.Gatherer.FRProtocolSession} session
7
+ * @param {LH.Config.Settings} settings
8
+ * @param {{disableThrottling: boolean, blockedUrlPatterns?: string[]}} options
9
+ */
10
+ export function prepareThrottlingAndNetwork(session: LH.Gatherer.FRProtocolSession, settings: LH.Config.Settings, options: {
11
+ disableThrottling: boolean;
12
+ blockedUrlPatterns?: string[];
13
+ }): Promise<void>;
14
+ /**
15
+ * Prepares a target to be analyzed in timespan mode by enabling protocol domains, emulation, and throttling.
16
+ *
17
+ * @param {LH.Gatherer.FRTransitionalDriver} driver
18
+ * @param {LH.Config.Settings} settings
19
+ */
20
+ export function prepareTargetForTimespanMode(driver: LH.Gatherer.FRTransitionalDriver, settings: LH.Config.Settings): Promise<void>;
21
+ /**
22
+ * Prepares a target to be analyzed in navigation mode by enabling protocol domains, emulation, and new document
23
+ * handlers for global APIs or error handling.
24
+ *
25
+ * This method should be used in combination with `prepareTargetForIndividualNavigation` before a specific navigation occurs.
26
+ *
27
+ * @param {LH.Gatherer.FRTransitionalDriver} driver
28
+ * @param {LH.Config.Settings} settings
29
+ */
30
+ export function prepareTargetForNavigationMode(driver: LH.Gatherer.FRTransitionalDriver, settings: LH.Config.Settings): Promise<void>;
31
+ /**
32
+ * Prepares a target for a particular navigation by resetting storage and setting network.
33
+ *
34
+ * This method assumes `prepareTargetForNavigationMode` has already been invoked.
35
+ *
36
+ * @param {LH.Gatherer.FRProtocolSession} session
37
+ * @param {LH.Config.Settings} settings
38
+ * @param {Pick<LH.Config.NavigationDefn, 'disableThrottling'|'disableStorageReset'|'blockedUrlPatterns'> & {requestor: LH.NavigationRequestor}} navigation
39
+ * @return {Promise<{warnings: Array<LH.IcuMessage>}>}
40
+ */
41
+ export function prepareTargetForIndividualNavigation(session: LH.Gatherer.FRProtocolSession, settings: LH.Config.Settings, navigation: Pick<import("../../../types/config.js").default.NavigationDefn, "blockedUrlPatterns" | "disableStorageReset" | "disableThrottling"> & {
42
+ requestor: LH.NavigationRequestor;
43
+ }): Promise<{
44
+ warnings: Array<LH.IcuMessage>;
45
+ }>;
46
+ //# sourceMappingURL=prepare.d.ts.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
3
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
5
+ */
6
+ /**
7
+ * @param {LH.Gatherer.FRProtocolSession} session
8
+ * @return {Promise<LH.Crdp.ServiceWorker.WorkerVersionUpdatedEvent>}
9
+ */
10
+ export function getServiceWorkerVersions(session: LH.Gatherer.FRProtocolSession): Promise<LH.Crdp.ServiceWorker.WorkerVersionUpdatedEvent>;
11
+ /**
12
+ * @param {LH.Gatherer.FRProtocolSession} session
13
+ * @return {Promise<LH.Crdp.ServiceWorker.WorkerRegistrationUpdatedEvent>}
14
+ */
15
+ export function getServiceWorkerRegistrations(session: LH.Gatherer.FRProtocolSession): Promise<LH.Crdp.ServiceWorker.WorkerRegistrationUpdatedEvent>;
16
+ //# sourceMappingURL=service-workers.d.ts.map
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @param {LH.Gatherer.FRProtocolSession} session
3
+ * @param {string} url
4
+ * @return {Promise<LH.IcuMessage[]>}
5
+ */
6
+ export function clearDataForOrigin(session: LH.Gatherer.FRProtocolSession, url: string): Promise<LH.IcuMessage[]>;
7
+ /**
8
+ * Clear the network cache on disk and in memory.
9
+ * @param {LH.Gatherer.FRProtocolSession} session
10
+ * @return {Promise<LH.IcuMessage[]>}
11
+ */
12
+ export function clearBrowserCaches(session: LH.Gatherer.FRProtocolSession): Promise<LH.IcuMessage[]>;
13
+ /**
14
+ * @param {LH.Gatherer.FRProtocolSession} session
15
+ * @param {string} url
16
+ * @return {Promise<LH.IcuMessage | undefined>}
17
+ */
18
+ export function getImportantStorageWarning(session: LH.Gatherer.FRProtocolSession, url: string): Promise<LH.IcuMessage | undefined>;
19
+ export namespace UIStrings {
20
+ const warningData: string;
21
+ const warningCacheTimeout: string;
22
+ const warningOriginDataTimeout: string;
23
+ }
24
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1,61 @@
1
+ export type TargetWithSession = {
2
+ target: LH.Crdp.Target.TargetInfo;
3
+ cdpSession: LH.Puppeteer.CDPSession;
4
+ session: LH.Gatherer.FRProtocolSession;
5
+ protocolListener: (event: unknown) => void;
6
+ };
7
+ export type ProtocolEventMap = {
8
+ 'protocolevent': [LH.Protocol.RawEventMessage];
9
+ };
10
+ export type ProtocolEventMessageEmitter = LH.Protocol.StrictEventEmitterClass<ProtocolEventMap>;
11
+ declare const TargetManager_base: ProtocolEventMessageEmitter;
12
+ /**
13
+ * Tracks targets (the page itself, its iframes, their iframes, etc) as they
14
+ * appear and allows listeners to the flattened protocol events from all targets.
15
+ */
16
+ export class TargetManager extends TargetManager_base {
17
+ /** @param {LH.Puppeteer.CDPSession} cdpSession */
18
+ constructor(cdpSession: LH.Puppeteer.CDPSession);
19
+ _enabled: boolean;
20
+ _rootCdpSession: import("../../../types/puppeteer.js").default.CDPSession;
21
+ /**
22
+ * A map of target id to target/session information. Used to ensure unique
23
+ * attached targets.
24
+ * @type {Map<string, TargetWithSession>}
25
+ */
26
+ _targetIdToTargets: Map<string, TargetWithSession>;
27
+ /**
28
+ * @param {LH.Puppeteer.CDPSession} cdpSession
29
+ */
30
+ _onSessionAttached(cdpSession: LH.Puppeteer.CDPSession): Promise<void>;
31
+ /**
32
+ * @param {LH.Crdp.Page.FrameNavigatedEvent} frameNavigatedEvent
33
+ */
34
+ _onFrameNavigated(frameNavigatedEvent: LH.Crdp.Page.FrameNavigatedEvent): Promise<void>;
35
+ /**
36
+ * @param {string} sessionId
37
+ * @return {LH.Gatherer.FRProtocolSession}
38
+ */
39
+ _findSession(sessionId: string): LH.Gatherer.FRProtocolSession;
40
+ /**
41
+ * Returns the root session.
42
+ * @return {LH.Gatherer.FRProtocolSession}
43
+ */
44
+ rootSession(): LH.Gatherer.FRProtocolSession;
45
+ /**
46
+ * Returns a listener for all protocol events from session, and augments the
47
+ * event with the sessionId.
48
+ * @param {string} sessionId
49
+ */
50
+ _getProtocolEventListener(sessionId: string): <EventName extends keyof import("puppeteer-core").ProtocolMapping.Events>(method: EventName, params: import("../../../types/protocol.js").default.RawEventMessageRecord[EventName]["params"]) => void;
51
+ /**
52
+ * @return {Promise<void>}
53
+ */
54
+ enable(): Promise<void>;
55
+ /**
56
+ * @return {Promise<void>}
57
+ */
58
+ disable(): Promise<void>;
59
+ }
60
+ export {};
61
+ //# sourceMappingURL=target-manager.d.ts.map
@@ -0,0 +1,116 @@
1
+ export type NetworkMonitor = InstanceType<typeof import("./network-monitor.js")['NetworkMonitor']>;
2
+ export type NetworkMonitorEvent = import('./network-monitor.js').NetworkMonitorEvent;
3
+ export type CancellableWait<T = void> = {
4
+ promise: Promise<T>;
5
+ cancel: () => void;
6
+ };
7
+ export type WaitOptions = {
8
+ pauseAfterFcpMs: number;
9
+ pauseAfterLoadMs: number;
10
+ networkQuietThresholdMs: number;
11
+ cpuQuietThresholdMs: number;
12
+ maxWaitForLoadedMs: number;
13
+ maxWaitForFcpMs: number | undefined;
14
+ _waitForTestOverrides?: {
15
+ waitForFcp: typeof waitForFcp;
16
+ waitForLoadEvent: typeof waitForLoadEvent;
17
+ waitForNetworkIdle: typeof waitForNetworkIdle;
18
+ waitForCPUIdle: typeof waitForCPUIdle;
19
+ } | undefined;
20
+ };
21
+ /** @typedef {InstanceType<import('./network-monitor.js')['NetworkMonitor']>} NetworkMonitor */
22
+ /** @typedef {import('./network-monitor.js').NetworkMonitorEvent} NetworkMonitorEvent */
23
+ /**
24
+ * @template [T=void]
25
+ * @typedef CancellableWait
26
+ * @prop {Promise<T>} promise
27
+ * @prop {() => void} cancel
28
+ */
29
+ /**
30
+ * @typedef WaitOptions
31
+ * @prop {number} pauseAfterFcpMs
32
+ * @prop {number} pauseAfterLoadMs
33
+ * @prop {number} networkQuietThresholdMs
34
+ * @prop {number} cpuQuietThresholdMs
35
+ * @prop {number} maxWaitForLoadedMs
36
+ * @prop {number|undefined} maxWaitForFcpMs
37
+ * @prop {{waitForFcp: typeof waitForFcp, waitForLoadEvent: typeof waitForLoadEvent, waitForNetworkIdle: typeof waitForNetworkIdle, waitForCPUIdle: typeof waitForCPUIdle}} [_waitForTestOverrides]
38
+ */
39
+ /**
40
+ * Returns a promise that resolves immediately.
41
+ * Used for placeholder conditions that we don't want to start waiting for just yet, but still want
42
+ * to satisfy the same interface.
43
+ * @return {{promise: Promise<void>, cancel: function(): void}}
44
+ */
45
+ export function waitForNothing(): {
46
+ promise: Promise<void>;
47
+ cancel: () => void;
48
+ };
49
+ /**
50
+ * Returns a promise that resolve when a frame has been navigated.
51
+ * Used for detecting that our about:blank reset has been completed.
52
+ * @param {LH.Gatherer.FRProtocolSession} session
53
+ * @return {CancellableWait<LH.Crdp.Page.FrameNavigatedEvent>}
54
+ */
55
+ export function waitForFrameNavigated(session: LH.Gatherer.FRProtocolSession): CancellableWait<LH.Crdp.Page.FrameNavigatedEvent>;
56
+ /**
57
+ * Returns a promise that resolve when a frame has a FCP.
58
+ * @param {LH.Gatherer.FRProtocolSession} session
59
+ * @param {number} pauseAfterFcpMs
60
+ * @param {number} maxWaitForFcpMs
61
+ * @return {CancellableWait}
62
+ */
63
+ export function waitForFcp(session: LH.Gatherer.FRProtocolSession, pauseAfterFcpMs: number, maxWaitForFcpMs: number): CancellableWait;
64
+ /**
65
+ * Return a promise that resolves `pauseAfterLoadMs` after the load event
66
+ * fires and a method to cancel internal listeners and timeout.
67
+ * @param {LH.Gatherer.FRProtocolSession} session
68
+ * @param {number} pauseAfterLoadMs
69
+ * @return {CancellableWait}
70
+ */
71
+ export function waitForLoadEvent(session: LH.Gatherer.FRProtocolSession, pauseAfterLoadMs: number): CancellableWait;
72
+ /**
73
+ * Returns a promise that resolves when the network has been idle (after DCL) for
74
+ * `networkQuietThresholdMs` ms and a method to cancel internal network listeners/timeout.
75
+ * @param {LH.Gatherer.FRProtocolSession} session
76
+ * @param {NetworkMonitor} networkMonitor
77
+ * @param {{networkQuietThresholdMs: number, busyEvent: NetworkMonitorEvent, idleEvent: NetworkMonitorEvent, isIdle(recorder: NetworkMonitor): boolean, pretendDCLAlreadyFired?: boolean}} networkQuietOptions
78
+ * @return {CancellableWait}
79
+ */
80
+ export function waitForNetworkIdle(session: LH.Gatherer.FRProtocolSession, networkMonitor: NetworkMonitor, networkQuietOptions: {
81
+ networkQuietThresholdMs: number;
82
+ busyEvent: NetworkMonitorEvent;
83
+ idleEvent: NetworkMonitorEvent;
84
+ isIdle(recorder: NetworkMonitor): boolean;
85
+ pretendDCLAlreadyFired?: boolean | undefined;
86
+ }): CancellableWait;
87
+ /**
88
+ * Resolves when there have been no long tasks for at least waitForCPUQuiet ms.
89
+ * @param {LH.Gatherer.FRProtocolSession} session
90
+ * @param {number} waitForCPUQuiet
91
+ * @return {CancellableWait}
92
+ */
93
+ export function waitForCPUIdle(session: LH.Gatherer.FRProtocolSession, waitForCPUQuiet: number): CancellableWait;
94
+ /**
95
+ * Returns a promise that resolves when:
96
+ * - All of the following conditions have been met:
97
+ * - page has no security issues
98
+ * - pauseAfterLoadMs milliseconds have passed since the load event.
99
+ * - networkQuietThresholdMs milliseconds have passed since the last network request that exceeded
100
+ * 2 inflight requests (network-2-quiet has been reached).
101
+ * - cpuQuietThresholdMs have passed since the last long task after network-2-quiet.
102
+ * - maxWaitForLoadedMs milliseconds have passed.
103
+ * See https://github.com/GoogleChrome/lighthouse/issues/627 for more.
104
+ * @param {LH.Gatherer.FRProtocolSession} session
105
+ * @param {NetworkMonitor} networkMonitor
106
+ * @param {WaitOptions} options
107
+ * @return {Promise<{timedOut: boolean}>}
108
+ */
109
+ export function waitForFullyLoaded(session: LH.Gatherer.FRProtocolSession, networkMonitor: NetworkMonitor, options: WaitOptions): Promise<{
110
+ timedOut: boolean;
111
+ }>;
112
+ /**
113
+ * @param {LH.Gatherer.FRTransitionalDriver} driver
114
+ */
115
+ export function waitForUserToContinue(driver: LH.Gatherer.FRTransitionalDriver): Promise<void>;
116
+ //# sourceMappingURL=wait-for-condition.d.ts.map
@@ -237,7 +237,8 @@ function waitForCPUIdle(session, waitForCPUQuiet) {
237
237
  async function checkForQuiet(executionContext, resolve) {
238
238
  if (canceled) return;
239
239
  const timeSinceLongTask =
240
- await executionContext.evaluate(checkTimeSinceLastLongTaskInPage, {args: []});
240
+ await executionContext.evaluate(
241
+ checkTimeSinceLastLongTaskInPage, {args: [], useIsolation: true});
241
242
  if (canceled) return;
242
243
 
243
244
  if (typeof timeSinceLongTask === 'number') {
@@ -260,7 +261,7 @@ function waitForCPUIdle(session, waitForCPUQuiet) {
260
261
  const executionContext = new ExecutionContext(session);
261
262
  /** @type {Promise<void>} */
262
263
  const promise = new Promise((resolve, reject) => {
263
- executionContext.evaluate(registerPerformanceObserverInPage, {args: []})
264
+ executionContext.evaluate(registerPerformanceObserverInPage, {args: [], useIsolation: true})
264
265
  .then(() => checkForQuiet(executionContext, resolve))
265
266
  .catch(reject);
266
267
  cancel = () => {
@@ -0,0 +1,30 @@
1
+ /** @implements {LH.Gatherer.FRTransitionalDriver} */
2
+ export class Driver implements LH.Gatherer.FRTransitionalDriver {
3
+ /**
4
+ * @param {LH.Puppeteer.Page} page
5
+ */
6
+ constructor(page: LH.Puppeteer.Page);
7
+ _page: import("../../types/puppeteer.js").default.Page;
8
+ /** @type {TargetManager|undefined} */
9
+ _targetManager: TargetManager | undefined;
10
+ /** @type {ExecutionContext|undefined} */
11
+ _executionContext: ExecutionContext | undefined;
12
+ /** @type {Fetcher|undefined} */
13
+ _fetcher: Fetcher | undefined;
14
+ defaultSession: import("../../types/gatherer.js").default.FRProtocolSession;
15
+ /** @return {LH.Gatherer.FRTransitionalDriver['executionContext']} */
16
+ get executionContext(): ExecutionContext;
17
+ /** @return {Fetcher} */
18
+ get fetcher(): Fetcher;
19
+ get targetManager(): any;
20
+ /** @return {Promise<string>} */
21
+ url(): Promise<string>;
22
+ /** @return {Promise<void>} */
23
+ connect(): Promise<void>;
24
+ /** @return {Promise<void>} */
25
+ disconnect(): Promise<void>;
26
+ }
27
+ import { TargetManager } from "./driver/target-manager.js";
28
+ import { ExecutionContext } from "./driver/execution-context.js";
29
+ import { Fetcher } from "./fetcher.js";
30
+ //# sourceMappingURL=driver.d.ts.map
@@ -0,0 +1,63 @@
1
+ export type FetchResponse = {
2
+ content: string | null;
3
+ status: number | null;
4
+ };
5
+ /**
6
+ * @fileoverview Fetcher is a utility for making requests to any arbitrary resource,
7
+ * ignoring normal browser constraints such as CORS.
8
+ */
9
+ /** @typedef {{content: string|null, status: number|null}} FetchResponse */
10
+ export class Fetcher {
11
+ /**
12
+ * @param {LH.Gatherer.FRProtocolSession} session
13
+ */
14
+ constructor(session: LH.Gatherer.FRProtocolSession);
15
+ session: LH.Gatherer.FRProtocolSession;
16
+ /**
17
+ * Fetches any resource using the network directly.
18
+ *
19
+ * @param {string} url
20
+ * @param {{timeout: number}=} options timeout is in ms
21
+ * @return {Promise<FetchResponse>}
22
+ */
23
+ fetchResource(url: string, options?: {
24
+ timeout: number;
25
+ } | undefined): Promise<FetchResponse>;
26
+ /**
27
+ * @param {string} url
28
+ * @return {Promise<FetchResponse>}
29
+ */
30
+ _fetchWithFetchApi(url: string): Promise<FetchResponse>;
31
+ /**
32
+ * @param {string} handle
33
+ * @param {{timeout: number}=} options,
34
+ * @return {Promise<string>}
35
+ */
36
+ _readIOStream(handle: string, options?: {
37
+ timeout: number;
38
+ } | undefined): Promise<string>;
39
+ /**
40
+ * @param {string} url
41
+ * @return {Promise<{stream: LH.Crdp.IO.StreamHandle|null, status: number|null}>}
42
+ */
43
+ _loadNetworkResource(url: string): Promise<{
44
+ stream: LH.Crdp.IO.StreamHandle | null;
45
+ status: number | null;
46
+ }>;
47
+ /**
48
+ * @param {string} url
49
+ * @param {{timeout: number}} options timeout is in ms
50
+ * @return {Promise<FetchResponse>}
51
+ */
52
+ _fetchResourceOverProtocol(url: string, options: {
53
+ timeout: number;
54
+ }): Promise<FetchResponse>;
55
+ /**
56
+ * @template T
57
+ * @param {Promise<T>} promise
58
+ * @param {number} ms
59
+ */
60
+ _wrapWithTimeout<T>(promise: Promise<T>, ms: number): Promise<T>;
61
+ }
62
+ import * as LH from "../../types/lh.js";
63
+ //# sourceMappingURL=fetcher.d.ts.map