lighthouse 11.6.0 → 11.7.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 (141) hide show
  1. package/cli/test/smokehouse/core-tests.js +2 -2
  2. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +2 -2
  3. package/core/audits/byte-efficiency/byte-efficiency-audit.js +7 -7
  4. package/core/audits/byte-efficiency/render-blocking-resources.d.ts +4 -3
  5. package/core/audits/byte-efficiency/render-blocking-resources.js +6 -6
  6. package/core/audits/dobetterweb/uses-http2.d.ts +3 -3
  7. package/core/audits/dobetterweb/uses-http2.js +4 -4
  8. package/core/audits/installable-manifest.d.ts +2 -0
  9. package/core/audits/installable-manifest.js +2 -0
  10. package/core/audits/metrics/interaction-to-next-paint.js +1 -3
  11. package/core/audits/prioritize-lcp-image.d.ts +1 -1
  12. package/core/audits/work-during-interaction.js +0 -8
  13. package/core/computed/document-urls.js +1 -1
  14. package/core/computed/load-simulator.d.ts +2 -2
  15. package/core/computed/load-simulator.js +3 -2
  16. package/core/computed/main-resource.js +1 -1
  17. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +18 -6
  18. package/core/computed/metrics/lantern-first-contentful-paint.js +4 -4
  19. package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +14 -2
  20. package/core/computed/metrics/lantern-first-meaningful-paint.js +1 -1
  21. package/core/computed/metrics/lantern-interactive.d.ts +8 -6
  22. package/core/computed/metrics/lantern-interactive.js +3 -3
  23. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +14 -2
  24. package/core/computed/metrics/lantern-largest-contentful-paint.js +1 -1
  25. package/core/computed/metrics/lantern-max-potential-fid.d.ts +8 -2
  26. package/core/computed/metrics/lantern-max-potential-fid.js +3 -3
  27. package/core/computed/metrics/lantern-metric.d.ts +4 -63
  28. package/core/computed/metrics/lantern-metric.js +6 -124
  29. package/core/computed/metrics/lantern-speed-index.d.ts +8 -2
  30. package/core/computed/metrics/lantern-speed-index.js +3 -3
  31. package/core/computed/metrics/lantern-total-blocking-time.d.ts +8 -2
  32. package/core/computed/metrics/lantern-total-blocking-time.js +3 -3
  33. package/core/computed/metrics/responsiveness.d.ts +5 -13
  34. package/core/computed/metrics/responsiveness.js +10 -14
  35. package/core/computed/network-analysis.js +1 -1
  36. package/core/computed/page-dependency-graph.d.ts +4 -57
  37. package/core/computed/page-dependency-graph.js +4 -451
  38. package/core/config/config-helpers.js +1 -1
  39. package/core/gather/driver/execution-context.d.ts +2 -1
  40. package/core/gather/driver/execution-context.js +9 -9
  41. package/core/gather/driver/wait-for-condition.js +4 -2
  42. package/core/gather/gatherers/accessibility.js +2 -1
  43. package/core/gather/gatherers/css-usage.d.ts +1 -9
  44. package/core/gather/gatherers/css-usage.js +23 -25
  45. package/core/gather/gatherers/devtools-log.d.ts +4 -0
  46. package/core/gather/gatherers/devtools-log.js +7 -0
  47. package/core/gather/gatherers/full-page-screenshot.d.ts +4 -0
  48. package/core/gather/gatherers/full-page-screenshot.js +31 -35
  49. package/core/gather/gatherers/root-causes.js +1 -3
  50. package/core/gather/gatherers/trace-elements.js +1 -1
  51. package/core/gather/gatherers/trace.d.ts +1 -0
  52. package/core/gather/gatherers/trace.js +4 -0
  53. package/core/gather/navigation-runner.js +49 -62
  54. package/core/gather/session.js +5 -0
  55. package/core/gather/snapshot-runner.js +25 -25
  56. package/core/gather/timespan-runner.js +24 -25
  57. package/core/lib/asset-saver.js +1 -1
  58. package/core/lib/emulation.js +0 -3
  59. package/core/lib/{dependency-graph → lantern}/base-node.d.ts +12 -8
  60. package/core/lib/{dependency-graph → lantern}/base-node.js +8 -3
  61. package/core/lib/{dependency-graph → lantern}/cpu-node.d.ts +5 -1
  62. package/core/lib/{dependency-graph → lantern}/cpu-node.js +4 -0
  63. package/core/lib/lantern/lantern.d.ts +8 -0
  64. package/core/lib/lantern/lantern.js +31 -0
  65. package/core/lib/lantern/metric.d.ts +71 -0
  66. package/core/lib/lantern/metric.js +143 -0
  67. package/core/lib/{dependency-graph → lantern}/network-node.d.ts +17 -10
  68. package/core/lib/lantern/network-node.js +114 -0
  69. package/core/lib/lantern/page-dependency-graph.d.ts +58 -0
  70. package/core/lib/lantern/page-dependency-graph.js +463 -0
  71. package/core/lib/{dependency-graph → lantern}/simulator/connection-pool.d.ts +14 -14
  72. package/core/lib/{dependency-graph → lantern}/simulator/connection-pool.js +7 -7
  73. package/core/lib/{dependency-graph → lantern}/simulator/dns-cache.d.ts +5 -5
  74. package/core/lib/{dependency-graph → lantern}/simulator/dns-cache.js +3 -3
  75. package/core/lib/{dependency-graph → lantern}/simulator/network-analyzer.d.ts +36 -32
  76. package/core/lib/{dependency-graph → lantern}/simulator/network-analyzer.js +21 -17
  77. package/core/lib/{dependency-graph → lantern}/simulator/simulator.d.ts +18 -15
  78. package/core/lib/{dependency-graph → lantern}/simulator/simulator.js +18 -15
  79. package/core/lib/lantern/types/lantern.d.ts +129 -0
  80. package/core/lib/lantern/types/lantern.js +7 -0
  81. package/core/lib/lantern-trace-saver.d.ts +4 -4
  82. package/core/lib/lantern-trace-saver.js +6 -4
  83. package/core/lib/navigation-error.js +1 -1
  84. package/core/lib/network-recorder.js +2 -2
  85. package/core/lib/network-request.d.ts +6 -0
  86. package/core/lib/network-request.js +12 -0
  87. package/package.json +4 -5
  88. package/shared/localization/locales/ar-XB.json +1 -1
  89. package/shared/localization/locales/ar.json +1 -1
  90. package/shared/localization/locales/bg.json +1 -1
  91. package/shared/localization/locales/ca.json +1 -1
  92. package/shared/localization/locales/cs.json +1 -1
  93. package/shared/localization/locales/da.json +2 -2
  94. package/shared/localization/locales/de.json +1 -1
  95. package/shared/localization/locales/el.json +1 -1
  96. package/shared/localization/locales/en-GB.json +1 -1
  97. package/shared/localization/locales/en-US.json +3 -0
  98. package/shared/localization/locales/en-XA.json +1 -1
  99. package/shared/localization/locales/en-XL.json +3 -0
  100. package/shared/localization/locales/es-419.json +1 -1
  101. package/shared/localization/locales/es.json +1 -1
  102. package/shared/localization/locales/fi.json +1 -1
  103. package/shared/localization/locales/fil.json +1 -1
  104. package/shared/localization/locales/he.json +1 -1
  105. package/shared/localization/locales/hi.json +1 -1
  106. package/shared/localization/locales/hr.json +1 -1
  107. package/shared/localization/locales/hu.json +1 -1
  108. package/shared/localization/locales/id.json +1 -1
  109. package/shared/localization/locales/it.json +1 -1
  110. package/shared/localization/locales/ko.json +1 -1
  111. package/shared/localization/locales/lt.json +1 -1
  112. package/shared/localization/locales/nl.json +1 -1
  113. package/shared/localization/locales/no.json +1 -1
  114. package/shared/localization/locales/pl.json +1 -1
  115. package/shared/localization/locales/pt-PT.json +1 -1
  116. package/shared/localization/locales/pt.json +1 -1
  117. package/shared/localization/locales/ro.json +1 -1
  118. package/shared/localization/locales/sk.json +1 -1
  119. package/shared/localization/locales/sl.json +1 -1
  120. package/shared/localization/locales/sr-Latn.json +1 -1
  121. package/shared/localization/locales/sr.json +1 -1
  122. package/shared/localization/locales/sv.json +1 -1
  123. package/shared/localization/locales/ta.json +1 -1
  124. package/shared/localization/locales/te.json +1 -1
  125. package/shared/localization/locales/th.json +4 -4
  126. package/shared/localization/locales/tr.json +1 -1
  127. package/shared/localization/locales/uk.json +1 -1
  128. package/shared/localization/locales/vi.json +1 -1
  129. package/shared/localization/locales/zh-HK.json +1 -1
  130. package/shared/localization/locales/zh-TW.json +1 -1
  131. package/shared/localization/locales/zh.json +1 -1
  132. package/third-party/chromium-synchronization/installability-errors-test.js +1 -1
  133. package/tsconfig.json +7 -5
  134. package/types/artifacts.d.ts +1 -1
  135. package/types/gatherer.d.ts +8 -35
  136. package/types/lhr/lhr.d.ts +1 -1
  137. package/core/lib/dependency-graph/network-node.js +0 -99
  138. /package/core/lib/{dependency-graph → lantern}/simulator/simulator-timing-map.d.ts +0 -0
  139. /package/core/lib/{dependency-graph → lantern}/simulator/simulator-timing-map.js +0 -0
  140. /package/core/lib/{dependency-graph → lantern}/simulator/tcp-connection.d.ts +0 -0
  141. /package/core/lib/{dependency-graph → lantern}/simulator/tcp-connection.js +0 -0
