lighthouse 10.1.1-dev.20230427 → 10.1.1-dev.20230428

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 (269) hide show
  1. package/cli/cli-flags.d.ts +1 -1
  2. package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +1 -1
  3. package/cli/test/smokehouse/report-assert.d.ts +1 -1
  4. package/core/audits/accessibility/accesskeys.d.ts +1 -1
  5. package/core/audits/accessibility/aria-allowed-attr.d.ts +1 -1
  6. package/core/audits/accessibility/aria-command-name.d.ts +1 -1
  7. package/core/audits/accessibility/aria-hidden-body.d.ts +1 -1
  8. package/core/audits/accessibility/aria-hidden-focus.d.ts +1 -1
  9. package/core/audits/accessibility/aria-input-field-name.d.ts +1 -1
  10. package/core/audits/accessibility/aria-meter-name.d.ts +1 -1
  11. package/core/audits/accessibility/aria-progressbar-name.d.ts +1 -1
  12. package/core/audits/accessibility/aria-required-attr.d.ts +1 -1
  13. package/core/audits/accessibility/aria-required-children.d.ts +1 -1
  14. package/core/audits/accessibility/aria-required-parent.d.ts +1 -1
  15. package/core/audits/accessibility/aria-roles.d.ts +1 -1
  16. package/core/audits/accessibility/aria-toggle-field-name.d.ts +1 -1
  17. package/core/audits/accessibility/aria-tooltip-name.d.ts +1 -1
  18. package/core/audits/accessibility/aria-treeitem-name.d.ts +1 -1
  19. package/core/audits/accessibility/aria-valid-attr-value.d.ts +1 -1
  20. package/core/audits/accessibility/aria-valid-attr.d.ts +1 -1
  21. package/core/audits/accessibility/axe-audit.d.ts +1 -1
  22. package/core/audits/accessibility/button-name.d.ts +1 -1
  23. package/core/audits/accessibility/bypass.d.ts +1 -1
  24. package/core/audits/accessibility/color-contrast.d.ts +1 -1
  25. package/core/audits/accessibility/definition-list.d.ts +1 -1
  26. package/core/audits/accessibility/dlitem.d.ts +1 -1
  27. package/core/audits/accessibility/document-title.d.ts +1 -1
  28. package/core/audits/accessibility/duplicate-id-active.d.ts +1 -1
  29. package/core/audits/accessibility/duplicate-id-aria.d.ts +1 -1
  30. package/core/audits/accessibility/form-field-multiple-labels.d.ts +1 -1
  31. package/core/audits/accessibility/frame-title.d.ts +1 -1
  32. package/core/audits/accessibility/heading-order.d.ts +1 -1
  33. package/core/audits/accessibility/html-has-lang.d.ts +1 -1
  34. package/core/audits/accessibility/html-lang-valid.d.ts +1 -1
  35. package/core/audits/accessibility/image-alt.d.ts +1 -1
  36. package/core/audits/accessibility/input-image-alt.d.ts +1 -1
  37. package/core/audits/accessibility/label.d.ts +1 -1
  38. package/core/audits/accessibility/link-name.d.ts +1 -1
  39. package/core/audits/accessibility/list.d.ts +1 -1
  40. package/core/audits/accessibility/listitem.d.ts +1 -1
  41. package/core/audits/accessibility/manual/custom-controls-labels.d.ts +1 -1
  42. package/core/audits/accessibility/manual/custom-controls-roles.d.ts +1 -1
  43. package/core/audits/accessibility/manual/focus-traps.d.ts +1 -1
  44. package/core/audits/accessibility/manual/focusable-controls.d.ts +1 -1
  45. package/core/audits/accessibility/manual/interactive-element-affordance.d.ts +1 -1
  46. package/core/audits/accessibility/manual/logical-tab-order.d.ts +1 -1
  47. package/core/audits/accessibility/manual/managed-focus.d.ts +1 -1
  48. package/core/audits/accessibility/manual/offscreen-content-hidden.d.ts +1 -1
  49. package/core/audits/accessibility/manual/use-landmarks.d.ts +1 -1
  50. package/core/audits/accessibility/manual/visual-order-follows-dom.d.ts +1 -1
  51. package/core/audits/accessibility/meta-refresh.d.ts +1 -1
  52. package/core/audits/accessibility/meta-viewport.d.ts +1 -1
  53. package/core/audits/accessibility/object-alt.d.ts +1 -1
  54. package/core/audits/accessibility/tabindex.d.ts +1 -1
  55. package/core/audits/accessibility/td-headers-attr.d.ts +1 -1
  56. package/core/audits/accessibility/th-has-data-cells.d.ts +1 -1
  57. package/core/audits/accessibility/valid-lang.d.ts +1 -1
  58. package/core/audits/accessibility/video-caption.d.ts +1 -1
  59. package/core/audits/audit.d.ts +1 -1
  60. package/core/audits/autocomplete.d.ts +1 -1
  61. package/core/audits/bf-cache.d.ts +1 -1
  62. package/core/audits/bootup-time.d.ts +1 -1
  63. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +1 -1
  64. package/core/audits/byte-efficiency/duplicated-javascript.d.ts +1 -1
  65. package/core/audits/byte-efficiency/efficient-animated-content.d.ts +2 -2
  66. package/core/audits/byte-efficiency/legacy-javascript.d.ts +2 -2
  67. package/core/audits/byte-efficiency/modern-image-formats.d.ts +1 -1
  68. package/core/audits/byte-efficiency/offscreen-images.d.ts +2 -2
  69. package/core/audits/byte-efficiency/render-blocking-resources.d.ts +1 -1
  70. package/core/audits/byte-efficiency/total-byte-weight.d.ts +1 -1
  71. package/core/audits/byte-efficiency/unminified-css.d.ts +1 -1
  72. package/core/audits/byte-efficiency/unminified-javascript.d.ts +1 -1
  73. package/core/audits/byte-efficiency/unused-css-rules.d.ts +1 -1
  74. package/core/audits/byte-efficiency/unused-javascript.d.ts +1 -1
  75. package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +3 -3
  76. package/core/audits/byte-efficiency/uses-optimized-images.d.ts +1 -1
  77. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +1 -1
  78. package/core/audits/byte-efficiency/uses-responsive-images.d.ts +2 -2
  79. package/core/audits/byte-efficiency/uses-text-compression.d.ts +1 -1
  80. package/core/audits/content-width.d.ts +1 -1
  81. package/core/audits/critical-request-chains.d.ts +1 -1
  82. package/core/audits/csp-xss.d.ts +1 -1
  83. package/core/audits/deprecations.d.ts +1 -1
  84. package/core/audits/diagnostics.d.ts +1 -1
  85. package/core/audits/dobetterweb/charset.d.ts +1 -1
  86. package/core/audits/dobetterweb/doctype.d.ts +1 -1
  87. package/core/audits/dobetterweb/dom-size.d.ts +1 -1
  88. package/core/audits/dobetterweb/geolocation-on-start.d.ts +1 -1
  89. package/core/audits/dobetterweb/inspector-issues.d.ts +1 -1
  90. package/core/audits/dobetterweb/js-libraries.d.ts +1 -1
  91. package/core/audits/dobetterweb/no-document-write.d.ts +1 -1
  92. package/core/audits/dobetterweb/notification-on-start.d.ts +1 -1
  93. package/core/audits/dobetterweb/paste-preventing-inputs.d.ts +1 -1
  94. package/core/audits/dobetterweb/uses-http2.d.ts +3 -3
  95. package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +1 -1
  96. package/core/audits/errors-in-console.d.ts +1 -1
  97. package/core/audits/final-screenshot.d.ts +1 -1
  98. package/core/audits/font-display.d.ts +1 -1
  99. package/core/audits/image-aspect-ratio.d.ts +1 -1
  100. package/core/audits/image-size-responsive.d.ts +1 -1
  101. package/core/audits/installable-manifest.d.ts +1 -1
  102. package/core/audits/is-on-https.d.ts +1 -1
  103. package/core/audits/largest-contentful-paint-element.d.ts +1 -1
  104. package/core/audits/layout-shift-elements.d.ts +1 -1
  105. package/core/audits/lcp-lazy-loaded.d.ts +1 -1
  106. package/core/audits/long-tasks.d.ts +1 -1
  107. package/core/audits/main-thread-tasks.d.ts +1 -1
  108. package/core/audits/mainthread-work-breakdown.d.ts +1 -1
  109. package/core/audits/manual/manual-audit.d.ts +1 -1
  110. package/core/audits/manual/pwa-cross-browser.d.ts +1 -1
  111. package/core/audits/manual/pwa-each-page-has-url.d.ts +1 -1
  112. package/core/audits/manual/pwa-page-transitions.d.ts +1 -1
  113. package/core/audits/maskable-icon.d.ts +1 -1
  114. package/core/audits/metrics/cumulative-layout-shift.d.ts +1 -1
  115. package/core/audits/metrics/experimental-interaction-to-next-paint.d.ts +1 -1
  116. package/core/audits/metrics/first-contentful-paint-3g.d.ts +1 -1
  117. package/core/audits/metrics/first-contentful-paint.d.ts +1 -1
  118. package/core/audits/metrics/first-meaningful-paint.d.ts +1 -1
  119. package/core/audits/metrics/interactive.d.ts +1 -1
  120. package/core/audits/metrics/largest-contentful-paint.d.ts +1 -1
  121. package/core/audits/metrics/max-potential-fid.d.ts +1 -1
  122. package/core/audits/metrics/speed-index.d.ts +1 -1
  123. package/core/audits/metrics/total-blocking-time.d.ts +1 -1
  124. package/core/audits/metrics.d.ts +1 -1
  125. package/core/audits/multi-check-audit.d.ts +1 -1
  126. package/core/audits/network-requests.d.ts +1 -1
  127. package/core/audits/network-rtt.d.ts +1 -1
  128. package/core/audits/network-server-latency.d.ts +1 -1
  129. package/core/audits/no-unload-listeners.d.ts +1 -1
  130. package/core/audits/non-composited-animations.d.ts +1 -1
  131. package/core/audits/performance-budget.d.ts +2 -2
  132. package/core/audits/predictive-perf.d.ts +1 -1
  133. package/core/audits/preload-fonts.d.ts +1 -1
  134. package/core/audits/prioritize-lcp-image.d.ts +2 -2
  135. package/core/audits/redirects.d.ts +2 -2
  136. package/core/audits/resource-summary.d.ts +1 -1
  137. package/core/audits/screenshot-thumbnails.d.ts +2 -2
  138. package/core/audits/script-treemap-data.d.ts +1 -1
  139. package/core/audits/seo/canonical.d.ts +1 -1
  140. package/core/audits/seo/crawlable-anchors.d.ts +1 -1
  141. package/core/audits/seo/font-size.d.ts +1 -1
  142. package/core/audits/seo/hreflang.d.ts +1 -1
  143. package/core/audits/seo/http-status-code.d.ts +1 -1
  144. package/core/audits/seo/is-crawlable.d.ts +1 -1
  145. package/core/audits/seo/link-text.d.ts +1 -1
  146. package/core/audits/seo/manual/structured-data.d.ts +1 -1
  147. package/core/audits/seo/meta-description.d.ts +1 -1
  148. package/core/audits/seo/plugins.d.ts +1 -1
  149. package/core/audits/seo/robots-txt.d.ts +1 -1
  150. package/core/audits/seo/tap-targets.d.ts +1 -1
  151. package/core/audits/server-response-time.d.ts +1 -1
  152. package/core/audits/service-worker.d.ts +1 -1
  153. package/core/audits/splash-screen.d.ts +2 -2
  154. package/core/audits/themed-omnibox.d.ts +2 -2
  155. package/core/audits/third-party-facades.d.ts +2 -2
  156. package/core/audits/third-party-summary.d.ts +2 -2
  157. package/core/audits/timing-budget.d.ts +3 -3
  158. package/core/audits/unsized-images.d.ts +1 -1
  159. package/core/audits/user-timings.d.ts +1 -1
  160. package/core/audits/uses-rel-preconnect.d.ts +1 -1
  161. package/core/audits/uses-rel-preload.d.ts +2 -2
  162. package/core/audits/valid-source-maps.d.ts +2 -2
  163. package/core/audits/viewport.d.ts +1 -1
  164. package/core/audits/violation-audit.d.ts +1 -1
  165. package/core/audits/work-during-interaction.d.ts +2 -2
  166. package/core/computed/critical-request-chains.d.ts +1 -1
  167. package/core/computed/load-simulator.d.ts +2 -2
  168. package/core/computed/metrics/cumulative-layout-shift.d.ts +1 -1
  169. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
  170. package/core/computed/metrics/first-contentful-paint.d.ts +1 -1
  171. package/core/computed/metrics/first-meaningful-paint.d.ts +1 -1
  172. package/core/computed/metrics/interactive.d.ts +1 -1
  173. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +1 -1
  174. package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +1 -1
  175. package/core/computed/metrics/lantern-interactive.d.ts +1 -1
  176. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +1 -1
  177. package/core/computed/metrics/lantern-max-potential-fid.d.ts +1 -1
  178. package/core/computed/metrics/lantern-metric.d.ts +1 -1
  179. package/core/computed/metrics/lantern-speed-index.d.ts +1 -1
  180. package/core/computed/metrics/lantern-total-blocking-time.d.ts +1 -1
  181. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
  182. package/core/computed/metrics/largest-contentful-paint.d.ts +1 -1
  183. package/core/computed/metrics/max-potential-fid.d.ts +1 -1
  184. package/core/computed/metrics/navigation-metric.d.ts +1 -1
  185. package/core/computed/metrics/responsiveness.d.ts +1 -1
  186. package/core/computed/metrics/speed-index.d.ts +1 -1
  187. package/core/computed/metrics/time-to-first-byte.d.ts +1 -1
  188. package/core/computed/metrics/total-blocking-time.d.ts +1 -1
  189. package/core/computed/network-records.d.ts +1 -1
  190. package/core/computed/page-dependency-graph.d.ts +4 -4
  191. package/core/computed/processed-navigation.d.ts +1 -1
  192. package/core/computed/resource-summary.d.ts +4 -4
  193. package/core/config/default-config.d.ts +1 -1
  194. package/core/config/desktop-config.d.ts +1 -1
  195. package/core/gather/base-gatherer.d.ts +1 -1
  196. package/core/gather/driver/execution-context.d.ts +1 -1
  197. package/core/gather/driver/network-monitor.d.ts +2 -2
  198. package/core/gather/driver.d.ts +3 -3
  199. package/core/gather/fetcher.d.ts +1 -1
  200. package/core/gather/gatherers/accessibility.d.ts +1 -1
  201. package/core/gather/gatherers/anchor-elements.d.ts +1 -1
  202. package/core/gather/gatherers/bf-cache-failures.d.ts +1 -1
  203. package/core/gather/gatherers/cache-contents.d.ts +1 -1
  204. package/core/gather/gatherers/console-messages.d.ts +1 -1
  205. package/core/gather/gatherers/css-usage.d.ts +1 -1
  206. package/core/gather/gatherers/devtools-log-compat.d.ts +1 -1
  207. package/core/gather/gatherers/devtools-log.d.ts +1 -1
  208. package/core/gather/gatherers/dobetterweb/doctype.d.ts +1 -1
  209. package/core/gather/gatherers/dobetterweb/domstats.d.ts +1 -1
  210. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +2 -2
  211. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +2 -2
  212. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +1 -1
  213. package/core/gather/gatherers/full-page-screenshot.d.ts +1 -1
  214. package/core/gather/gatherers/global-listeners.d.ts +1 -1
  215. package/core/gather/gatherers/iframe-elements.d.ts +1 -1
  216. package/core/gather/gatherers/image-elements.d.ts +1 -1
  217. package/core/gather/gatherers/inputs.d.ts +1 -1
  218. package/core/gather/gatherers/inspector-issues.d.ts +1 -1
  219. package/core/gather/gatherers/installability-errors.d.ts +1 -1
  220. package/core/gather/gatherers/js-usage.d.ts +1 -1
  221. package/core/gather/gatherers/link-elements.d.ts +1 -1
  222. package/core/gather/gatherers/main-document-content.d.ts +1 -1
  223. package/core/gather/gatherers/meta-elements.d.ts +1 -1
  224. package/core/gather/gatherers/network-user-agent.d.ts +1 -1
  225. package/core/gather/gatherers/script-elements.d.ts +2 -2
  226. package/core/gather/gatherers/scripts.d.ts +1 -1
  227. package/core/gather/gatherers/seo/embedded-content.d.ts +1 -1
  228. package/core/gather/gatherers/seo/font-size.d.ts +1 -1
  229. package/core/gather/gatherers/seo/robots-txt.d.ts +1 -1
  230. package/core/gather/gatherers/seo/tap-targets.d.ts +1 -1
  231. package/core/gather/gatherers/service-worker.d.ts +1 -1
  232. package/core/gather/gatherers/source-maps.d.ts +1 -1
  233. package/core/gather/gatherers/stacks.d.ts +1 -1
  234. package/core/gather/gatherers/trace-compat.d.ts +1 -1
  235. package/core/gather/gatherers/trace-elements.d.ts +2 -2
  236. package/core/gather/gatherers/trace.d.ts +1 -1
  237. package/core/gather/gatherers/viewport-dimensions.d.ts +1 -1
  238. package/core/gather/gatherers/web-app-manifest.d.ts +1 -1
  239. package/core/gather/navigation-runner.d.ts +3 -3
  240. package/core/gather/runner-helpers.js +18 -4
  241. package/core/index.d.ts +2 -2
  242. package/core/legacy/gather/connections/connection.d.ts +1 -1
  243. package/core/legacy/gather/connections/cri.d.ts +2 -2
  244. package/core/legacy/gather/connections/raw.d.ts +1 -1
  245. package/core/legacy/gather/driver.d.ts +3 -3
  246. package/core/legacy/gather/gather-runner.js +1 -1
  247. package/core/lib/dependency-graph/cpu-node.d.ts +2 -2
  248. package/core/lib/dependency-graph/network-node.d.ts +3 -3
  249. package/core/lib/dependency-graph/simulator/connection-pool.d.ts +2 -2
  250. package/core/lib/dependency-graph/simulator/dns-cache.d.ts +1 -1
  251. package/core/lib/dependency-graph/simulator/simulator.d.ts +5 -5
  252. package/core/lib/lh-trace-processor.d.ts +1 -1
  253. package/core/lib/navigation-error.d.ts +2 -2
  254. package/core/lib/network-recorder.d.ts +1 -1
  255. package/core/lib/network-request.d.ts +1 -1
  256. package/core/lib/tracehouse/main-thread-tasks.d.ts +1 -1
  257. package/core/lib/tracehouse/task-summary.d.ts +1 -1
  258. package/core/runner.d.ts +2 -2
  259. package/core/scoring.d.ts +1 -1
  260. package/core/user-flow.d.ts +1 -1
  261. package/package.json +2 -2
  262. package/report/renderer/performance-category-renderer.d.ts +1 -1
  263. package/report/renderer/pwa-category-renderer.d.ts +1 -1
  264. package/report/renderer/report-globals.d.ts +1 -1
  265. package/report/renderer/report-renderer.d.ts +1 -1
  266. package/report/renderer/report-ui-features.d.ts +1 -1
  267. package/report/renderer/topbar-features.d.ts +1 -1
  268. package/shared/localization/i18n-module.d.ts +2 -2
  269. package/types/internal/test.d.ts +1 -1
