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.
- package/cli/cli-flags.d.ts +2 -2
- package/cli/cli-flags.js +1 -1
- package/cli/sentry-prompt.js +2 -2
- package/cli/test/smokehouse/frontends/lib.d.ts +1 -1
- package/cli/test/smokehouse/lib/concurrent-mapper.d.ts +6 -6
- package/cli/test/smokehouse/lighthouse-runners/bundle.d.ts +1 -1
- package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +1 -2
- package/cli/test/smokehouse/lighthouse-runners/devtools.d.ts +1 -1
- package/cli/test/smokehouse/report-assert.d.ts +0 -1
- package/cli/test/smokehouse/version-check.d.ts +3 -3
- package/core/audits/accessibility/accesskeys.d.ts +3 -3
- package/core/audits/accessibility/aria-allowed-attr.d.ts +3 -3
- package/core/audits/accessibility/aria-allowed-role.d.ts +3 -3
- package/core/audits/accessibility/aria-command-name.d.ts +3 -3
- package/core/audits/accessibility/aria-conditional-attr.d.ts +3 -3
- package/core/audits/accessibility/aria-deprecated-role.d.ts +3 -3
- package/core/audits/accessibility/aria-dialog-name.d.ts +3 -3
- package/core/audits/accessibility/aria-hidden-body.d.ts +3 -3
- package/core/audits/accessibility/aria-hidden-focus.d.ts +3 -3
- package/core/audits/accessibility/aria-input-field-name.d.ts +3 -3
- package/core/audits/accessibility/aria-meter-name.d.ts +3 -3
- package/core/audits/accessibility/aria-progressbar-name.d.ts +3 -3
- package/core/audits/accessibility/aria-prohibited-attr.d.ts +3 -3
- package/core/audits/accessibility/aria-required-attr.d.ts +3 -3
- package/core/audits/accessibility/aria-required-children.d.ts +3 -3
- package/core/audits/accessibility/aria-required-parent.d.ts +3 -3
- package/core/audits/accessibility/aria-roles.d.ts +3 -3
- package/core/audits/accessibility/aria-text.d.ts +3 -3
- package/core/audits/accessibility/aria-toggle-field-name.d.ts +3 -3
- package/core/audits/accessibility/aria-tooltip-name.d.ts +3 -3
- package/core/audits/accessibility/aria-treeitem-name.d.ts +3 -3
- package/core/audits/accessibility/aria-valid-attr-value.d.ts +3 -3
- package/core/audits/accessibility/aria-valid-attr.d.ts +3 -3
- package/core/audits/accessibility/axe-audit.d.ts +1 -1
- package/core/audits/accessibility/button-name.d.ts +3 -3
- package/core/audits/accessibility/bypass.d.ts +3 -3
- package/core/audits/accessibility/color-contrast.d.ts +3 -3
- package/core/audits/accessibility/definition-list.d.ts +3 -3
- package/core/audits/accessibility/dlitem.d.ts +3 -3
- package/core/audits/accessibility/document-title.d.ts +3 -3
- package/core/audits/accessibility/duplicate-id-aria.d.ts +3 -3
- package/core/audits/accessibility/empty-heading.d.ts +3 -3
- package/core/audits/accessibility/form-field-multiple-labels.d.ts +3 -3
- package/core/audits/accessibility/frame-title.d.ts +3 -3
- package/core/audits/accessibility/heading-order.d.ts +3 -3
- package/core/audits/accessibility/html-has-lang.d.ts +3 -3
- package/core/audits/accessibility/html-lang-valid.d.ts +3 -3
- package/core/audits/accessibility/html-xml-lang-mismatch.d.ts +3 -3
- package/core/audits/accessibility/identical-links-same-purpose.d.ts +3 -3
- package/core/audits/accessibility/image-alt.d.ts +3 -3
- package/core/audits/accessibility/image-redundant-alt.d.ts +3 -3
- package/core/audits/accessibility/input-button-name.d.ts +3 -3
- package/core/audits/accessibility/input-image-alt.d.ts +3 -3
- package/core/audits/accessibility/label-content-name-mismatch.d.ts +3 -3
- package/core/audits/accessibility/label.d.ts +3 -3
- package/core/audits/accessibility/landmark-one-main.d.ts +3 -3
- package/core/audits/accessibility/link-in-text-block.d.ts +3 -3
- package/core/audits/accessibility/link-name.d.ts +3 -3
- package/core/audits/accessibility/list.d.ts +3 -3
- package/core/audits/accessibility/listitem.d.ts +3 -3
- package/core/audits/accessibility/meta-refresh.d.ts +3 -3
- package/core/audits/accessibility/meta-viewport.d.ts +3 -3
- package/core/audits/accessibility/object-alt.d.ts +3 -3
- package/core/audits/accessibility/select-name.d.ts +3 -3
- package/core/audits/accessibility/skip-link.d.ts +3 -3
- package/core/audits/accessibility/tabindex.d.ts +3 -3
- package/core/audits/accessibility/table-duplicate-name.d.ts +3 -3
- package/core/audits/accessibility/table-fake-caption.d.ts +3 -3
- package/core/audits/accessibility/target-size.d.ts +3 -3
- package/core/audits/accessibility/td-has-header.d.ts +3 -3
- package/core/audits/accessibility/td-headers-attr.d.ts +3 -3
- package/core/audits/accessibility/th-has-data-cells.d.ts +3 -3
- package/core/audits/accessibility/valid-lang.d.ts +3 -3
- package/core/audits/accessibility/video-caption.d.ts +3 -3
- package/core/audits/audit.d.ts +17 -17
- package/core/audits/autocomplete.d.ts +9 -9
- package/core/audits/bf-cache.d.ts +10 -10
- package/core/audits/bootup-time.d.ts +7 -7
- package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +6 -8
- package/core/audits/byte-efficiency/byte-efficiency-audit.js +3 -6
- package/core/audits/byte-efficiency/duplicated-javascript.d.ts +4 -4
- package/core/audits/byte-efficiency/efficient-animated-content.d.ts +3 -4
- package/core/audits/byte-efficiency/legacy-javascript.d.ts +7 -8
- package/core/audits/byte-efficiency/modern-image-formats.d.ts +3 -3
- package/core/audits/byte-efficiency/offscreen-images.d.ts +3 -4
- package/core/audits/byte-efficiency/render-blocking-resources.d.ts +5 -9
- package/core/audits/byte-efficiency/render-blocking-resources.js +10 -16
- package/core/audits/byte-efficiency/total-byte-weight.d.ts +4 -4
- package/core/audits/byte-efficiency/unminified-css.d.ts +3 -3
- package/core/audits/byte-efficiency/unminified-javascript.d.ts +3 -3
- package/core/audits/byte-efficiency/unused-css-rules.d.ts +3 -3
- package/core/audits/byte-efficiency/unused-javascript.d.ts +3 -3
- package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +4 -6
- package/core/audits/byte-efficiency/uses-optimized-images.d.ts +3 -3
- package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +4 -4
- package/core/audits/byte-efficiency/uses-responsive-images.d.ts +4 -5
- package/core/audits/byte-efficiency/uses-text-compression.d.ts +3 -3
- package/core/audits/critical-request-chains.d.ts +3 -3
- package/core/audits/csp-xss.d.ts +8 -8
- package/core/audits/deprecations.d.ts +6 -6
- package/core/audits/dobetterweb/charset.d.ts +3 -3
- package/core/audits/dobetterweb/doctype.d.ts +9 -9
- package/core/audits/dobetterweb/dom-size.d.ts +9 -9
- package/core/audits/dobetterweb/geolocation-on-start.d.ts +3 -3
- package/core/audits/dobetterweb/inspector-issues.d.ts +6 -6
- package/core/audits/dobetterweb/js-libraries.d.ts +3 -3
- package/core/audits/dobetterweb/no-document-write.d.ts +3 -3
- package/core/audits/dobetterweb/notification-on-start.d.ts +3 -3
- package/core/audits/dobetterweb/paste-preventing-inputs.d.ts +3 -3
- package/core/audits/dobetterweb/uses-http2.d.ts +7 -11
- package/core/audits/dobetterweb/uses-http2.js +2 -5
- package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +3 -3
- package/core/audits/errors-in-console.d.ts +4 -4
- package/core/audits/font-display.d.ts +4 -4
- package/core/audits/image-aspect-ratio.d.ts +5 -5
- package/core/audits/image-size-responsive.d.ts +7 -7
- package/core/audits/is-on-https.d.ts +10 -10
- package/core/audits/largest-contentful-paint-element.d.ts +9 -9
- package/core/audits/layout-shifts.d.ts +9 -9
- package/core/audits/lcp-lazy-loaded.d.ts +3 -3
- package/core/audits/long-tasks.d.ts +11 -11
- package/core/audits/long-tasks.js +5 -5
- package/core/audits/mainthread-work-breakdown.d.ts +5 -5
- package/core/audits/metrics/cumulative-layout-shift.d.ts +1 -1
- package/core/audits/metrics/first-contentful-paint.d.ts +1 -1
- package/core/audits/metrics/first-meaningful-paint.d.ts +1 -1
- package/core/audits/metrics/interaction-to-next-paint.d.ts +1 -1
- package/core/audits/metrics/interactive.d.ts +1 -1
- package/core/audits/metrics/largest-contentful-paint.d.ts +1 -1
- package/core/audits/metrics/max-potential-fid.d.ts +2 -4
- package/core/audits/metrics/speed-index.d.ts +1 -1
- package/core/audits/metrics/total-blocking-time.d.ts +1 -1
- package/core/audits/network-rtt.d.ts +2 -2
- package/core/audits/network-server-latency.d.ts +2 -2
- package/core/audits/non-composited-animations.d.ts +9 -9
- package/core/audits/oopif-iframe-test-audit.d.ts +5 -5
- package/core/audits/preload-fonts.d.ts +3 -3
- package/core/audits/prioritize-lcp-image.d.ts +7 -7
- package/core/audits/redirects-http.d.ts +3 -3
- package/core/audits/redirects.d.ts +2 -3
- package/core/audits/resource-summary.d.ts +1 -1
- package/core/audits/screenshot-thumbnails.d.ts +2 -3
- package/core/audits/script-treemap-data.d.ts +1 -1
- package/core/audits/seo/canonical.d.ts +8 -8
- package/core/audits/seo/crawlable-anchors.d.ts +4 -4
- package/core/audits/seo/font-size.d.ts +11 -11
- package/core/audits/seo/hreflang.d.ts +6 -6
- package/core/audits/seo/http-status-code.d.ts +3 -3
- package/core/audits/seo/is-crawlable.d.ts +9 -10
- package/core/audits/seo/link-text.d.ts +4 -4
- package/core/audits/seo/manual/structured-data.d.ts +2 -2
- package/core/audits/seo/meta-description.d.ts +4 -4
- package/core/audits/seo/robots-txt.d.ts +6 -6
- package/core/audits/server-response-time.d.ts +4 -4
- package/core/audits/third-party-cookies.d.ts +4 -4
- package/core/audits/third-party-facades.d.ts +11 -12
- package/core/audits/third-party-summary.d.ts +5 -6
- package/core/audits/third-party-summary.js +7 -4
- package/core/audits/unsized-images.d.ts +3 -3
- package/core/audits/user-timings.d.ts +6 -6
- package/core/audits/uses-rel-preconnect.d.ts +5 -5
- package/core/audits/uses-rel-preload.d.ts +7 -7
- package/core/audits/uses-rel-preload.js +8 -6
- package/core/audits/valid-source-maps.d.ts +6 -7
- package/core/audits/viewport.d.ts +4 -4
- package/core/audits/work-during-interaction.d.ts +11 -12
- package/core/computed/computed-artifact.d.ts +2 -2
- package/core/computed/critical-request-chains.d.ts +9 -11
- package/core/computed/critical-request-chains.js +6 -6
- package/core/computed/document-urls.d.ts +3 -8
- package/core/computed/document-urls.js +1 -1
- package/core/computed/entity-classification.d.ts +6 -8
- package/core/computed/image-records.d.ts +3 -5
- package/core/computed/js-bundles.d.ts +2 -4
- package/core/computed/lcp-image-record.d.ts +3 -5
- package/core/computed/load-simulator.d.ts +7 -11
- package/core/computed/load-simulator.js +1 -1
- package/core/computed/main-resource.d.ts +5 -7
- package/core/computed/main-resource.js +1 -1
- package/core/computed/main-thread-tasks.d.ts +1 -3
- package/core/computed/metrics/cumulative-layout-shift.d.ts +2 -14
- package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -3
- package/core/computed/metrics/first-contentful-paint.d.ts +1 -3
- package/core/computed/metrics/interactive.d.ts +1 -3
- package/core/computed/metrics/lantern-first-contentful-paint.d.ts +3 -7
- package/core/computed/metrics/lantern-first-contentful-paint.js +3 -5
- package/core/computed/metrics/lantern-interactive.d.ts +3 -7
- package/core/computed/metrics/lantern-interactive.js +3 -5
- package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +3 -7
- package/core/computed/metrics/lantern-largest-contentful-paint.js +3 -5
- package/core/computed/metrics/lantern-max-potential-fid.d.ts +3 -7
- package/core/computed/metrics/lantern-max-potential-fid.js +3 -5
- package/core/computed/metrics/lantern-metric.d.ts +8 -8
- package/core/computed/metrics/lantern-metric.js +1 -1
- package/core/computed/metrics/lantern-speed-index.d.ts +3 -7
- package/core/computed/metrics/lantern-speed-index.js +3 -5
- package/core/computed/metrics/lantern-total-blocking-time.d.ts +3 -7
- package/core/computed/metrics/lantern-total-blocking-time.js +1 -3
- package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -3
- package/core/computed/metrics/largest-contentful-paint.d.ts +1 -3
- package/core/computed/metrics/lcp-breakdown.d.ts +3 -9
- package/core/computed/metrics/max-potential-fid.d.ts +1 -3
- package/core/computed/metrics/responsiveness.d.ts +7 -10
- package/core/computed/metrics/speed-index.d.ts +1 -3
- package/core/computed/metrics/time-to-first-byte.d.ts +1 -3
- package/core/computed/metrics/timing-summary.d.ts +8 -13
- package/core/computed/metrics/total-blocking-time.d.ts +1 -3
- package/core/computed/metrics/total-blocking-time.js +1 -1
- package/core/computed/module-duplication.d.ts +2 -8
- package/core/computed/navigation-insights.d.ts +2 -4
- package/core/computed/network-analysis.d.ts +2 -4
- package/core/computed/network-analysis.js +1 -1
- package/core/computed/network-records.d.ts +1 -3
- package/core/computed/page-dependency-graph.d.ts +9 -14
- package/core/computed/page-dependency-graph.js +3 -4
- package/core/computed/processed-navigation.d.ts +2 -5
- package/core/computed/processed-trace.d.ts +1 -3
- package/core/computed/resource-summary.d.ts +6 -10
- package/core/computed/screenshots.d.ts +1 -6
- package/core/computed/speedline.d.ts +1 -3
- package/core/computed/tbt-impact-tasks.d.ts +4 -5
- package/core/computed/tbt-impact-tasks.js +31 -8
- package/core/computed/trace-engine-result.d.ts +1 -3
- package/core/computed/trace-engine-result.js +10 -1
- package/core/computed/unused-css.d.ts +7 -9
- package/core/computed/unused-javascript-summary.d.ts +3 -5
- package/core/computed/user-timings.d.ts +3 -5
- package/core/computed/viewport-meta.d.ts +7 -9
- package/core/config/config-helpers.d.ts +5 -5
- package/core/config/config.d.ts +3 -3
- package/core/config/constants.d.ts +6 -6
- package/core/config/filters.d.ts +8 -8
- package/core/config/validation.d.ts +1 -1
- package/core/gather/driver/environment.d.ts +5 -5
- package/core/gather/driver/environment.js +1 -1
- package/core/gather/driver/execution-context.d.ts +6 -6
- package/core/gather/driver/navigation.d.ts +3 -3
- package/core/gather/driver/network-monitor.d.ts +6 -6
- package/core/gather/driver/storage.d.ts +4 -4
- package/core/gather/driver/target-manager.d.ts +4 -5
- package/core/gather/driver/target-manager.js +1 -1
- package/core/gather/driver/wait-for-condition.d.ts +3 -3
- package/core/gather/driver/wait-for-condition.js +4 -4
- package/core/gather/driver.d.ts +1 -1
- package/core/gather/gatherers/accessibility.d.ts +1 -1
- package/core/gather/gatherers/anchor-elements.d.ts +1 -1
- package/core/gather/gatherers/bf-cache-failures.d.ts +3 -3
- package/core/gather/gatherers/cache-contents.d.ts +1 -1
- package/core/gather/gatherers/console-messages.d.ts +1 -1
- package/core/gather/gatherers/css-usage.d.ts +1 -1
- package/core/gather/gatherers/devtools-log-compat.d.ts +3 -3
- package/core/gather/gatherers/devtools-log.d.ts +3 -3
- package/core/gather/gatherers/dobetterweb/doctype.d.ts +1 -1
- package/core/gather/gatherers/dobetterweb/domstats.d.ts +1 -1
- package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +6 -7
- package/core/gather/gatherers/dobetterweb/response-compression.d.ts +4 -5
- package/core/gather/gatherers/full-page-screenshot.d.ts +3 -3
- package/core/gather/gatherers/iframe-elements.d.ts +1 -1
- package/core/gather/gatherers/image-elements.d.ts +1 -1
- package/core/gather/gatherers/inputs.d.ts +1 -1
- package/core/gather/gatherers/inspector-issues.d.ts +2 -2
- package/core/gather/gatherers/js-usage.d.ts +1 -1
- package/core/gather/gatherers/link-elements.d.ts +6 -10
- package/core/gather/gatherers/link-elements.js +5 -12
- package/core/gather/gatherers/main-document-content.d.ts +2 -2
- package/core/gather/gatherers/meta-elements.d.ts +1 -1
- package/core/gather/gatherers/network-user-agent.d.ts +4 -4
- package/core/gather/gatherers/root-causes.d.ts +3 -4
- package/core/gather/gatherers/seo/font-size.d.ts +19 -19
- package/core/gather/gatherers/seo/robots-txt.d.ts +1 -1
- package/core/gather/gatherers/source-maps.d.ts +2 -2
- package/core/gather/gatherers/stacks.d.ts +2 -2
- package/core/gather/gatherers/stylesheets.d.ts +1 -9
- package/core/gather/gatherers/stylesheets.js +8 -39
- package/core/gather/gatherers/trace-compat.d.ts +3 -3
- package/core/gather/gatherers/trace-elements.d.ts +4 -6
- package/core/gather/navigation-runner.d.ts +3 -4
- package/core/gather/runner-helpers.d.ts +3 -3
- package/core/gather/session.d.ts +4 -4
- package/core/gather/session.js +1 -1
- package/core/gather/snapshot-runner.d.ts +2 -2
- package/core/gather/timespan-runner.d.ts +3 -3
- package/core/index.d.cts +1 -7
- package/core/index.d.ts +6 -6
- package/core/lib/arbitrary-equality-map.d.ts +2 -2
- package/core/lib/asset-saver.d.ts +3 -3
- package/core/lib/asset-saver.js +1 -1
- package/core/lib/bf-cache-strings.d.ts +117 -117
- package/core/lib/cdt/Platform.d.ts +1 -1
- package/core/lib/cdt/SDK.d.ts +1 -1
- package/core/lib/cdt/generated/ParsedURL.js +2 -2
- package/core/lib/cdt/generated/SourceMap.d.ts +11 -11
- package/core/lib/cdt/generated/SourceMap.js +3 -3
- package/core/lib/csp-evaluator.d.ts +20 -20
- package/core/lib/deprecation-description.d.ts +3 -3
- package/core/lib/deprecations-strings.d.ts +112 -112
- package/core/lib/i18n/i18n.d.ts +48 -48
- package/core/lib/icons.d.ts +3 -3
- package/core/lib/lantern/lantern.d.ts +2 -19
- package/core/lib/lantern/lantern.js +2 -45
- package/core/lib/lantern-trace-saver.d.ts +5 -7
- package/core/lib/lantern-trace-saver.js +2 -3
- package/core/lib/lh-error.d.ts +87 -87
- package/core/lib/lighthouse-compatibility.d.ts +1 -1
- package/core/lib/manifest-parser.d.ts +1 -1
- package/core/lib/minify-devtoolslog.d.ts +1 -1
- package/core/lib/navigation-error.d.ts +4 -6
- package/core/lib/navigation-error.js +2 -2
- package/core/lib/network-recorder.js +1 -1
- package/core/lib/network-request.d.ts +5 -5
- package/core/lib/network-request.js +2 -2
- package/core/lib/page-functions.d.ts +2 -2
- package/core/lib/script-helpers.d.ts +0 -1
- package/core/lib/sentry.d.ts +8 -8
- package/core/lib/stack-packs.d.ts +1 -1
- package/core/lib/trace-engine.d.ts +2 -2
- package/core/lib/tracehouse/cpu-profile-model.d.ts +8 -8
- package/core/lib/tracehouse/cpu-profile-model.js +2 -2
- package/core/lib/tracehouse/main-thread-tasks.d.ts +5 -5
- package/core/lib/tracehouse/task-groups.d.ts +6 -38
- package/core/lib/tracehouse/task-summary.d.ts +0 -1
- package/core/lib/tracehouse/trace-processor.d.ts +9 -9
- package/core/lib/traces/metric-trace-events.d.ts +1 -1
- package/core/lib/url-utils.d.ts +4 -4
- package/core/runner.d.ts +3 -4
- package/core/runner.js +0 -1
- package/core/scoring.d.ts +0 -1
- package/core/user-flow.d.ts +5 -5
- package/dist/report/bundle.esm.js +1 -1
- package/dist/report/flow.js +1 -1
- package/dist/report/standalone.js +1 -1
- package/eslint-local-rules.d.cts +4 -1
- package/flow-report/src/i18n/localized-strings.d.ts +1 -1
- package/flow-report/src/i18n/ui-strings.d.ts +43 -43
- package/package.json +7 -7
- package/readme.md +0 -2
- package/report/generator/file-namer.d.ts +2 -2
- package/report/generator/flow-report-assets.d.ts +1 -1
- package/report/generator/report-generator.d.ts +4 -4
- package/report/renderer/api.d.ts +2 -5
- package/report/renderer/category-renderer.d.ts +8 -8
- package/report/renderer/components.d.ts +2 -2
- package/report/renderer/crc-details-renderer.d.ts +2 -2
- package/report/renderer/details-renderer.d.ts +7 -7
- package/report/renderer/dom.d.ts +7 -7
- package/report/renderer/drop-down-menu.d.ts +1 -1
- package/report/renderer/drop-down-menu.js +15 -17
- package/report/renderer/element-screenshot-renderer.d.ts +3 -3
- package/report/renderer/explodey-gauge.d.ts +2 -2
- package/report/renderer/features-util.d.ts +1 -1
- package/report/renderer/performance-category-renderer.d.ts +1 -1
- package/report/renderer/report-globals.d.ts +1 -1
- package/report/renderer/report-renderer.d.ts +1 -1
- package/report/renderer/report-ui-features.d.ts +1 -1
- package/report/renderer/report-utils.d.ts +62 -62
- package/report/renderer/snippet-renderer.d.ts +9 -9
- package/report/renderer/swap-locale-feature.d.ts +2 -2
- package/report/renderer/topbar-features.d.ts +2 -2
- package/report/types/augment-dom.d.ts +0 -11
- package/shared/localization/format.d.ts +3 -3
- package/shared/localization/locales/en-US.json +1 -1
- package/shared/localization/locales/en-XL.json +1 -1
- package/shared/localization/locales.d.ts +1 -1
- package/shared/type-verifiers.d.ts +1 -1
- package/shared/util.d.ts +6 -6
- package/tsconfig.json +1 -11
- package/types/artifacts.d.ts +4 -4
- package/types/gatherer.d.ts +4 -5
- package/types/internal/node.d.ts +0 -6
- package/types/internal/query-selector.d.ts +2 -2
- package/core/lib/lantern/BaseNode.d.ts +0 -163
- package/core/lib/lantern/BaseNode.js +0 -369
- package/core/lib/lantern/BaseNode.test.js +0 -385
- package/core/lib/lantern/CpuNode.d.ts +0 -43
- package/core/lib/lantern/CpuNode.js +0 -99
- package/core/lib/lantern/LanternError.d.ts +0 -8
- package/core/lib/lantern/LanternError.js +0 -9
- package/core/lib/lantern/Metric.d.ts +0 -69
- package/core/lib/lantern/Metric.js +0 -137
- package/core/lib/lantern/NetworkNode.d.ts +0 -49
- package/core/lib/lantern/NetworkNode.js +0 -136
- package/core/lib/lantern/PageDependencyGraph.d.ts +0 -82
- package/core/lib/lantern/PageDependencyGraph.js +0 -610
- package/core/lib/lantern/PageDependencyGraph.test.js +0 -654
- package/core/lib/lantern/TBTUtils.d.ts +0 -44
- package/core/lib/lantern/TBTUtils.js +0 -76
- package/core/lib/lantern/TBTUtils.test.d.ts +0 -2
- package/core/lib/lantern/TBTUtils.test.js +0 -130
- package/core/lib/lantern/TraceEngineComputationData.d.ts +0 -25
- package/core/lib/lantern/TraceEngineComputationData.js +0 -466
- package/core/lib/lantern/metrics/FirstContentfulPaint.d.ts +0 -79
- package/core/lib/lantern/metrics/FirstContentfulPaint.js +0 -198
- package/core/lib/lantern/metrics/FirstContentfulPaint.test.js +0 -54
- package/core/lib/lantern/metrics/Interactive.d.ts +0 -20
- package/core/lib/lantern/metrics/Interactive.js +0 -109
- package/core/lib/lantern/metrics/Interactive.test.js +0 -56
- package/core/lib/lantern/metrics/LargestContentfulPaint.d.ts +0 -19
- package/core/lib/lantern/metrics/LargestContentfulPaint.js +0 -105
- package/core/lib/lantern/metrics/LargestContentfulPaint.test.js +0 -42
- package/core/lib/lantern/metrics/MaxPotentialFID.d.ts +0 -24
- package/core/lib/lantern/metrics/MaxPotentialFID.js +0 -91
- package/core/lib/lantern/metrics/MetricTestUtils.d.ts +0 -19
- package/core/lib/lantern/metrics/MetricTestUtils.js +0 -48
- package/core/lib/lantern/metrics/SpeedIndex.d.ts +0 -32
- package/core/lib/lantern/metrics/SpeedIndex.js +0 -142
- package/core/lib/lantern/metrics/SpeedIndex.test.js +0 -83
- package/core/lib/lantern/metrics/TotalBlockingTime.d.ts +0 -25
- package/core/lib/lantern/metrics/TotalBlockingTime.js +0 -125
- package/core/lib/lantern/metrics/__snapshots__/FirstContentfulPaint.test.js.snap +0 -11
- package/core/lib/lantern/metrics/__snapshots__/Interactive.test.js.snap +0 -17
- package/core/lib/lantern/metrics/metrics.d.ts +0 -9
- package/core/lib/lantern/metrics/metrics.js +0 -16
- package/core/lib/lantern/simulation/ConnectionPool.d.ts +0 -48
- package/core/lib/lantern/simulation/ConnectionPool.js +0 -152
- package/core/lib/lantern/simulation/ConnectionPool.test.js +0 -195
- package/core/lib/lantern/simulation/Constants.d.ts +0 -52
- package/core/lib/lantern/simulation/Constants.js +0 -48
- package/core/lib/lantern/simulation/DNSCache.d.ts +0 -42
- package/core/lib/lantern/simulation/DNSCache.js +0 -74
- package/core/lib/lantern/simulation/DNSCache.test.js +0 -72
- package/core/lib/lantern/simulation/NetworkAnalyzer.d.ts +0 -209
- package/core/lib/lantern/simulation/NetworkAnalyzer.js +0 -597
- package/core/lib/lantern/simulation/NetworkAnalyzer.test.js +0 -475
- package/core/lib/lantern/simulation/SimulationTimingMap.d.ts +0 -153
- package/core/lib/lantern/simulation/SimulationTimingMap.js +0 -219
- package/core/lib/lantern/simulation/Simulator.d.ts +0 -157
- package/core/lib/lantern/simulation/Simulator.js +0 -593
- package/core/lib/lantern/simulation/Simulator.test.js +0 -434
- package/core/lib/lantern/simulation/TCPConnection.test.d.ts +0 -2
- package/core/lib/lantern/simulation/TCPConnection.test.js +0 -374
- package/core/lib/lantern/simulation/TcpConnection.d.ts +0 -89
- package/core/lib/lantern/simulation/TcpConnection.js +0 -230
- package/core/lib/lantern/simulation/simulation.d.ts +0 -21
- package/core/lib/lantern/simulation/simulation.js +0 -28
- package/core/lib/lantern/types/lantern.d.ts +0 -256
- package/core/lib/lantern/types/lantern.js +0 -7
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2021 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
export const BLOCKING_TIME_THRESHOLD: 50;
|
|
7
|
-
/**
|
|
8
|
-
* @param {Array<{start: number, end: number, duration: number}>} topLevelEvents
|
|
9
|
-
* @param {number} startTimeMs
|
|
10
|
-
* @param {number} endTimeMs
|
|
11
|
-
* @return {number}
|
|
12
|
-
*/
|
|
13
|
-
export function calculateSumOfBlockingTime(topLevelEvents: Array<{
|
|
14
|
-
start: number;
|
|
15
|
-
end: number;
|
|
16
|
-
duration: number;
|
|
17
|
-
}>, startTimeMs: number, endTimeMs: number): number;
|
|
18
|
-
/**
|
|
19
|
-
* For TBT, We only want to consider tasks that fall in our time range
|
|
20
|
-
* - FCP and TTI for navigation mode
|
|
21
|
-
* - Trace start and trace end for timespan mode
|
|
22
|
-
*
|
|
23
|
-
* FCP is picked as `startTimeMs` because there is little risk of user input happening
|
|
24
|
-
* before FCP so Long Queuing Qelay regions do not harm user experience. Developers should be
|
|
25
|
-
* optimizing to reach FCP as fast as possible without having to worry about task lengths.
|
|
26
|
-
*
|
|
27
|
-
* TTI is picked as `endTimeMs` because we want a well defined end point for page load.
|
|
28
|
-
*
|
|
29
|
-
* @param {{start: number, end: number, duration: number}} event
|
|
30
|
-
* @param {number} startTimeMs Should be FCP in navigation mode and the trace start time in timespan mode
|
|
31
|
-
* @param {number} endTimeMs Should be TTI in navigation mode and the trace end time in timespan mode
|
|
32
|
-
* @param {{start: number, end: number, duration: number}} [topLevelEvent] Leave unset if `event` is top level. Has no effect if `event` has the same duration as `topLevelEvent`.
|
|
33
|
-
* @return {number}
|
|
34
|
-
*/
|
|
35
|
-
export function calculateTbtImpactForEvent(event: {
|
|
36
|
-
start: number;
|
|
37
|
-
end: number;
|
|
38
|
-
duration: number;
|
|
39
|
-
}, startTimeMs: number, endTimeMs: number, topLevelEvent?: {
|
|
40
|
-
start: number;
|
|
41
|
-
end: number;
|
|
42
|
-
duration: number;
|
|
43
|
-
} | undefined): number;
|
|
44
|
-
//# sourceMappingURL=TBTUtils.d.ts.map
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2021 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const BLOCKING_TIME_THRESHOLD = 50;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* For TBT, We only want to consider tasks that fall in our time range
|
|
11
|
-
* - FCP and TTI for navigation mode
|
|
12
|
-
* - Trace start and trace end for timespan mode
|
|
13
|
-
*
|
|
14
|
-
* FCP is picked as `startTimeMs` because there is little risk of user input happening
|
|
15
|
-
* before FCP so Long Queuing Qelay regions do not harm user experience. Developers should be
|
|
16
|
-
* optimizing to reach FCP as fast as possible without having to worry about task lengths.
|
|
17
|
-
*
|
|
18
|
-
* TTI is picked as `endTimeMs` because we want a well defined end point for page load.
|
|
19
|
-
*
|
|
20
|
-
* @param {{start: number, end: number, duration: number}} event
|
|
21
|
-
* @param {number} startTimeMs Should be FCP in navigation mode and the trace start time in timespan mode
|
|
22
|
-
* @param {number} endTimeMs Should be TTI in navigation mode and the trace end time in timespan mode
|
|
23
|
-
* @param {{start: number, end: number, duration: number}} [topLevelEvent] Leave unset if `event` is top level. Has no effect if `event` has the same duration as `topLevelEvent`.
|
|
24
|
-
* @return {number}
|
|
25
|
-
*/
|
|
26
|
-
function calculateTbtImpactForEvent(event, startTimeMs, endTimeMs, topLevelEvent) {
|
|
27
|
-
let threshold = BLOCKING_TIME_THRESHOLD;
|
|
28
|
-
|
|
29
|
-
// If a task is not top level, it doesn't make sense to subtract the entire 50ms
|
|
30
|
-
// blocking threshold from the event.
|
|
31
|
-
//
|
|
32
|
-
// e.g. A 80ms top level task with two 40ms children should attribute some blocking
|
|
33
|
-
// time to the 40ms tasks even though they do not meet the 50ms threshold.
|
|
34
|
-
//
|
|
35
|
-
// The solution is to scale the threshold for child events to be considered blocking.
|
|
36
|
-
if (topLevelEvent) threshold *= (event.duration / topLevelEvent.duration);
|
|
37
|
-
|
|
38
|
-
if (event.duration < threshold) return 0;
|
|
39
|
-
if (event.end < startTimeMs) return 0;
|
|
40
|
-
if (event.start > endTimeMs) return 0;
|
|
41
|
-
|
|
42
|
-
// Perform the clipping and then calculate Blocking Region. So if we have a 150ms task
|
|
43
|
-
// [0, 150] and `startTimeMs` is at 50ms, we first clip the task to [50, 150], and then
|
|
44
|
-
// calculate the Blocking Region to be [100, 150]. The rational here is that tasks before
|
|
45
|
-
// the start time are unimportant, so we care whether the main thread is busy more than
|
|
46
|
-
// 50ms at a time only after the start time.
|
|
47
|
-
const clippedStart = Math.max(event.start, startTimeMs);
|
|
48
|
-
const clippedEnd = Math.min(event.end, endTimeMs);
|
|
49
|
-
const clippedDuration = clippedEnd - clippedStart;
|
|
50
|
-
if (clippedDuration < threshold) return 0;
|
|
51
|
-
|
|
52
|
-
return clippedDuration - threshold;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @param {Array<{start: number, end: number, duration: number}>} topLevelEvents
|
|
57
|
-
* @param {number} startTimeMs
|
|
58
|
-
* @param {number} endTimeMs
|
|
59
|
-
* @return {number}
|
|
60
|
-
*/
|
|
61
|
-
function calculateSumOfBlockingTime(topLevelEvents, startTimeMs, endTimeMs) {
|
|
62
|
-
if (endTimeMs <= startTimeMs) return 0;
|
|
63
|
-
|
|
64
|
-
let sumBlockingTime = 0;
|
|
65
|
-
for (const event of topLevelEvents) {
|
|
66
|
-
sumBlockingTime += calculateTbtImpactForEvent(event, startTimeMs, endTimeMs);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return sumBlockingTime;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export {
|
|
73
|
-
BLOCKING_TIME_THRESHOLD,
|
|
74
|
-
calculateSumOfBlockingTime,
|
|
75
|
-
calculateTbtImpactForEvent,
|
|
76
|
-
};
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2024 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import * as Lantern from './lantern.js';
|
|
8
|
-
|
|
9
|
-
const {calculateSumOfBlockingTime} = Lantern.TBTUtils;
|
|
10
|
-
|
|
11
|
-
describe('TotalBlockingTime utils', () => {
|
|
12
|
-
it('reports 0 when no task is longer than 50ms', () => {
|
|
13
|
-
const events = [
|
|
14
|
-
{start: 1000, end: 1050, duration: 50},
|
|
15
|
-
{start: 2000, end: 2010, duration: 10},
|
|
16
|
-
];
|
|
17
|
-
|
|
18
|
-
const fcpTimeMs = 500;
|
|
19
|
-
const interactiveTimeMs = 4000;
|
|
20
|
-
|
|
21
|
-
expect(
|
|
22
|
-
calculateSumOfBlockingTime(events, fcpTimeMs, interactiveTimeMs)
|
|
23
|
-
).toBe(0);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('only looks at tasks within FCP and TTI', () => {
|
|
27
|
-
const events = [
|
|
28
|
-
{start: 1000, end: 1060, duration: 60},
|
|
29
|
-
{start: 2000, end: 2100, duration: 100},
|
|
30
|
-
{start: 2300, end: 2450, duration: 150},
|
|
31
|
-
{start: 2600, end: 2800, duration: 200},
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
const fcpTimeMs = 1500;
|
|
35
|
-
const interactiveTimeMs = 2500;
|
|
36
|
-
|
|
37
|
-
expect(
|
|
38
|
-
calculateSumOfBlockingTime(events, fcpTimeMs, interactiveTimeMs)
|
|
39
|
-
).toBe(150);
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
it('clips before finding blocking regions', () => {
|
|
43
|
-
const fcpTimeMs = 150;
|
|
44
|
-
const interactiveTimeMs = 300;
|
|
45
|
-
|
|
46
|
-
const events = [
|
|
47
|
-
// The clipping is done first, so the task becomes [150, 200] after clipping and contributes
|
|
48
|
-
// 0ms of blocking time. This is in contrast to first calculating the blocking region ([100,
|
|
49
|
-
// 200]) and then clipping at FCP (150ms), which yields 50ms blocking time.
|
|
50
|
-
{start: 50, end: 200, duration: 150},
|
|
51
|
-
// Similarly, the task is first clipped above to be [240, 300], and then contributes 10ms
|
|
52
|
-
// blocking time.
|
|
53
|
-
{start: 240, end: 460, duration: 120},
|
|
54
|
-
];
|
|
55
|
-
|
|
56
|
-
expect(
|
|
57
|
-
calculateSumOfBlockingTime(events, fcpTimeMs, interactiveTimeMs)
|
|
58
|
-
).toBe(10); // 0ms + 10ms.
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
// TTI can happen in the middle of a task, for example, if TTI is at FMP which occurs as part
|
|
62
|
-
// of a larger task, or in the lantern case where we use estimate TTI using a different graph
|
|
63
|
-
// from the one used to estimate TBT.
|
|
64
|
-
it('clips properly if TTI falls in the middle of a task', () => {
|
|
65
|
-
const fcpTimeMs = 1000;
|
|
66
|
-
const interactiveTimeMs = 2000;
|
|
67
|
-
|
|
68
|
-
expect(
|
|
69
|
-
calculateSumOfBlockingTime(
|
|
70
|
-
[{start: 1951, end: 2100, duration: 149}],
|
|
71
|
-
fcpTimeMs,
|
|
72
|
-
interactiveTimeMs
|
|
73
|
-
)
|
|
74
|
-
).toBe(0); // Duration after clipping is 49, which is < 50.
|
|
75
|
-
expect(
|
|
76
|
-
calculateSumOfBlockingTime(
|
|
77
|
-
[{start: 1950, end: 2100, duration: 150}],
|
|
78
|
-
fcpTimeMs,
|
|
79
|
-
interactiveTimeMs
|
|
80
|
-
)
|
|
81
|
-
).toBe(0); // Duration after clipping is 50, so time after 50ms is 0ms.
|
|
82
|
-
expect(
|
|
83
|
-
calculateSumOfBlockingTime(
|
|
84
|
-
[{start: 1949, end: 2100, duration: 151}],
|
|
85
|
-
fcpTimeMs,
|
|
86
|
-
interactiveTimeMs
|
|
87
|
-
)
|
|
88
|
-
).toBe(1); // Duration after clipping is 51, so time after 50ms is 1ms.
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it('clips properly if FCP falls in the middle of a task', () => {
|
|
92
|
-
const fcpTimeMs = 1000;
|
|
93
|
-
const interactiveTimeMs = 2000;
|
|
94
|
-
|
|
95
|
-
expect(
|
|
96
|
-
calculateSumOfBlockingTime(
|
|
97
|
-
[{start: 900, end: 1049, duration: 149}],
|
|
98
|
-
fcpTimeMs,
|
|
99
|
-
interactiveTimeMs
|
|
100
|
-
)
|
|
101
|
-
).toBe(0); // Duration after clipping is 49, which is < 50.
|
|
102
|
-
expect(
|
|
103
|
-
calculateSumOfBlockingTime(
|
|
104
|
-
[{start: 900, end: 1050, duration: 150}],
|
|
105
|
-
fcpTimeMs,
|
|
106
|
-
interactiveTimeMs
|
|
107
|
-
)
|
|
108
|
-
).toBe(0); // Duration after clipping is 50, so time after 50ms is 0ms.
|
|
109
|
-
expect(
|
|
110
|
-
calculateSumOfBlockingTime(
|
|
111
|
-
[{start: 900, end: 1051, duration: 151}],
|
|
112
|
-
fcpTimeMs,
|
|
113
|
-
interactiveTimeMs
|
|
114
|
-
)
|
|
115
|
-
).toBe(1); // Duration after clipping is 51, so time after 50ms is 1ms.
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
// This can happen in the lantern metric case, where we use the optimistic
|
|
119
|
-
// TTI and pessimistic FCP.
|
|
120
|
-
it('returns 0 if interactiveTime is earlier than FCP', () => {
|
|
121
|
-
const fcpTimeMs = 2050;
|
|
122
|
-
const interactiveTimeMs = 1050;
|
|
123
|
-
|
|
124
|
-
const events = [{start: 500, end: 3000, duration: 2500}];
|
|
125
|
-
|
|
126
|
-
expect(
|
|
127
|
-
calculateSumOfBlockingTime(events, fcpTimeMs, interactiveTimeMs)
|
|
128
|
-
).toBe(0);
|
|
129
|
-
});
|
|
130
|
-
});
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export type MetricName = import('@paulirish/trace_engine/models/trace/handlers/PageLoadMetricsHandler.js').MetricName;
|
|
2
|
-
export type MetricScore = import('@paulirish/trace_engine/models/trace/handlers/PageLoadMetricsHandler.js').MetricScore;
|
|
3
|
-
/** @typedef {import('@paulirish/trace_engine/models/trace/handlers/PageLoadMetricsHandler.js').MetricName} MetricName */
|
|
4
|
-
/** @typedef {import('@paulirish/trace_engine/models/trace/handlers/PageLoadMetricsHandler.js').MetricScore} MetricScore */
|
|
5
|
-
/**
|
|
6
|
-
* @param {TraceEngine.Handlers.Types.TraceParseData} traceEngineData
|
|
7
|
-
* @return {Lantern.Simulation.ProcessedNavigation}
|
|
8
|
-
*/
|
|
9
|
-
export function createProcessedNavigation(traceEngineData: TraceEngine.Handlers.Types.TraceParseData): Lantern.Simulation.ProcessedNavigation;
|
|
10
|
-
/**
|
|
11
|
-
* @param {Lantern.Trace} trace
|
|
12
|
-
* @param {TraceEngine.Handlers.Types.TraceParseData} traceEngineData
|
|
13
|
-
* @return {Lantern.NetworkRequest[]}
|
|
14
|
-
*/
|
|
15
|
-
export function createNetworkRequests(trace: Lantern.Trace, traceEngineData: TraceEngine.Handlers.Types.TraceParseData): Lantern.NetworkRequest[];
|
|
16
|
-
/**
|
|
17
|
-
* @param {Lantern.NetworkRequest[]} requests
|
|
18
|
-
* @param {Lantern.Trace} trace
|
|
19
|
-
* @param {TraceEngine.Handlers.Types.TraceParseData} traceEngineData
|
|
20
|
-
* @param {Lantern.Simulation.URL=} URL
|
|
21
|
-
*/
|
|
22
|
-
export function createGraph(requests: Lantern.NetworkRequest[], trace: Lantern.Trace, traceEngineData: TraceEngine.Handlers.Types.TraceParseData, URL?: Lantern.Simulation.URL | undefined): import("./PageDependencyGraph.js").Node;
|
|
23
|
-
import * as TraceEngine from '@paulirish/trace_engine';
|
|
24
|
-
import * as Lantern from './lantern.js';
|
|
25
|
-
//# sourceMappingURL=TraceEngineComputationData.d.ts.map
|