lighthouse 9.5.0-dev.20230117 → 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 (518) 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/render-blocking-resources.js +1 -3
  96. package/core/audits/byte-efficiency/total-byte-weight.d.ts +21 -0
  97. package/core/audits/byte-efficiency/unminified-css.d.ts +36 -0
  98. package/core/audits/byte-efficiency/unminified-javascript.d.ts +37 -0
  99. package/core/audits/byte-efficiency/unused-css-rules.d.ts +16 -0
  100. package/core/audits/byte-efficiency/unused-javascript.d.ts +27 -0
  101. package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +61 -0
  102. package/core/audits/byte-efficiency/uses-optimized-images.d.ts +33 -0
  103. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +16 -0
  104. package/core/audits/byte-efficiency/uses-responsive-images.d.ts +45 -0
  105. package/core/audits/byte-efficiency/uses-text-compression.d.ts +14 -0
  106. package/core/audits/content-width.d.ts +17 -0
  107. package/core/audits/critical-request-chains.d.ts +44 -0
  108. package/core/audits/csp-xss.d.ts +51 -0
  109. package/core/audits/deprecations.d.ts +19 -0
  110. package/core/audits/diagnostics.d.ts +11 -0
  111. package/core/audits/dobetterweb/charset.d.ts +19 -0
  112. package/core/audits/dobetterweb/doctype.d.ts +21 -0
  113. package/core/audits/dobetterweb/dom-size.d.ts +26 -0
  114. package/core/audits/dobetterweb/geolocation-on-start.d.ts +16 -0
  115. package/core/audits/dobetterweb/inspector-issues.d.ts +45 -0
  116. package/core/audits/dobetterweb/js-libraries.d.ts +15 -0
  117. package/core/audits/dobetterweb/no-document-write.d.ts +16 -0
  118. package/core/audits/dobetterweb/notification-on-start.d.ts +16 -0
  119. package/core/audits/dobetterweb/password-inputs-can-be-pasted-into.d.ts +15 -0
  120. package/core/audits/dobetterweb/uses-http2.d.ts +69 -0
  121. package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +16 -0
  122. package/core/audits/errors-in-console.d.ts +31 -0
  123. package/core/audits/final-screenshot.d.ts +11 -0
  124. package/core/audits/font-display.d.ts +32 -0
  125. package/core/audits/image-aspect-ratio.d.ts +30 -0
  126. package/core/audits/image-size-responsive.d.ts +28 -0
  127. package/core/audits/installable-manifest.d.ts +118 -0
  128. package/core/audits/is-on-https.d.ts +23 -0
  129. package/core/audits/largest-contentful-paint-element.d.ts +14 -0
  130. package/core/audits/layout-shift-elements.d.ts +15 -0
  131. package/core/audits/lcp-lazy-loaded.d.ts +21 -0
  132. package/core/audits/long-tasks.d.ts +16 -0
  133. package/core/audits/main-thread-tasks.d.ts +11 -0
  134. package/core/audits/mainthread-work-breakdown.d.ts +28 -0
  135. package/core/audits/manual/manual-audit.d.ts +13 -0
  136. package/core/audits/manual/pwa-cross-browser.d.ts +12 -0
  137. package/core/audits/manual/pwa-each-page-has-url.d.ts +12 -0
  138. package/core/audits/manual/pwa-page-transitions.d.ts +12 -0
  139. package/core/audits/maskable-icon.d.ts +25 -0
  140. package/core/audits/metrics/cumulative-layout-shift.d.ts +21 -0
  141. package/core/audits/metrics/experimental-interaction-to-next-paint.d.ts +21 -0
  142. package/core/audits/metrics/first-contentful-paint-3g.d.ts +15 -0
  143. package/core/audits/metrics/first-contentful-paint.d.ts +25 -0
  144. package/core/audits/metrics/first-meaningful-paint.d.ts +28 -0
  145. package/core/audits/metrics/interactive.d.ts +31 -0
  146. package/core/audits/metrics/largest-contentful-paint.d.ts +25 -0
  147. package/core/audits/metrics/max-potential-fid.d.ts +23 -0
  148. package/core/audits/metrics/speed-index.d.ts +27 -0
  149. package/core/audits/metrics/total-blocking-time.d.ts +32 -0
  150. package/core/audits/metrics.d.ts +11 -0
  151. package/core/audits/multi-check-audit.d.ts +28 -0
  152. package/core/audits/network-requests.d.ts +11 -0
  153. package/core/audits/network-rtt.d.ts +15 -0
  154. package/core/audits/network-server-latency.d.ts +15 -0
  155. package/core/audits/no-unload-listeners.d.ts +16 -0
  156. package/core/audits/non-composited-animations.d.ts +21 -0
  157. package/core/audits/oopif-iframe-test-audit.d.ts +14 -0
  158. package/core/audits/performance-budget.d.ts +39 -0
  159. package/core/audits/predictive-perf.d.ts +11 -0
  160. package/core/audits/preload-fonts.d.ts +29 -0
  161. package/core/audits/preload-lcp-image.d.ts +67 -0
  162. package/core/audits/redirects.d.ts +33 -0
  163. package/core/audits/resource-summary.d.ts +16 -0
  164. package/core/audits/screenshot-thumbnails.d.ts +32 -0
  165. package/core/audits/script-elements-test-audit.d.ts +14 -0
  166. package/core/audits/script-treemap-data.d.ts +42 -0
  167. package/core/audits/seo/canonical.d.ts +51 -0
  168. package/core/audits/seo/crawlable-anchors.d.ts +16 -0
  169. package/core/audits/seo/font-size.d.ts +24 -0
  170. package/core/audits/seo/hreflang.d.ts +28 -0
  171. package/core/audits/seo/http-status-code.d.ts +16 -0
  172. package/core/audits/seo/is-crawlable.d.ts +38 -0
  173. package/core/audits/seo/link-text.d.ts +16 -0
  174. package/core/audits/seo/manual/structured-data.d.ts +12 -0
  175. package/core/audits/seo/meta-description.d.ts +16 -0
  176. package/core/audits/seo/plugins.d.ts +15 -0
  177. package/core/audits/seo/robots-txt.d.ts +18 -0
  178. package/core/audits/seo/tap-targets.d.ts +50 -0
  179. package/core/audits/server-response-time.d.ts +21 -0
  180. package/core/audits/service-worker.d.ts +46 -0
  181. package/core/audits/splash-screen.d.ts +37 -0
  182. package/core/audits/themed-omnibox.d.ts +42 -0
  183. package/core/audits/third-party-facades.d.ts +41 -0
  184. package/core/audits/third-party-summary.d.ts +58 -0
  185. package/core/audits/timing-budget.d.ts +43 -0
  186. package/core/audits/unsized-images.d.ts +39 -0
  187. package/core/audits/user-timings.d.ts +43 -0
  188. package/core/audits/uses-rel-preconnect.d.ts +37 -0
  189. package/core/audits/uses-rel-preconnect.js +1 -4
  190. package/core/audits/uses-rel-preload.d.ts +61 -0
  191. package/core/audits/valid-source-maps.d.ts +27 -0
  192. package/core/audits/viewport.d.ts +17 -0
  193. package/core/audits/violation-audit.d.ts +14 -0
  194. package/core/audits/work-during-interaction.d.ts +82 -0
  195. package/core/computed/computed-artifact.d.ts +15 -0
  196. package/core/computed/critical-request-chains.d.ts +40 -0
  197. package/core/computed/image-records.d.ts +24 -0
  198. package/core/computed/js-bundles.d.ts +13 -0
  199. package/core/computed/load-simulator.d.ts +28 -0
  200. package/core/computed/main-resource.d.ts +25 -0
  201. package/core/computed/main-thread-tasks.d.ts +15 -0
  202. package/core/computed/manifest-values.d.ts +24 -0
  203. package/core/computed/metrics/cumulative-layout-shift.d.ts +53 -0
  204. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +19 -0
  205. package/core/computed/metrics/first-contentful-paint.d.ts +15 -0
  206. package/core/computed/metrics/first-meaningful-paint.d.ts +15 -0
  207. package/core/computed/metrics/interactive.d.ts +61 -0
  208. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +48 -0
  209. package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +12 -0
  210. package/core/computed/metrics/lantern-interactive.d.ts +31 -0
  211. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +25 -0
  212. package/core/computed/metrics/lantern-max-potential-fid.d.ts +30 -0
  213. package/core/computed/metrics/lantern-metric.d.ts +78 -0
  214. package/core/computed/metrics/lantern-metric.js +1 -3
  215. package/core/computed/metrics/lantern-speed-index.d.ts +38 -0
  216. package/core/computed/metrics/lantern-total-blocking-time.d.ts +31 -0
  217. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +20 -0
  218. package/core/computed/metrics/largest-contentful-paint.d.ts +15 -0
  219. package/core/computed/metrics/max-potential-fid.d.ts +15 -0
  220. package/core/computed/metrics/metric.d.ts +38 -0
  221. package/core/computed/metrics/metric.js +1 -1
  222. package/core/computed/metrics/navigation-metric.d.ts +16 -0
  223. package/core/computed/metrics/responsiveness.d.ts +87 -0
  224. package/core/computed/metrics/speed-index.d.ts +10 -0
  225. package/core/computed/metrics/tbt-utils.d.ts +18 -0
  226. package/core/computed/metrics/timing-summary.d.ts +46 -0
  227. package/core/computed/metrics/timing-summary.js +1 -1
  228. package/core/computed/metrics/total-blocking-time.d.ts +23 -0
  229. package/core/computed/module-duplication.d.ts +37 -0
  230. package/core/computed/network-analysis.d.ts +20 -0
  231. package/core/computed/network-records.d.ts +15 -0
  232. package/core/computed/network-records.js +1 -0
  233. package/core/computed/page-dependency-graph.d.ts +88 -0
  234. package/core/computed/processed-navigation.d.ts +15 -0
  235. package/core/computed/processed-navigation.js +5 -2
  236. package/core/computed/processed-trace.d.ts +14 -0
  237. package/core/computed/resource-summary.d.ts +44 -0
  238. package/core/computed/screenshots.d.ts +20 -0
  239. package/core/computed/speedline.d.ts +15 -0
  240. package/core/computed/unused-css.d.ts +62 -0
  241. package/core/computed/unused-javascript-summary.d.ts +71 -0
  242. package/core/computed/user-timings.d.ts +31 -0
  243. package/core/computed/viewport-meta.d.ts +35 -0
  244. package/core/config/budget.d.ts +74 -0
  245. package/core/config/config-helpers.d.ts +94 -0
  246. package/core/config/config-plugin.d.ts +46 -0
  247. package/core/config/config.d.ts +28 -0
  248. package/core/config/constants.d.ts +86 -0
  249. package/core/config/default-config.d.ts +5 -0
  250. package/core/config/default-config.js +5 -4
  251. package/core/config/desktop-config.d.ts +5 -0
  252. package/core/config/desktop-config.js +1 -0
  253. package/core/config/experimental-config.d.ts +13 -0
  254. package/core/config/filters.d.ts +83 -0
  255. package/core/config/full-config.d.ts +9 -0
  256. package/core/config/lr-desktop-config.d.ts +4 -0
  257. package/core/config/lr-mobile-config.d.ts +9 -0
  258. package/core/config/metrics-to-audits.d.ts +19 -0
  259. package/core/config/perf-config.d.ts +9 -0
  260. package/core/config/validation.d.ts +77 -0
  261. package/core/gather/base-artifacts.d.ts +16 -0
  262. package/core/gather/base-gatherer.d.ts +72 -0
  263. package/core/gather/base-gatherer.js +2 -0
  264. package/core/gather/driver/dom.d.ts +20 -0
  265. package/core/gather/driver/environment.d.ts +35 -0
  266. package/core/gather/driver/execution-context.d.ts +101 -0
  267. package/core/gather/driver/execution-context.js +1 -7
  268. package/core/gather/driver/navigation.d.ts +33 -0
  269. package/core/gather/driver/network-monitor.d.ts +82 -0
  270. package/core/gather/driver/network.d.ts +10 -0
  271. package/core/gather/driver/prepare.d.ts +46 -0
  272. package/core/gather/driver/service-workers.d.ts +16 -0
  273. package/core/gather/driver/storage.d.ts +24 -0
  274. package/core/gather/driver/target-manager.d.ts +61 -0
  275. package/core/gather/driver/wait-for-condition.d.ts +116 -0
  276. package/core/gather/driver/wait-for-condition.js +3 -2
  277. package/core/gather/driver.d.ts +30 -0
  278. package/core/gather/fetcher.d.ts +63 -0
  279. package/core/gather/fetcher.js +2 -0
  280. package/core/gather/gatherers/accessibility.d.ts +23 -0
  281. package/core/gather/gatherers/anchor-elements.d.ts +10 -0
  282. package/core/gather/gatherers/bf-cache-failures.d.ts +43 -0
  283. package/core/gather/gatherers/cache-contents.d.ts +11 -0
  284. package/core/gather/gatherers/console-messages.d.ts +39 -0
  285. package/core/gather/gatherers/css-usage.d.ts +39 -0
  286. package/core/gather/gatherers/devtools-log-compat.d.ts +13 -0
  287. package/core/gather/gatherers/devtools-log.d.ts +48 -0
  288. package/core/gather/gatherers/dobetterweb/doctype.d.ts +10 -0
  289. package/core/gather/gatherers/dobetterweb/domstats.d.ts +10 -0
  290. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +61 -0
  291. package/core/gather/gatherers/dobetterweb/password-inputs-with-prevented-paste.d.ts +10 -0
  292. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +30 -0
  293. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +53 -0
  294. package/core/gather/gatherers/full-page-screenshot.d.ts +35 -0
  295. package/core/gather/gatherers/gatherer.d.ts +46 -0
  296. package/core/gather/gatherers/global-listeners.d.ts +27 -0
  297. package/core/gather/gatherers/iframe-elements.d.ts +11 -0
  298. package/core/gather/gatherers/image-elements.d.ts +35 -0
  299. package/core/gather/gatherers/inputs.d.ts +10 -0
  300. package/core/gather/gatherers/inspector-issues.d.ts +38 -0
  301. package/core/gather/gatherers/installability-errors.d.ts +17 -0
  302. package/core/gather/gatherers/js-usage.d.ts +22 -0
  303. package/core/gather/gatherers/link-elements.d.ts +39 -0
  304. package/core/gather/gatherers/main-document-content.d.ts +27 -0
  305. package/core/gather/gatherers/meta-elements.d.ts +10 -0
  306. package/core/gather/gatherers/network-user-agent.d.ts +18 -0
  307. package/core/gather/gatherers/script-elements.d.ts +26 -0
  308. package/core/gather/gatherers/scripts.d.ts +27 -0
  309. package/core/gather/gatherers/seo/embedded-content.d.ts +10 -0
  310. package/core/gather/gatherers/seo/font-size.d.ts +131 -0
  311. package/core/gather/gatherers/seo/robots-txt.d.ts +10 -0
  312. package/core/gather/gatherers/seo/tap-targets.d.ts +21 -0
  313. package/core/gather/gatherers/service-worker.d.ts +16 -0
  314. package/core/gather/gatherers/source-maps.d.ts +50 -0
  315. package/core/gather/gatherers/stacks.d.ts +38 -0
  316. package/core/gather/gatherers/trace-compat.d.ts +13 -0
  317. package/core/gather/gatherers/trace-elements.d.ts +83 -0
  318. package/core/gather/gatherers/trace-elements.js +4 -4
  319. package/core/gather/gatherers/trace.d.ts +23 -0
  320. package/core/gather/gatherers/viewport-dimensions.d.ts +10 -0
  321. package/core/gather/gatherers/web-app-manifest.d.ts +32 -0
  322. package/core/gather/navigation-runner.d.ts +92 -0
  323. package/core/gather/runner-helpers.d.ts +39 -0
  324. package/core/gather/session.d.ts +50 -0
  325. package/core/gather/snapshot-runner.d.ts +10 -0
  326. package/core/gather/timespan-runner.d.ts +12 -0
  327. package/core/index.d.cts +4 -0
  328. package/core/index.d.ts +88 -0
  329. package/core/index.js +2 -0
  330. package/core/legacy/config/config.d.ts +107 -0
  331. package/core/legacy/config/legacy-default-config.d.ts +4 -0
  332. package/core/legacy/gather/connections/connection.d.ts +75 -0
  333. package/core/legacy/gather/connections/connection.js +1 -0
  334. package/core/legacy/gather/connections/cri.d.ts +27 -0
  335. package/core/legacy/gather/connections/raw.d.ts +20 -0
  336. package/core/legacy/gather/driver.d.ts +214 -0
  337. package/core/legacy/gather/driver.js +1 -0
  338. package/core/legacy/gather/gather-runner.d.ts +166 -0
  339. package/core/lib/arbitrary-equality-map.d.ts +47 -0
  340. package/core/lib/asset-saver.d.ts +101 -0
  341. package/core/lib/axe.d.ts +2 -0
  342. package/core/lib/bf-cache-strings.d.ts +121 -0
  343. package/core/lib/cdt/Common.d.ts +3 -0
  344. package/core/lib/cdt/Platform.d.ts +26 -0
  345. package/core/lib/cdt/SDK.d.ts +2 -0
  346. package/core/lib/cdt/generated/ParsedURL.d.ts +28 -0
  347. package/core/lib/cdt/generated/SourceMap.d.ts +100 -0
  348. package/core/lib/csp-evaluator.d.ts +41 -0
  349. package/core/lib/dependency-graph/base-node.d.ts +161 -0
  350. package/core/lib/dependency-graph/cpu-node.d.ts +34 -0
  351. package/core/lib/dependency-graph/cpu-node.js +1 -0
  352. package/core/lib/dependency-graph/network-node.d.ts +43 -0
  353. package/core/lib/dependency-graph/network-node.js +1 -0
  354. package/core/lib/dependency-graph/simulator/connection-pool.d.ts +58 -0
  355. package/core/lib/dependency-graph/simulator/connection-pool.js +1 -0
  356. package/core/lib/dependency-graph/simulator/dns-cache.d.ts +42 -0
  357. package/core/lib/dependency-graph/simulator/dns-cache.js +2 -0
  358. package/core/lib/dependency-graph/simulator/network-analyzer.d.ts +166 -0
  359. package/core/lib/dependency-graph/simulator/simulator-timing-map.d.ts +153 -0
  360. package/core/lib/dependency-graph/simulator/simulator-timing-map.js +2 -2
  361. package/core/lib/dependency-graph/simulator/simulator.d.ts +154 -0
  362. package/core/lib/dependency-graph/simulator/simulator.js +3 -2
  363. package/core/lib/dependency-graph/simulator/tcp-connection.d.ts +89 -0
  364. package/core/lib/deprecations-strings.d.ts +66 -0
  365. package/core/lib/emulation.d.ts +43 -0
  366. package/core/lib/i18n/i18n.d.ts +81 -0
  367. package/core/lib/icons.d.ts +22 -0
  368. package/core/lib/lantern-trace-saver.d.ts +20 -0
  369. package/core/lib/lh-env.d.ts +2 -0
  370. package/core/lib/lh-error.d.ts +328 -0
  371. package/core/lib/lh-trace-processor.d.ts +5 -0
  372. package/core/lib/manifest-parser.d.ts +186 -0
  373. package/core/lib/median-run.d.ts +17 -0
  374. package/core/lib/minification-estimator.d.ts +9 -0
  375. package/core/lib/minify-devtoolslog.d.ts +6 -0
  376. package/core/lib/minify-trace.d.ts +6 -0
  377. package/core/lib/navigation-error.d.ts +39 -0
  378. package/core/lib/network-recorder.d.ts +115 -0
  379. package/core/lib/network-request.d.ts +245 -0
  380. package/core/lib/network-request.js +1 -0
  381. package/core/lib/page-functions.d.ts +149 -0
  382. package/core/lib/proto-preprocessor.d.ts +13 -0
  383. package/core/lib/rect-helpers.d.ts +100 -0
  384. package/core/lib/script-helpers.d.ts +17 -0
  385. package/core/lib/sentry.d.ts +32 -0
  386. package/core/lib/stack-packs.d.ts +16 -0
  387. package/core/lib/statistics.d.ts +28 -0
  388. package/core/lib/tappable-rects.d.ts +8 -0
  389. package/core/lib/third-party-web.d.ts +32 -0
  390. package/core/lib/timing-trace-saver.d.ts +21 -0
  391. package/core/lib/tracehouse/cpu-profile-model.d.ts +228 -0
  392. package/core/lib/tracehouse/main-thread-tasks.d.ts +162 -0
  393. package/core/lib/tracehouse/main-thread-tasks.js +1 -0
  394. package/core/lib/tracehouse/task-groups.d.ts +66 -0
  395. package/core/lib/tracehouse/task-summary.d.ts +18 -0
  396. package/core/lib/tracehouse/trace-processor.d.ts +275 -0
  397. package/core/lib/traces/metric-trace-events.d.ts +65 -0
  398. package/core/lib/url-utils.d.ts +100 -0
  399. package/core/runner.d.ts +109 -0
  400. package/core/scoring.d.ts +26 -0
  401. package/core/user-flow.d.ts +106 -0
  402. package/core/user-flow.js +1 -0
  403. package/core/util.d.cts +230 -0
  404. package/dist/report/bundle.esm.js +2 -0
  405. package/dist/report/flow.js +1 -1
  406. package/dist/report/standalone.js +1 -1
  407. package/eslint-local-rules.d.cts +6 -0
  408. package/esm-utils.d.ts +14 -0
  409. package/flow-report/api.d.ts +7 -0
  410. package/flow-report/clients/standalone.d.ts +7 -0
  411. package/flow-report/src/app.d.ts +11 -0
  412. package/flow-report/src/common.d.ts +20 -0
  413. package/flow-report/src/header.d.ts +10 -0
  414. package/flow-report/src/help-dialog.d.ts +10 -0
  415. package/flow-report/src/i18n/i18n.d.ts +209 -0
  416. package/flow-report/src/i18n/localized-strings.d.ts +9 -0
  417. package/flow-report/src/i18n/ui-strings.d.ts +48 -0
  418. package/flow-report/src/icons.d.ts +18 -0
  419. package/flow-report/src/sidebar/flow.d.ts +8 -0
  420. package/flow-report/src/sidebar/sidebar.d.ts +17 -0
  421. package/flow-report/src/summary/category.d.ts +19 -0
  422. package/flow-report/src/summary/summary.d.ts +18 -0
  423. package/flow-report/src/topbar.d.ts +15 -0
  424. package/flow-report/src/util.d.ts +30 -0
  425. package/flow-report/src/wrappers/category-score.d.ts +12 -0
  426. package/flow-report/src/wrappers/markdown.d.ts +10 -0
  427. package/flow-report/src/wrappers/report.d.ts +10 -0
  428. package/flow-report/src/wrappers/styles.d.ts +8 -0
  429. package/flow-report/test/app-test.d.ts +7 -0
  430. package/flow-report/test/common-test.d.ts +7 -0
  431. package/flow-report/test/flow-report-pptr-test.d.ts +7 -0
  432. package/flow-report/test/header-test.d.ts +7 -0
  433. package/flow-report/test/sample-flow.d.ts +7 -0
  434. package/flow-report/test/setup/env-setup.d.ts +11 -0
  435. package/flow-report/test/sidebar/flow-test.d.ts +7 -0
  436. package/flow-report/test/sidebar/sidebar-test.d.ts +7 -0
  437. package/flow-report/test/summary/category-test.d.ts +7 -0
  438. package/flow-report/test/summary/summary-test.d.ts +7 -0
  439. package/flow-report/test/topbar-test.d.ts +7 -0
  440. package/flow-report/test/util-test.d.ts +7 -0
  441. package/flow-report/test/wrappers/category-score-test.d.ts +7 -0
  442. package/flow-report/test/wrappers/markdown-test.d.ts +7 -0
  443. package/flow-report/tsconfig.json +1 -1
  444. package/package.json +5 -2
  445. package/report/clients/bundle.d.ts +6 -0
  446. package/report/clients/standalone.d.ts +2 -0
  447. package/report/generator/file-namer.d.ts +35 -0
  448. package/report/generator/flow-report-assets.d.ts +9 -0
  449. package/report/generator/report-assets.d.ts +8 -0
  450. package/report/generator/report-generator.d.ts +59 -0
  451. package/report/renderer/api.d.ts +31 -0
  452. package/report/renderer/category-renderer.d.ts +176 -0
  453. package/report/renderer/components.d.ts +10 -0
  454. package/report/renderer/crc-details-renderer.d.ts +73 -0
  455. package/report/renderer/details-renderer.d.ts +141 -0
  456. package/report/renderer/dom.d.ts +125 -0
  457. package/report/renderer/drop-down-menu.d.ts +70 -0
  458. package/report/renderer/element-screenshot-renderer.d.ts +79 -0
  459. package/report/renderer/features-util.d.ts +13 -0
  460. package/report/renderer/i18n.d.ts +106 -0
  461. package/report/renderer/logger.d.ts +47 -0
  462. package/report/renderer/open-tab.d.ts +19 -0
  463. package/report/renderer/performance-category-renderer.d.ts +56 -0
  464. package/report/renderer/performance-category-renderer.js +2 -0
  465. package/report/renderer/pwa-category-renderer.d.ts +55 -0
  466. package/report/renderer/report-renderer.d.ts +57 -0
  467. package/report/renderer/report-ui-features.d.ts +71 -0
  468. package/report/renderer/snippet-renderer.d.ts +85 -0
  469. package/report/renderer/swap-locale-feature.d.ts +31 -0
  470. package/report/renderer/text-encoding.d.ts +26 -0
  471. package/report/renderer/topbar-features.d.ts +82 -0
  472. package/report/renderer/util.d.ts +230 -0
  473. package/report/test/generator/report-generator-test.js +3 -3
  474. package/report/test/renderer/performance-category-renderer-test.js +8 -9
  475. package/report/test-assets/faux-psi.d.ts +34 -0
  476. package/report/types/augment-dom.d.ts +1 -1
  477. package/root.d.ts +3 -0
  478. package/shared/localization/format.d.ts +106 -0
  479. package/shared/localization/i18n-module.d.ts +4 -0
  480. package/shared/localization/locales.d.ts +7 -0
  481. package/shared/localization/swap-flow-locale.d.ts +6 -0
  482. package/shared/localization/swap-locale.d.ts +39 -0
  483. package/shared/type-verifiers.d.ts +23 -0
  484. package/third-party/axe/valid-langs.d.ts +9 -0
  485. package/types/artifacts.d.ts +40 -38
  486. package/types/audit.d.ts +6 -6
  487. package/types/config.d.ts +3 -3
  488. package/types/externs.d.ts +7 -3
  489. package/types/gatherer.d.ts +27 -21
  490. package/types/{cssstyle/index.d.ts → internal/cssstyle.d.ts} +0 -0
  491. package/types/{enquirer.d.ts → internal/enquirer.d.ts} +0 -0
  492. package/types/{es-main.d.ts → internal/es-main.d.ts} +0 -0
  493. package/types/internal/global.d.ts +15 -0
  494. package/types/{http-link-header/index.d.ts → internal/http-link-header.d.ts} +0 -0
  495. package/types/{jsonlint-mod.d.ts → internal/jsonlint-mod.d.ts} +0 -0
  496. package/types/{lighthouse-logger/index.d.ts → internal/lighthouse-logger.d.ts} +0 -0
  497. package/types/{lookup-closest-locale/index.d.ts → internal/lookup-closest-locale.d.ts} +3 -1
  498. package/types/{metaviewport-parser/index.d.ts → internal/metaviewport-parser.d.ts} +0 -0
  499. package/types/{node-fetch.d.ts → internal/node-fetch.d.ts} +0 -0
  500. package/types/{node.d.ts → internal/node.d.ts} +0 -0
  501. package/types/{parse-cache-control/index.d.ts → internal/parse-cache-control.d.ts} +0 -0
  502. package/types/{pretty-json-stringify/index.d.ts → internal/pretty-json-stringify.d.ts} +0 -0
  503. package/types/{query-selector.d.ts → internal/query-selector.d.ts} +1 -1
  504. package/types/{rollup-plugin-postprocess.d.ts → internal/rollup-plugin-postprocess.d.ts} +0 -0
  505. package/types/{smokehouse.d.ts → internal/smokehouse.d.ts} +3 -3
  506. package/types/{test.d.ts → internal/test.d.ts} +0 -0
  507. package/types/lh.d.ts +81 -0
  508. package/types/lh.js +13 -0
  509. package/types/lhr/audit-details.d.ts +2 -2
  510. package/types/lhr/audit-result.d.ts +2 -2
  511. package/types/lhr/flow-result.d.ts +1 -1
  512. package/types/lhr/lhr.d.ts +2 -2
  513. package/types/lhr/settings.d.ts +1 -1
  514. package/types/lhr/treemap.d.ts +2 -2
  515. package/types/protocol.d.ts +8 -3
  516. package/types/puppeteer.d.ts +11 -6
  517. package/types/user-flow.d.ts +14 -5
  518. package/types/global-lh.d.ts +0 -85