@@ -49,5 +49,5 @@ declare class TagsBlockingFirstPaint extends FRGatherer {
49
49
  */
50
50
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['TagsBlockingFirstPaint']>;
51
51
  }
52
- import FRGatherer from "../../base-gatherer.js";
52
+ import FRGatherer from '../../base-gatherer.js';
53
53
  //# sourceMappingURL=tags-blocking-first-paint.d.ts.map
@@ -31,5 +31,5 @@ declare class FullPageScreenshot extends FRGatherer {
31
31
  */
32
32
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['FullPageScreenshot']>;
33
33
  }
34
- import FRGatherer from "../base-gatherer.js";
34
+ import FRGatherer from '../base-gatherer.js';
35
35
  //# sourceMappingURL=full-page-screenshot.d.ts.map
@@ -23,5 +23,5 @@ declare class GlobalListeners extends FRGatherer {
23
23
  */
24
24
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['GlobalListeners']>;
25
25
  }
26
- import FRGatherer from "../base-gatherer.js";
26
+ import FRGatherer from '../base-gatherer.js';
27
27
  //# sourceMappingURL=global-listeners.d.ts.map
@@ -7,5 +7,5 @@ declare class IFrameElements extends FRGatherer {
7
7
  */
8
8
  override getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['IFrameElements']>;
9
9
  }
