lighthouse 13.1.0 → 13.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 (110) hide show
  1. package/cli/bin.js +5 -0
  2. package/core/audits/accessibility/autocomplete-valid.d.ts +10 -0
  3. package/core/audits/accessibility/autocomplete-valid.js +44 -0
  4. package/core/audits/accessibility/presentation-role-conflict.d.ts +10 -0
  5. package/core/audits/accessibility/presentation-role-conflict.js +46 -0
  6. package/core/audits/accessibility/svg-img-alt.d.ts +10 -0
  7. package/core/audits/accessibility/svg-img-alt.js +44 -0
  8. package/core/audits/agentic/agent-accessibility-tree.d.ts +19 -0
  9. package/core/audits/agentic/agent-accessibility-tree.js +115 -0
  10. package/core/audits/agentic/llms-txt.d.ts +20 -0
  11. package/core/audits/agentic/llms-txt.js +111 -0
  12. package/core/audits/insights/insight-audit.d.ts +2 -2
  13. package/core/audits/insights/insight-audit.js +16 -6
  14. package/core/audits/layout-shifts.js +1 -1
  15. package/core/audits/server-response-time.js +3 -3
  16. package/core/audits/webmcp-form-coverage.d.ts +16 -0
  17. package/core/audits/webmcp-form-coverage.js +90 -0
  18. package/core/audits/webmcp-registered-tools.d.ts +21 -0
  19. package/core/audits/webmcp-registered-tools.js +149 -0
  20. package/core/audits/webmcp-schema-validity.d.ts +22 -0
  21. package/core/audits/webmcp-schema-validity.js +141 -0
  22. package/core/computed/document-urls.js +0 -1
  23. package/core/computed/main-resource.js +0 -2
  24. package/core/computed/metrics/lantern-metric.js +4 -4
  25. package/core/computed/metrics/lcp-breakdown.js +1 -1
  26. package/core/computed/metrics/time-to-first-byte.js +1 -1
  27. package/core/computed/navigation-insights.js +2 -1
  28. package/core/computed/network-analysis.js +0 -1
  29. package/core/config/agentic-browsing-config.d.ts +12 -0
  30. package/core/config/agentic-browsing-config.js +73 -0
  31. package/core/config/default-config.js +6 -0
  32. package/core/gather/gatherers/accessibility.js +5 -1
  33. package/core/gather/gatherers/agentic/llms-txt.d.ts +10 -0
  34. package/core/gather/gatherers/agentic/llms-txt.js +28 -0
  35. package/core/gather/gatherers/inputs.js +2 -0
  36. package/core/gather/gatherers/meta-elements.js +1 -1
  37. package/core/gather/gatherers/trace-elements.js +1 -1
  38. package/core/gather/gatherers/webmcp-schema.d.ts +25 -0
  39. package/core/gather/gatherers/webmcp-schema.js +105 -0
  40. package/core/gather/gatherers/webmcp.d.ts +58 -0
  41. package/core/gather/gatherers/webmcp.js +159 -0
  42. package/core/index.d.ts +1 -0
  43. package/core/index.js +1 -0
  44. package/core/lib/cdt/generated/SourceMap.js +2 -2
  45. package/core/lib/navigation-error.js +0 -6
  46. package/core/lib/network-request.js +0 -1
  47. package/core/lib/page-functions.d.ts +3 -3
  48. package/core/lib/page-functions.js +11 -4
  49. package/core/lib/tracehouse/trace-processor.d.ts +5 -4
  50. package/core/lib/tracehouse/trace-processor.js +85 -19
  51. package/core/runner.js +3 -0
  52. package/core/scoring.d.ts +1 -0
  53. package/dist/report/bundle.esm.js +1 -1
  54. package/dist/report/flow.js +3 -3
  55. package/dist/report/standalone.js +1 -1
  56. package/flow-report/src/summary/category.tsx +1 -1
  57. package/package.json +11 -11
  58. package/report/renderer/category-renderer.js +1 -1
  59. package/report/renderer/report-utils.d.ts +2 -1
  60. package/report/renderer/report-utils.js +7 -2
  61. package/shared/localization/locales/ar-XB.json +72 -36
  62. package/shared/localization/locales/ar.json +72 -36
  63. package/shared/localization/locales/bg.json +72 -36
  64. package/shared/localization/locales/ca.json +72 -36
  65. package/shared/localization/locales/cs.json +72 -36
  66. package/shared/localization/locales/da.json +74 -38
  67. package/shared/localization/locales/de.json +72 -36
  68. package/shared/localization/locales/el.json +73 -37
  69. package/shared/localization/locales/en-GB.json +74 -38
  70. package/shared/localization/locales/en-US.json +245 -17
  71. package/shared/localization/locales/en-XL.json +245 -17
  72. package/shared/localization/locales/es-419.json +72 -36
  73. package/shared/localization/locales/es.json +73 -37
  74. package/shared/localization/locales/fi.json +72 -36
  75. package/shared/localization/locales/fil.json +74 -38
  76. package/shared/localization/locales/fr.json +162 -126
  77. package/shared/localization/locales/he.json +74 -38
  78. package/shared/localization/locales/hi.json +73 -37
  79. package/shared/localization/locales/hr.json +72 -36
  80. package/shared/localization/locales/hu.json +73 -37
  81. package/shared/localization/locales/id.json +74 -38
  82. package/shared/localization/locales/it.json +72 -36
  83. package/shared/localization/locales/ja.json +72 -36
  84. package/shared/localization/locales/ko.json +72 -36
  85. package/shared/localization/locales/lt.json +72 -36
  86. package/shared/localization/locales/lv.json +72 -36
  87. package/shared/localization/locales/nl.json +73 -37
  88. package/shared/localization/locales/no.json +72 -36
  89. package/shared/localization/locales/pl.json +72 -36
  90. package/shared/localization/locales/pt-PT.json +72 -36
  91. package/shared/localization/locales/pt.json +74 -38
  92. package/shared/localization/locales/ro.json +72 -36
  93. package/shared/localization/locales/ru.json +72 -36
  94. package/shared/localization/locales/sk.json +72 -36
  95. package/shared/localization/locales/sl.json +72 -36
  96. package/shared/localization/locales/sr-Latn.json +73 -37
  97. package/shared/localization/locales/sr.json +73 -37
  98. package/shared/localization/locales/sv.json +75 -39
  99. package/shared/localization/locales/ta.json +73 -37
  100. package/shared/localization/locales/te.json +72 -36
  101. package/shared/localization/locales/th.json +73 -37
  102. package/shared/localization/locales/tr.json +72 -36
  103. package/shared/localization/locales/uk.json +72 -36
  104. package/shared/localization/locales/vi.json +74 -38
  105. package/shared/localization/locales/zh-HK.json +72 -36
  106. package/shared/localization/locales/zh-TW.json +74 -38
  107. package/shared/localization/locales/zh.json +75 -39
  108. package/types/artifacts.d.ts +33 -0
  109. package/types/config.d.ts +1 -0
  110. package/types/lhr/lhr.d.ts +11 -0
