lighthouse 12.1.0 → 12.2.0

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 (436) hide show
  1. package/cli/cli-flags.d.ts +2 -2
  2. package/cli/cli-flags.js +1 -1
  3. package/cli/sentry-prompt.js +2 -2
  4. package/cli/test/smokehouse/frontends/lib.d.ts +1 -1
  5. package/cli/test/smokehouse/lib/concurrent-mapper.d.ts +6 -6
  6. package/cli/test/smokehouse/lighthouse-runners/bundle.d.ts +1 -1
  7. package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +1 -2
  8. package/cli/test/smokehouse/lighthouse-runners/devtools.d.ts +1 -1
  9. package/cli/test/smokehouse/report-assert.d.ts +0 -1
  10. package/cli/test/smokehouse/version-check.d.ts +3 -3
  11. package/core/audits/accessibility/accesskeys.d.ts +3 -3
  12. package/core/audits/accessibility/aria-allowed-attr.d.ts +3 -3
  13. package/core/audits/accessibility/aria-allowed-role.d.ts +3 -3
  14. package/core/audits/accessibility/aria-command-name.d.ts +3 -3
  15. package/core/audits/accessibility/aria-conditional-attr.d.ts +3 -3
  16. package/core/audits/accessibility/aria-deprecated-role.d.ts +3 -3
  17. package/core/audits/accessibility/aria-dialog-name.d.ts +3 -3
  18. package/core/audits/accessibility/aria-hidden-body.d.ts +3 -3
  19. package/core/audits/accessibility/aria-hidden-focus.d.ts +3 -3
  20. package/core/audits/accessibility/aria-input-field-name.d.ts +3 -3
  21. package/core/audits/accessibility/aria-meter-name.d.ts +3 -3
  22. package/core/audits/accessibility/aria-progressbar-name.d.ts +3 -3
  23. package/core/audits/accessibility/aria-prohibited-attr.d.ts +3 -3
  24. package/core/audits/accessibility/aria-required-attr.d.ts +3 -3
  25. package/core/audits/accessibility/aria-required-children.d.ts +3 -3
  26. package/core/audits/accessibility/aria-required-parent.d.ts +3 -3
  27. package/core/audits/accessibility/aria-roles.d.ts +3 -3
  28. package/core/audits/accessibility/aria-text.d.ts +3 -3
  29. package/core/audits/accessibility/aria-toggle-field-name.d.ts +3 -3
  30. package/core/audits/accessibility/aria-tooltip-name.d.ts +3 -3
  31. package/core/audits/accessibility/aria-treeitem-name.d.ts +3 -3
  32. package/core/audits/accessibility/aria-valid-attr-value.d.ts +3 -3
  33. package/core/audits/accessibility/aria-valid-attr.d.ts +3 -3
  34. package/core/audits/accessibility/axe-audit.d.ts +1 -1
  35. package/core/audits/accessibility/button-name.d.ts +3 -3
  36. package/core/audits/accessibility/bypass.d.ts +3 -3
  37. package/core/audits/accessibility/color-contrast.d.ts +3 -3
  38. package/core/audits/accessibility/definition-list.d.ts +3 -3
  39. package/core/audits/accessibility/dlitem.d.ts +3 -3
  40. package/core/audits/accessibility/document-title.d.ts +3 -3
  41. package/core/audits/accessibility/duplicate-id-aria.d.ts +3 -3
  42. package/core/audits/accessibility/empty-heading.d.ts +3 -3
  43. package/core/audits/accessibility/form-field-multiple-labels.d.ts +3 -3
  44. package/core/audits/accessibility/frame-title.d.ts +3 -3
  45. package/core/audits/accessibility/heading-order.d.ts +3 -3
  46. package/core/audits/accessibility/html-has-lang.d.ts +3 -3
  47. package/core/audits/accessibility/html-lang-valid.d.ts +3 -3
  48. package/core/audits/accessibility/html-xml-lang-mismatch.d.ts +3 -3
  49. package/core/audits/accessibility/identical-links-same-purpose.d.ts +3 -3
  50. package/core/audits/accessibility/image-alt.d.ts +3 -3
  51. package/core/audits/accessibility/image-redundant-alt.d.ts +3 -3
  52. package/core/audits/accessibility/input-button-name.d.ts +3 -3
  53. package/core/audits/accessibility/input-image-alt.d.ts +3 -3
  54. package/core/audits/accessibility/label-content-name-mismatch.d.ts +3 -3
  55. package/core/audits/accessibility/label.d.ts +3 -3
  56. package/core/audits/accessibility/landmark-one-main.d.ts +3 -3
  57. package/core/audits/accessibility/link-in-text-block.d.ts +3 -3
  58. package/core/audits/accessibility/link-name.d.ts +3 -3
  59. package/core/audits/accessibility/list.d.ts +3 -3
  60. package/core/audits/accessibility/listitem.d.ts +3 -3
  61. package/core/audits/accessibility/meta-refresh.d.ts +3 -3
  62. package/core/audits/accessibility/meta-viewport.d.ts +3 -3
  63. package/core/audits/accessibility/object-alt.d.ts +3 -3
  64. package/core/audits/accessibility/select-name.d.ts +3 -3
  65. package/core/audits/accessibility/skip-link.d.ts +3 -3
  66. package/core/audits/accessibility/tabindex.d.ts +3 -3
  67. package/core/audits/accessibility/table-duplicate-name.d.ts +3 -3
  68. package/core/audits/accessibility/table-fake-caption.d.ts +3 -3
  69. package/core/audits/accessibility/target-size.d.ts +3 -3
  70. package/core/audits/accessibility/td-has-header.d.ts +3 -3
  71. package/core/audits/accessibility/td-headers-attr.d.ts +3 -3
  72. package/core/audits/accessibility/th-has-data-cells.d.ts +3 -3
  73. package/core/audits/accessibility/valid-lang.d.ts +3 -3
  74. package/core/audits/accessibility/video-caption.d.ts +3 -3
  75. package/core/audits/audit.d.ts +17 -17
  76. package/core/audits/autocomplete.d.ts +9 -9
  77. package/core/audits/bf-cache.d.ts +10 -10
  78. package/core/audits/bootup-time.d.ts +7 -7
  79. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +6 -8
  80. package/core/audits/byte-efficiency/byte-efficiency-audit.js +3 -6
  81. package/core/audits/byte-efficiency/duplicated-javascript.d.ts +4 -4
  82. package/core/audits/byte-efficiency/efficient-animated-content.d.ts +3 -4
  83. package/core/audits/byte-efficiency/legacy-javascript.d.ts +7 -8
  84. package/core/audits/byte-efficiency/modern-image-formats.d.ts +3 -3
  85. package/core/audits/byte-efficiency/offscreen-images.d.ts +3 -4
  86. package/core/audits/byte-efficiency/render-blocking-resources.d.ts +5 -9
  87. package/core/audits/byte-efficiency/render-blocking-resources.js +10 -16
  88. package/core/audits/byte-efficiency/total-byte-weight.d.ts +4 -4
  89. package/core/audits/byte-efficiency/unminified-css.d.ts +3 -3
  90. package/core/audits/byte-efficiency/unminified-javascript.d.ts +3 -3
  91. package/core/audits/byte-efficiency/unused-css-rules.d.ts +3 -3
  92. package/core/audits/byte-efficiency/unused-javascript.d.ts +3 -3
  93. package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +4 -6
  94. package/core/audits/byte-efficiency/uses-optimized-images.d.ts +3 -3
  95. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +4 -4
  96. package/core/audits/byte-efficiency/uses-responsive-images.d.ts +4 -5
  97. package/core/audits/byte-efficiency/uses-text-compression.d.ts +3 -3
  98. package/core/audits/critical-request-chains.d.ts +3 -3
  99. package/core/audits/csp-xss.d.ts +8 -8
  100. package/core/audits/deprecations.d.ts +6 -6
  101. package/core/audits/dobetterweb/charset.d.ts +3 -3
  102. package/core/audits/dobetterweb/doctype.d.ts +9 -9
  103. package/core/audits/dobetterweb/dom-size.d.ts +9 -9
  104. package/core/audits/dobetterweb/geolocation-on-start.d.ts +3 -3
  105. package/core/audits/dobetterweb/inspector-issues.d.ts +6 -6
  106. package/core/audits/dobetterweb/js-libraries.d.ts +3 -3
  107. package/core/audits/dobetterweb/no-document-write.d.ts +3 -3
  108. package/core/audits/dobetterweb/notification-on-start.d.ts +3 -3
  109. package/core/audits/dobetterweb/paste-preventing-inputs.d.ts +3 -3
  110. package/core/audits/dobetterweb/uses-http2.d.ts +7 -11
  111. package/core/audits/dobetterweb/uses-http2.js +2 -5
  112. package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +3 -3
  113. package/core/audits/errors-in-console.d.ts +4 -4
  114. package/core/audits/font-display.d.ts +4 -4
  115. package/core/audits/image-aspect-ratio.d.ts +5 -5
  116. package/core/audits/image-size-responsive.d.ts +7 -7
  117. package/core/audits/is-on-https.d.ts +10 -10
  118. package/core/audits/largest-contentful-paint-element.d.ts +9 -9
  119. package/core/audits/layout-shifts.d.ts +9 -9
  120. package/core/audits/lcp-lazy-loaded.d.ts +3 -3
  121. package/core/audits/long-tasks.d.ts +11 -11
  122. package/core/audits/long-tasks.js +5 -5
  123. package/core/audits/mainthread-work-breakdown.d.ts +5 -5
  124. package/core/audits/metrics/cumulative-layout-shift.d.ts +1 -1
  125. package/core/audits/metrics/first-contentful-paint.d.ts +1 -1
  126. package/core/audits/metrics/first-meaningful-paint.d.ts +1 -1
  127. package/core/audits/metrics/interaction-to-next-paint.d.ts +1 -1
  128. package/core/audits/metrics/interactive.d.ts +1 -1
  129. package/core/audits/metrics/largest-contentful-paint.d.ts +1 -1
  130. package/core/audits/metrics/max-potential-fid.d.ts +2 -4
  131. package/core/audits/metrics/speed-index.d.ts +1 -1
  132. package/core/audits/metrics/total-blocking-time.d.ts +1 -1
  133. package/core/audits/network-rtt.d.ts +2 -2
  134. package/core/audits/network-server-latency.d.ts +2 -2
  135. package/core/audits/non-composited-animations.d.ts +9 -9
  136. package/core/audits/oopif-iframe-test-audit.d.ts +5 -5
  137. package/core/audits/preload-fonts.d.ts +3 -3
  138. package/core/audits/prioritize-lcp-image.d.ts +7 -7
  139. package/core/audits/redirects-http.d.ts +3 -3
  140. package/core/audits/redirects.d.ts +2 -3
  141. package/core/audits/resource-summary.d.ts +1 -1
  142. package/core/audits/screenshot-thumbnails.d.ts +2 -3
  143. package/core/audits/script-treemap-data.d.ts +1 -1
  144. package/core/audits/seo/canonical.d.ts +8 -8
  145. package/core/audits/seo/crawlable-anchors.d.ts +4 -4
  146. package/core/audits/seo/font-size.d.ts +11 -11
  147. package/core/audits/seo/hreflang.d.ts +6 -6
  148. package/core/audits/seo/http-status-code.d.ts +3 -3
  149. package/core/audits/seo/is-crawlable.d.ts +9 -10
  150. package/core/audits/seo/link-text.d.ts +4 -4
  151. package/core/audits/seo/manual/structured-data.d.ts +2 -2
  152. package/core/audits/seo/meta-description.d.ts +4 -4
  153. package/core/audits/seo/robots-txt.d.ts +6 -6
  154. package/core/audits/server-response-time.d.ts +4 -4
  155. package/core/audits/third-party-cookies.d.ts +4 -4
  156. package/core/audits/third-party-facades.d.ts +11 -12
  157. package/core/audits/third-party-summary.d.ts +5 -6
  158. package/core/audits/third-party-summary.js +7 -4
  159. package/core/audits/unsized-images.d.ts +3 -3
  160. package/core/audits/user-timings.d.ts +6 -6
  161. package/core/audits/uses-rel-preconnect.d.ts +5 -5
  162. package/core/audits/uses-rel-preload.d.ts +7 -7
  163. package/core/audits/uses-rel-preload.js +8 -6
  164. package/core/audits/valid-source-maps.d.ts +6 -7
  165. package/core/audits/viewport.d.ts +4 -4
  166. package/core/audits/work-during-interaction.d.ts +11 -12
  167. package/core/computed/computed-artifact.d.ts +2 -2
  168. package/core/computed/critical-request-chains.d.ts +9 -11
  169. package/core/computed/critical-request-chains.js +6 -6
  170. package/core/computed/document-urls.d.ts +3 -8
  171. package/core/computed/document-urls.js +1 -1
  172. package/core/computed/entity-classification.d.ts +6 -8
  173. package/core/computed/image-records.d.ts +3 -5
  174. package/core/computed/js-bundles.d.ts +2 -4
  175. package/core/computed/lcp-image-record.d.ts +3 -5
  176. package/core/computed/load-simulator.d.ts +7 -11
  177. package/core/computed/load-simulator.js +1 -1
  178. package/core/computed/main-resource.d.ts +5 -7
  179. package/core/computed/main-resource.js +1 -1
  180. package/core/computed/main-thread-tasks.d.ts +1 -3
  181. package/core/computed/metrics/cumulative-layout-shift.d.ts +2 -14
  182. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -3
  183. package/core/computed/metrics/first-contentful-paint.d.ts +1 -3
  184. package/core/computed/metrics/interactive.d.ts +1 -3
  185. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +3 -7
  186. package/core/computed/metrics/lantern-first-contentful-paint.js +3 -5
  187. package/core/computed/metrics/lantern-interactive.d.ts +3 -7
  188. package/core/computed/metrics/lantern-interactive.js +3 -5
  189. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +3 -7
  190. package/core/computed/metrics/lantern-largest-contentful-paint.js +3 -5
  191. package/core/computed/metrics/lantern-max-potential-fid.d.ts +3 -7
  192. package/core/computed/metrics/lantern-max-potential-fid.js +3 -5
  193. package/core/computed/metrics/lantern-metric.d.ts +8 -8
  194. package/core/computed/metrics/lantern-metric.js +1 -1
  195. package/core/computed/metrics/lantern-speed-index.d.ts +3 -7
  196. package/core/computed/metrics/lantern-speed-index.js +3 -5
  197. package/core/computed/metrics/lantern-total-blocking-time.d.ts +3 -7
  198. package/core/computed/metrics/lantern-total-blocking-time.js +1 -3
  199. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -3
  200. package/core/computed/metrics/largest-contentful-paint.d.ts +1 -3
  201. package/core/computed/metrics/lcp-breakdown.d.ts +3 -9
  202. package/core/computed/metrics/max-potential-fid.d.ts +1 -3
  203. package/core/computed/metrics/responsiveness.d.ts +7 -10
  204. package/core/computed/metrics/speed-index.d.ts +1 -3
  205. package/core/computed/metrics/time-to-first-byte.d.ts +1 -3
  206. package/core/computed/metrics/timing-summary.d.ts +8 -13
  207. package/core/computed/metrics/total-blocking-time.d.ts +1 -3
  208. package/core/computed/metrics/total-blocking-time.js +1 -1
  209. package/core/computed/module-duplication.d.ts +2 -8
  210. package/core/computed/navigation-insights.d.ts +2 -4
  211. package/core/computed/network-analysis.d.ts +2 -4
  212. package/core/computed/network-analysis.js +1 -1
  213. package/core/computed/network-records.d.ts +1 -3
  214. package/core/computed/page-dependency-graph.d.ts +9 -14
  215. package/core/computed/page-dependency-graph.js +3 -4
  216. package/core/computed/processed-navigation.d.ts +2 -5
  217. package/core/computed/processed-trace.d.ts +1 -3
  218. package/core/computed/resource-summary.d.ts +6 -10
  219. package/core/computed/screenshots.d.ts +1 -6
  220. package/core/computed/speedline.d.ts +1 -3
  221. package/core/computed/tbt-impact-tasks.d.ts +4 -5
  222. package/core/computed/tbt-impact-tasks.js +31 -8
  223. package/core/computed/trace-engine-result.d.ts +1 -3
  224. package/core/computed/trace-engine-result.js +10 -1
  225. package/core/computed/unused-css.d.ts +7 -9
  226. package/core/computed/unused-javascript-summary.d.ts +3 -5
  227. package/core/computed/user-timings.d.ts +3 -5
  228. package/core/computed/viewport-meta.d.ts +7 -9
  229. package/core/config/config-helpers.d.ts +5 -5
  230. package/core/config/config.d.ts +3 -3
  231. package/core/config/constants.d.ts +6 -6
  232. package/core/config/filters.d.ts +8 -8
  233. package/core/config/validation.d.ts +1 -1
  234. package/core/gather/driver/environment.d.ts +5 -5
  235. package/core/gather/driver/environment.js +1 -1
  236. package/core/gather/driver/execution-context.d.ts +6 -6
  237. package/core/gather/driver/navigation.d.ts +3 -3
  238. package/core/gather/driver/network-monitor.d.ts +6 -6
  239. package/core/gather/driver/storage.d.ts +4 -4
  240. package/core/gather/driver/target-manager.d.ts +4 -5
  241. package/core/gather/driver/target-manager.js +1 -1
  242. package/core/gather/driver/wait-for-condition.d.ts +3 -3
  243. package/core/gather/driver/wait-for-condition.js +4 -4
  244. package/core/gather/driver.d.ts +1 -1
  245. package/core/gather/gatherers/accessibility.d.ts +1 -1
  246. package/core/gather/gatherers/anchor-elements.d.ts +1 -1
  247. package/core/gather/gatherers/bf-cache-failures.d.ts +3 -3
  248. package/core/gather/gatherers/cache-contents.d.ts +1 -1
  249. package/core/gather/gatherers/console-messages.d.ts +1 -1
  250. package/core/gather/gatherers/css-usage.d.ts +1 -1
  251. package/core/gather/gatherers/devtools-log-compat.d.ts +3 -3
  252. package/core/gather/gatherers/devtools-log.d.ts +3 -3
  253. package/core/gather/gatherers/dobetterweb/doctype.d.ts +1 -1
  254. package/core/gather/gatherers/dobetterweb/domstats.d.ts +1 -1
  255. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +6 -7
  256. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +4 -5
  257. package/core/gather/gatherers/full-page-screenshot.d.ts +3 -3
  258. package/core/gather/gatherers/iframe-elements.d.ts +1 -1
  259. package/core/gather/gatherers/image-elements.d.ts +1 -1
  260. package/core/gather/gatherers/inputs.d.ts +1 -1
  261. package/core/gather/gatherers/inspector-issues.d.ts +2 -2
  262. package/core/gather/gatherers/js-usage.d.ts +1 -1
  263. package/core/gather/gatherers/link-elements.d.ts +6 -10
  264. package/core/gather/gatherers/link-elements.js +5 -12
  265. package/core/gather/gatherers/main-document-content.d.ts +2 -2
  266. package/core/gather/gatherers/meta-elements.d.ts +1 -1
  267. package/core/gather/gatherers/network-user-agent.d.ts +4 -4
  268. package/core/gather/gatherers/root-causes.d.ts +3 -4
  269. package/core/gather/gatherers/seo/font-size.d.ts +19 -19
  270. package/core/gather/gatherers/seo/robots-txt.d.ts +1 -1
  271. package/core/gather/gatherers/source-maps.d.ts +2 -2
  272. package/core/gather/gatherers/stacks.d.ts +2 -2
  273. package/core/gather/gatherers/stylesheets.d.ts +1 -9
  274. package/core/gather/gatherers/stylesheets.js +8 -39
  275. package/core/gather/gatherers/trace-compat.d.ts +3 -3
  276. package/core/gather/gatherers/trace-elements.d.ts +4 -6
  277. package/core/gather/navigation-runner.d.ts +3 -4
  278. package/core/gather/runner-helpers.d.ts +3 -3
  279. package/core/gather/session.d.ts +4 -4
  280. package/core/gather/session.js +1 -1
  281. package/core/gather/snapshot-runner.d.ts +2 -2
  282. package/core/gather/timespan-runner.d.ts +3 -3
  283. package/core/index.d.cts +1 -7
  284. package/core/index.d.ts +6 -6
  285. package/core/lib/arbitrary-equality-map.d.ts +2 -2
  286. package/core/lib/asset-saver.d.ts +3 -3
  287. package/core/lib/asset-saver.js +1 -1
  288. package/core/lib/bf-cache-strings.d.ts +117 -117
  289. package/core/lib/cdt/Platform.d.ts +1 -1
  290. package/core/lib/cdt/SDK.d.ts +1 -1
  291. package/core/lib/cdt/generated/ParsedURL.js +2 -2
  292. package/core/lib/cdt/generated/SourceMap.d.ts +11 -11
  293. package/core/lib/cdt/generated/SourceMap.js +3 -3
  294. package/core/lib/csp-evaluator.d.ts +20 -20
  295. package/core/lib/deprecation-description.d.ts +3 -3
  296. package/core/lib/deprecations-strings.d.ts +112 -112
  297. package/core/lib/i18n/i18n.d.ts +48 -48
  298. package/core/lib/icons.d.ts +3 -3
  299. package/core/lib/lantern/lantern.d.ts +2 -19
  300. package/core/lib/lantern/lantern.js +2 -45
  301. package/core/lib/lantern-trace-saver.d.ts +5 -7
  302. package/core/lib/lantern-trace-saver.js +2 -3
  303. package/core/lib/lh-error.d.ts +87 -87
  304. package/core/lib/lighthouse-compatibility.d.ts +1 -1
  305. package/core/lib/manifest-parser.d.ts +1 -1
  306. package/core/lib/minify-devtoolslog.d.ts +1 -1
  307. package/core/lib/navigation-error.d.ts +4 -6
  308. package/core/lib/navigation-error.js +2 -2
  309. package/core/lib/network-recorder.js +1 -1
  310. package/core/lib/network-request.d.ts +5 -5
  311. package/core/lib/network-request.js +2 -2
  312. package/core/lib/page-functions.d.ts +2 -2
  313. package/core/lib/script-helpers.d.ts +0 -1
  314. package/core/lib/sentry.d.ts +8 -8
  315. package/core/lib/stack-packs.d.ts +1 -1
  316. package/core/lib/trace-engine.d.ts +2 -2
  317. package/core/lib/tracehouse/cpu-profile-model.d.ts +8 -8
  318. package/core/lib/tracehouse/cpu-profile-model.js +2 -2
  319. package/core/lib/tracehouse/main-thread-tasks.d.ts +5 -5
  320. package/core/lib/tracehouse/task-groups.d.ts +6 -38
  321. package/core/lib/tracehouse/task-summary.d.ts +0 -1
  322. package/core/lib/tracehouse/trace-processor.d.ts +9 -9
  323. package/core/lib/traces/metric-trace-events.d.ts +1 -1
  324. package/core/lib/url-utils.d.ts +4 -4
  325. package/core/runner.d.ts +3 -4
  326. package/core/runner.js +0 -1
  327. package/core/scoring.d.ts +0 -1
  328. package/core/user-flow.d.ts +5 -5
  329. package/dist/report/bundle.esm.js +1 -1
  330. package/dist/report/flow.js +1 -1
  331. package/dist/report/standalone.js +1 -1
  332. package/eslint-local-rules.d.cts +4 -1
  333. package/flow-report/src/i18n/localized-strings.d.ts +1 -1
  334. package/flow-report/src/i18n/ui-strings.d.ts +43 -43
  335. package/package.json +7 -7
  336. package/readme.md +0 -2
  337. package/report/generator/file-namer.d.ts +2 -2
  338. package/report/generator/flow-report-assets.d.ts +1 -1
  339. package/report/generator/report-generator.d.ts +4 -4
  340. package/report/renderer/api.d.ts +2 -5
  341. package/report/renderer/category-renderer.d.ts +8 -8
  342. package/report/renderer/components.d.ts +2 -2
  343. package/report/renderer/crc-details-renderer.d.ts +2 -2
  344. package/report/renderer/details-renderer.d.ts +7 -7
  345. package/report/renderer/dom.d.ts +7 -7
  346. package/report/renderer/drop-down-menu.d.ts +1 -1
  347. package/report/renderer/drop-down-menu.js +15 -17
  348. package/report/renderer/element-screenshot-renderer.d.ts +3 -3
  349. package/report/renderer/explodey-gauge.d.ts +2 -2
  350. package/report/renderer/features-util.d.ts +1 -1
  351. package/report/renderer/performance-category-renderer.d.ts +1 -1
  352. package/report/renderer/report-globals.d.ts +1 -1
  353. package/report/renderer/report-renderer.d.ts +1 -1
  354. package/report/renderer/report-ui-features.d.ts +1 -1
  355. package/report/renderer/report-utils.d.ts +62 -62
  356. package/report/renderer/snippet-renderer.d.ts +9 -9
  357. package/report/renderer/swap-locale-feature.d.ts +2 -2
  358. package/report/renderer/topbar-features.d.ts +2 -2
  359. package/report/types/augment-dom.d.ts +0 -11
  360. package/shared/localization/format.d.ts +3 -3
  361. package/shared/localization/locales/en-US.json +1 -1
  362. package/shared/localization/locales/en-XL.json +1 -1
  363. package/shared/localization/locales.d.ts +1 -1
  364. package/shared/type-verifiers.d.ts +1 -1
  365. package/shared/util.d.ts +6 -6
  366. package/tsconfig.json +1 -11
  367. package/types/artifacts.d.ts +4 -4
  368. package/types/gatherer.d.ts +4 -5
  369. package/types/internal/node.d.ts +0 -6
  370. package/types/internal/query-selector.d.ts +2 -2
  371. package/core/lib/lantern/BaseNode.d.ts +0 -163
  372. package/core/lib/lantern/BaseNode.js +0 -369
  373. package/core/lib/lantern/BaseNode.test.js +0 -385
  374. package/core/lib/lantern/CpuNode.d.ts +0 -43
  375. package/core/lib/lantern/CpuNode.js +0 -99
  376. package/core/lib/lantern/LanternError.d.ts +0 -8
  377. package/core/lib/lantern/LanternError.js +0 -9
  378. package/core/lib/lantern/Metric.d.ts +0 -69
  379. package/core/lib/lantern/Metric.js +0 -137
  380. package/core/lib/lantern/NetworkNode.d.ts +0 -49
  381. package/core/lib/lantern/NetworkNode.js +0 -136
  382. package/core/lib/lantern/PageDependencyGraph.d.ts +0 -82
  383. package/core/lib/lantern/PageDependencyGraph.js +0 -610
  384. package/core/lib/lantern/PageDependencyGraph.test.js +0 -654
  385. package/core/lib/lantern/TBTUtils.d.ts +0 -44
  386. package/core/lib/lantern/TBTUtils.js +0 -76
  387. package/core/lib/lantern/TBTUtils.test.d.ts +0 -2
  388. package/core/lib/lantern/TBTUtils.test.js +0 -130
  389. package/core/lib/lantern/TraceEngineComputationData.d.ts +0 -25
  390. package/core/lib/lantern/TraceEngineComputationData.js +0 -466
  391. package/core/lib/lantern/metrics/FirstContentfulPaint.d.ts +0 -79
  392. package/core/lib/lantern/metrics/FirstContentfulPaint.js +0 -198
  393. package/core/lib/lantern/metrics/FirstContentfulPaint.test.js +0 -54
  394. package/core/lib/lantern/metrics/Interactive.d.ts +0 -20
  395. package/core/lib/lantern/metrics/Interactive.js +0 -109
  396. package/core/lib/lantern/metrics/Interactive.test.js +0 -56
  397. package/core/lib/lantern/metrics/LargestContentfulPaint.d.ts +0 -19
  398. package/core/lib/lantern/metrics/LargestContentfulPaint.js +0 -105
  399. package/core/lib/lantern/metrics/LargestContentfulPaint.test.js +0 -42
  400. package/core/lib/lantern/metrics/MaxPotentialFID.d.ts +0 -24
  401. package/core/lib/lantern/metrics/MaxPotentialFID.js +0 -91
  402. package/core/lib/lantern/metrics/MetricTestUtils.d.ts +0 -19
  403. package/core/lib/lantern/metrics/MetricTestUtils.js +0 -48
  404. package/core/lib/lantern/metrics/SpeedIndex.d.ts +0 -32
  405. package/core/lib/lantern/metrics/SpeedIndex.js +0 -142
  406. package/core/lib/lantern/metrics/SpeedIndex.test.js +0 -83
  407. package/core/lib/lantern/metrics/TotalBlockingTime.d.ts +0 -25
  408. package/core/lib/lantern/metrics/TotalBlockingTime.js +0 -125
  409. package/core/lib/lantern/metrics/__snapshots__/FirstContentfulPaint.test.js.snap +0 -11
  410. package/core/lib/lantern/metrics/__snapshots__/Interactive.test.js.snap +0 -17
  411. package/core/lib/lantern/metrics/metrics.d.ts +0 -9
  412. package/core/lib/lantern/metrics/metrics.js +0 -16
  413. package/core/lib/lantern/simulation/ConnectionPool.d.ts +0 -48
  414. package/core/lib/lantern/simulation/ConnectionPool.js +0 -152
  415. package/core/lib/lantern/simulation/ConnectionPool.test.js +0 -195
  416. package/core/lib/lantern/simulation/Constants.d.ts +0 -52
  417. package/core/lib/lantern/simulation/Constants.js +0 -48
  418. package/core/lib/lantern/simulation/DNSCache.d.ts +0 -42
  419. package/core/lib/lantern/simulation/DNSCache.js +0 -74
  420. package/core/lib/lantern/simulation/DNSCache.test.js +0 -72
  421. package/core/lib/lantern/simulation/NetworkAnalyzer.d.ts +0 -209
  422. package/core/lib/lantern/simulation/NetworkAnalyzer.js +0 -597
  423. package/core/lib/lantern/simulation/NetworkAnalyzer.test.js +0 -475
  424. package/core/lib/lantern/simulation/SimulationTimingMap.d.ts +0 -153
  425. package/core/lib/lantern/simulation/SimulationTimingMap.js +0 -219
  426. package/core/lib/lantern/simulation/Simulator.d.ts +0 -157
  427. package/core/lib/lantern/simulation/Simulator.js +0 -593
  428. package/core/lib/lantern/simulation/Simulator.test.js +0 -434
  429. package/core/lib/lantern/simulation/TCPConnection.test.d.ts +0 -2
  430. package/core/lib/lantern/simulation/TCPConnection.test.js +0 -374
  431. package/core/lib/lantern/simulation/TcpConnection.d.ts +0 -89
  432. package/core/lib/lantern/simulation/TcpConnection.js +0 -230
  433. package/core/lib/lantern/simulation/simulation.d.ts +0 -21
  434. package/core/lib/lantern/simulation/simulation.js +0 -28
  435. package/core/lib/lantern/types/lantern.d.ts +0 -256
  436. package/core/lib/lantern/types/lantern.js +0 -7