10
- import FRGatherer from "../base-gatherer.js";
10
+ import FRGatherer from '../base-gatherer.js';
11
11
  //# sourceMappingURL=iframe-elements.d.ts.map
@@ -31,5 +31,5 @@ declare class ImageElements extends FRGatherer {
31
31
  */
32
32
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['ImageElements']>;
33
33
  }
34
- import FRGatherer from "../base-gatherer.js";
34
+ import FRGatherer from '../base-gatherer.js';
35
35
  //# sourceMappingURL=image-elements.d.ts.map
@@ -6,5 +6,5 @@ declare class Inputs extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['Inputs']>;
8
8
  }
9
- import FRGatherer from "../base-gatherer.js";
9
+ import FRGatherer from '../base-gatherer.js';
10
10
  //# sourceMappingURL=inputs.d.ts.map
@@ -34,5 +34,5 @@ declare class InspectorIssues extends FRGatherer {
34
34
  */
35
35
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['InspectorIssues']>;
36
36
  }
37
- import FRGatherer from "../base-gatherer.js";
37
+ import FRGatherer from '../base-gatherer.js';
38
38
  //# sourceMappingURL=inspector-issues.d.ts.map
@@ -13,5 +13,5 @@ declare class InstallabilityErrors extends FRGatherer {
13
13
  */
14
14
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['InstallabilityErrors']>;
15
15
  }