@@ -0,0 +1,162 @@
1
+ export type TaskGroup = import('./task-groups.js').TaskGroup;
2
+ export type TaskNode = {
3
+ event: LH.TraceEvent;
4
+ endEvent: LH.TraceEvent | undefined;
5
+ children: TaskNode[];
6
+ parent: TaskNode | undefined;
7
+ /**
8
+ * Indicates that the task had an endTime that was inferred rather than specified in the trace. i.e. in the source trace this task was unbounded.
9
+ */
10
+ unbounded: boolean;
11
+ startTime: number;
12
+ endTime: number;
13
+ duration: number;
14
+ selfTime: number;
15
+ attributableURLs: string[];
16
+ group: TaskGroup;
17
+ };
18
+ export type PriorTaskData = {
19
+ timers: Map<string, TaskNode>;
20
+ xhrs: Map<string, TaskNode>;
21
+ frameURLsById: Map<string, string>;
22
+ lastTaskURLs: string[];
23
+ };
24
+ /**
25
+ * @fileoverview
26
+ *
27
+ * This artifact converts the array of raw trace events into an array of hierarchical
28
+ * tasks for easier consumption and bottom-up analysis.
29
+ *
30
+ * Events are easily produced but difficult to consume. They're a mixture of start/end markers, "complete" events, etc.
31
+ * @see https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview
32
+ *
33
+ * LH's TaskNode is an artifact that fills in the gaps a trace event leaves behind.
34
+ * i.e. when did it end? which events are children/parents of this one?
35
+ *
36
+ * Each task will have its group/classification, start time, end time,
37
+ * duration, and self time computed. Each task will potentially have a parent, children, and an
38
+ * attributableURL for the script that was executing/forced this execution.
39
+ */
40
+ /** @typedef {import('./task-groups.js').TaskGroup} TaskGroup */
41
+ /**
42
+ * @typedef TaskNode
43
+ * @prop {LH.TraceEvent} event
44
+ * @prop {LH.TraceEvent|undefined} endEvent
45
+ * @prop {TaskNode[]} children
46
+ * @prop {TaskNode|undefined} parent
47
+ * @prop {boolean} unbounded Indicates that the task had an endTime that was inferred rather than specified in the trace. i.e. in the source trace this task was unbounded.
48
+ * @prop {number} startTime
49
+ * @prop {number} endTime
50
+ * @prop {number} duration
51
+ * @prop {number} selfTime
52
+ * @prop {string[]} attributableURLs
53
+ * @prop {TaskGroup} group
54
+ */
55
+ /** @typedef {{timers: Map<string, TaskNode>, xhrs: Map<string, TaskNode>, frameURLsById: Map<string, string>, lastTaskURLs: string[]}} PriorTaskData */
56
+ export class MainThreadTasks {
57
+ /**
58
+ * @param {LH.TraceEvent} event
59
+ * @param {LH.TraceEvent} [endEvent]
60
+ * @return {TaskNode}
61
+ */
62
+ static _createNewTaskNode(event: LH.TraceEvent, endEvent?: LH.TraceEvent | undefined): TaskNode;
63
+ /**
64
+ *
65
+ * @param {TaskNode} currentTask
66
+ * @param {number} stopTs
67
+ * @param {PriorTaskData} priorTaskData
68
+ * @param {Array<LH.TraceEvent>} reverseEventsQueue
69
+ */
70
+ static _assignAllTimersUntilTs(currentTask: TaskNode, stopTs: number, priorTaskData: PriorTaskData, reverseEventsQueue: Array<LH.TraceEvent>): void;
71
+ /**
72
+ * This function takes the start and end events from a thread and creates tasks from them.
73
+ * We do this by iterating through the start and end event arrays simultaneously. For each start
74
+ * event we attempt to find its end event.
75
+ *
76
+ * Because of this matching of start/end events and the need to be mutating our end events queue,
77
+ * we reverse the array to more efficiently `.pop()` them off rather than `.shift()` them off.
78
+ * While it's true the worst case runtime here is O(n^2), ~99.999% of the time the reverse loop is O(1)
79
+ * because the overwhelmingly common case is that end event for a given start event is simply the very next event in our queue.
80
+ *
81
+ * @param {LH.TraceEvent[]} taskStartEvents
82
+ * @param {LH.TraceEvent[]} taskEndEvents
83
+ * @param {number} traceEndTs
84
+ * @return {TaskNode[]}
85
+ */
86
+ static _createTasksFromStartAndEndEvents(taskStartEvents: LH.TraceEvent[], taskEndEvents: LH.TraceEvent[], traceEndTs: number): TaskNode[];
87
+ /**
88
+ * This function iterates through the tasks to set the `.parent`/`.children` properties of tasks
89
+ * according to their implied nesting structure. If any of these relationships seem impossible based on
90
+ * the timestamps, this method will throw.
91
+ *
92
+ * @param {TaskNode[]} sortedTasks
93
+ * @param {LH.TraceEvent[]} timerInstallEvents
94
+ * @param {PriorTaskData} priorTaskData
95
+ */
96
+ static _createTaskRelationships(sortedTasks: TaskNode[], timerInstallEvents: LH.TraceEvent[], priorTaskData: PriorTaskData): void;
97
+ /**
98
+ * This function takes the raw trace events sorted in increasing timestamp order and outputs connected task nodes.
99
+ * To create the task heirarchy we make several passes over the events.
100
+ *
101
+ * 1. Create three arrays of X/B events, E events, and TimerInstall events.
102
+ * 2. Create tasks for each X/B event, throwing if a matching E event cannot be found for a given B.
103
+ * 3. Sort the tasks by ↑ startTime, ↓ duration.
104
+ * 4. Match each task to its parent, throwing if there is any invalid overlap between tasks.
105
+ * 5. Sort the tasks once more by ↑ startTime, ↓ duration in case they changed during relationship creation.
106
+ *
107
+ * @param {LH.TraceEvent[]} mainThreadEvents
108
+ * @param {PriorTaskData} priorTaskData
109
+ * @param {number} traceEndTs
110
+ * @return {TaskNode[]}
111
+ */
112
+ static _createTasksFromEvents(mainThreadEvents: LH.TraceEvent[], priorTaskData: PriorTaskData, traceEndTs: number): TaskNode[];
113
+ /**
114
+ * @param {TaskNode} task
115
+ * @param {TaskNode|undefined} parent
116
+ * @return {number}
117
+ */
118
+ static _computeRecursiveSelfTime(task: TaskNode, parent: TaskNode | undefined): number;
119
+ /**
120
+ * @param {TaskNode} task
121
+ * @param {string[]} parentURLs
122
+ * @param {string[]} allURLsInTree
123
+ * @param {PriorTaskData} priorTaskData
124
+ */
125
+ static _computeRecursiveAttributableURLs(task: TaskNode, parentURLs: string[], allURLsInTree: string[], priorTaskData: PriorTaskData): void;
126
+ /**
127
+ * @param {TaskNode} task
128
+ * @param {Array<string>} urls
129
+ */
130
+ static _setRecursiveEmptyAttributableURLs(task: TaskNode, urls: Array<string>): void;
131
+ /**
132
+ * @param {TaskNode} task
133
+ * @param {TaskGroup} [parentGroup]
134
+ */
135
+ static _computeRecursiveTaskGroup(task: TaskNode, parentGroup?: import("./task-groups.js").TaskGroup | undefined): void;
136
+ /**
137
+ * @param {LH.TraceEvent[]} mainThreadEvents
138
+ * @param {Array<{id: string, url: string}>} frames
139
+ * @param {number} traceEndTs
140
+ * @param {number} [traceStartTs] Optional time-0 ts for tasks. Tasks before this point will have negative start/end times. Defaults to the first task found.
141
+ * @return {TaskNode[]}
142
+ */
143
+ static getMainThreadTasks(mainThreadEvents: LH.TraceEvent[], frames: Array<{
144
+ id: string;
145
+ url: string;
146
+ }>, traceEndTs: number, traceStartTs?: number | undefined): TaskNode[];
147
+ /**
148
+ * Prints an artistic rendering of the task tree for easier debugability.
149
+ *
150
+ * @param {TaskNode[]} tasks
151
+ * @param {{printWidth?: number, startTime?: number, endTime?: number, taskLabelFn?: (node: TaskNode) => string}} options
152
+ * @return {string}
153
+ */
154
+ static printTaskTreeToDebugString(tasks: TaskNode[], options?: {
155
+ printWidth?: number | undefined;
156
+ startTime?: number | undefined;
157
+ endTime?: number | undefined;
158
+ taskLabelFn?: ((node: TaskNode) => string) | undefined;
159
+ }): string;
160
+ }
161
+ import * as LH from "../../../types/lh.js";
162
+ //# sourceMappingURL=main-thread-tasks.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 {taskGroups, taskNameToGroup} from './task-groups.js';
8
9
 
