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,166 @@
1
+ export type Summary = {
2
+ min: number;
3
+ max: number;
4
+ avg: number;
5
+ median: number;
6
+ };
7
+ export type RTTEstimateOptions = {
8
+ /**
9
+ * TCP connection handshake information will be used when available, but in some circumstances this data can be unreliable. This flag exposes an option to ignore the handshake data and use the coarse download/TTFB timing data.
10
+ */
11
+ forceCoarseEstimates?: boolean | undefined;
12
+ /**
13
+ * Coarse estimates include lots of extra time and noise multiply by some factor to deflate the estimates a bit.
14
+ */
15
+ coarseEstimateMultiplier?: number | undefined;
16
+ /**
17
+ * Useful for testing to isolate the different methods of estimation.
18
+ */
19
+ useDownloadEstimates?: boolean | undefined;
20
+ /**
21
+ * Useful for testing to isolate the different methods of estimation.
22
+ */
23
+ useSendStartEstimates?: boolean | undefined;
24
+ /**
25
+ * Useful for testing to isolate the different methods of estimation.
26
+ */
27
+ useHeadersEndEstimates?: boolean | undefined;
28
+ };
29
+ export class NetworkAnalyzer {
30
+ /**
31
+ * @return {string}
32
+ */
33
+ static get SUMMARY(): string;
34
+ /**
35
+ * @param {LH.Artifacts.NetworkRequest[]} records
36
+ * @return {Map<string, LH.Artifacts.NetworkRequest[]>}
37
+ */
38
+ static groupByOrigin(records: LH.Artifacts.NetworkRequest[]): Map<string, LH.Artifacts.NetworkRequest[]>;
39
+ /**
40
+ * @param {number[]} values
41
+ * @return {Summary}
42
+ */
43
+ static getSummary(values: number[]): Summary;
44
+ /**
45
+ * @param {Map<string,number[]>} values
46
+ * @return {Map<string, Summary>}
47
+ */
48
+ static summarize(values: Map<string, number[]>): Map<string, Summary>;
49
+ /** @typedef {{record: LH.Artifacts.NetworkRequest, timing: LH.Crdp.Network.ResourceTiming, connectionReused?: boolean}} RequestInfo */
50
+ /**
51
+ * @param {LH.Artifacts.NetworkRequest[]} records
52
+ * @param {(e: RequestInfo) => number | number[] | undefined} iteratee
53
+ * @return {Map<string, number[]>}
54
+ */
55
+ static _estimateValueByOrigin(records: LH.Artifacts.NetworkRequest[], iteratee: (e: {
56
+ record: LH.Artifacts.NetworkRequest;
57
+ timing: LH.Crdp.Network.ResourceTiming;
58
+ connectionReused?: boolean | undefined;
59
+ }) => number | number[] | undefined): Map<string, number[]>;
60
+ /**
61
+ * Estimates the observed RTT to each origin based on how long the TCP handshake took.
62
+ * This is the most accurate and preferred method of measurement when the data is available.
63
+ *
64
+ * @param {LH.Artifacts.NetworkRequest[]} records
65
+ * @return {Map<string, number[]>}
66
+ */
67
+ static _estimateRTTByOriginViaTCPTiming(records: LH.Artifacts.NetworkRequest[]): Map<string, number[]>;
68
+ /**
69
+ * Estimates the observed RTT to each origin based on how long a download took on a fresh connection.
70
+ * NOTE: this will tend to overestimate the actual RTT quite significantly as the download can be
71
+ * slow for other reasons as well such as bandwidth constraints.
72
+ *
73
+ * @param {LH.Artifacts.NetworkRequest[]} records
74
+ * @return {Map<string, number[]>}
75
+ */
76
+ static _estimateRTTByOriginViaDownloadTiming(records: LH.Artifacts.NetworkRequest[]): Map<string, number[]>;
77
+ /**
78
+ * Estimates the observed RTT to each origin based on how long it took until Chrome could
79
+ * start sending the actual request when a new connection was required.
80
+ * NOTE: this will tend to overestimate the actual RTT as the request can be delayed for other
81
+ * reasons as well such as more SSL handshakes if TLS False Start is not enabled.
82
+ *
83
+ * @param {LH.Artifacts.NetworkRequest[]} records
84
+ * @return {Map<string, number[]>}
85
+ */
86
+ static _estimateRTTByOriginViaSendStartTiming(records: LH.Artifacts.NetworkRequest[]): Map<string, number[]>;
87
+ /**
88
+ * Estimates the observed RTT to each origin based on how long it took until Chrome received the
89
+ * headers of the response (~TTFB).
90
+ * NOTE: this is the most inaccurate way to estimate the RTT, but in some environments it's all
91
+ * we have access to :(
92
+ *
93
+ * @param {LH.Artifacts.NetworkRequest[]} records
94
+ * @return {Map<string, number[]>}
95
+ */
96
+ static _estimateRTTByOriginViaHeadersEndTiming(records: LH.Artifacts.NetworkRequest[]): Map<string, number[]>;
97
+ /**
98
+ * Given the RTT to each origin, estimates the observed server response times.
99
+ *
100
+ * @param {LH.Artifacts.NetworkRequest[]} records
101
+ * @param {Map<string, number>} rttByOrigin
102
+ * @return {Map<string, number[]>}
103
+ */
104
+ static _estimateResponseTimeByOrigin(records: LH.Artifacts.NetworkRequest[], rttByOrigin: Map<string, number>): Map<string, number[]>;
105
+ /**
106
+ * @param {LH.Artifacts.NetworkRequest[]} records
107
+ * @return {boolean}
108
+ */
109
+ static canTrustConnectionInformation(records: LH.Artifacts.NetworkRequest[]): boolean;
110
+ /**
111
+ * Returns a map of requestId -> connectionReused, estimating the information if the information
112
+ * available in the records themselves appears untrustworthy.
113
+ *
114
+ * @param {LH.Artifacts.NetworkRequest[]} records
115
+ * @param {{forceCoarseEstimates: boolean}} [options]
116
+ * @return {Map<string, boolean>}
117
+ */
118
+ static estimateIfConnectionWasReused(records: LH.Artifacts.NetworkRequest[], options?: {
119
+ forceCoarseEstimates: boolean;
120
+ } | undefined): Map<string, boolean>;
121
+ /**
122
+ * Estimates the RTT to each origin by examining observed network timing information.
123
+ * Attempts to use the most accurate information first and falls back to coarser estimates when it
124
+ * is unavailable.
125
+ *
126
+ * @param {LH.Artifacts.NetworkRequest[]} records
127
+ * @param {RTTEstimateOptions} [options]
128
+ * @return {Map<string, Summary>}
129
+ */
130
+ static estimateRTTByOrigin(records: LH.Artifacts.NetworkRequest[], options?: RTTEstimateOptions | undefined): Map<string, Summary>;
131
+ /**
132
+ * Estimates the server response time of each origin. RTT times can be passed in or will be
133
+ * estimated automatically if not provided.
134
+ *
135
+ * @param {LH.Artifacts.NetworkRequest[]} records
136
+ * @param {RTTEstimateOptions & {rttByOrigin?: Map<string, number>}} [options]
137
+ * @return {Map<string, Summary>}
138
+ */
139
+ static estimateServerResponseTimeByOrigin(records: LH.Artifacts.NetworkRequest[], options?: (RTTEstimateOptions & {
140
+ rttByOrigin?: Map<string, number> | undefined;
141
+ }) | undefined): Map<string, Summary>;
142
+ /**
143
+ * Computes the average throughput for the given records in bits/second.
144
+ * Excludes data URI, failed or otherwise incomplete, and cached requests.
145
+ * Returns Infinity if there were no analyzable network records.
146
+ *
147
+ * @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
148
+ * @return {number}
149
+ */
150
+ static estimateThroughput(networkRecords: Array<LH.Artifacts.NetworkRequest>): number;
151
+ /**
152
+ * @param {Array<LH.Artifacts.NetworkRequest>} records
153
+ * @param {string} resourceUrl
154
+ * @return {LH.Artifacts.NetworkRequest|undefined}
155
+ */
156
+ static findResourceForUrl(records: Array<LH.Artifacts.NetworkRequest>, resourceUrl: string): LH.Artifacts.NetworkRequest | undefined;
157
+ /**
158
+ * Resolves redirect chain given a main document.
159
+ * See: {@link NetworkAnalyzer.findResourceForUrl}) for how to retrieve main document.
160
+ *
161
+ * @param {LH.Artifacts.NetworkRequest} request
162
+ * @return {LH.Artifacts.NetworkRequest}
163
+ */
164
+ static resolveRedirects(request: LH.Artifacts.NetworkRequest): LH.Artifacts.NetworkRequest;
165
+ }
166
+ //# sourceMappingURL=network-analyzer.d.ts.map
@@ -0,0 +1,153 @@
1
+ export type Node = import('../base-node.js').Node;
2
+ export type NetworkNode = import('../network-node.js').NetworkNode;
3
+ export type CpuNode = import('../cpu-node.js').CPUNode;
4
+ export type NodeTimingComplete = {
5
+ startTime: number;
6
+ endTime: number;
7
+ /**
8
+ * Helpful for debugging.
9
+ */
10
+ queuedTime: number;
11
+ estimatedTimeElapsed: number;
12
+ timeElapsed: number;
13
+ timeElapsedOvershoot: number;
14
+ bytesDownloaded: number;
15
+ };
16
+ export type NodeTimingQueued = Pick<NodeTimingComplete, 'queuedTime'>;
17
+ export type CpuNodeTimingStarted = NodeTimingQueued & Pick<NodeTimingComplete, 'startTime' | 'timeElapsed'>;
18
+ export type NetworkNodeTimingStarted = CpuNodeTimingStarted & Pick<NodeTimingComplete, 'timeElapsedOvershoot' | 'bytesDownloaded'>;
19
+ export type CpuNodeTimingInProgress = CpuNodeTimingStarted & Pick<NodeTimingComplete, 'estimatedTimeElapsed'>;
20
+ export type NetworkNodeTimingInProgress = NetworkNodeTimingStarted & Pick<NodeTimingComplete, 'estimatedTimeElapsed'>;
21
+ export type CpuNodeTimingComplete = CpuNodeTimingInProgress & Pick<NodeTimingComplete, 'endTime'>;
22
+ export type NetworkNodeTimingComplete = NetworkNodeTimingInProgress & Pick<NodeTimingComplete, 'endTime'> & {
23
+ connectionTiming: ConnectionTiming;
24
+ };
25
+ export type NodeTimingData = NodeTimingQueued | CpuNodeTimingStarted | NetworkNodeTimingStarted | CpuNodeTimingInProgress | NetworkNodeTimingInProgress | CpuNodeTimingComplete | NetworkNodeTimingComplete;
26
+ /**
27
+ * A breakdown of network connection timings.
28
+ */
29
+ export type ConnectionTiming = {
30
+ dnsResolutionTime?: number | undefined;
31
+ connectionTime?: number | undefined;
32
+ sslTime?: number | undefined;
33
+ timeToFirstByte: number;
34
+ };
35
+ /**
36
+ * @fileoverview
37
+ *
38
+ * This class encapsulates the type-related validation logic for moving timing information for nodes
39
+ * through the different simulation phases. Methods here ensure that the invariants of simulation hold
40
+ * as nodes are queued, partially simulated, and completed.
41
+ */
42
+ /** @typedef {import('../base-node.js').Node} Node */
43
+ /** @typedef {import('../network-node.js').NetworkNode} NetworkNode */
44
+ /** @typedef {import('../cpu-node.js').CPUNode} CpuNode */
45
+ /**
46
+ * @typedef NodeTimingComplete
47
+ * @property {number} startTime
48
+ * @property {number} endTime
49
+ * @property {number} queuedTime Helpful for debugging.
50
+ * @property {number} estimatedTimeElapsed
51
+ * @property {number} timeElapsed
52
+ * @property {number} timeElapsedOvershoot
53
+ * @property {number} bytesDownloaded
54
+ */
55
+ /** @typedef {Pick<NodeTimingComplete, 'queuedTime'>} NodeTimingQueued */
56
+ /** @typedef {NodeTimingQueued & Pick<NodeTimingComplete, 'startTime'|'timeElapsed'>} CpuNodeTimingStarted */
57
+ /** @typedef {CpuNodeTimingStarted & Pick<NodeTimingComplete, 'timeElapsedOvershoot'|'bytesDownloaded'>} NetworkNodeTimingStarted */
58
+ /** @typedef {CpuNodeTimingStarted & Pick<NodeTimingComplete, 'estimatedTimeElapsed'>} CpuNodeTimingInProgress */
59
+ /** @typedef {NetworkNodeTimingStarted & Pick<NodeTimingComplete, 'estimatedTimeElapsed'>} NetworkNodeTimingInProgress */
60
+ /** @typedef {CpuNodeTimingInProgress & Pick<NodeTimingComplete, 'endTime'>} CpuNodeTimingComplete */
61
+ /** @typedef {NetworkNodeTimingInProgress & Pick<NodeTimingComplete, 'endTime'> & {connectionTiming: ConnectionTiming}} NetworkNodeTimingComplete */
62
+ /** @typedef {NodeTimingQueued | CpuNodeTimingStarted | NetworkNodeTimingStarted | CpuNodeTimingInProgress | NetworkNodeTimingInProgress | CpuNodeTimingComplete | NetworkNodeTimingComplete} NodeTimingData */
63
+ /**
64
+ * @typedef ConnectionTiming A breakdown of network connection timings.
65
+ * @property {number} [dnsResolutionTime]
66
+ * @property {number} [connectionTime]
67
+ * @property {number} [sslTime]
68
+ * @property {number} timeToFirstByte
69
+ */
70
+ export class SimulatorTimingMap {
71
+ /** @type {Map<Node, NodeTimingData>} */
72
+ _nodeTimings: Map<Node, NodeTimingData>;
73
+ /** @return {Array<Node>} */
74
+ getNodes(): Array<Node>;
75
+ /**
76
+ * @param {Node} node
77
+ * @param {{queuedTime: number}} values
78
+ */
79
+ setReadyToStart(node: Node, values: {
80
+ queuedTime: number;
81
+ }): void;
82
+ /**
83
+ * @param {Node} node
84
+ * @param {{startTime: number}} values
85
+ */
86
+ setInProgress(node: Node, values: {
87
+ startTime: number;
88
+ }): void;
89
+ /**
90
+ * @param {Node} node
91
+ * @param {{endTime: number, connectionTiming?: ConnectionTiming}} values
92
+ */
93
+ setCompleted(node: Node, values: {
94
+ endTime: number;
95
+ connectionTiming?: ConnectionTiming;
96
+ }): void;
97
+ /**
98
+ * @param {CpuNode} node
99
+ * @param {{timeElapsed: number}} values
100
+ */
101
+ setCpu(node: CpuNode, values: {
102
+ timeElapsed: number;
103
+ }): void;
104
+ /**
105
+ * @param {CpuNode} node
106
+ * @param {{estimatedTimeElapsed: number}} values
107
+ */
108
+ setCpuEstimated(node: CpuNode, values: {
109
+ estimatedTimeElapsed: number;
110
+ }): void;
111
+ /**
112
+ * @param {NetworkNode} node
113
+ * @param {{timeElapsed: number, timeElapsedOvershoot: number, bytesDownloaded: number}} values
114
+ */
115
+ setNetwork(node: NetworkNode, values: {
116
+ timeElapsed: number;
117
+ timeElapsedOvershoot: number;
118
+ bytesDownloaded: number;
119
+ }): void;
120
+ /**
121
+ * @param {NetworkNode} node
122
+ * @param {{estimatedTimeElapsed: number}} values
123
+ */
124
+ setNetworkEstimated(node: NetworkNode, values: {
125
+ estimatedTimeElapsed: number;
126
+ }): void;
127
+ /**
128
+ * @param {Node} node
129
+ * @return {NodeTimingQueued}
130
+ */
131
+ getQueued(node: Node): NodeTimingQueued;
132
+ /**
133
+ * @param {CpuNode} node
134
+ * @return {CpuNodeTimingStarted}
135
+ */
136
+ getCpuStarted(node: CpuNode): CpuNodeTimingStarted;
137
+ /**
138
+ * @param {NetworkNode} node
139
+ * @return {NetworkNodeTimingStarted}
140
+ */
141
+ getNetworkStarted(node: NetworkNode): NetworkNodeTimingStarted;
142
+ /**
143
+ * @param {Node} node
144
+ * @return {CpuNodeTimingInProgress | NetworkNodeTimingInProgress}
145
+ */
146
+ getInProgress(node: Node): CpuNodeTimingInProgress | NetworkNodeTimingInProgress;
147
+ /**
148
+ * @param {Node} node
149
+ * @return {CpuNodeTimingComplete | NetworkNodeTimingComplete}
150
+ */
151
+ getCompleted(node: Node): CpuNodeTimingComplete | NetworkNodeTimingComplete;
152
+ }
153
+ //# sourceMappingURL=simulator-timing-map.d.ts.map
@@ -16,8 +16,8 @@ import {BaseNode} from '../base-node.js';
16
16
 
