lighthouse 12.1.0-dev.20240630 → 12.1.0-dev.20240701

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 (115) hide show
  1. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +5 -7
  2. package/core/audits/byte-efficiency/byte-efficiency-audit.js +3 -6
  3. package/core/audits/byte-efficiency/render-blocking-resources.d.ts +3 -7
  4. package/core/audits/byte-efficiency/render-blocking-resources.js +10 -16
  5. package/core/audits/dobetterweb/uses-http2.d.ts +4 -6
  6. package/core/audits/dobetterweb/uses-http2.js +2 -5
  7. package/core/audits/long-tasks.d.ts +6 -6
  8. package/core/audits/long-tasks.js +4 -4
  9. package/core/audits/prioritize-lcp-image.d.ts +1 -1
  10. package/core/audits/uses-rel-preload.d.ts +4 -3
  11. package/core/audits/uses-rel-preload.js +8 -6
  12. package/core/computed/critical-request-chains.d.ts +4 -3
  13. package/core/computed/critical-request-chains.js +5 -4
  14. package/core/computed/document-urls.js +1 -1
  15. package/core/computed/load-simulator.d.ts +3 -4
  16. package/core/computed/load-simulator.js +1 -1
  17. package/core/computed/main-resource.js +1 -1
  18. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +2 -4
  19. package/core/computed/metrics/lantern-first-contentful-paint.js +1 -3
  20. package/core/computed/metrics/lantern-interactive.d.ts +2 -4
  21. package/core/computed/metrics/lantern-interactive.js +1 -3
  22. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +2 -4
  23. package/core/computed/metrics/lantern-largest-contentful-paint.js +1 -3
  24. package/core/computed/metrics/lantern-max-potential-fid.d.ts +2 -4
  25. package/core/computed/metrics/lantern-max-potential-fid.js +1 -3
  26. package/core/computed/metrics/lantern-metric.d.ts +8 -8
  27. package/core/computed/metrics/lantern-metric.js +1 -1
  28. package/core/computed/metrics/lantern-speed-index.d.ts +2 -4
  29. package/core/computed/metrics/lantern-speed-index.js +1 -3
  30. package/core/computed/metrics/lantern-total-blocking-time.d.ts +2 -4
  31. package/core/computed/metrics/lantern-total-blocking-time.js +1 -3
  32. package/core/computed/metrics/total-blocking-time.js +1 -1
  33. package/core/computed/network-analysis.js +1 -1
  34. package/core/computed/page-dependency-graph.d.ts +3 -6
  35. package/core/computed/page-dependency-graph.js +3 -4
  36. package/core/computed/tbt-impact-tasks.js +2 -2
  37. package/core/lib/asset-saver.js +1 -1
  38. package/core/lib/lantern/lantern.d.ts +2 -19
  39. package/core/lib/lantern/lantern.js +2 -45
  40. package/core/lib/lantern-trace-saver.d.ts +4 -6
  41. package/core/lib/lantern-trace-saver.js +2 -3
  42. package/core/lib/navigation-error.js +2 -2
  43. package/core/lib/network-recorder.js +1 -1
  44. package/core/lib/network-request.d.ts +4 -4
  45. package/core/lib/network-request.js +2 -2
  46. package/package.json +2 -2
  47. package/tsconfig.json +0 -11
  48. package/types/artifacts.d.ts +2 -2
  49. package/types/gatherer.d.ts +4 -5
  50. package/core/lib/lantern/BaseNode.d.ts +0 -163
  51. package/core/lib/lantern/BaseNode.js +0 -369
  52. package/core/lib/lantern/BaseNode.test.js +0 -385
  53. package/core/lib/lantern/CpuNode.d.ts +0 -43
  54. package/core/lib/lantern/CpuNode.js +0 -99
  55. package/core/lib/lantern/LanternError.d.ts +0 -8
  56. package/core/lib/lantern/LanternError.js +0 -9
  57. package/core/lib/lantern/Metric.d.ts +0 -69
  58. package/core/lib/lantern/Metric.js +0 -137
  59. package/core/lib/lantern/NetworkNode.d.ts +0 -49
  60. package/core/lib/lantern/NetworkNode.js +0 -136
  61. package/core/lib/lantern/PageDependencyGraph.d.ts +0 -82
  62. package/core/lib/lantern/PageDependencyGraph.js +0 -610
  63. package/core/lib/lantern/PageDependencyGraph.test.js +0 -654
  64. package/core/lib/lantern/TBTUtils.d.ts +0 -44
  65. package/core/lib/lantern/TBTUtils.js +0 -76
  66. package/core/lib/lantern/TBTUtils.test.d.ts +0 -2
  67. package/core/lib/lantern/TBTUtils.test.js +0 -130
  68. package/core/lib/lantern/TraceEngineComputationData.d.ts +0 -25
  69. package/core/lib/lantern/TraceEngineComputationData.js +0 -466
  70. package/core/lib/lantern/metrics/FirstContentfulPaint.d.ts +0 -79
  71. package/core/lib/lantern/metrics/FirstContentfulPaint.js +0 -198
  72. package/core/lib/lantern/metrics/FirstContentfulPaint.test.js +0 -54
  73. package/core/lib/lantern/metrics/Interactive.d.ts +0 -20
  74. package/core/lib/lantern/metrics/Interactive.js +0 -109
  75. package/core/lib/lantern/metrics/Interactive.test.js +0 -56
  76. package/core/lib/lantern/metrics/LargestContentfulPaint.d.ts +0 -19
  77. package/core/lib/lantern/metrics/LargestContentfulPaint.js +0 -105
  78. package/core/lib/lantern/metrics/LargestContentfulPaint.test.js +0 -42
  79. package/core/lib/lantern/metrics/MaxPotentialFID.d.ts +0 -24
  80. package/core/lib/lantern/metrics/MaxPotentialFID.js +0 -91
  81. package/core/lib/lantern/metrics/MetricTestUtils.d.ts +0 -19
  82. package/core/lib/lantern/metrics/MetricTestUtils.js +0 -48
  83. package/core/lib/lantern/metrics/SpeedIndex.d.ts +0 -32
  84. package/core/lib/lantern/metrics/SpeedIndex.js +0 -142
  85. package/core/lib/lantern/metrics/SpeedIndex.test.js +0 -83
  86. package/core/lib/lantern/metrics/TotalBlockingTime.d.ts +0 -25
  87. package/core/lib/lantern/metrics/TotalBlockingTime.js +0 -125
  88. package/core/lib/lantern/metrics/__snapshots__/FirstContentfulPaint.test.js.snap +0 -11
  89. package/core/lib/lantern/metrics/__snapshots__/Interactive.test.js.snap +0 -17
  90. package/core/lib/lantern/metrics/metrics.d.ts +0 -9
  91. package/core/lib/lantern/metrics/metrics.js +0 -16
  92. package/core/lib/lantern/simulation/ConnectionPool.d.ts +0 -48
  93. package/core/lib/lantern/simulation/ConnectionPool.js +0 -152
  94. package/core/lib/lantern/simulation/ConnectionPool.test.js +0 -195
  95. package/core/lib/lantern/simulation/Constants.d.ts +0 -52
  96. package/core/lib/lantern/simulation/Constants.js +0 -48
  97. package/core/lib/lantern/simulation/DNSCache.d.ts +0 -42
  98. package/core/lib/lantern/simulation/DNSCache.js +0 -74
  99. package/core/lib/lantern/simulation/DNSCache.test.js +0 -72
  100. package/core/lib/lantern/simulation/NetworkAnalyzer.d.ts +0 -209
  101. package/core/lib/lantern/simulation/NetworkAnalyzer.js +0 -597
  102. package/core/lib/lantern/simulation/NetworkAnalyzer.test.js +0 -475
  103. package/core/lib/lantern/simulation/SimulationTimingMap.d.ts +0 -153
  104. package/core/lib/lantern/simulation/SimulationTimingMap.js +0 -219
  105. package/core/lib/lantern/simulation/Simulator.d.ts +0 -157
  106. package/core/lib/lantern/simulation/Simulator.js +0 -593
  107. package/core/lib/lantern/simulation/Simulator.test.js +0 -434
  108. package/core/lib/lantern/simulation/TCPConnection.test.d.ts +0 -2
  109. package/core/lib/lantern/simulation/TCPConnection.test.js +0 -374
  110. package/core/lib/lantern/simulation/TcpConnection.d.ts +0 -89
  111. package/core/lib/lantern/simulation/TcpConnection.js +0 -230
  112. package/core/lib/lantern/simulation/simulation.d.ts +0 -21
  113. package/core/lib/lantern/simulation/simulation.js +0 -28
  114. package/core/lib/lantern/types/lantern.d.ts +0 -256
  115. package/core/lib/lantern/types/lantern.js +0 -7