16
- import FRGatherer from "../base-gatherer.js";
16
+ import FRGatherer from '../base-gatherer.js';
17
17
  //# sourceMappingURL=installability-errors.d.ts.map
@@ -18,5 +18,5 @@ declare class JsUsage extends FRGatherer {
18
18
  */
19
19
  getArtifact(): Promise<LH.Artifacts['JsUsage']>;
20
20
  }
21
- import FRGatherer from "../base-gatherer.js";
21
+ import FRGatherer from '../base-gatherer.js';
22
22
  //# sourceMappingURL=js-usage.d.ts.map
@@ -38,5 +38,5 @@ declare class LinkElements extends FRGatherer {
38
38
  export namespace UIStrings {
39
39
  const headerParseWarning: string;
40
40
  }
41
- import FRGatherer from "../base-gatherer.js";
41
+ import FRGatherer from '../base-gatherer.js';
42
42
  //# sourceMappingURL=link-elements.d.ts.map
@@ -23,5 +23,5 @@ declare class MainDocumentContent extends FRGatherer {
23
23
  */
24
24
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['MainDocumentContent']>;
25
25
  }
26
- import FRGatherer from "../base-gatherer.js";
26
+ import FRGatherer from '../base-gatherer.js';
27
27
  //# sourceMappingURL=main-document-content.d.ts.map
@@ -6,5 +6,5 @@ declare class MetaElements extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['MetaElements']>;
8
8
  }