@@ -1953,7 +1953,7 @@
1953
1953
  "message": "หน้าที่ใช้ตัวส่งสำหรับอุปกรณ์สื่อไม่มีสิทธิ์ใช้ฟีเจอร์ Back-Forward Cache"
1954
1954
  },
1955
1955
  "core/lib/bf-cache-strings.js | contentMediaPlay": {
1956
- "message": "โปรแกรมเล่นสื่อกำลังเล่นอยู่ขณะที่มีการออกจากหน้าไป"
1956
+ "message": "มีเดียเพลเยอร์กำลังเล่นอยู่ขณะที่มีการออกจากหน้าไป"
1957
1957
  },
1958
1958
  "core/lib/bf-cache-strings.js | contentMediaSession": {
1959
1959
  "message": "หน้าที่ใช้ MediaSession API และมีการตั้งสถานะการเล่นไม่มีสิทธิ์ใช้ฟีเจอร์ Back-Forward Cache"
@@ -3045,7 +3045,7 @@
3045
3045
  "message": "ระบุ `@font-display` เมื่อ [ กำหนดฟอนต์ที่กำหนดเอง ](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/css-topics/using-fonts.html)"
3046
3046
  },
3047
3047
  "node_modules/lighthouse-stack-packs/packs/magento.js | modern-image-formats": {
3048
- "message": "ลองค้นหาใน[ตลาดกลางของ Magento](https://marketplace.magento.com/catalogsearch/result/?q=webp) เพื่อหาส่วนขยายต่างๆ ของบุคคลที่สามเพื่อใช้ประโยชน์จากรูปแบบรูปภาพที่ใหม่กว่า"
3048
+ "message": "ลองค้นหาใน[มาร์เก็ตเพลสของ Magento](https://marketplace.magento.com/catalogsearch/result/?q=webp) เพื่อหาส่วนขยายต่างๆ ของบุคคลที่สามเพื่อใช้ประโยชน์จากรูปแบบรูปภาพที่ใหม่กว่า"
3049
3049
  },