@@ -1835,6 +1835,9 @@
1835
1835
  "flow-report/src/i18n/ui-strings.js | title": {
1836
1836
  "message": "Lighthouse user flow report"
1837
1837
  },
1838
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | AttributionReporting": {
1839
+ "message": "Attribution reporting has been deprecated and will be removed. See https://goo.gle/ps-status for details."
1840
+ },
1838
1841
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | AuthorizationCoveredByWildcard": {
1839
1842
  "message": "Authorisation will not be covered by the wildcard symbol (*) in CORS Access-Control-Allow-Headers handling."
1840
1843
  },
@@ -1856,9 +1859,6 @@
1856
1859
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesWasAlternateProtocolAvailable": {
1857
1860
  "message": "chrome.loadTimes() is deprecated. Instead, use standardised API: nextHopProtocol in Navigation Timing 2."
1858
1861
  },
1859
- "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CookieWithTruncatingChar": {
1860
- "message": "Cookies containing a \\(0|r|n) character will be rejected instead of truncated."
1861
- },
1862
1862
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginAccessBasedOnDocumentDomain": {
1863
1863
  "message": "Relaxing the same-origin policy by setting document.domain is deprecated, and will be disabled by default. This deprecation warning is for a cross-origin access that was enabled by setting document.domain."