9
- import FRGatherer from "../base-gatherer.js";
9
+ import FRGatherer from '../base-gatherer.js';
10
10
  //# sourceMappingURL=meta-elements.d.ts.map
@@ -14,5 +14,5 @@ declare class NetworkUserAgent extends FRGatherer implements LH.Gatherer.FRGathe
14
14
  */
15
15
  getArtifact(context: LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>): Promise<LH.Artifacts['NetworkUserAgent']>;
16
16
  }
17
- import FRGatherer from "../base-gatherer.js";
17
+ import FRGatherer from '../base-gatherer.js';
18
18
  //# sourceMappingURL=network-user-agent.d.ts.map
@@ -21,6 +21,6 @@ declare class ScriptElements extends FRGatherer {
21
21
  */
22
22
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<import("../../index.js").Artifacts.ScriptElement[]>;
23
23
  }
24
- import FRGatherer from "../base-gatherer.js";
25
- import { NetworkRequest } from "../../lib/network-request.js";
24
+ import FRGatherer from '../base-gatherer.js';
25
+ import { NetworkRequest } from '../../lib/network-request.js';
26
26
  //# sourceMappingURL=script-elements.d.ts.map
@@ -23,5 +23,5 @@ declare class Scripts extends FRGatherer {
23
23
  stopInstrumentation(context: LH.Gatherer.FRTransitionalContext): Promise<void>;
24
24
  getArtifact(): Promise<import("../../index.js").Artifacts.Script[]>;
25
25
  }
26
- import FRGatherer from "../base-gatherer.js";
26
+ import FRGatherer from '../base-gatherer.js';
27
27
  //# sourceMappingURL=scripts.d.ts.map
@@ -6,5 +6,5 @@ declare class EmbeddedContent extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['EmbeddedContent']>;
8
8
  }
9
- import FRGatherer from "../../base-gatherer.js";
9
+ import FRGatherer from '../../base-gatherer.js';
10
10
  //# sourceMappingURL=embedded-content.d.ts.map
@@ -127,5 +127,5 @@ export function getEffectiveFontRule({ attributesStyle, inlineStyle, matchedCSSR
127
127
  * @return {NodeFontData['cssRule']|undefined}
128
128
  */
129
129
  export function findMostSpecificMatchedCSSRule(matchedCSSRules: import("devtools-protocol").Protocol.CSS.RuleMatch[] | undefined, isDeclarationOfInterest: (arg0: LH.Crdp.CSS.CSSStyle) => boolean | string | undefined): NodeFontData['cssRule'] | undefined;
130
- import FRGatherer from "../../base-gatherer.js";
130
+ import FRGatherer from '../../base-gatherer.js';
131
131
  //# sourceMappingURL=font-size.d.ts.map
@@ -6,5 +6,5 @@ declare class RobotsTxt extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['RobotsTxt']>;
8
8
  }
9
- import FRGatherer from "../../base-gatherer.js";
9
+ import FRGatherer from '../../base-gatherer.js';
10
10
  //# sourceMappingURL=robots-txt.d.ts.map
@@ -17,5 +17,5 @@ declare class TapTargets extends FRGatherer {
17
17
  */
18
18
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts.TapTarget[]>;
19
19
  }
20
- import FRGatherer from "../../base-gatherer.js";
20
+ import FRGatherer from '../../base-gatherer.js';
21
21
  //# sourceMappingURL=tap-targets.d.ts.map
@@ -12,5 +12,5 @@ declare class ServiceWorker extends FRGatherer {
12
12
  */
13
13
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['ServiceWorker']>;
14
14
  }
15
- import FRGatherer from "../base-gatherer.js";
15
+ import FRGatherer from '../base-gatherer.js';
16
16
  //# sourceMappingURL=service-worker.d.ts.map
@@ -46,5 +46,5 @@ declare class SourceMaps extends FRGatherer {
46
46
  */
47
47
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['SourceMaps']>;
48
48
  }
49
- import FRGatherer from "../base-gatherer.js";
49
+ import FRGatherer from '../base-gatherer.js';
50
50
  //# sourceMappingURL=source-maps.d.ts.map
@@ -34,5 +34,5 @@ declare class Stacks extends FRGatherer implements LH.Gatherer.FRGathererInstanc
34
34
  */
35
35
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['Stacks']>;
36
36
  }
37
- import FRGatherer from "../base-gatherer.js";
37
+ import FRGatherer from '../base-gatherer.js';
38
38
  //# sourceMappingURL=stacks.d.ts.map
@@ -9,5 +9,5 @@ declare class TraceCompat extends FRGatherer implements LH.Gatherer.FRGathererIn
9
9
  */
10
10
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext<'Trace'>): Promise<LH.Artifacts['traces']>;
11
11
  }
12
- import FRGatherer from "../base-gatherer.js";
12
+ import FRGatherer from '../base-gatherer.js';
13
13
  //# sourceMappingURL=trace-compat.d.ts.map
@@ -78,6 +78,6 @@ declare class TraceElements extends FRGatherer {
78
78
  */
79
79
  afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts.TraceElement[]>;
80
80
  }
81
- import FRGatherer from "../base-gatherer.js";
82
- import Trace from "./trace.js";
81
+ import FRGatherer from '../base-gatherer.js';
82
+ import Trace from './trace.js';
83
83
  //# sourceMappingURL=trace-elements.d.ts.map
@@ -19,5 +19,5 @@ declare class Trace extends FRGatherer {
19
19
  stopSensitiveInstrumentation({ driver }: LH.Gatherer.FRTransitionalContext): Promise<void>;
20
20
  getArtifact(): import("../../index.js").Trace;
21
21
  }
22
- import FRGatherer from "../base-gatherer.js";
22
+ import FRGatherer from '../base-gatherer.js';
23
23
  //# sourceMappingURL=trace.d.ts.map