3050
3050
  "node_modules/lighthouse-stack-packs/packs/magento.js | offscreen-images": {
3051
3051
  "message": "ลองแก้ไขเทมเพลตผลิตภัณฑ์และแคตตาล็อกเพื่อใช้ประโยชน์จากฟีเจอร์[การโหลดแบบ Lazy Loading](https://web.dev/native-lazy-loading) ของแพลตฟอร์มเว็บ"
@@ -3063,7 +3063,7 @@
3063
3063
  "message": "ปิดใช้[การรวมกลุ่ม JavaScript](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/js-bundling.html) ในตัวของ Magento"
3064
3064
  },
3065
3065
  "node_modules/lighthouse-stack-packs/packs/magento.js | uses-optimized-images": {
3066
- "message": "ลองค้นหาใน[ตลาดกลางของ Magento](https://marketplace.magento.com/catalogsearch/result/?q=optimize%20image) เพื่อหาส่วนขยายต่างๆ ของบุคคลที่สามเพื่อเพิ่มประสิทธิภาพให้รูปภาพ"
3066
+ "message": "ลองค้นหาใน[มาร์เก็ตเพลสของ Magento](https://marketplace.magento.com/catalogsearch/result/?q=optimize%20image) เพื่อหาส่วนขยายต่างๆ ของบุคคลที่สามเพื่อเพิ่มประสิทธิภาพให้รูปภาพ"
3067
3067
  },