1864
1864
  },
@@ -1871,14 +1871,20 @@
1871
1871
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DataUrlInSvgUse": {
1872
1872
  "message": "Support for data: URLs in SVGUseElement is deprecated and it will be removed in the future."
1873
1873
  },
1874
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ExampleBrowserProcessDeprecation": {
1875
+ "message": "This is an example for showing the code required for a browser process reported deprecation."
1876
+ },
1877
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | Fledge": {
1878
+ "message": "The Protected Audience API has been deprecated and will be removed in a future release."
1879
+ },
1874
1880
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | GeolocationInsecureOrigin": {
1875
- "message": "getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
1881
+ "message": "getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins/ for more details."
1876
1882
  },
1877
1883
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | GeolocationInsecureOriginDeprecatedNotRemoved": {
1878
- "message": "getCurrentPosition() and watchPosition() are deprecated on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
1884
+ "message": "getCurrentPosition() and watchPosition() are deprecated on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins/ for more details."
1879
1885
  },
1880
1886
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | GetUserMediaInsecureOrigin": {
1881
- "message": "getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
1887
+ "message": "getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins/ for more details."
1882
1888
  },
1883
1889
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | HostCandidateAttributeGetter": {
1884
1890
  "message": "RTCPeerConnectionIceErrorEvent.hostCandidate is deprecated. Please use RTCPeerConnectionIceErrorEvent.address or RTCPeerConnectionIceErrorEvent.port instead."
@@ -1895,20 +1901,35 @@
1895
1901
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | IntlV8BreakIterator": {
1896
1902
  "message": "Intl.v8BreakIterator is deprecated. Please use Intl.Segmenter instead."
1897
1903
  },
1898
- "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LocalCSSFileExtensionRejected": {
1899
- "message": "CSS cannot be loaded from file: URLs unless they end in a .css file extension."
1904
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LanguageModelParams": {
1905
+ "message": "LanguageModel.params() is deprecated and now only available in extension contexts. The topK and temperature related fields within its result are also deprecated."
1906
+ },
1907
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LanguageModelTemperature": {
1908
+ "message": "The 'temperature' parameter/attribute for LanguageModel is deprecated. It is only functional within extensions and may be removed in the future."
1909
+ },
1910
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LanguageModelTopK": {
1911
+ "message": "The 'topK' parameter/attribute for LanguageModel is deprecated. It is only functional within extensions and may be removed in the future."
1912
+ },
1913
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LanguageModel_InputQuota": {
1914
+ "message": "LanguageModel.inputQuota is deprecated. Please use LanguageModel.contextWindow instead. This alias is only available in extensions."
1915
+ },
1916
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LanguageModel_InputUsage": {
1917
+ "message": "LanguageModel.inputUsage is deprecated. Please use LanguageModel.contextUsage instead. This alias is only available in extensions."
1900
1918
  },
1901
- "node_modules/@paulirish/trace_engine/generated/Deprecation.js | MediaSourceAbortRemove": {
1902
- "message": "Using SourceBuffer.abort() to abort remove()'s asynchronous range removal is deprecated due to specification change. Support will be removed in the future. You should listen to the updateend event instead. abort() is intended to only abort an asynchronous media append or reset parser state."
1919
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LanguageModel_MeasureInputUsage": {
1920
+ "message": "LanguageModel.measureInputUsage() is deprecated. Please use LanguageModel.measureContextUsage() instead. This alias is only available in extensions."
1903
1921
  },
1904
- "node_modules/@paulirish/trace_engine/generated/Deprecation.js | MediaSourceDurationTruncatingBuffered": {
1905
- "message": "Setting MediaSource.duration below the highest presentation timestamp of any buffered coded frames is deprecated due to specification change. Support for implicit removal of truncated buffered media will be removed in the future. You should instead perform explicit remove(newDuration, oldDuration) on all sourceBuffers, where newDuration < oldDuration."
1922
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LanguageModel_OnQuotaOverflow": {
1923
+ "message": "LanguageModel.onquotaoverflow is deprecated. Please use LanguageModel.oncontextoverflow instead. The LanguageModel.onquotaoverflow alias is only available in extensions."
1924
+ },
1925
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LocalCSSFileExtensionRejected": {
1926
+ "message": "CSS cannot be loaded from file: URLs unless they end in a .css file extension."
1906
1927
  },
