@paulirish/trace_engine 0.0.48 → 0.0.50

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 (141) hide show
  1. package/.tmp/tsbuildinfo/tsconfig.tsbuildinfo +1 -1
  2. package/core/platform/TypedArrayUtilities.d.ts +2 -1
  3. package/core/platform/TypedArrayUtilities.js +9 -4
  4. package/core/platform/TypedArrayUtilities.js.map +1 -1
  5. package/generated/protocol.d.ts +19 -2
  6. package/locales/af.json +229 -16
  7. package/locales/am.json +231 -18
  8. package/locales/ar.json +229 -16
  9. package/locales/as.json +231 -18
  10. package/locales/az.json +231 -18
  11. package/locales/be.json +228 -15
  12. package/locales/bg.json +229 -16
  13. package/locales/bn.json +229 -16
  14. package/locales/bs.json +229 -16
  15. package/locales/ca.json +229 -16
  16. package/locales/cs.json +228 -15
  17. package/locales/cy.json +231 -18
  18. package/locales/da.json +230 -17
  19. package/locales/de.json +228 -15
  20. package/locales/el.json +229 -16
  21. package/locales/en-GB.json +229 -16
  22. package/locales/en-US.json +30 -3
  23. package/locales/en-XL.json +30 -3
  24. package/locales/es-419.json +229 -16
  25. package/locales/es.json +228 -15
  26. package/locales/et.json +230 -17
  27. package/locales/eu.json +231 -18
  28. package/locales/fa.json +230 -17
  29. package/locales/fi.json +229 -16
  30. package/locales/fil.json +231 -18
  31. package/locales/fr-CA.json +230 -17
  32. package/locales/fr.json +230 -17
  33. package/locales/gl.json +228 -15
  34. package/locales/gu.json +230 -17
  35. package/locales/he.json +229 -16
  36. package/locales/hi.json +230 -17
  37. package/locales/hr.json +229 -16
  38. package/locales/hu.json +229 -16
  39. package/locales/hy.json +228 -15
  40. package/locales/id.json +228 -15
  41. package/locales/is.json +229 -16
  42. package/locales/it.json +232 -19
  43. package/locales/ja.json +228 -15
  44. package/locales/ka.json +230 -17
  45. package/locales/kk.json +230 -17
  46. package/locales/km.json +231 -18
  47. package/locales/kn.json +228 -15
  48. package/locales/ko.json +229 -16
  49. package/locales/ky.json +230 -17
  50. package/locales/lo.json +229 -16
  51. package/locales/lt.json +229 -16
  52. package/locales/lv.json +230 -17
  53. package/locales/mk.json +229 -16
  54. package/locales/ml.json +230 -17
  55. package/locales/mn.json +229 -16
  56. package/locales/mr.json +230 -17
  57. package/locales/ms.json +229 -16
  58. package/locales/my.json +231 -18
  59. package/locales/ne.json +229 -16
  60. package/locales/nl.json +229 -16
  61. package/locales/no.json +229 -16
  62. package/locales/or.json +231 -18
  63. package/locales/pa.json +228 -15
  64. package/locales/pl.json +230 -17
  65. package/locales/pt-PT.json +229 -16
  66. package/locales/pt.json +229 -16
  67. package/locales/ro.json +228 -15
  68. package/locales/ru.json +230 -17
  69. package/locales/si.json +231 -18
  70. package/locales/sk.json +229 -16
  71. package/locales/sl.json +230 -17
  72. package/locales/sq.json +229 -16
  73. package/locales/sr-Latn.json +229 -16
  74. package/locales/sr.json +229 -16
  75. package/locales/sv.json +229 -16
  76. package/locales/sw.json +231 -18
  77. package/locales/ta.json +230 -17
  78. package/locales/te.json +231 -18
  79. package/locales/th.json +229 -16
  80. package/locales/tr.json +230 -17
  81. package/locales/uk.json +229 -16
  82. package/locales/ur.json +230 -17
  83. package/locales/uz.json +229 -16
  84. package/locales/vi.json +230 -17
  85. package/locales/zh-HK.json +229 -16
  86. package/locales/zh-TW.json +230 -17
  87. package/locales/zh.json +228 -15
  88. package/locales/zu.json +230 -17
  89. package/models/trace/Processor.js +5 -3
  90. package/models/trace/Processor.js.map +1 -1
  91. package/models/trace/extras/ScriptDuplication.d.ts +27 -8
  92. package/models/trace/extras/ScriptDuplication.js +27 -26
  93. package/models/trace/extras/ScriptDuplication.js.map +1 -1
  94. package/models/trace/extras/StackTraceForEvent.js +7 -0
  95. package/models/trace/extras/StackTraceForEvent.js.map +1 -1
  96. package/models/trace/extras/extras.d.ts +1 -0
  97. package/models/trace/extras/extras.js +1 -0
  98. package/models/trace/handlers/ExtensionTraceDataHandler.js +14 -9
  99. package/models/trace/handlers/ExtensionTraceDataHandler.js.map +1 -1
  100. package/models/trace/handlers/MetaHandler.d.ts +13 -0
  101. package/models/trace/handlers/MetaHandler.js +27 -0
  102. package/models/trace/handlers/MetaHandler.js.map +1 -1
  103. package/models/trace/helpers/Network.d.ts +18 -0
  104. package/models/trace/helpers/Network.js +57 -0
  105. package/models/trace/helpers/Network.js.map +1 -1
  106. package/models/trace/helpers/SamplesIntegrator.js +1 -1
  107. package/models/trace/helpers/SamplesIntegrator.js.map +1 -1
  108. package/models/trace/helpers/Trace.js +4 -0
  109. package/models/trace/helpers/Trace.js.map +1 -1
  110. package/models/trace/insights/DocumentLatency.d.ts +2 -1
  111. package/models/trace/insights/DocumentLatency.js +3 -0
  112. package/models/trace/insights/DocumentLatency.js.map +1 -1
  113. package/models/trace/insights/{DuplicateJavaScript.d.ts → DuplicatedJavaScript.d.ts} +6 -1
  114. package/models/trace/insights/{DuplicateJavaScript.js → DuplicatedJavaScript.js} +15 -6
  115. package/models/trace/insights/DuplicatedJavaScript.js.map +1 -0
  116. package/models/trace/insights/FontDisplay.d.ts +1 -2
  117. package/models/trace/insights/FontDisplay.js.map +1 -1
  118. package/models/trace/insights/ForcedReflow.d.ts +23 -3
  119. package/models/trace/insights/ForcedReflow.js +63 -107
  120. package/models/trace/insights/ForcedReflow.js.map +1 -1
  121. package/models/trace/insights/Models.d.ts +2 -1
  122. package/models/trace/insights/Models.js +2 -1
  123. package/models/trace/insights/Models.js.map +1 -1
  124. package/models/trace/insights/NetworkDependencyTree.d.ts +2 -1
  125. package/models/trace/insights/NetworkDependencyTree.js +9 -4
  126. package/models/trace/insights/NetworkDependencyTree.js.map +1 -1
  127. package/models/trace/insights/Statistics.d.ts +4 -0
  128. package/models/trace/insights/Statistics.js +7 -0
  129. package/models/trace/insights/Statistics.js.map +1 -1
  130. package/models/trace/insights/UseCache.d.ts +69 -0
  131. package/models/trace/insights/UseCache.js +189 -0
  132. package/models/trace/insights/UseCache.js.map +1 -0
  133. package/models/trace/insights/insights-tsconfig.json +2 -1
  134. package/models/trace/insights/types.d.ts +1 -13
  135. package/models/trace/insights/types.js.map +1 -1
  136. package/models/trace/types/TraceEvents.d.ts +16 -4
  137. package/models/trace/types/TraceEvents.js +4 -1
  138. package/models/trace/types/TraceEvents.js.map +1 -1
  139. package/package.json +1 -1
  140. package/test/test-trace-engine.mjs +2 -1
  141. package/models/trace/insights/DuplicateJavaScript.js.map +0 -1