17
17
 
18
18
  /** @typedef {import('../base-node.js').Node} Node */
19
- /** @typedef {import('../network-node').NetworkNode} NetworkNode */
20
- /** @typedef {import('../cpu-node').CPUNode} CpuNode */
19
+ /** @typedef {import('../network-node.js').NetworkNode} NetworkNode */
20
+ /** @typedef {import('../cpu-node.js').CPUNode} CpuNode */
21
21
 
22
22
  /**
23
23
  * @typedef NodeTimingComplete
@@ -0,0 +1,154 @@
1
+ export type Node = import('../base-node.js').Node;
2
+ export type NetworkNode = import('../network-node.js').NetworkNode;
3
+ export type CpuNode = import('../cpu-node.js').CPUNode;
4
+ export type CompleteNodeTiming = import('./simulator-timing-map.js').CpuNodeTimingComplete | import('./simulator-timing-map.js').NetworkNodeTimingComplete;
5
+ export type ConnectionTiming = import('./simulator-timing-map.js').ConnectionTiming;
6
+ export class Simulator {
7
+ /** @return {Map<string, Map<Node, CompleteNodeTiming>>} */
8
+ static get ALL_NODE_TIMINGS(): Map<string, Map<import("../base-node.js").Node, CompleteNodeTiming>>;
9
+ /**
10
+ * We attempt to start nodes by their observed start time using the record priority as a tie breaker.
11
+ * When simulating, just because a low priority image started 5ms before a high priority image doesn't mean
12
+ * it would have happened like that when the network was slower.
13
+ * @param {Node} node
14
+ */
15
+ static _computeNodeStartPosition(node: Node): number;
16
+ /**
17
+ * @param {LH.Gatherer.Simulation.Options} [options]
18
+ */
19
+ constructor(options?: LH.Gatherer.Simulation.Options | undefined);
20
+ /** @type {Required<LH.Gatherer.Simulation.Options>} */
21
+ _options: Required<LH.Gatherer.Simulation.Options>;
22
+ _rtt: number;
23
+ _throughput: number;
24
+ _maximumConcurrentRequests: number;
25
+ _cpuSlowdownMultiplier: number;
26
+ _layoutTaskMultiplier: number;
27
+ /** @type {Array<Node>} */
28
+ _cachedNodeListByStartPosition: Array<Node>;
29
+ _flexibleOrdering: boolean;
30
+ _nodeTimings: SimulatorTimingMap;
31
+ /** @type {Map<string, number>} */
32
+ _numberInProgressByType: Map<string, number>;
33
+ /** @type {Record<number, Set<Node>>} */
34
+ _nodes: Record<number, Set<Node>>;
35
+ _dns: DNSCache;
36
+ /** @type {ConnectionPool} */
37
+ _connectionPool: ConnectionPool;
38
+ /** @return {number} */
39
+ get rtt(): number;
40
+ /**
41
+ * @param {Node} graph
42
+ */
43
+ _initializeConnectionPool(graph: Node): void;
44
+ /**
45
+ * Initializes the various state data structures such _nodeTimings and the _node Sets by state.
46
+ */
47
+ _initializeAuxiliaryData(): void;
48
+ /**
49
+ * @param {string} type
50
+ * @return {number}
51
+ */
52
+ _numberInProgress(type: string): number;
53
+ /**
54
+ * @param {Node} node
55
+ * @param {number} queuedTime
56
+ */
57
+ _markNodeAsReadyToStart(node: Node, queuedTime: number): void;
58
+ /**
59
+ * @param {Node} node
60
+ * @param {number} startTime
61
+ */
62
+ _markNodeAsInProgress(node: Node, startTime: number): void;
63
+ /**
64
+ * @param {Node} node
65
+ * @param {number} endTime
66
+ * @param {ConnectionTiming} [connectionTiming] Optional network connection information.
67
+ */
68
+ _markNodeAsComplete(node: Node, endTime: number, connectionTiming?: import("./simulator-timing-map.js").ConnectionTiming | undefined): void;
69
+ /**
70
+ * @param {LH.Artifacts.NetworkRequest} record
71
+ * @return {?TcpConnection}
72
+ */
73
+ _acquireConnection(record: LH.Artifacts.NetworkRequest): TcpConnection | null;
74
+ /**
75
+ * @return {Node[]}
76
+ */
77
+ _getNodesSortedByStartPosition(): Node[];
78
+ /**
79
+ * @param {Node} node
80
+ * @param {number} totalElapsedTime
81
+ */
82
+ _startNodeIfPossible(node: Node, totalElapsedTime: number): void;
83
+ /**
84
+ * Updates each connection in use with the available throughput based on the number of network requests
85
+ * currently in flight.
86
+ */
87
+ _updateNetworkCapacity(): void;
88
+ /**
89
+ * Estimates the number of milliseconds remaining given current condidtions before the node is complete.
90
+ * @param {Node} node
91
+ * @return {number}
92
+ */
93
+ _estimateTimeRemaining(node: Node): number;
94
+ /**
95
+ * @param {CpuNode} cpuNode
96
+ * @return {number}
97
+ */
98
+ _estimateCPUTimeRemaining(cpuNode: CpuNode): number;
99
+ /**
100
+ * @param {NetworkNode} networkNode
101
+ * @return {number}
102
+ */
103
+ _estimateNetworkTimeRemaining(networkNode: NetworkNode): number;
104
+ /**
105
+ * Computes and returns the minimum estimated completion time of the nodes currently in progress.
106
+ * @return {number}
107
+ */
108
+ _findNextNodeCompletionTime(): number;
109
+ /**
110
+ * Given a time period, computes the progress toward completion that the node made durin that time.
111
+ * @param {Node} node
112
+ * @param {number} timePeriodLength
113
+ * @param {number} totalElapsedTime
114
+ */
115
+ _updateProgressMadeInTimePeriod(node: Node, timePeriodLength: number, totalElapsedTime: number): number | void;
116
+ /**
117
+ * @return {{nodeTimings: Map<Node, LH.Gatherer.Simulation.NodeTiming>, completeNodeTimings: Map<Node, CompleteNodeTiming>}}
118
+ */
119
+ _computeFinalNodeTimings(): {
120
+ nodeTimings: Map<Node, LH.Gatherer.Simulation.NodeTiming>;
121
+ completeNodeTimings: Map<Node, CompleteNodeTiming>;
122
+ };
123
+ /**
124
+ * @return {Required<LH.Gatherer.Simulation.Options>}
125
+ */
126
+ getOptions(): Required<LH.Gatherer.Simulation.Options>;
127
+ /**
128
+ * Estimates the time taken to process all of the graph's nodes, returns the overall time along with
129
+ * each node annotated by start/end times.
130
+ *
131
+ * If flexibleOrdering is set, simulator/connection pool are allowed to deviate from what was
132
+ * observed in the trace/devtoolsLog and start requests as soon as they are queued (i.e. do not
133
+ * wait around for a warm connection to be available if the original record was fetched on a warm
134
+ * connection).
135
+ *
136
+ * @param {Node} graph
137
+ * @param {{flexibleOrdering?: boolean, label?: string}=} options
138
+ * @return {LH.Gatherer.Simulation.Result}
139
+ */
140
+ simulate(graph: Node, options?: {
141
+ flexibleOrdering?: boolean;
142
+ label?: string;
143
+ } | undefined): LH.Gatherer.Simulation.Result;
144
+ /**
145
+ * @param {number} wastedBytes
146
+ */
147
+ computeWastedMsFromWastedBytes(wastedBytes: number): number;
148
+ }
149
+ import * as LH from "../../../../types/lh.js";
150
+ import { SimulatorTimingMap } from "./simulator-timing-map.js";
151
+ import { DNSCache } from "./dns-cache.js";
152
+ import { ConnectionPool } from "./connection-pool.js";
153
+ import { TcpConnection } from "./tcp-connection.js";
154
+ //# sourceMappingURL=simulator.d.ts.map
@@ -4,6 +4,7 @@
4
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
5
  */