1907
1928
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | NoSysexWebMIDIWithoutPermission": {
1908
1929
  "message": "Web MIDI will ask permission to use even if the sysex is not specified in the MIDIOptions."
1909
1930
  },
1910
1931
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | NotificationInsecureOrigin": {
1911
- "message": "The Notification API may no longer be used from insecure origins. You should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
1932
+ "message": "The notification API may no longer be used from insecure origins. You should consider switching your application to a secure origin, such as HTTPS. See https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins/ for more details."
1912
1933
  },
1913
1934
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | NotificationPermissionRequestedIframe": {
1914
1935
  "message": "Permission for the Notification API may no longer be requested from a cross-origin iframe. You should consider requesting permission from a top-level frame or opening a new window instead."
@@ -1961,9 +1982,6 @@
1961
1982
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoSupportsFullscreen": {
1962
1983
  "message": "HTMLVideoElement.webkitSupportsFullscreen is deprecated. Please use Document.fullscreenEnabled instead."
1963
1984
  },
1964
- "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrivacySandboxExtensionsAPI": {
1965
- "message": "We're deprecating the API chrome.privacy.websites.privacySandboxEnabled, though it will remain active for backward compatibility until release M113. Instead, please use chrome.privacy.websites.topicsEnabled, chrome.privacy.websites.fledgeEnabled and chrome.privacy.websites.adMeasurementEnabled. See https://developer.chrome.com/docs/extensions/reference/privacy/#property-websites-privacySandboxEnabled."
1966
- },
1967
1985
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RTCConstraintEnableDtlsSrtpFalse": {
1968
1986
  "message": "The constraint DtlsSrtpKeyAgreement is removed. You have specified a false value for this constraint, which is interpreted as an attempt to use the removed SDES key negotiation method. This functionality is removed; use a service that supports DTLS key negotiation instead."
1969
1987
  },
@@ -1976,6 +1994,9 @@
1976
1994
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RangeExpand": {
1977
1995
  "message": "Range.expand() is deprecated. Please use Selection.modify() instead."
1978
1996
  },
1997
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RelatedWebsiteSets": {
1998
+ "message": "Related Website Sets is deprecated and will be removed. See https://privacysandbox.com/news/update-on-plans-for-privacy-sandbox-technologies/ for more details."
1999
+ },
1979
2000
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RequestedSubresourceWithEmbeddedCredentials": {
1980
2001
  "message": "Subresource requests whose URLs contain embedded credentials (e.g. https://user:pass@host/) are blocked."
1981
2002
  },
@@ -1985,26 +2006,41 @@
1985
2006
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | SharedArrayBufferConstructedWithoutIsolation": {
1986
2007
  "message": "SharedArrayBuffer will require cross-origin isolation. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details."
1987
2008
  },
2009
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | SharedStorage": {
2010
+ "message": "The Shared Storage API is deprecated and will be removed in a future release."
2011
+ },
2012
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | StorageAccessAPI_requestStorageAccessFor_Method": {
2013
+ "message": "document.requestStorageAccessFor is deprecated and will be removed. See https://privacysandbox.com/news/update-on-plans-for-privacy-sandbox-technologies/ for more details."
2014
+ },
1988
2015
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | TextToSpeech_DisallowedByAutoplay": {
1989
2016
  "message": "speechSynthesis.speak() without user activation is deprecated and will be removed."
1990
2017
  },
2018
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | Topics": {
2019
+ "message": "The Topics API has been deprecated and will be removed in a future release."
2020
+ },
1991
2021
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | UnloadHandler": {
1992
2022
  "message": "Unload event listeners are deprecated and will be removed."
1993
2023
  },
1994
2024
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
1995
2025
  "message": "Extensions should opt in to cross-origin isolation to continue using SharedArrayBuffer. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
1996
2026
  },