@@ -1,369 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2017 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * A union of all types derived from BaseNode, allowing type check discrimination
9
- * based on `node.type`. If a new node type is created, it should be added here.
10
- * @template [T=any]
11
- * @typedef {import('./CpuNode.js').CPUNode<T> | import('./NetworkNode.js').NetworkNode<T>} Node
12
- */
13
-
14
- /**
15
- * @fileoverview This class encapsulates logic for handling resources and tasks used to model the
16
- * execution dependency graph of the page. A node has a unique identifier and can depend on other
17
- * nodes/be depended on. The construction of the graph maintains some important invariants that are
18
- * inherent to the model:
19
- *
20
- * 1. The graph is a DAG, there are no cycles.
21
- * 2. There is always a root node upon which all other nodes eventually depend.
22
- *
23
- * This allows particular optimizations in this class so that we do no need to check for cycles as
24
- * these methods are called and we can always start traversal at the root node.
25
- */
26
-
27
- /**
28
- * @template [T=any]
29
- */
30
- class BaseNode {
31
- static TYPES = /** @type {{NETWORK: 'network', CPU: 'cpu'}} */({
32
- NETWORK: 'network',
33
- CPU: 'cpu',
34
- });
35
-
36
- /**
37
- * @param {string} id
38
- */
39
- constructor(id) {
40
- this._id = id;
41
- this._isMainDocument = false;
42
- /** @type {Node[]} */
43
- this._dependents = [];
44
- /** @type {Node[]} */
45
- this._dependencies = [];
46
- }
47
-
48
- /**
49
- * @return {string}
50
- */
51
- get id() {
52
- return this._id;
53
- }
54
-
55
- /**
56
- * @return {typeof BaseNode.TYPES[keyof typeof BaseNode.TYPES]}
57
- */
58
- get type() {
59
- throw new Error('Unimplemented');
60
- }
61
-
62
- /**
63
- * In microseconds
64
- * @return {number}
65
- */
66
- get startTime() {
67
- throw new Error('Unimplemented');
68
- }
69
-
70
- /**
71
- * In microseconds
72
- * @return {number}
73
- */
74
- get endTime() {
75
- throw new Error('Unimplemented');
76
- }
77
-
78
- /**
79
- * @param {boolean} value
80
- */
81
- setIsMainDocument(value) {
82
- this._isMainDocument = value;
83
- }
84
-
85
- /**
86
- * @return {boolean}
87
- */
88
- isMainDocument() {
89
- return this._isMainDocument;
90
- }
91
-
92
- /**
93
- * @return {Node[]}
94
- */
95
- getDependents() {
96
- return this._dependents.slice();
97
- }
98
-
99
- /**
100
- * @return {number}
101
- */
102
- getNumberOfDependents() {
103
- return this._dependents.length;
104
- }
105
-
106
- /**
107
- * @return {Node[]}
108
- */
109
- getDependencies() {
110
- return this._dependencies.slice();
111
- }
112
-
113
- /**
114
- * @return {number}
115
- */
116
- getNumberOfDependencies() {
117
- return this._dependencies.length;
118
- }
119
-
120
- /**
121
- * @return {Node}
122
- */
123
- getRootNode() {
124
- let rootNode = /** @type {Node} */ (/** @type {BaseNode} */ (this));
125
- while (rootNode._dependencies.length) {
126
- rootNode = rootNode._dependencies[0];
127
- }
128
-
129
- return rootNode;
130
- }
131
-
132
- /**
133
- * @param {Node} node
134
- */
135
- addDependent(node) {
136
- node.addDependency(/** @type {Node} */ (/** @type {BaseNode} */ (this)));
137
- }
138
-
139
- /**
140
- * @param {Node} node
141
- */
142
- addDependency(node) {
143
- // @ts-expect-error - in checkJs, ts doesn't know that CPUNode and NetworkNode *are* BaseNodes.
144
- if (node === this) throw new Error('Cannot add dependency on itself');
145
-
146
- if (this._dependencies.includes(node)) {
147
- return;
148
- }
149
-
150
- node._dependents.push(/** @type {Node} */ (/** @type {BaseNode} */ (this)));
151
- this._dependencies.push(node);
152
- }
153
-
154
- /**
155
- * @param {Node} node
156
- */
157
- removeDependent(node) {
158
- node.removeDependency(/** @type {Node} */ (/** @type {BaseNode} */ (this)));
159
- }
160
-
161
- /**
162
- * @param {Node} node
163
- */
164
- removeDependency(node) {
165
- if (!this._dependencies.includes(node)) {
166
- return;
167
- }
168
-
169
- const thisIndex = node._dependents.indexOf(/** @type {Node} */ (/** @type {BaseNode} */(this)));
170
- node._dependents.splice(thisIndex, 1);
171
- this._dependencies.splice(this._dependencies.indexOf(node), 1);
172
- }
173
-
174
- removeAllDependencies() {
175
- for (const node of this._dependencies.slice()) {
176
- this.removeDependency(node);
177
- }
178
- }
179
-
180
- /**
181
- * Computes whether the given node is anywhere in the dependency graph of this node.
182
- * While this method can prevent cycles, it walks the graph and should be used sparingly.
183
- * Nodes are always considered dependent on themselves for the purposes of cycle detection.
184
- * @param {BaseNode} node
185
- * @return {boolean}
186
- */
187
- isDependentOn(node) {
188
- let isDependentOnNode = false;
189
- this.traverse(currentNode => {
190
- if (isDependentOnNode) return;
191
- isDependentOnNode = currentNode === node;
192
- }, currentNode => {
193
- // If we've already found the dependency, don't traverse further.
194
- if (isDependentOnNode) return [];
195
- // Otherwise, traverse the dependencies.
196
- return currentNode.getDependencies();
197
- });
198
-
199
- return isDependentOnNode;
200
- }
201
-
202
- /**
203
- * Clones the node's information without adding any dependencies/dependents.
204
- * @return {Node}
205
- */
206
- cloneWithoutRelationships() {
207
- const node = /** @type {Node} */ (new BaseNode(this.id));
208
- node.setIsMainDocument(this._isMainDocument);
209
- return node;
210
- }
211
-
212
- /**
213
- * Clones the entire graph connected to this node filtered by the optional predicate. If a node is
214
- * included by the predicate, all nodes along the paths between the node and the root will be included. If the
215
- * node this was called on is not included in the resulting filtered graph, the method will throw.
216
- * @param {function(Node):boolean} [predicate]
217
- * @return {Node}
218
- */
219
- cloneWithRelationships(predicate) {
220
- const rootNode = this.getRootNode();
221
-
222
- /** @type {Map<string, Node>} */
223
- const idsToIncludedClones = new Map();
224
-
225
- // Walk down dependents.
226
- rootNode.traverse(node => {
227
- if (idsToIncludedClones.has(node.id)) return;
228
-
229
- if (predicate === undefined) {
230
- // No condition for entry, so clone every node.
231
- idsToIncludedClones.set(node.id, node.cloneWithoutRelationships());
232
- return;
233
- }
234
-
235
- if (predicate(node)) {
236
- // Node included, so walk back up dependencies, cloning nodes from here back to the root.
237
- node.traverse(
238
- node => idsToIncludedClones.set(node.id, node.cloneWithoutRelationships()),
239
- // Dependencies already cloned have already cloned ancestors, so no need to visit again.
240
- node => node._dependencies.filter(parent => !idsToIncludedClones.has(parent.id))
241
- );
242
- }
243
- });
244
-
245
- // Copy dependencies between nodes.
246
- rootNode.traverse(originalNode => {
247
- const clonedNode = idsToIncludedClones.get(originalNode.id);
248
- if (!clonedNode) return;
249
-
250
- for (const dependency of originalNode._dependencies) {
251
- const clonedDependency = idsToIncludedClones.get(dependency.id);
252
- if (!clonedDependency) throw new Error('Dependency somehow not cloned');
253
- clonedNode.addDependency(clonedDependency);
254
- }
255
- });
256
-
257
- const clonedThisNode = idsToIncludedClones.get(this.id);
258
- if (!clonedThisNode) throw new Error('Cloned graph missing node');
259
- return clonedThisNode;
260
- }
261
-
262
- /**
263
- * Traverses all connected nodes in BFS order, calling `callback` exactly once
264
- * on each. `traversalPath` is the shortest (though not necessarily unique)
265
- * path from `node` to the root of the iteration.
266
- *
267
- * The `getNextNodes` function takes a visited node and returns which nodes to
268
- * visit next. It defaults to returning the node's dependents.
269
- * @param {(node: Node<T>, traversalPath: Node<T>[]) => void} callback
270
- * @param {function(Node<T>): Node<T>[]} [getNextNodes]
271
- */
272
- traverse(callback, getNextNodes) {
273
- for (const {node, traversalPath} of this.traverseGenerator(getNextNodes)) {
274
- callback(node, traversalPath);
275
- }
276
- }
277
-
278
- /**
279
- * @see BaseNode.traverse
280
- * @param {function(Node): Node[]} [getNextNodes]
281
- */
282
- * traverseGenerator(getNextNodes) {
283
- if (!getNextNodes) {
284
- getNextNodes = node => node.getDependents();
285
- }
286
-
287
- /** @type {Node[][]} */
288
- // @ts-expect-error - only traverses graphs of Node, so force tsc to treat `this` as one
289
- const queue = [[this]];
290
- const visited = new Set([this.id]);
291
-
292
- while (queue.length) {
293
- /** @type {Node[]} */
294
- // @ts-expect-error - queue has length so it's guaranteed to have an item
295
- const traversalPath = queue.shift();
296
- const node = traversalPath[0];
297
- yield {node, traversalPath};
298
-
299
- for (const nextNode of getNextNodes(node)) {
300
- if (visited.has(nextNode.id)) continue;
301
- visited.add(nextNode.id);
302
-
303
- queue.push([nextNode, ...traversalPath]);
304
- }
305
- }
306
- }
307
-
308
- /**
309
- * Returns whether the given node has a cycle in its dependent graph by performing a DFS.
310
- * @param {Node} node
311
- * @param {'dependents'|'dependencies'|'both'} [direction]
312
- * @return {boolean}
313
- */
314
- static hasCycle(node, direction = 'both') {
315
- // Checking 'both' is the default entrypoint to recursively check both directions
316
- if (direction === 'both') {
317
- return BaseNode.hasCycle(node, 'dependents') || BaseNode.hasCycle(node, 'dependencies');
318
- }
319
-
320
- const visited = new Set();
321
- /** @type {Node[]} */
322
- const currentPath = [];
323
- const toVisit = [node];
324
- const depthAdded = new Map([[node, 0]]);
325
-
326
- // Keep going while we have nodes to visit in the stack
327
- while (toVisit.length) {
328
- // Get the last node in the stack (DFS uses stack, not queue)
329
- /** @type {Node} */
330
- // @ts-expect-error - toVisit has length so it's guaranteed to have an item
331
- const currentNode = toVisit.pop();
332
-
333
- // We've hit a cycle if the node we're visiting is in our current dependency path
334
- if (currentPath.includes(currentNode)) return true;
335
- // If we've already visited the node, no need to revisit it
336
- if (visited.has(currentNode)) continue;
337
-
338
- // Since we're visiting this node, clear out any nodes in our path that we had to backtrack
339
- // @ts-expect-error
340
- while (currentPath.length > depthAdded.get(currentNode)) currentPath.pop();
341
-
342
- // Update our data structures to reflect that we're adding this node to our path
343
- visited.add(currentNode);
344
- currentPath.push(currentNode);
345
-
346
- // Add all of its dependents to our toVisit stack
347
- const nodesToExplore = direction === 'dependents' ?
348
- currentNode._dependents :
349
- currentNode._dependencies;
350
- for (const nextNode of nodesToExplore) {
351
- if (toVisit.includes(nextNode)) continue;
352
- toVisit.push(nextNode);
353
- depthAdded.set(nextNode, currentPath.length);
354
- }
355
- }
356
-
357
- return false;
358
- }
359
-
360
- /**
361
- * @param {Node} node
362
- * @return {boolean}
363
- */
364
- canDependOn(node) {
365
- return node.startTime <= this.startTime;
366
- }
367
- }
368
-
369
- export {BaseNode};