3068
3068
  "node_modules/lighthouse-stack-packs/packs/magento.js | uses-rel-preconnect": {
3069
3069
  "message": "เพิ่มการเชื่อมต่อล่วงหน้าหรือคำแนะนำด้านทรัพยากรที่ DNS ดึงมาล่วงหน้าได้โดย[แก้ไขเลย์เอาต์ของธีม](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/layouts/xml-manage.html)"
@@ -3399,7 +3399,7 @@
3399
3399
  "message": "การตรวจสอบที่ผ่านแล้ว"
3400
3400
  },
3401
3401
  "report/renderer/report-utils.js | pwaRemovalMessage": {
3402
- "message": "Lighthouse จะเลิกใช้งานหมวดหมู่ PWA ในรุ่นถัดไปพร้อมกับ[เกณฑ์ความสามารถในการติดตั้งที่อัปเดตของ Chrome](https://developer.chrome.com/blog/update-install-criteria) โปรดดู[เอกสารประกอบของ PWA ฉบับปรับปรุง](https://developer.chrome.com/docs/devtools/progressive-web-apps/)สำหรับการทดสอบ PWA ในอนาคต"
3402
+ "message": "Lighthouse จะเลิกใช้งานหมวดหมู่ PWA ในรุ่นถัดไปตาม[เกณฑ์ความสามารถในการติดตั้งฉบับปรับปรุงของ Chrome](https://developer.chrome.com/blog/update-install-criteria) โปรดดู[เอกสารประกอบของ PWA ฉบับปรับปรุง](https://developer.chrome.com/docs/devtools/progressive-web-apps/)สำหรับการทดสอบ PWA ในอนาคต"
3403
3403
  },
3404
3404
  "report/renderer/report-utils.js | runtimeAnalysisWindow": {
3405
3405
  "message": "การโหลดหน้าเว็บเริ่มต้น"
@@ -3399,7 +3399,7 @@
3399
3399
  "message": "Başarılı denetimler"
3400
3400
  },
3401
3401
  "report/renderer/report-utils.js | pwaRemovalMessage": {
3402
- "message": "Lighthouse, [Chrome'un güncellenen Yüklenebilirlik Ölçütleri](https://developer.chrome.com/blog/update-install-criteria) ile birlikte, gelecekteki sürümlerden birinde PWA (progresif web uygulaması) kategorisi desteğini sonlandıracaktır. Gelecekteki PWA testleri için lütfen [güncellenmiş PWA dokümanlarına](https://developer.chrome.com/docs/devtools/progressive-web-apps/) göz atın."
3402
+ "message": "Lighthouse, [Chrome'un güncellenen yüklenebilirlik ölçütleri](https://developer.chrome.com/blog/update-install-criteria) uyarınca gelecekteki sürümlerden birinde PWA (progresif web uygulaması) kategorisi desteğini sonlandıracaktır. Gelecekteki PWA testleri için lütfen [güncellenmiş PWA dokümanlarına](https://developer.chrome.com/docs/devtools/progressive-web-apps/) göz atın."
3403
3403
  },