2027
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebBluetoothRemoteCharacteristicWriteValue": {
2028
+ "message": "BluetoothRemoteGATTCharacteristic.writeValue() is deprecated. Use writeValueWithResponse() or writeValueWithoutResponse() instead."
2029
+ },
1997
2030
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
1998
2031
  "message": "UTF-16 is not supported by response JSON in XMLHttpRequest"
1999
2032
  },
2000
2033
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload": {
2001
2034
  "message": "Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects on the end user's experience. For more help, check https://xhr.spec.whatwg.org/."
2002
2035
  },
2036
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | XSLT": {
2037
+ "message": "XSLTProcessor and XSLT processing instructions have been deprecated by all browsers. These features will be removed from this browser soon."
2038
+ },
2003
2039
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | animation": {
2004
2040
  "message": "Animation"
2005
2041
  },
2006
2042
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
2007
- "message": "Layout shifts occur when elements move absent any user interaction. [Investigate the causes of layout shifts](https://web.dev/articles/optimize-cls), such as elements being added, removed or their fonts changing as the page loads."
2043
+ "message": "Layout shifts occur when elements move absent any user interaction. [Investigate the causes of layout shifts](https://developer.chrome.com/docs/performance/insights/cls-culprit), such as elements being added, removed or their fonts changing as the page loads."
2008
2044
  },
2009
2045
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
2010
2046
  "message": "Injected iframe"
@@ -2040,7 +2076,7 @@
2040
2076
  "message": "Cache TTL"
2041
2077
  },
2042
2078
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | description": {
2043
- "message": "A long cache lifetime can speed up repeat visits to your page. [Learn more](https://web.dev/uses-long-cache-ttl/)."
2079
+ "message": "A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache)."
2044
2080
  },
2045
2081
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | noRequestsToCache": {
2046
2082
  "message": "No requests with inefficient cache policies"
@@ -2055,7 +2091,7 @@
2055
2091
  "message": "Use efficient cache lifetimes"
2056
2092
  },
2057
2093
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | description": {
2058
- "message": "A large DOM can increase the duration of style calculations and layout reflows, impacting page responsiveness. A large DOM will also increase memory usage. [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)."
2094
+ "message": "A large DOM can increase the duration of style calculations and layout reflows, impacting page responsiveness. A large DOM will also increase memory usage. [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/performance/insights/dom-size)."
2059
2095
  },
2060
2096
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | duration": {
2061
2097
  "message": "Duration"
@@ -2091,7 +2127,7 @@
2091
2127
  "message": "Value"
2092
2128
  },
2093
2129
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
2094
- "message": "Your first network request is the most important. Reduce its latency by avoiding redirects, ensuring a fast server response and enabling text compression."
2130
+ "message": "Your first network request is the most important. [Reduce its latency](https://developer.chrome.com/docs/performance/insights/document-latency) by avoiding redirects, ensuring a fast server response and enabling text compression."
2095
2131
  },
2096
2132
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedRedirects": {
2097
2133
  "message": "Had redirects ({PH1} redirects, +{PH2})"
@@ -2130,13 +2166,13 @@
2130
2166
  "message": "Source"
2131
2167
  },
2132
2168
  "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | description": {
2133
- "message": "Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity."
2169
+ "message": "Remove large, [duplicate JavaScript modules](https://developer.chrome.com/docs/performance/insights/duplicated-javascript) from bundles to reduce unnecessary bytes consumed by network activity."
2134
2170
  },
2135
2171
  "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | title": {
2136
2172
  "message": "Duplicated JavaScript"
2137
2173
  },
2138
2174
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | description": {
2139
- "message": "Consider setting [font-display](https://developer.chrome.com/blog/font-display) to swap or optional to ensure that text is consistently visible. swap can be further optimised to mitigate layout shifts with [font metric overrides](https://developer.chrome.com/blog/font-fallbacks)."
2175
+ "message": "Consider setting [font-display](https://developer.chrome.com/docs/performance/insights/font-display) to swap or optional to ensure that text is consistently visible. swap can be further optimised to mitigate layout shifts with [font metric overrides](https://developer.chrome.com/blog/font-fallbacks)."
2140
2176
  },
2141
2177
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | fontColumn": {
2142
2178
  "message": "Font"