@@ -59,6 +59,9 @@
59
59
  "generated/Deprecation.ts | InterestGroupDailyUpdateUrl": {
60
60
  "message": "The dailyUpdateUrl field of InterestGroups passed to joinAdInterestGroup() has been renamed to updateUrl, to more accurately reflect its behaviour."
61
61
  },
62
+ "generated/Deprecation.ts | IntlV8BreakIterator": {
63
+ "message": "Intl.v8BreakIterator is deprecated. Please use Intl.Segmenter instead."
64
+ },
62
65
  "generated/Deprecation.ts | LocalCSSFileExtensionRejected": {
63
66
  "message": "CSS cannot be loaded from file: URLs unless they end in a .css file extension."
64
67
  },
@@ -78,7 +81,7 @@
78
81
  "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."
79
82
  },
80
83
  "generated/Deprecation.ts | ObsoleteCreateImageBitmapImageOrientationNone": {
81
- "message": "Option imageOrientation: 'none' in createImageBitmap is deprecated. Please use createImageBitmap with option {imageOrientation: 'from-image'} instead."
84
+ "message": "Option imageOrientation: 'none' in createImageBitmap is deprecated. Please use createImageBitmap with option '{imageOrientation: 'from-image'}' instead."
82
85
  },
83
86
  "generated/Deprecation.ts | ObsoleteWebRtcCipherSuite": {
84
87
  "message": "Your partner is negotiating an obsolete (D)TLS version. Please check with your partner to have this fixed."
@@ -155,108 +158,318 @@
155
158
  "generated/Deprecation.ts | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
156
159
  "message": "Extensions should opt in to cross-origin isolation to continue using SharedArrayBuffer. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
157
160
  },