3404
3404
  "report/renderer/report-utils.js | runtimeAnalysisWindow": {
3405
3405
  "message": "İlk sayfa yükleme"
@@ -3399,7 +3399,7 @@
3399
3399
  "message": "Виконані перевірки"
3400
3400
  },
3401
3401
  "report/renderer/report-utils.js | pwaRemovalMessage": {
3402
- "message": "У майбутньому випуску Lighthouse більше не підтримуватиме категорію прогресивних веб-додатків. Крім того, буде [оновлено умови встановлення таких додатків у Chrome](https://developer.chrome.com/blog/update-install-criteria). Щоб підготуватися до тестування прогресивних веб-додатків, перегляньте [оновлену документацію](https://developer.chrome.com/docs/devtools/progressive-web-apps/)."
3402
+ "message": "У майбутньому випуску Lighthouse більше не підтримуватиме категорію прогресивних вебдодатків відповідно до [оновлених умов встановлення додатків у Chrome](https://developer.chrome.com/blog/update-install-criteria). Щоб підготуватися до тестування прогресивних вебдодатків, перегляньте [оновлену документацію](https://developer.chrome.com/docs/devtools/progressive-web-apps/)."
3403
3403
  },
3404
3404
  "report/renderer/report-utils.js | runtimeAnalysisWindow": {
3405
3405
  "message": "Перше завантаження сторінки"
@@ -3399,7 +3399,7 @@
3399
3399
  "message": "Số lần kiểm tra đạt yêu cầu"
3400
3400
  },
3401
3401
  "report/renderer/report-utils.js | pwaRemovalMessage": {
3402
- "message": "Ngoài [điểm mới trong Tiêu chí về khả năng cài đặt của Chrome](https://developer.chrome.com/blog/update-install-criteria), Lighthouse sẽ ngừng sử dụng danh mục PWA trong bản phát hành sau này. Vui lòng tham khảo [tài liệu mới nhất về PWA](https://developer.chrome.com/docs/devtools/progressive-web-apps/) để biết quy trình kiểm thử PWA trong tương lai."
3402
+ "message": "Theo [điểm mới trong Tiêu chí về khả năng cài đặt của Chrome](https://developer.chrome.com/blog/update-install-criteria), Lighthouse sẽ ngừng sử dụng danh mục PWA trong bản phát hành sau này. Vui lòng tham khảo [tài liệu mới nhất về PWA](https://developer.chrome.com/docs/devtools/progressive-web-apps/) để biết quy trình kiểm thử PWA trong tương lai."
3403
3403
  },
3404
3404
  "report/renderer/report-utils.js | runtimeAnalysisWindow": {
3405
3405
  "message": "Lượt tải trang đầu tiên"
@@ -3399,7 +3399,7 @@
3399
3399
  "message": "已通過的審核"
3400
3400
  },
3401
3401
  "report/renderer/report-utils.js | pwaRemovalMessage": {
3402
- "message": "除了[更新 Chrome 的安裝條件](https://developer.chrome.com/blog/update-install-criteria),Lighthouse 亦將在之後的版本淘汰 PWA 類別。如果之後要進行 PWA 測試,請參閱[新版 PWA 說明文件](https://developer.chrome.com/docs/devtools/progressive-web-apps/)。"
3402
+ "message": "根據[更新 Chrome 的安裝條件](https://developer.chrome.com/blog/update-install-criteria),Lighthouse 亦將在之後的版本淘汰 PWA 類別。如果之後要進行 PWA 測試,請參閱[新版 PWA 說明文件](https://developer.chrome.com/docs/devtools/progressive-web-apps/)。"
3403
3403
  },