@@ -2151,10 +2187,10 @@
2151
2187
  "message": "(anonymous)"
2152
2188
  },
2153
2189
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | description": {
2154
- "message": "A forced reflow occurs when JavaScript queries geometric properties (such as offsetWidth) after styles have been invalidated by a change to the DOM state. This can result in poor performance. Learn more about [forced reflows](https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing#avoid-forced-synchronous-layouts) and possible mitigations."
2190
+ "message": "A forced reflow occurs when JavaScript queries geometric properties (such as offsetWidth) after styles have been invalidated by a change to the DOM state. This can result in poor performance. Learn more about [forced reflows](https://developer.chrome.com/docs/performance/insights/forced-reflow) and possible mitigations."
2155
2191
  },
2156
- "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | relatedStackTrace": {
2157
- "message": "Stack trace"
2192
+ "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | reflowCallFrames": {
2193
+ "message": "Call frames that trigger reflow"
2158
2194
  },
2159
2195
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | title": {
2160
2196
  "message": "Forced reflow"
@@ -2169,7 +2205,7 @@
2169
2205
  "message": "[unattributed]"
2170
2206
  },
2171
2207
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | description": {
2172
- "message": "Start investigating with the longest sub-part. [Delays can be minimised](https://web.dev/articles/optimize-inp#optimize_interactions). To reduce processing duration, [optimise the main-thread costs](https://web.dev/articles/optimize-long-tasks), often JS."
2208
+ "message": "Start investigating [how to improve INP](https://developer.chrome.com/docs/performance/insights/inp-breakdown) by looking at the longest subpart."
2173
2209
  },
2174
2210
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | duration": {
2175
2211
  "message": "Duration"
@@ -2193,7 +2229,7 @@
2193
2229
  "message": "INP breakdown"
2194
2230
  },
2195
2231
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | description": {
2196
- "message": "Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimising image size](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)"
2232
+ "message": "Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimising image size](https://developer.chrome.com/docs/performance/insights/image-delivery)"
2197
2233
  },
2198
2234
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | estimatedSavings": {
2199
2235
  "message": "{PH1} (est {PH2})"
@@ -2223,7 +2259,7 @@
2223
2259
  "message": "Using video formats instead of GIFs can improve the download size of animated content."
2224
2260
  },
2225
2261
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | description": {
2226
- "message": "Each [sub-part has specific improvement strategies](https://web.dev/articles/optimize-lcp#lcp-breakdown). Ideally, most of the LCP time should be spent on loading the resources, not within delays."
2262
+ "message": "Each [sub-part has specific improvement strategies](https://developer.chrome.com/docs/performance/insights/lcp-breakdown). Ideally, most of the LCP time should be spent on loading the resources, not within delays."
2227
2263
  },
2228
2264
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | duration": {
2229
2265
  "message": "Duration"
@@ -2253,7 +2289,7 @@
2253
2289
  "message": "LCP breakdown"
2254
2290
  },
2255
2291
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
2256
- "message": "Optimise LCP by making the LCP image [discoverable](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) from the HTML immediately and [avoiding lazy loading](https://web.dev/articles/lcp-lazy-loading)"
2292
+ "message": "[Optimise LCP](https://developer.chrome.com/docs/performance/insights/lcp-discovery) by making the LCP image discoverable from the HTML immediately, and avoiding lazy loading"
2257
2293
  },
2258
2294
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | fetchPriorityApplied": {
2259
2295
  "message": "fetchpriority=high applied"
@@ -2286,13 +2322,13 @@
2286
2322
  "message": "Wasted bytes"
2287
2323
  },
2288
2324
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | description": {
2289
- "message": "Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know that you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)"
2325
+ "message": "Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know that you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://developer.chrome.com/docs/performance/insights/legacy-javascript)"
2290
2326
  },
2291
2327
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | title": {
2292
2328
  "message": "Legacy JavaScript"
2293
2329
  },