6
6
 
7
+ import * as LH from '../../../../types/lh.js';
7
8
  import {BaseNode} from '../base-node.js';
8
9
  import {TcpConnection} from './tcp-connection.js';
9
10
  import {ConnectionPool} from './connection-pool.js';
@@ -14,8 +15,8 @@ import * as constants from '../../../config/constants.js';
14
15
  const mobileSlow4G = constants.throttling.mobileSlow4G;
15
16
 
16
17
  /** @typedef {import('../base-node.js').Node} Node */
17
- /** @typedef {import('../network-node').NetworkNode} NetworkNode */
18
- /** @typedef {import('../cpu-node').CPUNode} CpuNode */
18
+ /** @typedef {import('../network-node.js').NetworkNode} NetworkNode */
19
+ /** @typedef {import('../cpu-node.js').CPUNode} CpuNode */
19
20
  /** @typedef {import('./simulator-timing-map.js').CpuNodeTimingComplete | import('./simulator-timing-map.js').NetworkNodeTimingComplete} CompleteNodeTiming */
20
21
  /** @typedef {import('./simulator-timing-map.js').ConnectionTiming} ConnectionTiming */
21
22
 
@@ -0,0 +1,89 @@
1
+ export type ConnectionTiming = import('./simulator-timing-map.js').ConnectionTiming;
2
+ export type DownloadOptions = {
3
+ dnsResolutionTime?: number | undefined;
4
+ timeAlreadyElapsed?: number | undefined;
5
+ maximumTimeToElapse?: number | undefined;
6
+ };
7
+ export type DownloadResults = {
8
+ roundTrips: number;
9
+ timeElapsed: number;
10
+ bytesDownloaded: number;
11
+ extraBytesDownloaded: number;
12
+ congestionWindow: number;
13
+ connectionTiming: ConnectionTiming;
14
+ };
15
+ export class TcpConnection {
16
+ /**
17
+ * @param {number} rtt
18
+ * @param {number} availableThroughput
19
+ * @return {number}
20
+ */
21
+ static maximumSaturatedConnections(rtt: number, availableThroughput: number): number;
22
+ /**
23
+ * @param {number} rtt
24
+ * @param {number} throughput
25
+ * @param {number=} serverLatency
26
+ * @param {boolean=} ssl
27
+ * @param {boolean=} h2
28
+ */
29
+ constructor(rtt: number, throughput: number, serverLatency?: number | undefined, ssl?: boolean | undefined, h2?: boolean | undefined);
30
+ _warmed: boolean;
31
+ _ssl: boolean;
32
+ _h2: boolean;
33
+ _rtt: number;
34
+ _throughput: number;
35
+ _serverLatency: number;
36
+ _congestionWindow: number;
37
+ _h2OverflowBytesDownloaded: number;
38
+ /**
39
+ * @return {number}
40
+ */
41
+ _computeMaximumCongestionWindowInSegments(): number;
42
+ /**
43
+ * @param {number} throughput
44
+ */
45
+ setThroughput(throughput: number): void;
46
+ /**
47
+ * @param {number} congestion
48
+ */
49
+ setCongestionWindow(congestion: number): void;
50
+ /**
51
+ * @param {boolean} warmed
52
+ */
53
+ setWarmed(warmed: boolean): void;
54
+ /**
55
+ * @return {boolean}
56
+ */
57
+ isWarm(): boolean;
58
+ /**
59
+ * @return {boolean}
60
+ */
61
+ isH2(): boolean;
62
+ /**
63
+ * @return {number}
64
+ */
65
+ get congestionWindow(): number;
66
+ /**
67
+ * Sets the number of excess bytes that are available to this connection on future downloads, only
68
+ * applies to H2 connections.
69
+ * @param {number} bytes
70
+ */
71
+ setH2OverflowBytesDownloaded(bytes: number): void;
72
+ /**
73
+ * @return {TcpConnection}
74
+ */
75
+ clone(): TcpConnection;
76
+ /**
77
+ * Simulates a network download of a particular number of bytes over an optional maximum amount of time
78
+ * and returns information about the ending state.
79
+ *
80
+ * See https://hpbn.co/building-blocks-of-tcp/#three-way-handshake and
81
+ * https://hpbn.co/transport-layer-security-tls/#tls-handshake for details.
82
+ *
83
+ * @param {number} bytesToDownload
84
+ * @param {DownloadOptions} [options]
85
+ * @return {DownloadResults}
86
+ */
87
+ simulateDownloadUntil(bytesToDownload: number, options?: DownloadOptions | undefined): DownloadResults;
88
+ }
89
+ //# sourceMappingURL=tcp-connection.d.ts.map
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @param {LH.Crdp.Audits.DeprecationIssueDetails} issueDetails
3
+ */
4
+ declare function getDescription(issueDetails: LH.Crdp.Audits.DeprecationIssueDetails): {
5
+ file: string;
6
+ substitutions: Map<string, import("../index.js").IcuMessage>;
7
+ links: {
8
+ link: string;
9
+ linkTitle: import("../index.js").IcuMessage;
10
+ }[];
11
+ message: import("../index.js").IcuMessage;
12
+ };
13
+ export namespace UIStrings {
14
+ const feature: string;
15
+ const milestone: string;
16
+ const title: string;
17
+ const authorizationCoveredByWildcard: string;
18
+ const canRequestURLHTTPContainingNewline: string;
19
+ const chromeLoadTimesConnectionInfo: string;
20
+ const chromeLoadTimesFirstPaintAfterLoadTime: string;
21
+ const chromeLoadTimesWasAlternateProtocolAvailable: string;
22
+ const cookieWithTruncatingChar: string;
23
+ const crossOriginAccessBasedOnDocumentDomain: string;
24
+ const crossOriginWindowApi: string;
25
+ const cssSelectorInternalMediaControlsOverlayCastButton: string;
26
+ const deprecationExample: string;
27
+ const documentDomainSettingWithoutOriginAgentClusterHeader: string;
28
+ const eventPath: string;
29
+ const expectCTHeader: string;
30
+ const geolocationInsecureOrigin: string;
31
+ const geolocationInsecureOriginDeprecatedNotRemoved: string;
32
+ const getUserMediaInsecureOrigin: string;
33
+ const hostCandidateAttributeGetter: string;
34
+ const identityInCanMakePaymentEvent: string;
35
+ const insecurePrivateNetworkSubresourceRequest: string;
36
+ const localCSSFileExtensionRejected: string;
37
+ const mediaSourceAbortRemove: string;
38
+ const mediaSourceDurationTruncatingBuffered: string;
39
+ const noSysexWebMIDIWithoutPermission: string;
40
+ const notificationInsecureOrigin: string;
41
+ const notificationPermissionRequestedIframe: string;
42
+ const obsoleteWebRtcCipherSuite: string;
43
+ const openWebDatabaseInsecureContext: string;
44
+ const paymentInstruments: string;
45
+ const paymentRequestCSPViolation: string;
46
+ const persistentQuotaType: string;
47
+ const pictureSourceSrc: string;
48
+ const vendorSpecificApi: string;
49
+ const prefixedStorageInfo: string;
50
+ const deprecatedWithReplacement: string;
51
+ const requestedSubresourceWithEmbeddedCredentials: string;
52
+ const rtcConstraintEnableDtlsSrtpFalse: string;
53
+ const rtcConstraintEnableDtlsSrtpTrue: string;
54
+ const rtcPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics: string;
55
+ const rtcPeerConnectionSdpSemanticsPlanB: string;
56
+ const rtcpMuxPolicyNegotiate: string;
57
+ const sharedArrayBufferConstructedWithoutIsolation: string;
58
+ const textToSpeech_DisallowedByAutoplay: string;
59
+ const v8SharedArrayBufferConstructedInExtensionWithoutIsolation: string;
60
+ const xhrJSONEncodingDetection: string;
61
+ const xmlHttpRequestSynchronousInNonWorkerOutsideBeforeUnload: string;
62
+ const xrSupportsSession: string;
63
+ const overflowVisibleOnReplacedElement: string;
64
+ }
65
+ export { getDescription as getIssueDetailDescription };
66
+ //# sourceMappingURL=deprecations-strings.d.ts.map