3404
3404
  "report/renderer/report-utils.js | runtimeAnalysisWindow": {
3405
3405
  "message": "初始頁面載入"
@@ -3399,7 +3399,7 @@
3399
3399
  "message": "通過稽核項目"
3400
3400
  },
3401
3401
  "report/renderer/report-utils.js | pwaRemovalMessage": {
3402
- "message": "除了[更新 Chrome 的安裝條件](https://developer.chrome.com/blog/update-install-criteria),Lighthouse 也將在之後的版本淘汰 PWA 類別。如果之後要進行 PWA 測試,請參閱[新版 PWA 說明文件](https://developer.chrome.com/docs/devtools/progressive-web-apps/)。"
3402
+ "message": "根據 [Chrome 的新版安裝條件](https://developer.chrome.com/blog/update-install-criteria),Lighthouse 將於之後的版本淘汰 PWA 類別。如果之後要進行 PWA 測試,請參閱[新版 PWA 說明文件](https://developer.chrome.com/docs/devtools/progressive-web-apps/)。"
3403
3403
  },
3404
3404
  "report/renderer/report-utils.js | runtimeAnalysisWindow": {
3405
3405
  "message": "初次載入網頁"
@@ -3399,7 +3399,7 @@
3399
3399
  "message": "已通过的审核"
3400
3400
  },
3401
3401
  "report/renderer/report-utils.js | pwaRemovalMessage": {
3402
- "message": "除了 [Chrome 更新后的可安装性标准](https://developer.chrome.com/blog/update-install-criteria)之外,Lighthouse 还将在未来的版本中弃用 PWA 类别。请参阅[更新后的 PWA 文档](https://developer.chrome.com/docs/devtools/progressive-web-apps/),了解今后的 PWA 测试。"
3402
+ "message": "根据 [Chrome 更新后的可安装性标准](https://developer.chrome.com/blog/update-install-criteria)Lighthouse 将在未来的版本中弃用 PWA 类别。请参阅[更新后的 PWA 文档](https://developer.chrome.com/docs/devtools/progressive-web-apps/),了解今后的 PWA 测试。"
3403
3403
  },