2294
2330
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | description": {
2295
- "message": "HTTP/2 and HTTP/3 offer many benefits over HTTP/1.1, such as multiplexing. [Learn more about using modern HTTP](https://developer.chrome.com/docs/lighthouse/best-practices/uses-http2/)."
2331
+ "message": "HTTP/2 and HTTP/3 offer many benefits over HTTP/1.1, such as multiplexing. [Learn more about using modern HTTP](https://developer.chrome.com/docs/performance/insights/modern-http)."
2296
2332
  },
2297
2333
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | noOldProtocolRequests": {
2298
2334
  "message": "No requests used HTTP/1.1, or its current use of HTTP/1.1 does not present a significant optimisation opportunity. HTTP/1.1 requests are only flagged if six or more static assets originate from the same origin, and they are not served from a local development environment or a third-party source."
@@ -2325,7 +2361,7 @@
2325
2361
  "message": "Unused preconnect. Check that the crossorigin attribute is used properly."
2326
2362
  },
2327
2363
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | description": {
2328
- "message": "[Avoid chaining critical requests](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) by reducing the length of chains, reducing the download size of resources or deferring the download of unnecessary resources to improve page load."
2364
+ "message": "[Avoid chaining critical requests](https://developer.chrome.com/docs/performance/insights/network-dependency-tree) by reducing the length of chains, reducing the download size of resources or deferring the download of unnecessary resources to improve page load."
2329
2365
  },
2330
2366
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
2331
2367
  "message": "Add [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints to your most important origins, but try to use no more than 4."
@@ -2364,22 +2400,22 @@
2364
2400
  "message": "Avoid chaining critical requests by reducing the length of chains, reducing the download size of resources or deferring the download of unnecessary resources to improve page load."
2365
2401
  },
2366
2402
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
2367
- "message": "Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources) can move these network requests out of the critical path."
2403
+ "message": "Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests out of the critical path."
2368
2404
  },
2369
2405
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | duration": {
2370
2406
  "message": "Duration"
2371
2407
  },
2372
2408
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | noRenderBlocking": {
2373
- "message": "No render blocking requests for this navigation"
2409
+ "message": "No render-blocking requests for this navigation"
2374
2410
  },
2375
2411
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | renderBlockingRequest": {
2376
2412
  "message": "Request"
2377
2413
  },
2378
2414
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
2379
- "message": "Render blocking requests"
2415
+ "message": "Render-blocking requests"
2380
2416
  },
2381
2417
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
2382
- "message": "If Recalculate Style costs remain high, selector optimisation can reduce them. [Optimise the selectors](https://developer.chrome.com/docs/devtools/performance/selector-stats) with both a high elapsed time and high slow-path %. Simpler selectors, fewer selectors, a smaller DOM and a shallower DOM will all reduce matching costs."
2418
+ "message": "If Recalculate Style costs remain high, selector optimisation can reduce them. [Optimise the selectors](https://developer.chrome.com/docs/performance/insights/slow-css-selector) with both a high elapsed time and high slow-path %. Simpler selectors, fewer selectors, a smaller DOM and a shallower DOM will all reduce matching costs."
2383
2419
  },
2384
2420
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | elapsed": {
2385
2421
  "message": "Elapsed time"
@@ -2418,7 +2454,7 @@
2418
2454
  "message": "Transfer size"
2419
2455
  },
2420
2456
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
2421
- "message": "Third-party code can significantly impact load performance. [Reduce and defer loading of third-party code](https://web.dev/articles/optimizing-content-efficiency-loading-third-party-javascript/) to prioritise your page's content."
2457
+ "message": "Third-party code can significantly impact load performance. [Reduce and defer loading of third-party code](https://developer.chrome.com/docs/performance/insights/third-parties) to prioritise your page's content."
2422
2458
  },
2423
2459
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | noThirdParties": {
2424
2460
  "message": "No third parties found"
@@ -2427,7 +2463,7 @@
2427
2463
  "message": "Third parties"
2428
2464
  },
2429
2465
  "node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
2430
- "message": "Tap interactions may be [delayed by up to 300 ms](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) if the viewport is not optimised for mobile."
2466
+ "message": "Tap interactions may be [delayed by up to 300 ms](https://developer.chrome.com/docs/performance/insights/viewport) if the viewport is not optimised for mobile."
2431
2467
  },
2432
2468
  "node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
2433
2469
  "message": "Mobile tap delay"