158
- "generated/Deprecation.ts | WebGPULimitMaxInterStageShaderComponents": {
159
- "message": "The WebGPU limit maxInterStageShaderComponents is deprecated, use the WebGPU limit maxInterStageShaderVariables instead."
160
- },
161
- "generated/Deprecation.ts | WebSQL": {
162
- "message": "Web SQL is deprecated. Please use SQLite WebAssembly or Indexed Database"
163
- },
164
161
  "generated/Deprecation.ts | XHRJSONEncodingDetection": {
165
162
  "message": "UTF-16 is not supported by response JSON in XMLHttpRequest"
166
163
  },
167
164
  "generated/Deprecation.ts | XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload": {
168
165
  "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/."
169
166
  },
170
- "generated/Deprecation.ts | XRSupportsSession": {
171
- "message": "supportsSession() is deprecated. Please use isSessionSupported() and check the resolved Boolean value instead."
167
+ "models/trace/insights/CLSCulprits.ts | animation": {
168
+ "message": "Animation"
172
169
  },
173
170
  "models/trace/insights/CLSCulprits.ts | description": {
174
171
  "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."
175
172
  },
173
+ "models/trace/insights/CLSCulprits.ts | fontRequest": {
174
+ "message": "Font request"
175
+ },
176
+ "models/trace/insights/CLSCulprits.ts | injectedIframe": {
177
+ "message": "Injected iframe"
178
+ },
179
+ "models/trace/insights/CLSCulprits.ts | layoutShiftCluster": {
180
+ "message": "Layout shift cluster @ {PH1}"
181
+ },
182
+ "models/trace/insights/CLSCulprits.ts | noCulprits": {
183
+ "message": "Could not detect any layout shift culprits"
184
+ },
185
+ "models/trace/insights/CLSCulprits.ts | noLayoutShifts": {
186
+ "message": "No layout shifts"
187
+ },
176
188
  "models/trace/insights/CLSCulprits.ts | title": {
177
189
  "message": "Layout shift culprits"
178
190
  },
191
+ "models/trace/insights/CLSCulprits.ts | topCulprits": {
192
+ "message": "Top layout shift culprits"
193
+ },
194
+ "models/trace/insights/CLSCulprits.ts | unsizedImages": {
195
+ "message": "Unsized Images"
196
+ },
197
+ "models/trace/insights/CLSCulprits.ts | worstCluster": {
198
+ "message": "Worst cluster"
199
+ },
200
+ "models/trace/insights/CLSCulprits.ts | worstLayoutShiftCluster": {
201
+ "message": "Worst layout shift cluster"
202
+ },
179
203
  "models/trace/insights/DOMSize.ts | description": {
180
204
  "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/)."
181
205
  },
206
+ "models/trace/insights/DOMSize.ts | element": {
207
+ "message": "Element"
208
+ },
209
+ "models/trace/insights/DOMSize.ts | maxChildren": {
210
+ "message": "Most children"
211
+ },
212
+ "models/trace/insights/DOMSize.ts | maxDOMDepth": {
213
+ "message": "DOM depth"
214
+ },
215
+ "models/trace/insights/DOMSize.ts | statistic": {
216
+ "message": "Statistic"
217
+ },
182
218
  "models/trace/insights/DOMSize.ts | title": {
183
219
  "message": "Optimise DOM size"
184
220
  },
221
+ "models/trace/insights/DOMSize.ts | totalElements": {
222
+ "message": "Total elements"
223
+ },
224
+ "models/trace/insights/DOMSize.ts | value": {
225
+ "message": "Value"
226
+ },
185
227
  "models/trace/insights/DocumentLatency.ts | description": {
186
228
  "message": "Your first network request is the most important. Reduce its latency by avoiding redirects, ensuring a fast server response and enabling text compression."
187
229
  },
230
+ "models/trace/insights/DocumentLatency.ts | failedRedirects": {
231
+ "message": "Had redirects"
232
+ },
233
+ "models/trace/insights/DocumentLatency.ts | failedServerResponseTime": {
234
+ "message": "Server responded slowly"
235
+ },
236
+ "models/trace/insights/DocumentLatency.ts | failedTextCompression": {
237
+ "message": "No compression applied"
238
+ },
239
+ "models/trace/insights/DocumentLatency.ts | passingRedirects": {
240
+ "message": "Avoids redirects"
241
+ },
242
+ "models/trace/insights/DocumentLatency.ts | passingServerResponseTime": {
243
+ "message": "Server responds quickly"
244
+ },
245
+ "models/trace/insights/DocumentLatency.ts | passingTextCompression": {
246
+ "message": "Applies text compression"
247
+ },
248
+ "models/trace/insights/DocumentLatency.ts | redirectsLabel": {
249
+ "message": "Redirects"
250
+ },
251
+ "models/trace/insights/DocumentLatency.ts | serverResponseTimeLabel": {
252
+ "message": "Server response time"
253
+ },
188
254
  "models/trace/insights/DocumentLatency.ts | title": {
189
255
  "message": "Document request latency"
190
256
  },
257
+ "models/trace/insights/DocumentLatency.ts | uncompressedDownload": {
258
+ "message": "Uncompressed download"
259
+ },
260
+ "models/trace/insights/DuplicateJavaScript.ts | description": {
261
+ "message": "Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity."
262
+ },
263
+ "models/trace/insights/DuplicateJavaScript.ts | title": {
264
+ "message": "Duplicate JavaScript"
265
+ },
191
266
  "models/trace/insights/FontDisplay.ts | description": {
192
267
  "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)."
193
268
  },
269
+ "models/trace/insights/FontDisplay.ts | fontColumn": {
270
+ "message": "Font"
271
+ },
194
272
  "models/trace/insights/FontDisplay.ts | title": {
195
273
  "message": "Font display"
196
274
  },
275
+ "models/trace/insights/FontDisplay.ts | wastedTimeColumn": {
276
+ "message": "Wasted time"
277
+ },
197
278
  "models/trace/insights/ForcedReflow.ts | description": {
198
279
  "message": "Many APIs, typically reading layout geometry, force the rendering engine to pause script execution in order to calculate the style and layout. Learn more about [forced reflow](https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing#avoid-forced-synchronous-layouts) and its mitigations."
199
280
  },
281
+ "models/trace/insights/ForcedReflow.ts | relatedStackTrace": {
282
+ "message": "Stack trace"
283
+ },
200
284
  "models/trace/insights/ForcedReflow.ts | title": {
201
285
  "message": "Forced reflow"
202
286
  },
287
+ "models/trace/insights/ForcedReflow.ts | topTimeConsumingFunctionCall": {
288
+ "message": "Top function call"
289
+ },
290
+ "models/trace/insights/ForcedReflow.ts | totalReflowTime": {
291
+ "message": "Total reflow time"
292
+ },
203
293
  "models/trace/insights/ImageDelivery.ts | description": {
204
294
  "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/)"
205
295
  },
296
+ "models/trace/insights/ImageDelivery.ts | estimatedSavings": {
297
+ "message": "{PH1} (est {PH2})"
298
+ },
299
+ "models/trace/insights/ImageDelivery.ts | noOptimizableImages": {
300
+ "message": "No optimisable images"
301
+ },
302
+ "models/trace/insights/ImageDelivery.ts | optimizeFile": {
303
+ "message": "Optimise file size"
304
+ },
305
+ "models/trace/insights/ImageDelivery.ts | others": {
306
+ "message": "{PH1} others"
307
+ },
206
308
  "models/trace/insights/ImageDelivery.ts | title": {
207
309
  "message": "Improve image delivery"
208
310
  },
209
311
  "models/trace/insights/ImageDelivery.ts | useCompression": {
210
- "message": "Increasing the image compression factor could improve this image's download size. (Est {PH1})"
312
+ "message": "Increasing the image compression factor could improve this image's download size."
211
313
  },
212
314
  "models/trace/insights/ImageDelivery.ts | useModernFormat": {
213
- "message": "Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download size. (Est {PH1})"
315
+ "message": "Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download size."
214
316
  },
215
317
  "models/trace/insights/ImageDelivery.ts | useResponsiveSize": {
216
- "message": "This image file is larger than it needs to be ({PH2}) for its displayed dimensions ({PH3}). Use responsive images to reduce the image download size. (Est {PH1})"
318
+ "message": "This image file is larger than it needs to be ({PH1}) for its displayed dimensions ({PH2}). Use responsive images to reduce the image download size."
217
319
  },
218
320
  "models/trace/insights/ImageDelivery.ts | useVideoFormat": {
219
- "message": "Using video formats instead of GIFs can improve the download size of animated content. (Est {PH1})"
321
+ "message": "Using video formats instead of GIFs can improve the download size of animated content."
220
322
  },
221
323
  "models/trace/insights/InteractionToNextPaint.ts | description": {
222
324
  "message": "Start investigating with the longest phase. [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."
223
325
  },
326
+ "models/trace/insights/InteractionToNextPaint.ts | duration": {
327
+ "message": "Duration"
328
+ },
329
+ "models/trace/insights/InteractionToNextPaint.ts | inputDelay": {
330
+ "message": "Input delay"
331
+ },
332
+ "models/trace/insights/InteractionToNextPaint.ts | noInteractions": {
333
+ "message": "No interactions detected"
334
+ },
335
+ "models/trace/insights/InteractionToNextPaint.ts | phase": {
336
+ "message": "Phase"
337
+ },
338
+ "models/trace/insights/InteractionToNextPaint.ts | presentationDelay": {
339
+ "message": "Presentation delay"
340
+ },
341
+ "models/trace/insights/InteractionToNextPaint.ts | processingDuration": {
342
+ "message": "Processing duration"
343
+ },
224
344
  "models/trace/insights/InteractionToNextPaint.ts | title": {
225
345
  "message": "INP by phase"
226
346
  },
227
347
  "models/trace/insights/LCPDiscovery.ts | description": {
228
348
  "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)"
229
349
  },
350
+ "models/trace/insights/LCPDiscovery.ts | fetchPriorityApplied": {
351
+ "message": "fetchpriority=high applied"
352
+ },
353
+ "models/trace/insights/LCPDiscovery.ts | fetchPriorityShouldBeApplied": {
354
+ "message": "fetchpriority=high should be applied"
355
+ },
356
+ "models/trace/insights/LCPDiscovery.ts | lazyLoadNotApplied": {
357
+ "message": "lazy load not applied"
358
+ },
359
+ "models/trace/insights/LCPDiscovery.ts | lcpLoadDelay": {
360
+ "message": "LCP image loaded {PH1} after earliest start point."
361
+ },
362
+ "models/trace/insights/LCPDiscovery.ts | noLcp": {
363
+ "message": "No LCP detected"
364
+ },
365
+ "models/trace/insights/LCPDiscovery.ts | noLcpResource": {
366
+ "message": "No LCP resource detected because the LCP is not an image"
367
+ },
368
+ "models/trace/insights/LCPDiscovery.ts | requestDiscoverable": {
369
+ "message": "Request is discoverable in initial document"
370
+ },
230
371
  "models/trace/insights/LCPDiscovery.ts | title": {
231
372
  "message": "LCP request discovery"
232
373
  },
233
374
  "models/trace/insights/LCPPhases.ts | description": {
234
375
  "message": "Each [phase 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."
235
376
  },
377
+ "models/trace/insights/LCPPhases.ts | duration": {
378
+ "message": "Duration"
379
+ },
380
+ "models/trace/insights/LCPPhases.ts | elementRenderDelay": {
381
+ "message": "Element render delay"
382
+ },
383
+ "models/trace/insights/LCPPhases.ts | fieldDuration": {
384
+ "message": "Field 75th percentile"
385
+ },
386
+ "models/trace/insights/LCPPhases.ts | noLcp": {
387
+ "message": "No LCP detected"
388
+ },
389
+ "models/trace/insights/LCPPhases.ts | phase": {
390
+ "message": "Phase"
391
+ },
392
+ "models/trace/insights/LCPPhases.ts | resourceLoadDelay": {
393
+ "message": "Resource load delay"
394
+ },
395
+ "models/trace/insights/LCPPhases.ts | resourceLoadDuration": {
396
+ "message": "Resource load duration"
397
+ },
398
+ "models/trace/insights/LCPPhases.ts | timeToFirstByte": {
399
+ "message": "Time to First Byte"
400
+ },
236
401
  "models/trace/insights/LCPPhases.ts | title": {
237
402
  "message": "LCP by phase"
238
403
  },
239
- "models/trace/insights/LongCriticalNetworkTree.ts | description": {
404
+ "models/trace/insights/NetworkDependencyTree.ts | description": {
240
405
  "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."
241
406
  },
242
- "models/trace/insights/LongCriticalNetworkTree.ts | title": {
243
- "message": "Long critical network tree"
407
+ "models/trace/insights/NetworkDependencyTree.ts | maxCriticalPathLatency": {
408
+ "message": "Max critical path latency:"
409
+ },
410
+ "models/trace/insights/NetworkDependencyTree.ts | noNetworkDependencyTree": {
411
+ "message": "No rendering tasks impacted by network dependencies"
412
+ },
413
+ "models/trace/insights/NetworkDependencyTree.ts | title": {
414
+ "message": "Network dependency tree"
415
+ },
416
+ "models/trace/insights/NetworkDependencyTree.ts | warningDescription": {
417
+ "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."
244
418
  },
245
419
  "models/trace/insights/RenderBlocking.ts | description": {
246
420
  "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."
247
421
  },
422
+ "models/trace/insights/RenderBlocking.ts | duration": {
423
+ "message": "Duration"
424
+ },
425
+ "models/trace/insights/RenderBlocking.ts | noRenderBlocking": {
426
+ "message": "No render blocking requests for this navigation"
427
+ },
428
+ "models/trace/insights/RenderBlocking.ts | renderBlockingRequest": {
429
+ "message": "Request"
430
+ },
248
431
  "models/trace/insights/RenderBlocking.ts | title": {
249
432
  "message": "Render blocking requests"
250
433
  },
251
434
  "models/trace/insights/SlowCSSSelector.ts | description": {
252
435
  "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."
253
436
  },
437
+ "models/trace/insights/SlowCSSSelector.ts | elapsed": {
438
+ "message": "Elapsed time"
439
+ },
440
+ "models/trace/insights/SlowCSSSelector.ts | enableSelectorData": {
441
+ "message": "No CSS selector data was found. CSS selector stats need to be enabled in the performance panel settings."
442
+ },
443
+ "models/trace/insights/SlowCSSSelector.ts | matchAttempts": {
444
+ "message": "Match attempts"
445
+ },
446
+ "models/trace/insights/SlowCSSSelector.ts | matchCount": {
447
+ "message": "Match count"
448
+ },
254
449
  "models/trace/insights/SlowCSSSelector.ts | title": {
255
450
  "message": "CSS selector costs"
256
451
  },
452
+ "models/trace/insights/SlowCSSSelector.ts | topSelectors": {
453
+ "message": "Top selectors"
454
+ },
455
+ "models/trace/insights/SlowCSSSelector.ts | total": {
456
+ "message": "Total"
457
+ },
458
+ "models/trace/insights/ThirdParties.ts | columnMainThreadTime": {
459
+ "message": "Main thread time"
460
+ },
461
+ "models/trace/insights/ThirdParties.ts | columnThirdParty": {
462
+ "message": "Third party"
463
+ },
464
+ "models/trace/insights/ThirdParties.ts | columnTransferSize": {
465
+ "message": "Transfer size"
466
+ },
257
467
  "models/trace/insights/ThirdParties.ts | description": {
258
468
  "message": "Third-party code can significantly impact load performance. [Reduce and defer loading of third-party code](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/) to prioritise your page's content."
259
469
  },
470
+ "models/trace/insights/ThirdParties.ts | noThirdParties": {
471
+ "message": "No third parties found"
472
+ },
260
473
  "models/trace/insights/ThirdParties.ts | title": {
261
474
  "message": "Third parties"
262
475
  },
@@ -260,11 +260,17 @@
260
260
  "models/trace/insights/DOMSize.ts | value": {
261
261
  "message": "Value"
262
262
  },
263
- "models/trace/insights/DuplicateJavaScript.ts | description": {
263
+ "models/trace/insights/DuplicatedJavaScript.ts | columnResourceSize": {
264
+ "message": "Resource size"
265
+ },
266
+ "models/trace/insights/DuplicatedJavaScript.ts | columnSource": {
267
+ "message": "Source"
268
+ },
269
+ "models/trace/insights/DuplicatedJavaScript.ts | description": {
264
270
  "message": "Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity."
265
271
  },
266
- "models/trace/insights/DuplicateJavaScript.ts | title": {
267
- "message": "Duplicate JavaScript"
272
+ "models/trace/insights/DuplicatedJavaScript.ts | title": {
273
+ "message": "Duplicated JavaScript"
268
274
  },
269
275
  "models/trace/insights/FontDisplay.ts | description": {
270
276
  "message": "Consider setting [font-display](https://developer.chrome.com/blog/font-display) to swap or optional to ensure text is consistently visible. swap can be further optimized to mitigate layout shifts with [font metric overrides](https://developer.chrome.com/blog/font-fallbacks)."
@@ -293,6 +299,9 @@
293
299
  "models/trace/insights/ForcedReflow.ts | totalReflowTime": {
294
300
  "message": "Total reflow time"
295
301
  },
302
+ "models/trace/insights/ForcedReflow.ts | unattributed": {
303
+ "message": "Unattributed"
304
+ },
296
305
  "models/trace/insights/ImageDelivery.ts | description": {
297
306
  "message": "Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimizing image size](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)"
298
307
  },
@@ -476,6 +485,24 @@
476
485
  "models/trace/insights/ThirdParties.ts | title": {
477
486
  "message": "3rd parties"
478
487
  },
488
+ "models/trace/insights/UseCache.ts | cacheTTL": {
489
+ "message": "Cache TTL"
490
+ },
491
+ "models/trace/insights/UseCache.ts | description": {
492
+ "message": "A long cache lifetime can speed up repeat visits to your page. [Learn more](https://web.dev/uses-long-cache-ttl/)."
493
+ },
494
+ "models/trace/insights/UseCache.ts | noRequestsToCache": {
495
+ "message": "No requests with inefficient cache policies"
496
+ },
497
+ "models/trace/insights/UseCache.ts | others": {
498
+ "message": "{PH1} others"
499
+ },
500
+ "models/trace/insights/UseCache.ts | requestColumn": {
501
+ "message": "Request"
502
+ },
503
+ "models/trace/insights/UseCache.ts | title": {
504
+ "message": "Use efficient cache lifetimes"
505
+ },
479
506
  "models/trace/insights/Viewport.ts | description": {
480
507
  "message": "Tap interactions may be [delayed by up to 300\u00a0ms](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) if the viewport is not optimized for mobile."
481
508
  },
@@ -260,11 +260,17 @@
260
260
  "models/trace/insights/DOMSize.ts | value": {
261
261
  "message": "V\u0302a\u0301l\u0302u\u0301e\u0302"
262
262
  },
263
- "models/trace/insights/DuplicateJavaScript.ts | description": {
263
+ "models/trace/insights/DuplicatedJavaScript.ts | columnResourceSize": {
264
+ "message": "R\u0302e\u0301s\u0302o\u0301u\u0302r\u0301c\u0302e\u0301 s\u0302i\u0301z\u0302e\u0301"
265
+ },
266
+ "models/trace/insights/DuplicatedJavaScript.ts | columnSource": {
267
+ "message": "S\u0302o\u0301u\u0302r\u0301c\u0302e\u0301"
268
+ },
269
+ "models/trace/insights/DuplicatedJavaScript.ts | description": {
264
270
  "message": "R\u0302e\u0301m\u0302o\u0301v\u0302e\u0301 l\u0302a\u0301r\u0302g\u0301e\u0302, d\u0301u\u0302p\u0301l\u0302i\u0301c\u0302a\u0301t\u0302e\u0301 J\u0302a\u0301v\u0302a\u0301S\u0302c\u0301r\u0302i\u0301p\u0302t\u0301 m\u0302o\u0301d\u0302u\u0301l\u0302e\u0301s\u0302 f\u0301r\u0302o\u0301m\u0302 b\u0301u\u0302n\u0301d\u0302l\u0301e\u0302s\u0301 t\u0302o\u0301 r\u0302e\u0301d\u0302u\u0301c\u0302e\u0301 u\u0302n\u0301n\u0302e\u0301c\u0302e\u0301s\u0302s\u0301a\u0302r\u0301y\u0302 b\u0301y\u0302t\u0301e\u0302s\u0301 c\u0302o\u0301n\u0302s\u0301u\u0302m\u0301e\u0302d\u0301 b\u0302y\u0301 n\u0302e\u0301t\u0302w\u0301o\u0302r\u0301k\u0302 a\u0301c\u0302t\u0301i\u0302v\u0301i\u0302t\u0301y\u0302."
265
271
  },
266
- "models/trace/insights/DuplicateJavaScript.ts | title": {
267
- "message": "D\u0302u\u0301p\u0302l\u0301i\u0302c\u0301a\u0302t\u0301e\u0302 J\u0301a\u0302v\u0301a\u0302S\u0301c\u0302r\u0301i\u0302p\u0301t\u0302"
272
+ "models/trace/insights/DuplicatedJavaScript.ts | title": {
273
+ "message": "D\u0302u\u0301p\u0302l\u0301i\u0302c\u0301a\u0302t\u0301e\u0302d\u0301 J\u0302a\u0301v\u0302a\u0301S\u0302c\u0301r\u0302i\u0301p\u0302t\u0301"
268
274
  },
269
275
  "models/trace/insights/FontDisplay.ts | description": {
270
276
  "message": "C\u0302o\u0301n\u0302s\u0301i\u0302d\u0301e\u0302r\u0301 s\u0302e\u0301t\u0302t\u0301i\u0302n\u0301g\u0302 [font-display](https://developer.chrome.com/blog/font-display) t\u0301o\u0302 swap o\u0301r\u0302 optional t\u0301o\u0302 e\u0301n\u0302s\u0301u\u0302r\u0301e\u0302 t\u0301e\u0302x\u0301t\u0302 i\u0301s\u0302 c\u0301o\u0302n\u0301s\u0302i\u0301s\u0302t\u0301e\u0302n\u0301t\u0302l\u0301y\u0302 v\u0301i\u0302s\u0301i\u0302b\u0301l\u0302e\u0301. swap c\u0302a\u0301n\u0302 b\u0301e\u0302 f\u0301u\u0302r\u0301t\u0302h\u0301e\u0302r\u0301 o\u0302p\u0301t\u0302i\u0301m\u0302i\u0301z\u0302e\u0301d\u0302 t\u0301o\u0302 m\u0301i\u0302t\u0301i\u0302g\u0301a\u0302t\u0301e\u0302 l\u0301a\u0302y\u0301o\u0302u\u0301t\u0302 s\u0301h\u0302i\u0301f\u0302t\u0301s\u0302 w\u0301i\u0302t\u0301h\u0302 [f\u0301o\u0302n\u0301t\u0302 m\u0301e\u0302t\u0301r\u0302i\u0301c\u0302 o\u0301v\u0302e\u0301r\u0302r\u0301i\u0302d\u0301e\u0302s\u0301](https://developer.chrome.com/blog/font-fallbacks)."
@@ -293,6 +299,9 @@
293
299
  "models/trace/insights/ForcedReflow.ts | totalReflowTime": {
294
300
  "message": "T\u0302o\u0301t\u0302a\u0301l\u0302 r\u0301e\u0302f\u0301l\u0302o\u0301w\u0302 t\u0301i\u0302m\u0301e\u0302"
295
301
  },
302
+ "models/trace/insights/ForcedReflow.ts | unattributed": {
303
+ "message": "U\u0302n\u0301a\u0302t\u0301t\u0302r\u0301i\u0302b\u0301u\u0302t\u0301e\u0302d\u0301"
304
+ },
296
305
  "models/trace/insights/ImageDelivery.ts | description": {
297
306
  "message": "R\u0302e\u0301d\u0302u\u0301c\u0302i\u0301n\u0302g\u0301 t\u0302h\u0301e\u0302 d\u0301o\u0302w\u0301n\u0302l\u0301o\u0302a\u0301d\u0302 t\u0301i\u0302m\u0301e\u0302 o\u0301f\u0302 i\u0301m\u0302a\u0301g\u0302e\u0301s\u0302 c\u0301a\u0302n\u0301 i\u0302m\u0301p\u0302r\u0301o\u0302v\u0301e\u0302 t\u0301h\u0302e\u0301 p\u0302e\u0301r\u0302c\u0301e\u0302i\u0301v\u0302e\u0301d\u0302 l\u0301o\u0302a\u0301d\u0302 t\u0301i\u0302m\u0301e\u0302 o\u0301f\u0302 t\u0301h\u0302e\u0301 p\u0302a\u0301g\u0302e\u0301 a\u0302n\u0301d\u0302 L\u0301C\u0302P\u0301. [L\u0302e\u0301a\u0302r\u0301n\u0302 m\u0301o\u0302r\u0301e\u0302 a\u0301b\u0302o\u0301u\u0302t\u0301 o\u0302p\u0301t\u0302i\u0301m\u0302i\u0301z\u0302i\u0301n\u0302g\u0301 i\u0302m\u0301a\u0302g\u0301e\u0302 s\u0301i\u0302z\u0301e\u0302](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)"
298
307
  },
@@ -476,6 +485,24 @@
476
485
  "models/trace/insights/ThirdParties.ts | title": {
477
486
  "message": "3r\u0302d\u0301 p\u0302a\u0301r\u0302t\u0301i\u0302e\u0301s\u0302"
478
487
  },
488
+ "models/trace/insights/UseCache.ts | cacheTTL": {
489
+ "message": "C\u0302a\u0301c\u0302h\u0301e\u0302 T\u0301T\u0302L\u0301"
490
+ },
491
+ "models/trace/insights/UseCache.ts | description": {
492
+ "message": "A\u0302 l\u0301o\u0302n\u0301g\u0302 c\u0301a\u0302c\u0301h\u0302e\u0301 l\u0302i\u0301f\u0302e\u0301t\u0302i\u0301m\u0302e\u0301 c\u0302a\u0301n\u0302 s\u0301p\u0302e\u0301e\u0302d\u0301 u\u0302p\u0301 r\u0302e\u0301p\u0302e\u0301a\u0302t\u0301 v\u0302i\u0301s\u0302i\u0301t\u0302s\u0301 t\u0302o\u0301 y\u0302o\u0301u\u0302r\u0301 p\u0302a\u0301g\u0302e\u0301. [L\u0302e\u0301a\u0302r\u0301n\u0302 m\u0301o\u0302r\u0301e\u0302](https://web.dev/uses-long-cache-ttl/)."
493
+ },
494
+ "models/trace/insights/UseCache.ts | noRequestsToCache": {
495
+ "message": "N\u0302o\u0301 r\u0302e\u0301q\u0302u\u0301e\u0302s\u0301t\u0302s\u0301 w\u0302i\u0301t\u0302h\u0301 i\u0302n\u0301e\u0302f\u0301f\u0302i\u0301c\u0302i\u0301e\u0302n\u0301t\u0302 c\u0301a\u0302c\u0301h\u0302e\u0301 p\u0302o\u0301l\u0302i\u0301c\u0302i\u0301e\u0302s\u0301"
496
+ },
497
+ "models/trace/insights/UseCache.ts | others": {
498
+ "message": "{PH1} o\u0302t\u0301h\u0302e\u0301r\u0302s\u0301"
499
+ },
500
+ "models/trace/insights/UseCache.ts | requestColumn": {
501
+ "message": "R\u0302e\u0301q\u0302u\u0301e\u0302s\u0301t\u0302"
502
+ },
503
+ "models/trace/insights/UseCache.ts | title": {
504
+ "message": "U\u0302s\u0301e\u0302 e\u0301f\u0302f\u0301i\u0302c\u0301i\u0302e\u0301n\u0302t\u0301 c\u0302a\u0301c\u0302h\u0301e\u0302 l\u0301i\u0302f\u0301e\u0302t\u0301i\u0302m\u0301e\u0302s\u0301"
505
+ },
479
506
  "models/trace/insights/Viewport.ts | description": {
480
507
  "message": "T\u0302a\u0301p\u0302 i\u0301n\u0302t\u0301e\u0302r\u0301a\u0302c\u0301t\u0302i\u0301o\u0302n\u0301s\u0302 m\u0301a\u0302y\u0301 b\u0302e\u0301 [d\u0302e\u0301l\u0302a\u0301y\u0302e\u0301d\u0302 b\u0301y\u0302 u\u0301p\u0302 t\u0301o\u0302 300\u00a0m\u0301s\u0302](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) i\u0301f\u0302 t\u0301h\u0302e\u0301 v\u0302i\u0301e\u0302w\u0301p\u0302o\u0301r\u0302t\u0301 i\u0302s\u0301 n\u0302o\u0301t\u0302 o\u0301p\u0302t\u0301i\u0302m\u0301i\u0302z\u0301e\u0302d\u0301 f\u0302o\u0301r\u0302 m\u0301o\u0302b\u0301i\u0302l\u0301e\u0302."
481
508
  },