@@ -1,137 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2024 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- import * as Lantern from './lantern.js';
8
-
9
- /** @typedef {import('./BaseNode.js').Node} Node */
10
- /** @typedef {import('./NetworkNode.js').NetworkNode} NetworkNode */
11
- /** @typedef {import('./simulation/Simulator.js').Simulator} Simulator */
12
-
13
- /**
14
- * @typedef Extras
15
- * @property {boolean} optimistic
16
- * @property {Lantern.Metrics.Result=} fcpResult
17
- * @property {Lantern.Metrics.Result=} lcpResult
18
- * @property {Lantern.Metrics.Result=} interactiveResult
19
- * @property {number=} observedSpeedIndex
20
- */
21
-
22
- class Metric {
23
- /**
24
- * @param {Node} dependencyGraph
25
- * @param {function(NetworkNode):boolean=} treatNodeAsRenderBlocking
26
- * @return {Set<string>}
27
- */
28
- static getScriptUrls(dependencyGraph, treatNodeAsRenderBlocking) {
29
- /** @type {Set<string>} */
30
- const scriptUrls = new Set();
31
-
32
- dependencyGraph.traverse(node => {
33
- if (node.type !== Lantern.BaseNode.TYPES.NETWORK) return;
34
- if (node.request.resourceType !== Lantern.NetworkRequestTypes.Script) return;
35
- if (treatNodeAsRenderBlocking?.(node)) {
36
- scriptUrls.add(node.request.url);
37
- }
38
- });
39
-
40
- return scriptUrls;
41
- }
42
-
43
- /**
44
- * @return {Lantern.Simulation.MetricCoefficients}
45
- */
46
- static get COEFFICIENTS() {
47
- throw new Error('COEFFICIENTS unimplemented!');
48
- }
49
-
50
- /**
51
- * Returns the coefficients, scaled by the throttling settings if needed by the metric.
52
- * Some lantern metrics (speed-index) use components in their estimate that are not
53
- * from the simulator. In this case, we need to adjust the coefficients as the target throttling
54
- * settings change.
55
- *
56
- * @param {number} rttMs
57
- * @return {Lantern.Simulation.MetricCoefficients}
58
- */
59
- static getScaledCoefficients(rttMs) { // eslint-disable-line no-unused-vars
60
- return this.COEFFICIENTS;
61
- }
62
-
63
- /**
64
- * @param {Node} dependencyGraph
65
- * @param {Lantern.Simulation.ProcessedNavigation} processedNavigation
66
- * @return {Node}
67
- */
68
- static getOptimisticGraph(dependencyGraph, processedNavigation) { // eslint-disable-line no-unused-vars
69
- throw new Error('Optimistic graph unimplemented!');
70
- }
71
-
72
- /**
73
- * @param {Node} dependencyGraph
74
- * @param {Lantern.Simulation.ProcessedNavigation} processedNavigation
75
- * @return {Node}
76
- */
77
- static getPessimisticGraph(dependencyGraph, processedNavigation) { // eslint-disable-line no-unused-vars
78
- throw new Error('Pessmistic graph unimplemented!');
79
- }
80
-
81
- /**
82
- * @param {Lantern.Simulation.Result} simulationResult
83
- * @param {Extras} extras
84
- * @return {Lantern.Simulation.Result}
85
- */
86
- static getEstimateFromSimulation(simulationResult, extras) { // eslint-disable-line no-unused-vars
87
- return simulationResult;
88
- }
89
-
90
- /**
91
- * @param {Lantern.Simulation.MetricComputationDataInput} data
92
- * @param {Omit<Extras, 'optimistic'>=} extras
93
- * @return {Promise<Lantern.Metrics.Result>}
94
- */
95
- static async compute(data, extras) {
96
- const {simulator, graph, processedNavigation} = data;
97
-
98
- const metricName = this.name.replace('Lantern', '');
99
- const optimisticGraph = this.getOptimisticGraph(graph, processedNavigation);
100
- const pessimisticGraph = this.getPessimisticGraph(graph, processedNavigation);
101
-
102
- let simulateOptions = {label: `optimistic${metricName}`};
103
- const optimisticSimulation = simulator.simulate(optimisticGraph, simulateOptions);
104
-
105
- simulateOptions = {label: `pessimistic${metricName}`};
106
- const pessimisticSimulation = simulator.simulate(pessimisticGraph, simulateOptions);
107
-
108
- const optimisticEstimate = this.getEstimateFromSimulation(
109
- optimisticSimulation,
110
- {...extras, optimistic: true}
111
- );
112
-
113
- const pessimisticEstimate = this.getEstimateFromSimulation(
114
- pessimisticSimulation,
115
- {...extras, optimistic: false}
116
- );
117
-
118
- const coefficients = this.getScaledCoefficients(simulator.rtt);
119
- // Estimates under 1s don't really follow the normal curve fit, minimize the impact of the intercept
120
- const interceptMultiplier = coefficients.intercept > 0 ?
121
- Math.min(1, optimisticEstimate.timeInMs / 1000) : 1;
122
- const timing =
123
- coefficients.intercept * interceptMultiplier +
124
- coefficients.optimistic * optimisticEstimate.timeInMs +
125
- coefficients.pessimistic * pessimisticEstimate.timeInMs;
126
-
127
- return {
128
- timing,
129
- optimisticEstimate,
130
- pessimisticEstimate,
131
- optimisticGraph,
132
- pessimisticGraph,
133
- };
134
- }
135
- }
136
-
137
- export {Metric};
@@ -1,49 +0,0 @@
1
- /**
2
- * @template [T=any]
3
- * @extends {Lantern.BaseNode<T>}
4
- */
5
- export class NetworkNode<T = any> extends Lantern.BaseNode<T> {
6
- /**
7
- * @param {Lantern.NetworkRequest<T>} networkRequest
8
- */
9
- constructor(networkRequest: Lantern.NetworkRequest<T>);
10
- /** @private */
11
- private _request;
12
- get type(): "network";
13
- /**
14
- * @return {Readonly<T>}
15
- */
16
- get rawRequest(): Readonly<T>;
17
- /**
18
- * @return {Lantern.NetworkRequest<T>}
19
- */
20
- get request(): Lantern.NetworkRequest<T>;
21
- /**
22
- * @return {string}
23
- */
24
- get initiatorType(): string;
25
- /**
26
- * @return {boolean}
27
- */
28
- get fromDiskCache(): boolean;
29
- /**
30
- * @return {boolean}
31
- */
32
- get isNonNetworkProtocol(): boolean;
33
- /**
34
- * Returns whether this network request can be downloaded without a TCP connection.
35
- * During simulation we treat data coming in over a network connection separately from on-device data.
36
- * @return {boolean}
37
- */
38
- get isConnectionless(): boolean;
39
- /**
40
- * @return {boolean}
41
- */
42
- hasRenderBlockingPriority(): boolean;
43
- /**
44
- * @return {NetworkNode<T>}
45
- */
46
- cloneWithoutRelationships(): NetworkNode<T>;
47
- }
48
- import * as Lantern from './lantern.js';
49
- //# sourceMappingURL=NetworkNode.d.ts.map
@@ -1,136 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2017 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- import * as Lantern from './lantern.js';
8
- import {NetworkRequestTypes} from './lantern.js';
9
-
10
- const NON_NETWORK_SCHEMES = [
11
- 'blob', // @see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
12
- 'data', // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
13
- 'intent', // @see https://developer.chrome.com/docs/multidevice/android/intents/
14
- 'file', // @see https://en.wikipedia.org/wiki/File_URI_scheme
15
- 'filesystem', // @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystem
16
- 'chrome-extension',
17
- ];
18
-
19
- /**
20
- * Note: the `protocol` field from CDP can be 'h2', 'http', (not 'https'!) or it'll be url's scheme.
21
- * https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/network_handler.cc;l=598-611;drc=56d4a9a9deb30be73adcee8737c73bcb2a5ab64f
22
- * However, a `new URL(href).protocol` has a colon suffix.
23
- * https://url.spec.whatwg.org/#dom-url-protocol
24
- * A URL's `scheme` is specced as the `protocol` sans-colon, but isn't exposed on a URL object.
25
- * This method can take all 3 of these string types as a parameter.
26
- * @param {string} protocol Either a networkRequest's `protocol` per CDP or a `new URL(href).protocol`
27
- * @return {boolean}
28
- */
29
- function isNonNetworkProtocol(protocol) {
30
- // Strip off any colon
31
- const urlScheme = protocol.includes(':') ? protocol.slice(0, protocol.indexOf(':')) : protocol;
32
- return NON_NETWORK_SCHEMES.includes(urlScheme);
33
- }
34
-
35
- /**
36
- * @template [T=any]
37
- * @extends {Lantern.BaseNode<T>}
38
- */
39
- class NetworkNode extends Lantern.BaseNode {
40
- /**
41
- * @param {Lantern.NetworkRequest<T>} networkRequest
42
- */
43
- constructor(networkRequest) {
44
- super(networkRequest.requestId);
45
- /** @private */
46
- this._request = networkRequest;
47
- }
48
-
49
- get type() {
50
- return Lantern.BaseNode.TYPES.NETWORK;
51
- }
52
-
53
- /**
54
- * @return {number}
55
- */
56
- get startTime() {
57
- return this._request.rendererStartTime * 1000;
58
- }
59
-
60
- /**
61
- * @return {number}
62
- */
63
- get endTime() {
64
- return this._request.networkEndTime * 1000;
65
- }
66
-
67
- /**
68
- * @return {Readonly<T>}
69
- */
70
- get rawRequest() {
71
- return /** @type {Required<T>} */ (this._request.rawRequest);
72
- }
73
-
74
- /**
75
- * @return {Lantern.NetworkRequest<T>}
76
- */
77
- get request() {
78
- return this._request;
79
- }
80
-
81
- /**
82
- * @return {string}
83
- */
84
- get initiatorType() {
85
- return this._request.initiator && this._request.initiator.type;
86
- }
87
-
88
- /**
89
- * @return {boolean}
90
- */
91
- get fromDiskCache() {
92
- return !!this._request.fromDiskCache;
93
- }
94
-
95
- /**
96
- * @return {boolean}
97
- */
98
- get isNonNetworkProtocol() {
99
- // The 'protocol' field in devtools a string more like a `scheme`
100
- return isNonNetworkProtocol(this.request.protocol) ||
101
- // But `protocol` can fail to be populated if the request fails, so fallback to scheme.
102
- isNonNetworkProtocol(this.request.parsedURL.scheme);
103
- }
104
-
105
- /**
106
- * Returns whether this network request can be downloaded without a TCP connection.
107
- * During simulation we treat data coming in over a network connection separately from on-device data.
108
- * @return {boolean}
109
- */
110
- get isConnectionless() {
111
- return this.fromDiskCache || this.isNonNetworkProtocol;
112
- }
113
-
114
- /**
115
- * @return {boolean}
116
- */
117
- hasRenderBlockingPriority() {
118
- const priority = this._request.priority;
119
- const isScript = this._request.resourceType === NetworkRequestTypes.Script;
120
- const isDocument = this._request.resourceType === NetworkRequestTypes.Document;
121
- const isBlockingScript = priority === 'High' && isScript;
122
- const isBlockingHtmlImport = priority === 'High' && isDocument;
123
- return priority === 'VeryHigh' || isBlockingScript || isBlockingHtmlImport;
124
- }
125
-
126
- /**
127
- * @return {NetworkNode<T>}
128
- */
129
- cloneWithoutRelationships() {
130
- const node = new NetworkNode(this._request);
131
- node.setIsMainDocument(this._isMainDocument);
132
- return node;
133
- }
134
- }
135
-
136
- export {NetworkNode};
@@ -1,82 +0,0 @@
1
- export type Node = import('./BaseNode.js').Node;
2
- export type NetworkNodeOutput = {
3
- nodes: Array<NetworkNode>;
4
- idToNodeMap: Map<string, NetworkNode>;
5
- urlToNodeMap: Map<string, Array<NetworkNode>>;
6
- frameIdToNodeMap: Map<string, NetworkNode | null>;
7
- };
8
- export class PageDependencyGraph {
9
- /**
10
- * @param {Lantern.NetworkRequest} request
11
- * @return {Array<string>}
12
- */
13
- static getNetworkInitiators(request: Lantern.NetworkRequest): Array<string>;
14
- /**
15
- * @param {Array<Lantern.NetworkRequest>} networkRequests
16
- * @return {NetworkNodeOutput}
17
- */
18
- static getNetworkNodeOutput(networkRequests: Array<Lantern.NetworkRequest>): NetworkNodeOutput;
19
- /**
20
- * @param {Lantern.TraceEvent} evt
21
- * @return {boolean}
22
- */
23
- static isScheduleableTask(evt: Lantern.TraceEvent): boolean;
24
- /**
25
- * There should *always* be at least one top level event, having 0 typically means something is
26
- * drastically wrong with the trace and we should just give up early and loudly.
27
- *
28
- * @param {Lantern.TraceEvent[]} events
29
- */
30
- static assertHasToplevelEvents(events: Lantern.TraceEvent[]): void;
31
- /**
32
- * @param {Lantern.TraceEvent[]} mainThreadEvents
33
- * @return {Array<CPUNode>}
34
- */
35
- static getCPUNodes(mainThreadEvents: Lantern.TraceEvent[]): Array<CPUNode>;
36
- /**
37
- * @param {NetworkNode} rootNode
38
- * @param {NetworkNodeOutput} networkNodeOutput
39
- */
40
- static linkNetworkNodes(rootNode: NetworkNode, networkNodeOutput: NetworkNodeOutput): void;
41
- /**
42
- * @param {Node} rootNode
43
- * @param {NetworkNodeOutput} networkNodeOutput
44
- * @param {Array<CPUNode>} cpuNodes
45
- */
46
- static linkCPUNodes(rootNode: Node, networkNodeOutput: NetworkNodeOutput, cpuNodes: Array<CPUNode>): void;
47
- /**
48
- * Removes the given node from the graph, but retains all paths between its dependencies and
49
- * dependents.
50
- * @param {Node} node
51
- */
52
- static _pruneNode(node: Node): void;
53
- /**
54
- * TODO(15841): remove when CDT backend is gone. until then, this is a useful debugging tool
55
- * to find delta between using CDP or the trace to create the network requests.
56
- *
57
- * When a test fails using the trace backend, I enabled this debug method and copied the network
58
- * requests when CDP was used, then when trace is used, and diff'd them. This method helped
59
- * remove non-logical differences from the comparison (order of properties, slight rounding
60
- * discrepancies, removing object cycles, etc).
61
- *
62
- * When using for a unit test, make sure to do `.only` so you are getting what you expect.
63
- * @param {Lantern.NetworkRequest[]} lanternRequests
64
- * @return {never}
65
- */
66
- static _debugNormalizeRequests(lanternRequests: Lantern.NetworkRequest[]): never;
67
- /**
68
- * @param {Lantern.TraceEvent[]} mainThreadEvents
69
- * @param {Lantern.NetworkRequest[]} networkRequests
70
- * @param {Lantern.Simulation.URL} URL
71
- * @return {Node}
72
- */
73
- static createGraph(mainThreadEvents: Lantern.TraceEvent[], networkRequests: Lantern.NetworkRequest[], URL: Lantern.Simulation.URL): Node;
74
- /**
75
- * @param {Node} rootNode
76
- */
77
- static printGraph(rootNode: Node, widthInCharacters?: number): void;
78
- }
79
- import { NetworkNode } from './NetworkNode.js';
80
- import * as Lantern from './lantern.js';
81
- import { CPUNode } from './CpuNode.js';
82
- //# sourceMappingURL=PageDependencyGraph.d.ts.map