@@ -6,5 +6,5 @@ declare class ViewportDimensions extends FRGatherer {
6
6
  */
7
7
  getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts.ViewportDimensions>;
8
8
  }
9
- import FRGatherer from "../base-gatherer.js";
9
+ import FRGatherer from '../base-gatherer.js';
10
10
  //# sourceMappingURL=viewport-dimensions.d.ts.map
@@ -28,5 +28,5 @@ declare class WebAppManifest extends FRGatherer {
28
28
  */
29
29
  getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['WebAppManifest']>;
30
30
  }
31
- import FRGatherer from "../base-gatherer.js";
31
+ import FRGatherer from '../base-gatherer.js';
32
32
  //# sourceMappingURL=web-app-manifest.d.ts.map
@@ -75,9 +75,9 @@ export function _cleanup({ requestedUrl, driver, resolvedConfig, lhBrowser, lhPa
75
75
  lhBrowser?: LH.Puppeteer.Browser;
76
76
  lhPage?: LH.Puppeteer.Page;
77
77
  }): Promise<void>;
78
- import { Driver } from "./driver.js";
79
- import { collectPhaseArtifacts } from "./runner-helpers.js";
80
- import { LighthouseError } from "../lib/lh-error.js";
78
+ import { Driver } from './driver.js';
79
+ import { collectPhaseArtifacts } from './runner-helpers.js';
80
+ import { LighthouseError } from '../lib/lh-error.js';
81
81
  /**
82
82
  * @param {NavigationContext} navigationContext
83
83
  * @param {PhaseState} phaseState
@@ -78,19 +78,27 @@ async function collectPhaseArtifacts(options) {
78
78
  } = options;
79
79
  const priorPhase = phaseToPriorPhase[phase];
80
80
  const priorPhaseArtifacts = (priorPhase && artifactState[priorPhase]) || {};
81
+ const isFinalPhase = phase === 'getArtifact';
81
82
 
82
83
  for (const artifactDefn of artifactDefinitions) {
83
- const logLevel = phase === 'getArtifact' ? 'log' : 'verbose';
84
- log[logLevel](`artifacts:${phase}`, artifactDefn.id);
84
+ log.verbose(`artifacts:${phase}`, artifactDefn.id);
85
85
  const gatherer = artifactDefn.gatherer.instance;
86
86
 
87
87
  const priorArtifactPromise = priorPhaseArtifacts[artifactDefn.id] || Promise.resolve();
88
88
  const artifactPromise = priorArtifactPromise.then(async () => {
89
- const dependencies = phase === 'getArtifact'
89
+ const dependencies = isFinalPhase
90
90
  ? await collectArtifactDependencies(artifactDefn, artifactState.getArtifact)
91
91
  : /** @type {Dependencies} */ ({});
92
92
 