9
10
  /**
@@ -0,0 +1,66 @@
1
+ export type TaskGroupIds = 'parseHTML' | 'styleLayout' | 'paintCompositeRender' | 'scriptParseCompile' | 'scriptEvaluation' | 'garbageCollection' | 'other';
2
+ export type TaskGroup = {
3
+ id: TaskGroupIds;
4
+ label: string;
5
+ traceEventNames: string[];
6
+ };
7
+ /**
8
+ * @license Copyright 2017 The Lighthouse Authors. All Rights Reserved.
9
+ * 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
10
+ * 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.
11
+ */
12
+ /** @typedef {'parseHTML'|'styleLayout'|'paintCompositeRender'|'scriptParseCompile'|'scriptEvaluation'|'garbageCollection'|'other'} TaskGroupIds */
13
+ /**
14
+ * @typedef TaskGroup
15
+ * @property {TaskGroupIds} id
16
+ * @property {string} label
17
+ * @property {string[]} traceEventNames
18
+ */
19
+ /**
20
+ * Make sure the traceEventNames keep up with the ones in DevTools
21
+ * @see https://cs.chromium.org/chromium/src/third_party/blink/renderer/devtools/front_end/timeline_model/TimelineModel.js?type=cs&q=TimelineModel.TimelineModel.RecordType+%3D&g=0&l=1156
22
+ * @see https://cs.chromium.org/chromium/src/third_party/blink/renderer/devtools/front_end/timeline/TimelineUIUtils.js?type=cs&q=_initEventStyles+-f:out+f:devtools&sq=package:chromium&g=0&l=39
23
+ * @type {{[P in TaskGroupIds]: {id: P, label: string, traceEventNames: Array<string>}}}
24
+ */
25
+ export const taskGroups: {
26
+ other: {
27
+ id: "other";
28
+ label: string;
29
+ traceEventNames: Array<string>;
30
+ };
31
+ parseHTML: {
32
+ id: "parseHTML";
33
+ label: string;
34
+ traceEventNames: Array<string>;
35
+ };
36
+ styleLayout: {
37
+ id: "styleLayout";
38
+ label: string;
39
+ traceEventNames: Array<string>;
40
+ };
41
+ paintCompositeRender: {
42
+ id: "paintCompositeRender";
43
+ label: string;
44
+ traceEventNames: Array<string>;
45
+ };
46
+ scriptParseCompile: {
47
+ id: "scriptParseCompile";
48
+ label: string;
49
+ traceEventNames: Array<string>;
50
+ };
51
+ scriptEvaluation: {
52
+ id: "scriptEvaluation";
53
+ label: string;
54
+ traceEventNames: Array<string>;
55
+ };
56
+ garbageCollection: {
57
+ id: "garbageCollection";
58
+ label: string;
59
+ traceEventNames: Array<string>;
60
+ };
61
+ };
62
+ /** @type {Object<string, TaskGroup>} */
63
+ export const taskNameToGroup: {
64
+ [x: string]: TaskGroup;
65
+ };
66
+ //# sourceMappingURL=task-groups.d.ts.map
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @param {LH.Artifacts.NetworkRequest[]} records
3
+ */
4
+ export function getJavaScriptURLs(records: LH.Artifacts.NetworkRequest[]): Set<string>;
5
+ /**
6
+ * @param {LH.Artifacts.TaskNode} task
7
+ * @param {Set<string>} jsURLs
8
+ * @return {string}
9
+ */
10
+ export function getAttributableURLForTask(task: LH.Artifacts.TaskNode, jsURLs: Set<string>): string;
11
+ /**
12
+ * @param {LH.Artifacts.TaskNode[]} tasks
13
+ * @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
14
+ * @return {Map<string, Record<string, number>>}
15
+ */
16
+ export function getExecutionTimingsByURL(tasks: LH.Artifacts.TaskNode[], networkRecords: Array<LH.Artifacts.NetworkRequest>): Map<string, Record<string, number>>;
17
+ import { NetworkRequest } from "../network-request.js";
18
+ //# sourceMappingURL=task-summary.d.ts.map
@@ -0,0 +1,275 @@
1
+ export type TraceNavigationTimesForFrame = Omit<LH.Artifacts.NavigationTraceTimes, 'firstContentfulPaintAllFrames' | 'traceEnd'>;
2
+ export type TimeOriginDeterminationMethod = 'lastNavigationStart' | 'firstResourceSendRequest' | 'lighthouseMarker' | 'auto';
3
+ export type FrameCommittedEvent = Omit<LH.TraceEvent, 'name' | 'args'> & {
4
+ name: 'FrameCommittedInBrowser';
5
+ args: {
6
+ data: {
7
+ frame: string;
8
+ url: string;
9
+ parent?: string;
10
+ };
11
+ };
12
+ };
13
+ export type LCPEvent = Omit<LH.TraceEvent, 'name' | 'args'> & {
14
+ name: 'largestContentfulPaint::Invalidate' | 'largestContentfulPaint::Candidate';
15
+ args: {
16
+ data?: {
17
+ size?: number;
18
+ };
19
+ frame: string;
20
+ };
21
+ };
22
+ export type LCPCandidateEvent = Omit<LH.TraceEvent, 'name' | 'args'> & {
23
+ name: 'largestContentfulPaint::Candidate';
24
+ args: {
25
+ data: {
26
+ size: number;
27
+ };
28
+ frame: string;
29
+ };
30
+ };
31
+ export type ToplevelEvent = {
32
+ start: number;
33
+ end: number;
34
+ duration: number;
35
+ };
36
+ export class TraceProcessor {
37
+ static get TIMESPAN_MARKER_ID(): string;
38
+ /**
39
+ * @return {Error}
40
+ */
41
+ static createNoNavstartError(): Error;
42
+ /**
43
+ * @return {Error}
44
+ */
45
+ static createNoResourceSendRequestError(): Error;
46
+ /**
47
+ * @return {Error}
48
+ */
49
+ static createNoTracingStartedError(): Error;
50
+ /**
51
+ * @return {Error}
52
+ */
53
+ static createNoFirstContentfulPaintError(): Error;
54
+ /**
55
+ * @return {Error}
56
+ */
57
+ static createNoLighthouseMarkerError(): Error;
58
+ /**
59
+ * Returns true if the event is a navigation start event of a document whose URL seems valid.
60
+ *
61
+ * @param {LH.TraceEvent} event
62
+ * @return {boolean}
63
+ */
64
+ static _isNavigationStartOfInterest(event: LH.TraceEvent): boolean;
65
+ /**
66
+ * This method sorts a group of trace events that have the same timestamp. We want to...
67
+ *
68
+ * 1. Put E events first, we finish off our existing events before we start new ones.
69
+ * 2. Order B/X events by their duration, we want parents to start before child events.
70
+ * 3. If we don't have any of this to go on, just use the position in the original array (stable sort).
71
+ *
72
+ * Note that the typical group size with the same timestamp will be quite small (<10 or so events),
73
+ * and the number of groups typically ~1% of total trace, so the same ultra-performance-sensitive consideration
74
+ * given to functions that run on entire traces does not necessarily apply here.
75
+ *
76
+ * @param {number[]} tsGroupIndices
77
+ * @param {number[]} timestampSortedIndices
78
+ * @param {number} indexOfTsGroupIndicesStart
79
+ * @param {LH.TraceEvent[]} traceEvents
80
+ * @return {number[]}
81
+ */
82
+ static _sortTimestampEventGroup(tsGroupIndices: number[], timestampSortedIndices: number[], indexOfTsGroupIndicesStart: number, traceEvents: LH.TraceEvent[]): number[];
83
+ /**
84
+ * Sorts and filters trace events by timestamp and respecting the nesting structure inherent to
85
+ * parent/child event relationships.
86
+ *
87
+ * @param {LH.TraceEvent[]} traceEvents
88
+ * @param {(e: LH.TraceEvent) => boolean} filter
89
+ */
90
+ static filteredTraceSort(traceEvents: LH.TraceEvent[], filter: (e: LH.TraceEvent) => boolean): import("../..").TraceEvent[];
91
+ /**
92
+ * There should *always* be at least one top level event, having 0 typically means something is
93
+ * drastically wrong with the trace and we should just give up early and loudly.
94
+ *
95
+ * @param {LH.TraceEvent[]} events
96
+ */
97
+ static assertHasToplevelEvents(events: LH.TraceEvent[]): void;
98
+ /**
99
+ * Calculate duration at specified percentiles for given population of
100
+ * durations.
101
+ * If one of the durations overlaps the end of the window, the full
102
+ * duration should be in the duration array, but the length not included
103
+ * within the window should be given as `clippedLength`. For instance, if a
104
+ * 50ms duration occurs 10ms before the end of the window, `50` should be in
105
+ * the `durations` array, and `clippedLength` should be set to 40.
106
+ * @see https://docs.google.com/document/d/1b9slyaB9yho91YTOkAQfpCdULFkZM9LqsipcX3t7He8/preview
107
+ * @param {!Array<number>} durations Array of durations, sorted in ascending order.
108
+ * @param {number} totalTime Total time (in ms) of interval containing durations.
109
+ * @param {!Array<number>} percentiles Array of percentiles of interest, in ascending order.
110
+ * @param {number=} clippedLength Optional length clipped from a duration overlapping end of window. Default of 0.
111
+ * @return {!Array<{percentile: number, time: number}>}
112
+ * @private
113
+ */
114
+ private static _riskPercentiles;
115
+ /**
116
+ * Calculates the maximum queueing time (in ms) of high priority tasks for
117
+ * selected percentiles within a window of the main thread.
118
+ * @see https://docs.google.com/document/d/1b9slyaB9yho91YTOkAQfpCdULFkZM9LqsipcX3t7He8/preview
119
+ * @param {Array<ToplevelEvent>} events
120
+ * @param {number} startTime Start time (in ms relative to timeOrigin) of range of interest.
121
+ * @param {number} endTime End time (in ms relative to timeOrigin) of range of interest.
122
+ * @param {!Array<number>=} percentiles Optional array of percentiles to compute. Defaults to [0.5, 0.75, 0.9, 0.99, 1].
123
+ * @return {!Array<{percentile: number, time: number}>}
124
+ */
125
+ static getRiskToResponsiveness(events: Array<ToplevelEvent>, startTime: number, endTime: number, percentiles?: Array<number> | undefined): Array<{
126
+ percentile: number;
127
+ time: number;
128
+ }>;
129
+ /**
130
+ * Provides durations in ms of all main thread top-level events
131
+ * @param {Array<ToplevelEvent>} topLevelEvents
132
+ * @param {number} startTime Optional start time (in ms relative to timeOrigin) of range of interest. Defaults to 0.
133
+ * @param {number} endTime Optional end time (in ms relative to timeOrigin) of range of interest. Defaults to trace end.
134
+ * @return {{durations: Array<number>, clippedLength: number}}
135
+ */
136
+ static getMainThreadTopLevelEventDurations(topLevelEvents: Array<ToplevelEvent>, startTime?: number, endTime?: number): {
137
+ durations: Array<number>;
138
+ clippedLength: number;
139
+ };
140
+ /**
141
+ * Provides the top level events on the main thread with timestamps in ms relative to timeOrigin.
142
+ * start.
143
+ * @param {LH.Artifacts.ProcessedTrace} trace
144
+ * @param {number=} startTime Optional start time (in ms relative to timeOrigin) of range of interest. Defaults to 0.
145
+ * @param {number=} endTime Optional end time (in ms relative to timeOrigin) of range of interest. Defaults to trace end.
146
+ * @return {Array<ToplevelEvent>}
147
+ */
148
+ static getMainThreadTopLevelEvents(trace: LH.Artifacts.ProcessedTrace, startTime?: number | undefined, endTime?: number | undefined): Array<ToplevelEvent>;
149
+ /**
150
+ * @param {LH.TraceEvent[]} events
151
+ * @return {{pid: number, tid: number, frameId: string}}
152
+ */
153
+ static findMainFrameIds(events: LH.TraceEvent[]): {
154
+ pid: number;
155
+ tid: number;
156
+ frameId: string;
157
+ };
158
+ /**
159
+ * @param {LH.TraceEvent} evt
160
+ * @return {boolean}
161
+ */
162
+ static isScheduleableTask(evt: LH.TraceEvent): boolean;
163
+ /**
164
+ * @param {LH.TraceEvent} evt
165
+ * @return {evt is LCPEvent}
166
+ */
167
+ static isLCPEvent(evt: LH.TraceEvent): evt is LCPEvent;
168
+ /**
169
+ * @param {LH.TraceEvent} evt
170
+ * @return {evt is LCPCandidateEvent}
171
+ */
172
+ static isLCPCandidateEvent(evt: LH.TraceEvent): evt is LCPCandidateEvent;
173
+ /**
174
+ * Returns the maximum LCP event across all frames in `events`.
175
+ * Sets `invalidated` flag if LCP of every frame is invalidated.
176
+ *
177
+ * LCP's trace event was first introduced in m78. We can't surface an LCP for older Chrome versions.
178
+ * LCP comes from a frame's latest `largestContentfulPaint::Candidate`, but it can be invalidated by a `largestContentfulPaint::Invalidate` event.
179
+ *
180
+ * @param {LH.TraceEvent[]} events
181
+ * @param {LH.TraceEvent} timeOriginEvent
182
+ * @return {{lcp: LCPEvent | undefined, invalidated: boolean}}
183
+ */
184
+ static computeValidLCPAllFrames(events: LH.TraceEvent[], timeOriginEvent: LH.TraceEvent): {
185
+ lcp: LCPEvent | undefined;
186
+ invalidated: boolean;
187
+ };
188
+ /**
189
+ * @param {Array<{id: string, url: string, parent?: string}>} frames
190
+ * @return {Map<string, string>}
191
+ */
192
+ static resolveRootFrames(frames: Array<{
193
+ id: string;
194
+ url: string;
195
+ parent?: string;
196
+ }>): Map<string, string>;
197
+ /**
198
+ * Finds key trace events, identifies main process/thread, and returns timings of trace events
199
+ * in milliseconds since the time origin in addition to the standard microsecond monotonic timestamps.
200
+ * @param {LH.Trace} trace
201
+ * @param {{timeOriginDeterminationMethod?: TimeOriginDeterminationMethod}} [options]
202
+ * @return {LH.Artifacts.ProcessedTrace}
203
+ */
204
+ static processTrace(trace: LH.Trace, options?: {
205
+ timeOriginDeterminationMethod?: TimeOriginDeterminationMethod | undefined;
206
+ } | undefined): LH.Artifacts.ProcessedTrace;
207
+ /**
208
+ * Finds key navigation trace events and computes timings of events in milliseconds since the time
209
+ * origin in addition to the standard microsecond monotonic timestamps.
210
+ * @param {LH.Artifacts.ProcessedTrace} processedTrace
211
+ * @return {LH.Artifacts.ProcessedNavigation}
212
+ */
213
+ static processNavigation(processedTrace: LH.Artifacts.ProcessedTrace): LH.Artifacts.ProcessedNavigation;
214
+ /**
215
+ * Computes the last observable timestamp in a set of trace events.
216
+ *
217
+ * @param {Array<LH.TraceEvent>} events
218
+ * @param {LH.TraceEvent} timeOriginEvt
219
+ * @return {{timing: number, timestamp: number}}
220
+ */
221
+ static computeTraceEnd(events: Array<LH.TraceEvent>, timeOriginEvt: LH.TraceEvent): {
222
+ timing: number;
223
+ timestamp: number;
224
+ };
225
+ /**
226
+ * Computes the time origin using the specified method.
227
+ *
228
+ * - firstResourceSendRequest
229
+ * Uses the time that the very first network request is sent in the main frame.
230
+ * Eventually should be used in place of lastNavigationStart as the default for navigations.
231
+ * This method includes the cost of all redirects when evaluating a navigation (which matches lantern behavior).
232
+ * The only difference between firstResourceSendRequest and the first `navigationStart` is
233
+ * the unload time of `about:blank` (which is a Lighthouse implementation detail and shouldn't be included).
234
+ *
235
+ * - lastNavigationStart
236
+ * Uses the time of the last `navigationStart` event in the main frame.
237
+ * The historical time origin of Lighthouse from 2016-Present.
238
+ * This method excludes the cost of client-side redirects when evaluating a navigation.
239
+ * Can also be skewed by several hundred milliseconds or even seconds when the browser takes a long
240
+ * time to unload `about:blank`.
241
+ *
242
+ * @param {{keyEvents: Array<LH.TraceEvent>, frameEvents: Array<LH.TraceEvent>, mainFrameIds: {frameId: string}}} traceEventSubsets
243
+ * @param {TimeOriginDeterminationMethod} method
244
+ * @return {LH.TraceEvent}
245
+ */
246
+ static computeTimeOrigin(traceEventSubsets: {
247
+ keyEvents: Array<LH.TraceEvent>;
248
+ frameEvents: Array<LH.TraceEvent>;
249
+ mainFrameIds: {
250
+ frameId: string;
251
+ };
252
+ }, method: TimeOriginDeterminationMethod): LH.TraceEvent;
253
+ /**
254
+ * Computes timings of trace events of key trace events in milliseconds since the time origin
255
+ * in addition to the standard microsecond monotonic timestamps.
256
+ * @param {Array<LH.TraceEvent>} frameEvents
257
+ * @param {{timeOriginEvt: LH.TraceEvent}} options
258
+ */
259
+ static computeNavigationTimingsForFrame(frameEvents: Array<LH.TraceEvent>, options: {
260
+ timeOriginEvt: LH.TraceEvent;
261
+ }): {
262
+ timings: TraceNavigationTimesForFrame;
263
+ timestamps: TraceNavigationTimesForFrame;
264
+ timeOriginEvt: import("../..").TraceEvent;
265
+ firstPaintEvt: import("../..").TraceEvent | undefined;
266
+ firstContentfulPaintEvt: import("../..").TraceEvent;
267
+ firstMeaningfulPaintEvt: import("../..").TraceEvent | undefined;
268
+ largestContentfulPaintEvt: LCPEvent | undefined;
269
+ loadEvt: import("../..").TraceEvent | undefined;
270
+ domContentLoadedEvt: import("../..").TraceEvent | undefined;
271
+ fmpFellBack: boolean;
272
+ lcpInvalidated: boolean;
273
+ };
274
+ }
275
+ //# sourceMappingURL=trace-processor.d.ts.map
@@ -0,0 +1,65 @@
1
+ export class MetricTraceEvents {
2
+ /**
3
+ * Returns simplified representation of all metrics
4
+ * @return {Array<{id: string, name: string, tsKey: keyof LH.Artifacts.TimingSummary}>} metrics to consider
5
+ */
6
+ static get metricsDefinitions(): {
7
+ id: string;
8
+ name: string;
9
+ tsKey: keyof LH.Artifacts.TimingSummary;
10
+ }[];
11
+ /**
12
+ * @param {Array<LH.TraceEvent>} traceEvents
13
+ * @param {LH.Result['audits']} auditResults
14
+ */
15
+ constructor(traceEvents: Array<LH.TraceEvent>, auditResults: LH.Result['audits']);
16
+ _traceEvents: import("../../index.js").TraceEvent[];
17
+ _auditResults: Record<string, import("../../../types/lhr/audit-result.js").Result>;
18
+ /**
19
+ * Returns simplified representation of all metrics' timestamps from monotonic clock
20
+ * @return {Array<{ts: number, id: string, name: string}>} metrics to consider
21
+ */
22
+ gatherMetrics(): Array<{
23
+ ts: number;
24
+ id: string;
25
+ name: string;
26
+ }>;
27
+ /**
28
+ * Get the trace event data for our timeOrigin
29
+ * @param {Array<{ts: number, id: string, name: string}>} metrics
30
+ * @return {{pid: number, tid: number, ts: number} | {errorMessage: string}}
31
+ */
32
+ getTimeOriginEvt(metrics: Array<{
33
+ ts: number;
34
+ id: string;
35
+ name: string;
36
+ }>): {
37
+ pid: number;
38
+ tid: number;
39
+ ts: number;
40
+ } | {
41
+ errorMessage: string;
42
+ };
43
+ /**
44
+ * Constructs performance.measure trace events, which have start/end events as follows:
45
+ * { "pid": 89922,"tid":1295,"ts":77176783452,"ph":"b","cat":"blink.user_timing","name":"innermeasure","args":{},"tts":1257886,"id":"0xe66c67"}
46
+ * { "pid": 89922,"tid":1295,"ts":77176882592,"ph":"e","cat":"blink.user_timing","name":"innermeasure","args":{},"tts":1257898,"id":"0xe66c67"}
47
+ * @param {{ts: number, id: string, name: string}} metric
48
+ * @param {{pid: number, tid: number, ts: number}} timeOriginEvt
49
+ * @return {Array<LH.TraceEvent>} Pair of trace events (start/end)
50
+ */
51
+ synthesizeEventPair(metric: {
52
+ ts: number;
53
+ id: string;
54
+ name: string;
55
+ }, timeOriginEvt: {
56
+ pid: number;
57
+ tid: number;
58
+ ts: number;
59
+ }): Array<LH.TraceEvent>;
60
+ /**
61
+ * @return {Array<LH.TraceEvent>} User timing raw trace event pairs
62
+ */
63
+ generateFakeEvents(): Array<LH.TraceEvent>;
64
+ }
65
+ //# sourceMappingURL=metric-trace-events.d.ts.map