3404
3404
  "report/renderer/report-utils.js | runtimeAnalysisWindow": {
3405
3405
  "message": "初始网页加载"
@@ -49,10 +49,10 @@ Array [
49
49
  "in-incognito",
50
50
  "manifest-display-not-supported",
51
51
  "manifest-display-override-not-supported",
52
- "manifest-empty",
53
52
  "manifest-location-changed",
54
53
  "manifest-missing-name-or-short-name",
55
54
  "manifest-missing-suitable-icon",
55
+ "manifest-parsing-or-network-error",
56
56
  "no-acceptable-icon",
57
57
  "no-icon-available",
58
58
  "no-id-specified",
package/tsconfig.json CHANGED
@@ -17,6 +17,7 @@
17
17
  "clients/**/*.js",
18
18
  "build/**/*.js",
19
19
  "./types/**/*.d.ts",
20
+ "./core/lib/lantern/types/**/*.d.ts",
20
21
  "eslint-local-rules.cjs",
21
22
  "third-party/axe/valid-langs.js",
22
23
  "third-party/esbuild-plugins-polyfills/esbuild-polyfills.js",
@@ -65,14 +66,15 @@
65
66
  "core/test/index-test.js",
66
67
  "core/test/lib/arbitrary-equality-map-test.js",
67
68
  "core/test/lib/asset-saver-test.js",
68
- "core/test/lib/dependency-graph/base-node-test.js",
69
- "core/test/lib/dependency-graph/simulator/connection-pool-test.js",
70
- "core/test/lib/dependency-graph/simulator/dns-cache-test.js",
71
- "core/test/lib/dependency-graph/simulator/network-analyzer-test.js",
72
- "core/test/lib/dependency-graph/simulator/simulator-test.js",
73
69
  "core/test/lib/emulation-test.js",
74
70
  "core/test/lib/i18n/i18n-test.js",
75
71
  "core/test/lib/icons-test.js",
72
+ "core/test/lib/lantern/base-node-test.js",
73
+ "core/test/lib/lantern/page-dependency-graph-test.js",
74
+ "core/test/lib/lantern/simulator/connection-pool-test.js",
75
+ "core/test/lib/lantern/simulator/dns-cache-test.js",
76
+ "core/test/lib/lantern/simulator/network-analyzer-test.js",
77
+ "core/test/lib/lantern/simulator/simulator-test.js",
76
78
  "core/test/lib/lh-element-test.js",
77
79
  "core/test/lib/lighthouse-compatibility-test.js",
78
80
  "core/test/lib/manifest-parser-test.js",
@@ -9,7 +9,7 @@ import * as TraceEngine from '@paulirish/trace_engine';
9
9
  import {LayoutShiftRootCausesData} from '@paulirish/trace_engine/models/trace/root-causes/LayoutShift.js';
10
10
 
11
11
  import {parseManifest} from '../core/lib/manifest-parser.js';
12
- import {Simulator} from '../core/lib/dependency-graph/simulator/simulator.js';
12
+ import {Simulator} from '../core/lib/lantern/simulator/simulator.js';
13
13
  import {LighthouseError} from '../core/lib/lh-error.js';
14
14
  import {NetworkRequest as _NetworkRequest} from '../core/lib/network-request.js';
15
15
  import speedline from 'speedline-core';
@@ -7,9 +7,6 @@
7
7
  import {Protocol as Crdp} from 'devtools-protocol/types/protocol.js';
8
8
  import {ProtocolMapping as CrdpMappings} from 'devtools-protocol/types/protocol-mapping.js';
9
9
 
10
- import {NetworkNode as _NetworkNode} from '../core/lib/dependency-graph/network-node.js';
11
- import {CPUNode as _CPUNode} from '../core/lib/dependency-graph/cpu-node.js';
12
- import {Simulator as _Simulator} from '../core/lib/dependency-graph/simulator/simulator.js';
13
10
  import {ExecutionContext} from '../core/gather/driver/execution-context.js';
14
11
  import {NetworkMonitor} from '../core/gather/driver/network-monitor.js';
15
12
  import {Fetcher} from '../core/gather/fetcher.js';
@@ -20,6 +17,7 @@ import Config from './config.js';
20
17
  import Result from './lhr/lhr.js';
21
18
  import Protocol from './protocol.js';
22
19
  import Puppeteer from './puppeteer.js';
20
+ import * as Lantern from '../core/lib/lantern/types/lantern.js';
23
21
 
24
22
  type CrdpEvents = CrdpMappings.Events;
25
23
  type CrdpCommands = CrdpMappings.Commands;
@@ -133,38 +131,13 @@ declare module Gatherer {
133
131
  type AnyGathererInstance = GathererInstanceExpander<Gatherer.DependencyKey>
134
132
 
135
133
  namespace Simulation {
136
- type GraphNode = import('../core/lib/dependency-graph/base-node.js').Node;
137
- type GraphNetworkNode = _NetworkNode;
138
- type GraphCPUNode = _CPUNode;
139
- type Simulator = _Simulator;
140
-
141
- interface MetricCoefficients {
142
- intercept: number;
143
- optimistic: number;
144
- pessimistic: number;
145
- }
146
-
147
- interface Options {
148
- rtt?: number;
149
- throughput?: number;
150
- observedThroughput: number;
151
- maximumConcurrentRequests?: number;
152
- cpuSlowdownMultiplier?: number;
153
- layoutTaskMultiplier?: number;
154
- additionalRttByOrigin?: Map<string, number>;
155
- serverResponseTimeByOrigin?: Map<string, number>;
156
- }
157
-
158
- interface NodeTiming {
159
- startTime: number;
160
- endTime: number;
161
- duration: number;
162
- }
163
-
164
- interface Result {
165
- timeInMs: number;
166
- nodeTimings: Map<GraphNode, NodeTiming>;
167
- }
134
+ type GraphNode = Lantern.Simulation.GraphNode<Artifacts.NetworkRequest>;
135
+ type GraphNetworkNode = Lantern.Simulation.GraphNetworkNode<Artifacts.NetworkRequest>;
136
+ type GraphCPUNode = Lantern.Simulation.GraphCPUNode;
137
+ type Simulator = Lantern.Simulation.Simulator<Artifacts.NetworkRequest>;
138
+ type NodeTiming = Lantern.Simulation.NodeTiming;
139
+ type MetricCoefficients = Lantern.Simulation.MetricCoefficients;
140
+ type Result = Lantern.Simulation.Result<Artifacts.NetworkRequest>;
168
141
  }
169
142
  }
170
143
 
@@ -150,7 +150,7 @@ declare module Result {
150
150
  width: number;
151
151
  height: number;
152
152
  };
153
- nodes: Record<string, AuditDetails.Rect>;
153
+ nodes: Record<string, {id?: string} & AuditDetails.Rect>;
154
154
  }
155
155
 
156
156
  /**
@@ -1,99 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2017 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- import * as LH from '../../../types/lh.js';
8
- import {BaseNode} from './base-node.js';
9
- import {NetworkRequest} from '../network-request.js';
10
-
11
- class NetworkNode extends BaseNode {
12
- /**
13
- * @param {LH.Artifacts.NetworkRequest} networkRecord
14
- */
15
- constructor(networkRecord) {
16
- super(networkRecord.requestId);
17
- /** @private */
18
- this._record = networkRecord;
19
- }
20
-
21
- get type() {
22
- return BaseNode.TYPES.NETWORK;
23
- }
24
-
25
- /**
26
- * @return {number}
27
- */
28
- get startTime() {
29
- return this._record.networkRequestTime * 1000;
30
- }
31
-
32
- /**
33
- * @return {number}
34
- */
35
- get endTime() {
36
- return this._record.networkEndTime * 1000;
37
- }
38
-
39
- /**
40
- * @return {LH.Artifacts.NetworkRequest}
41
- */
42
- get record() {
43
- return this._record;
44
- }
45
-
46
- /**
47
- * @return {string}
48
- */
49
- get initiatorType() {
50
- return this._record.initiator && this._record.initiator.type;
51
- }
52
-
53
- /**
54
- * @return {boolean}
55
- */
56
- get fromDiskCache() {
57
- return !!this._record.fromDiskCache;
58
- }
59
-
60
- /**
61
- * @return {boolean}
62
- */
63
- get isNonNetworkProtocol() {
64
- return NetworkRequest.isNonNetworkRequest(this._record);
65
- }
66
-
67
-
68
- /**
69
- * Returns whether this network record can be downloaded without a TCP connection.
70
- * During simulation we treat data coming in over a network connection separately from on-device data.
71
- * @return {boolean}
72
- */
73
- get isConnectionless() {
74
- return this.fromDiskCache || this.isNonNetworkProtocol;
75
- }
76
-
77
- /**
78
- * @return {boolean}
79
- */
80
- hasRenderBlockingPriority() {
81
- const priority = this._record.priority;
82
- const isScript = this._record.resourceType === NetworkRequest.TYPES.Script;
83
- const isDocument = this._record.resourceType === NetworkRequest.TYPES.Document;
84
- const isBlockingScript = priority === 'High' && isScript;
85
- const isBlockingHtmlImport = priority === 'High' && isDocument;
86
- return priority === 'VeryHigh' || isBlockingScript || isBlockingHtmlImport;
87
- }
88
-
89
- /**
90
- * @return {NetworkNode}
91
- */
92
- cloneWithoutRelationships() {
93
- const node = new NetworkNode(this._record);
94
- node.setIsMainDocument(this._isMainDocument);
95
- return node;
96
- }
97
- }
98
-
99
- export {NetworkNode};