93
- return gatherer[phase]({
93
+ const status = {
94
+ msg: `Getting artifact: ${artifactDefn.id}`,
95
+ id: `lh:gather:getArtifact:${artifactDefn.id}`,
96
+ };
97
+ if (isFinalPhase) {
98
+ log.time(status);
99
+ }
100
+
101
+ const artifact = await gatherer[phase]({
94
102
  gatherMode,
95
103
  driver,
96
104
  page,
@@ -99,6 +107,12 @@ async function collectPhaseArtifacts(options) {
99
107
  computedCache,
100
108
  settings,
101
109
  });
110
+
111
+ if (isFinalPhase) {
112
+ log.timeEnd(status);
113
+ }
114
+
115
+ return artifact;
102
116
  });
103
117
 
104
118
  await artifactPromise.catch(() => {});
package/core/index.d.ts CHANGED
@@ -83,6 +83,6 @@ export function auditFlowArtifacts(flowArtifacts: LH.UserFlow.FlowArtifacts, con
83
83
  }>;
84
84
  export function getAuditList(): string[];
85
85
  export const traceCategories: string[];
86
- import * as LH from "../types/lh.js";
87
- import { UserFlow } from "./user-flow.js";
86
+ import * as LH from '../types/lh.js';
87
+ import { UserFlow } from './user-flow.js';
88
88
  //# sourceMappingURL=index.d.ts.map
@@ -71,5 +71,5 @@ export class Connection {
71
71
  */
72
72
  protected dispose(): void;
73
73
  }
74
- import * as LH from "../../../../types/lh.js";
74
+ import * as LH from '../../../../types/lh.js';
75
75
  //# sourceMappingURL=connection.d.ts.map
@@ -22,6 +22,6 @@ export class CriConnection extends Connection {
22
22
  */
23
23
  private _runJsonCommand;
24
24
  }
25
- import { Connection } from "./connection.js";
26
- import WebSocket from "ws";
25
+ import { Connection } from './connection.js';
26
+ import WebSocket from 'ws';
27
27
  //# sourceMappingURL=cri.d.ts.map
@@ -16,5 +16,5 @@ export class RawConnection extends Connection {
16
16
  constructor(port: Port);
17
17
  _port: Port;
18
18
  }
19
- import { Connection } from "./connection.js";
19
+ import { Connection } from './connection.js';
20
20
  //# sourceMappingURL=raw.d.ts.map
@@ -209,7 +209,7 @@ export class Driver implements LH.Gatherer.FRTransitionalDriver {
209
209
  endDevtoolsLog(): Promise<LH.DevtoolsLog>;
210
210
  url(): Promise<string>;
211
211
  }
212
- import * as LH from "../../../types/lh.js";
213
- import { ExecutionContext } from "../../gather/driver/execution-context.js";
214
- import { Fetcher } from "../../gather/fetcher.js";
212
+ import * as LH from '../../../types/lh.js';
213
+ import { ExecutionContext } from '../../gather/driver/execution-context.js';
214
+ import { Fetcher } from '../../gather/fetcher.js';
215
215
  //# sourceMappingURL=driver.d.ts.map
@@ -452,7 +452,7 @@ class GatherRunner {
452
452
  // Add a `bidx=20` query param, eg: https://www.example.com/?bidx=50
453
453
  const parsedUrl = UrlUtils.isValid(options.requestedUrl) && new URL(options.requestedUrl);
454
454
  if (options.settings.channel === 'lr' && parsedUrl && parsedUrl.searchParams.has('bidx')) {
455
- const bidxRunCount = parsedUrl.searchParams.get('bidx') || 0;
455
+ const bidxRunCount = Number(parsedUrl.searchParams.get('bidx')) || 0;
456
456
  // Add the first bidx into the new set
457
457
  const indexes = [baseArtifacts.BenchmarkIndex];
458
458
  for (let i = 0; i < bidxRunCount; i++) {
@@ -29,6 +29,6 @@ export class CPUNode extends BaseNode {
29
29
  */
30
30
  cloneWithoutRelationships(): CPUNode;
31
31
  }
32
- import { BaseNode } from "./base-node.js";
33
- import * as LH from "../../../types/lh.js";
32
+ import { BaseNode } from './base-node.js';
33
+ import * as LH from '../../../types/lh.js';
34
34
  //# sourceMappingURL=cpu-node.d.ts.map
@@ -37,7 +37,7 @@ export class NetworkNode extends BaseNode {
37
37
  */
38
38
  cloneWithoutRelationships(): NetworkNode;
39
39
  }
40
- import { BaseNode } from "./base-node.js";
41
- import { NetworkRequest } from "../network-request.js";
42
- import * as LH from "../../../types/lh.js";
40
+ import { BaseNode } from './base-node.js';
41
+ import { NetworkRequest } from '../network-request.js';
42
+ import * as LH from '../../../types/lh.js';
43
43
  //# sourceMappingURL=network-node.d.ts.map
@@ -53,6 +53,6 @@ export class ConnectionPool {
53
53
  */
54
54
  release(record: LH.Artifacts.NetworkRequest): void;
55
55
  }
56
- import * as LH from "../../../../types/lh.js";
57
- import { TcpConnection } from "./tcp-connection.js";
56
+ import * as LH from '../../../../types/lh.js';
57
+ import { TcpConnection } from './tcp-connection.js';
58
58
  //# sourceMappingURL=connection-pool.d.ts.map
@@ -36,7 +36,7 @@ export class DNSCache {
36
36
  export namespace DNSCache {
37
37
  export { DNS_RESOLUTION_RTT_MULTIPLIER as RTT_MULTIPLIER };
38
38
  }
39
- import * as LH from "../../../../types/lh.js";
39
+ import * as LH from '../../../../types/lh.js';
40
40
  declare const DNS_RESOLUTION_RTT_MULTIPLIER: 2;
41
41
  export {};
42
42
  //# sourceMappingURL=dns-cache.d.ts.map
@@ -146,9 +146,9 @@ export class Simulator {
146
146
  */
147
147
  computeWastedMsFromWastedBytes(wastedBytes: number): number;
148
148
  }
149
- import * as LH from "../../../../types/lh.js";
150
- import { SimulatorTimingMap } from "./simulator-timing-map.js";
151
- import { DNSCache } from "./dns-cache.js";
152
- import { ConnectionPool } from "./connection-pool.js";
153
- import { TcpConnection } from "./tcp-connection.js";
149
+ import * as LH from '../../../../types/lh.js';
150
+ import { SimulatorTimingMap } from './simulator-timing-map.js';
151
+ import { DNSCache } from './dns-cache.js';
152
+ import { ConnectionPool } from './connection-pool.js';
153
+ import { TcpConnection } from './tcp-connection.js';
154
154
  //# sourceMappingURL=simulator.d.ts.map
@@ -1,5 +1,5 @@
1
1
  export default LHTraceProcessor;
2
2
  declare class LHTraceProcessor extends TraceProcessor {
3
3
  }
4
- import { TraceProcessor } from "../lib/tracehouse/trace-processor.js";
4
+ import { TraceProcessor } from '../lib/tracehouse/trace-processor.js';
5
5
  //# sourceMappingURL=lh-trace-processor.d.ts.map
@@ -34,6 +34,6 @@ export function getNonHtmlError(finalRecord: LH.Artifacts.NetworkRequest | undef
34
34
  export namespace UIStrings {
35
35
  const warningXhtml: string;
36
36
  }
37
- import { NetworkRequest } from "./network-request.js";
38
- import { LighthouseError } from "./lh-error.js";
37
+ import { NetworkRequest } from './network-request.js';
38
+ import { LighthouseError } from './lh-error.js';
39
39
  //# sourceMappingURL=navigation-error.d.ts.map
@@ -110,6 +110,6 @@ export class NetworkRecorder extends NetworkRecorder_base {
110
110
  */
111
111
  _findRealRequestAndSetSession(requestId: string, sessionId: string | undefined): NetworkRequest | undefined;
112
112
  }
113
- import { NetworkRequest } from "./network-request.js";
113
+ import { NetworkRequest } from './network-request.js';
114
114
  export {};
115
115
  //# sourceMappingURL=network-recorder.d.ts.map
@@ -235,7 +235,7 @@ export namespace NetworkRequest {
235
235
  export { HEADER_FETCHED_SIZE };
236
236
  export { HEADER_PROTOCOL_IS_H2 };
237
237
  }
238
- import * as LH from "../../types/lh.js";
238
+ import * as LH from '../../types/lh.js';
239
239
  declare const HEADER_TCP: "X-TCPMs";
240
240
  declare const HEADER_SSL: "X-SSLMs";
241
241
  declare const HEADER_REQ: "X-RequestMs";
@@ -158,5 +158,5 @@ export class MainThreadTasks {
158
158
  taskLabelFn?: ((node: TaskNode) => string) | undefined;
159
159
  }): string;
160
160
  }
161
- import * as LH from "../../../types/lh.js";
161
+ import * as LH from '../../../types/lh.js';
162
162
  //# sourceMappingURL=main-thread-tasks.d.ts.map
@@ -14,5 +14,5 @@ export function getAttributableURLForTask(task: LH.Artifacts.TaskNode, jsURLs: S
14
14
  * @return {Map<string, Record<string, number>>}
15
15
  */
16
16
  export function getExecutionTimingsByURL(tasks: LH.Artifacts.TaskNode[], networkRecords: Array<LH.Artifacts.NetworkRequest>): Map<string, Record<string, number>>;
17
- import { NetworkRequest } from "../network-request.js";
17
+ import { NetworkRequest } from '../network-request.js';
18
18
  //# sourceMappingURL=task-summary.d.ts.map
package/core/runner.d.ts CHANGED
@@ -109,6 +109,6 @@ export class Runner {
109
109
  */
110
110
  static _getDataSavePath(settings: LH.Config.Settings): string;
111
111
  }
112
- import { Driver } from "./legacy/gather/driver.js";
113
- import { Audit } from "./audits/audit.js";
112
+ import { Driver } from './legacy/gather/driver.js';
113
+ import { Audit } from './audits/audit.js';
114
114
  //# sourceMappingURL=runner.d.ts.map
package/core/scoring.d.ts CHANGED
@@ -22,5 +22,5 @@ export class ReportScoring {
22
22
  [x: string]: LH.RawIcu<LH.Result.Category>;
23
23
  };
24
24
  }
25
- import { Audit } from "./audits/audit.js";
25
+ import { Audit } from './audits/audit.js';
26
26
  //# sourceMappingURL=scoring.d.ts.map
@@ -102,5 +102,5 @@ export namespace UIStrings {
102
102
  const defaultTimespanName: string;
103
103
  const defaultSnapshotName: string;
104
104
  }
105
- import * as LH from "../types/lh.js";
105
+ import * as LH from '../types/lh.js';
106
106
  //# sourceMappingURL=user-flow.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lighthouse",
3
3
  "type": "module",
4
- "version": "10.1.1-dev.20230427",
4
+ "version": "10.1.1-dev.20230428",
5
5
  "description": "Automated auditing, performance metrics, and best practices for the web.",
6
6
  "main": "./core/index.js",
7
7
  "bin": {
@@ -181,7 +181,7 @@
181
181
  "terser": "^5.3.8",
182
182
  "testdouble": "^3.16.8",
183
183
  "typed-query-selector": "^2.6.1",
184
- "typescript": "^4.9.4",
184
+ "typescript": "^5.0.4",
185
185
  "wait-for-expect": "^3.0.2",
186
186
  "webtreemap-cdt": "^3.2.1"
187
187
  },
@@ -52,5 +52,5 @@ export class PerformanceCategoryRenderer extends CategoryRenderer {
52
52
  renderMetricAuditFilter(filterableMetrics: LH.ReportResult.AuditRef[], categoryEl: HTMLDivElement): void;
53
53
  }
54
54
  export type DOM = import('./dom.js').DOM;
55
- import { CategoryRenderer } from "./category-renderer.js";
55
+ import { CategoryRenderer } from './category-renderer.js';
56
56
  //# sourceMappingURL=performance-category-renderer.d.ts.map
@@ -51,5 +51,5 @@ export class PwaCategoryRenderer extends CategoryRenderer {
51
51
  [x: string]: LH.Result.ReportGroup;
52
52
  }): Element;
53
53
  }
54
- import { CategoryRenderer } from "./category-renderer.js";
54
+ import { CategoryRenderer } from './category-renderer.js';
55
55
  //# sourceMappingURL=pwa-category-renderer.d.ts.map
@@ -17,5 +17,5 @@ export class Globals {
17
17
  static getUniqueSuffix(): number;
18
18
  static resetUniqueSuffix(): void;
19
19
  }
20
- import { UIStrings } from "./report-utils.js";
20
+ import { UIStrings } from './report-utils.js';
21
21
  //# sourceMappingURL=report-globals.d.ts.map
@@ -53,5 +53,5 @@ export class ReportRenderer {
53
53
  _renderReport(report: LH.ReportResult): DocumentFragment;
54
54
  }
55
55
  export type DOM = import('./dom.js').DOM;
56
- import { CategoryRenderer } from "./category-renderer.js";
56
+ import { CategoryRenderer } from './category-renderer.js';
57
57
  //# sourceMappingURL=report-renderer.d.ts.map
@@ -67,5 +67,5 @@ export class ReportUIFeatures {
67
67
  _saveFile(blob: Blob | File): void;
68
68
  }
69
69
  export type DOM = import('./dom').DOM;
70
- import { TopbarFeatures } from "./topbar-features.js";
70
+ import { TopbarFeatures } from './topbar-features.js';
71
71
  //# sourceMappingURL=report-ui-features.d.ts.map
@@ -78,5 +78,5 @@ export class TopbarFeatures {
78
78
  }
79
79
  export type DOM = import('./dom.js').DOM;
80
80
  export type ReportUIFeatures = import('./report-ui-features').ReportUIFeatures;
81
- import { DropDownMenu } from "./drop-down-menu.js";
81
+ import { DropDownMenu } from './drop-down-menu.js';
82
82
  //# sourceMappingURL=topbar-features.d.ts.map
@@ -1,4 +1,4 @@
1
- import { swapLocale } from "./swap-locale.js";
2
- import * as format from "./format.js";
1
+ import { swapLocale } from './swap-locale.js';
2
+ import * as format from './format.js';
3
3
  export { swapLocale, format };
4
4
  //# sourceMappingURL=i18n-module.d.ts.map
@@ -6,7 +6,7 @@
6
6
 
7
7
  declare global {
8
8
  var expect: import('expect').Expect;
9
- type Mock<T, Y> = import('jest-mock').Mock<T, Y>;
9
+ type Mock<T, Y extends unknown[]> = import('jest-mock').Mock<T, Y>;
10
10
  }
11
11
 
12
12
  declare module 'expect' {