lighthouse 11.0.0-dev.20230815 → 11.0.0-dev.20230817
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.
- package/core/audits/installable-manifest.d.ts +0 -6
- package/core/audits/installable-manifest.js +1 -17
- package/core/audits/third-party-facades.js +13 -5
- package/core/audits/third-party-summary.d.ts +4 -2
- package/core/audits/third-party-summary.js +24 -11
- package/core/computed/tbt-impact-tasks.d.ts +8 -13
- package/core/computed/tbt-impact-tasks.js +4 -6
- package/core/index.cjs +13 -13
- package/core/index.d.cts +15 -2
- package/package.json +1 -1
- package/shared/localization/locales/ar-XB.json +0 -3
- package/shared/localization/locales/ar.json +0 -3
- package/shared/localization/locales/bg.json +0 -3
- package/shared/localization/locales/ca.json +0 -3
- package/shared/localization/locales/cs.json +0 -3
- package/shared/localization/locales/da.json +0 -3
- package/shared/localization/locales/de.json +0 -3
- package/shared/localization/locales/el.json +0 -3
- package/shared/localization/locales/en-GB.json +0 -3
- package/shared/localization/locales/en-US.json +0 -3
- package/shared/localization/locales/en-XA.json +0 -3
- package/shared/localization/locales/en-XL.json +0 -3
- package/shared/localization/locales/es-419.json +0 -3
- package/shared/localization/locales/es.json +0 -3
- package/shared/localization/locales/fi.json +0 -3
- package/shared/localization/locales/fil.json +0 -3
- package/shared/localization/locales/fr.json +0 -3
- package/shared/localization/locales/he.json +0 -3
- package/shared/localization/locales/hi.json +0 -3
- package/shared/localization/locales/hr.json +0 -3
- package/shared/localization/locales/hu.json +0 -3
- package/shared/localization/locales/id.json +0 -3
- package/shared/localization/locales/it.json +0 -3
- package/shared/localization/locales/ja.json +0 -3
- package/shared/localization/locales/ko.json +0 -3
- package/shared/localization/locales/lt.json +0 -3
- package/shared/localization/locales/lv.json +0 -3
- package/shared/localization/locales/nl.json +0 -3
- package/shared/localization/locales/no.json +0 -3
- package/shared/localization/locales/pl.json +0 -3
- package/shared/localization/locales/pt-PT.json +0 -3
- package/shared/localization/locales/pt.json +0 -3
- package/shared/localization/locales/ro.json +0 -3
- package/shared/localization/locales/ru.json +0 -3
- package/shared/localization/locales/sk.json +0 -3
- package/shared/localization/locales/sl.json +0 -3
- package/shared/localization/locales/sr-Latn.json +0 -3
- package/shared/localization/locales/sr.json +0 -3
- package/shared/localization/locales/sv.json +0 -3
- package/shared/localization/locales/ta.json +0 -3
- package/shared/localization/locales/te.json +0 -3
- package/shared/localization/locales/th.json +0 -3
- package/shared/localization/locales/tr.json +0 -3
- package/shared/localization/locales/uk.json +0 -3
- package/shared/localization/locales/vi.json +0 -3
- package/shared/localization/locales/zh-HK.json +0 -3
- package/shared/localization/locales/zh-TW.json +0 -3
- package/shared/localization/locales/zh.json +0 -3
- package/third-party/chromium-synchronization/installability-errors-test.js +0 -1
- package/types/artifacts.d.ts +1 -0
|
@@ -104,12 +104,6 @@ export const UIStrings: {
|
|
|
104
104
|
'protocol-timeout': string;
|
|
105
105
|
/** Message logged when the web app has been uninstalled o desktop, signalling that the install banner state is being reset. */
|
|
106
106
|
'pipeline-restarted': string;
|
|
107
|
-
/**
|
|
108
|
-
* TODO: This error was removed in M114, we can remove this message when it hits stable.
|
|
109
|
-
* @description Error message explaining that the URL of the manifest uses a scheme that is not supported on Android.
|
|
110
|
-
* @example {data:} scheme
|
|
111
|
-
*/
|
|
112
|
-
'scheme-not-supported-for-webapk': string;
|
|
113
107
|
};
|
|
114
108
|
import { Audit } from './audit.js';
|
|
115
109
|
//# sourceMappingURL=installable-manifest.d.ts.map
|
|
@@ -87,17 +87,12 @@ const UIStrings = {
|
|
|
87
87
|
/** Error message explaining that the web manifest's URL changed while the manifest was being downloaded by the browser. */
|
|
88
88
|
'manifest-location-changed': `Manifest URL changed while the manifest was being fetched.`,
|
|
89
89
|
/** Warning message explaining that the page does not work offline. */
|
|
90
|
+
// TODO(COMPAT): This error was removed in M118, we can remove this message when it hits stable.
|
|
90
91
|
'warn-not-offline-capable': `Page does not work offline. The page will not be regarded as installable after Chrome 93, stable release August 2021.`,
|
|
91
92
|
/** Error message explaining that Lighthouse failed while checking if the page is installable, and directing the user to try again in a new Chrome. */
|
|
92
93
|
'protocol-timeout': `Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome.`,
|
|
93
94
|
/** Message logged when the web app has been uninstalled o desktop, signalling that the install banner state is being reset. */
|
|
94
95
|
'pipeline-restarted': 'PWA has been uninstalled and installability checks resetting.',
|
|
95
|
-
/**
|
|
96
|
-
* TODO: This error was removed in M114, we can remove this message when it hits stable.
|
|
97
|
-
* @description Error message explaining that the URL of the manifest uses a scheme that is not supported on Android.
|
|
98
|
-
* @example {data:} scheme
|
|
99
|
-
*/
|
|
100
|
-
'scheme-not-supported-for-webapk': 'The manifest URL scheme ({scheme}) is not supported on Android.',
|
|
101
96
|
};
|
|
102
97
|
/* eslint-enable max-len */
|
|
103
98
|
|
|
@@ -157,17 +152,6 @@ class InstallableManifest extends Audit {
|
|
|
157
152
|
// @ts-expect-error errorIds from protocol should match up against the strings dict
|
|
158
153
|
const matchingString = UIStrings[err.errorId];
|
|
159
154
|
|
|
160
|
-
if (err.errorId === 'scheme-not-supported-for-webapk') {
|
|
161
|
-
// If there was no manifest, then there will be at lest one other installability error.
|
|
162
|
-
// We can ignore this error if that's the case.
|
|
163
|
-
const manifestUrl = artifacts.WebAppManifest?.url;
|
|
164
|
-
if (!manifestUrl) continue;
|
|
165
|
-
|
|
166
|
-
const scheme = new URL(manifestUrl).protocol;
|
|
167
|
-
i18nErrors.push(str_(matchingString, {scheme}));
|
|
168
|
-
continue;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
155
|
// Handle an errorId we don't recognize.
|
|
172
156
|
if (matchingString === undefined) {
|
|
173
157
|
i18nErrors.push(str_(UIStrings.noErrorId, {errorId: err.errorId}));
|
|
@@ -24,8 +24,8 @@ import * as i18n from '../lib/i18n/i18n.js';
|
|
|
24
24
|
import {EntityClassification} from '../computed/entity-classification.js';
|
|
25
25
|
import thirdPartyWeb from '../lib/third-party-web.js';
|
|
26
26
|
import {NetworkRecords} from '../computed/network-records.js';
|
|
27
|
-
import {MainThreadTasks} from '../computed/main-thread-tasks.js';
|
|
28
27
|
import ThirdPartySummary from './third-party-summary.js';
|
|
28
|
+
import {TBTImpactTasks} from '../computed/tbt-impact-tasks.js';
|
|
29
29
|
|
|
30
30
|
const UIStrings = {
|
|
31
31
|
/** Title of a diagnostic audit that provides details about the third-party code on a web page that can be lazy loaded with a facade alternative. This descriptive title is shown to users when no resources have facade alternatives available. A facade is a lightweight component which looks like the desired resource. Lazy loading means resources are deferred until they are needed. Third-party code refers to resources that are not within the control of the site owner. */
|
|
@@ -86,7 +86,7 @@ class ThirdPartyFacades extends Audit {
|
|
|
86
86
|
failureTitle: str_(UIStrings.failureTitle),
|
|
87
87
|
description: str_(UIStrings.description),
|
|
88
88
|
supportedModes: ['navigation'],
|
|
89
|
-
requiredArtifacts: ['traces', 'devtoolsLogs', 'URL'],
|
|
89
|
+
requiredArtifacts: ['traces', 'devtoolsLogs', 'URL', 'GatherContext'],
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -148,19 +148,23 @@ class ThirdPartyFacades extends Audit {
|
|
|
148
148
|
*/
|
|
149
149
|
static async audit(artifacts, context) {
|
|
150
150
|
const settings = context.settings;
|
|
151
|
-
const trace = artifacts.traces[Audit.DEFAULT_PASS];
|
|
152
151
|
const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS];
|
|
153
152
|
const networkRecords = await NetworkRecords.request(devtoolsLog, context);
|
|
154
153
|
const classifiedEntities = await EntityClassification.request(
|
|
155
154
|
{URL: artifacts.URL, devtoolsLog}, context);
|
|
156
|
-
|
|
155
|
+
|
|
156
|
+
const metricComputationData = Audit.makeMetricComputationDataInput(artifacts, context);
|
|
157
|
+
const tbtImpactTasks = await TBTImpactTasks.request(metricComputationData, context);
|
|
158
|
+
|
|
157
159
|
const multiplier = settings.throttlingMethod === 'simulate' ?
|
|
158
160
|
settings.throttling.cpuSlowdownMultiplier : 1;
|
|
159
|
-
const summaries = ThirdPartySummary.getSummaries(networkRecords,
|
|
161
|
+
const summaries = ThirdPartySummary.getSummaries(networkRecords, tbtImpactTasks, multiplier,
|
|
160
162
|
classifiedEntities);
|
|
161
163
|
const facadableProducts =
|
|
162
164
|
ThirdPartyFacades.getProductsWithFacade(summaries.byURL, classifiedEntities);
|
|
163
165
|
|
|
166
|
+
let tbtImpact = 0;
|
|
167
|
+
|
|
164
168
|
/** @type {LH.Audit.Details.TableItem[]} */
|
|
165
169
|
const results = [];
|
|
166
170
|
for (const {product, entity} of facadableProducts) {
|
|
@@ -179,6 +183,8 @@ class ThirdPartyFacades extends Audit {
|
|
|
179
183
|
const entitySummary = summaries.byEntity.get(entity);
|
|
180
184
|
if (!urls || !entitySummary) continue;
|
|
181
185
|
|
|
186
|
+
tbtImpact += entitySummary.tbtImpact;
|
|
187
|
+
|
|
182
188
|
const items = Array.from(urls).map((url) => {
|
|
183
189
|
const urlStats = summaries.byURL.get(url);
|
|
184
190
|
return /** @type {import('./third-party-summary.js').URLSummary} */ ({url, ...urlStats});
|
|
@@ -198,6 +204,7 @@ class ThirdPartyFacades extends Audit {
|
|
|
198
204
|
return {
|
|
199
205
|
score: 1,
|
|
200
206
|
notApplicable: true,
|
|
207
|
+
metricSavings: {TBT: 0},
|
|
201
208
|
};
|
|
202
209
|
}
|
|
203
210
|
|
|
@@ -216,6 +223,7 @@ class ThirdPartyFacades extends Audit {
|
|
|
216
223
|
itemCount: results.length,
|
|
217
224
|
}),
|
|
218
225
|
details: Audit.makeTableDetails(headings, results),
|
|
226
|
+
metricSavings: {TBT: tbtImpact},
|
|
219
227
|
};
|
|
220
228
|
}
|
|
221
229
|
}
|
|
@@ -3,10 +3,12 @@ export type Summary = {
|
|
|
3
3
|
mainThreadTime: number;
|
|
4
4
|
transferSize: number;
|
|
5
5
|
blockingTime: number;
|
|
6
|
+
tbtImpact: number;
|
|
6
7
|
};
|
|
7
8
|
export type URLSummary = {
|
|
8
9
|
transferSize: number;
|
|
9
10
|
blockingTime: number;
|
|
11
|
+
tbtImpact: number;
|
|
10
12
|
url: string | LH.IcuMessage;
|
|
11
13
|
};
|
|
12
14
|
export type SummaryMaps = {
|
|
@@ -27,12 +29,12 @@ declare class ThirdPartySummary extends Audit {
|
|
|
27
29
|
/**
|
|
28
30
|
*
|
|
29
31
|
* @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
|
|
30
|
-
* @param {Array<LH.Artifacts.
|
|
32
|
+
* @param {Array<LH.Artifacts.TBTImpactTask>} tbtImpactTasks
|
|
31
33
|
* @param {number} cpuMultiplier
|
|
32
34
|
* @param {LH.Artifacts.EntityClassification} entityClassification
|
|
33
35
|
* @return {SummaryMaps}
|
|
34
36
|
*/
|
|
35
|
-
static getSummaries(networkRecords: Array<LH.Artifacts.NetworkRequest>,
|
|
37
|
+
static getSummaries(networkRecords: Array<LH.Artifacts.NetworkRequest>, tbtImpactTasks: Array<LH.Artifacts.TBTImpactTask>, cpuMultiplier: number, entityClassification: LH.Artifacts.EntityClassification): SummaryMaps;
|
|
36
38
|
/**
|
|
37
39
|
* @param {LH.Artifacts.Entity} entity
|
|
38
40
|
* @param {SummaryMaps} summaries
|
|
@@ -8,8 +8,8 @@ import {Audit} from './audit.js';
|
|
|
8
8
|
import {EntityClassification} from '../computed/entity-classification.js';
|
|
9
9
|
import * as i18n from '../lib/i18n/i18n.js';
|
|
10
10
|
import {NetworkRecords} from '../computed/network-records.js';
|
|
11
|
-
import {MainThreadTasks} from '../computed/main-thread-tasks.js';
|
|
12
11
|
import {getJavaScriptURLs, getAttributableURLForTask} from '../lib/tracehouse/task-summary.js';
|
|
12
|
+
import {TBTImpactTasks} from '../computed/tbt-impact-tasks.js';
|
|
13
13
|
|
|
14
14
|
const UIStrings = {
|
|
15
15
|
/** Title of a diagnostic audit that provides details about the code on a web page that the user doesn't control (referred to as "third-party code"). This descriptive title is shown to users when the amount is acceptable and no user action is required. */
|
|
@@ -38,12 +38,14 @@ const PASS_THRESHOLD_IN_MS = 250;
|
|
|
38
38
|
* @property {number} mainThreadTime
|
|
39
39
|
* @property {number} transferSize
|
|
40
40
|
* @property {number} blockingTime
|
|
41
|
+
* @property {number} tbtImpact
|
|
41
42
|
*/
|
|
42
43
|
|
|
43
44
|
/**
|
|
44
45
|
* @typedef URLSummary
|
|
45
46
|
* @property {number} transferSize
|
|
46
47
|
* @property {number} blockingTime
|
|
48
|
+
* @property {number} tbtImpact
|
|
47
49
|
* @property {string | LH.IcuMessage} url
|
|
48
50
|
*/
|
|
49
51
|
|
|
@@ -72,24 +74,24 @@ class ThirdPartySummary extends Audit {
|
|
|
72
74
|
title: str_(UIStrings.title),
|
|
73
75
|
failureTitle: str_(UIStrings.failureTitle),
|
|
74
76
|
description: str_(UIStrings.description),
|
|
75
|
-
requiredArtifacts: ['traces', 'devtoolsLogs', 'URL'],
|
|
77
|
+
requiredArtifacts: ['traces', 'devtoolsLogs', 'URL', 'GatherContext'],
|
|
76
78
|
};
|
|
77
79
|
}
|
|
78
80
|
|
|
79
81
|
/**
|
|
80
82
|
*
|
|
81
83
|
* @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
|
|
82
|
-
* @param {Array<LH.Artifacts.
|
|
84
|
+
* @param {Array<LH.Artifacts.TBTImpactTask>} tbtImpactTasks
|
|
83
85
|
* @param {number} cpuMultiplier
|
|
84
86
|
* @param {LH.Artifacts.EntityClassification} entityClassification
|
|
85
87
|
* @return {SummaryMaps}
|
|
86
88
|
*/
|
|
87
|
-
static getSummaries(networkRecords,
|
|
89
|
+
static getSummaries(networkRecords, tbtImpactTasks, cpuMultiplier, entityClassification) {
|
|
88
90
|
/** @type {Map<string, Summary>} */
|
|
89
91
|
const byURL = new Map();
|
|
90
92
|
/** @type {Map<LH.Artifacts.Entity, Summary>} */
|
|
91
93
|
const byEntity = new Map();
|
|
92
|
-
const defaultSummary = {mainThreadTime: 0, blockingTime: 0, transferSize: 0};
|
|
94
|
+
const defaultSummary = {mainThreadTime: 0, blockingTime: 0, transferSize: 0, tbtImpact: 0};
|
|
93
95
|
|
|
94
96
|
for (const request of networkRecords) {
|
|
95
97
|
const urlSummary = byURL.get(request.url) || {...defaultSummary};
|
|
@@ -99,7 +101,7 @@ class ThirdPartySummary extends Audit {
|
|
|
99
101
|
|
|
100
102
|
const jsURLs = getJavaScriptURLs(networkRecords);
|
|
101
103
|
|
|
102
|
-
for (const task of
|
|
104
|
+
for (const task of tbtImpactTasks) {
|
|
103
105
|
const attributableURL = getAttributableURLForTask(task, jsURLs);
|
|
104
106
|
|
|
105
107
|
const urlSummary = byURL.get(attributableURL) || {...defaultSummary};
|
|
@@ -110,6 +112,7 @@ class ThirdPartySummary extends Audit {
|
|
|
110
112
|
// Note that this is not totally equivalent to the TBT definition since it fails to account for FCP,
|
|
111
113
|
// but a majority of third-party work occurs after FCP and should yield largely similar numbers.
|
|
112
114
|
urlSummary.blockingTime += Math.max(taskDuration - 50, 0);
|
|
115
|
+
urlSummary.tbtImpact += task.selfTbtImpact;
|
|
113
116
|
byURL.set(attributableURL, urlSummary);
|
|
114
117
|
}
|
|
115
118
|
|
|
@@ -127,6 +130,7 @@ class ThirdPartySummary extends Audit {
|
|
|
127
130
|
entitySummary.transferSize += urlSummary.transferSize;
|
|
128
131
|
entitySummary.mainThreadTime += urlSummary.mainThreadTime;
|
|
129
132
|
entitySummary.blockingTime += urlSummary.blockingTime;
|
|
133
|
+
entitySummary.tbtImpact += urlSummary.tbtImpact;
|
|
130
134
|
byEntity.set(entity, entitySummary);
|
|
131
135
|
|
|
132
136
|
const entityURLs = urls.get(entity) || [];
|
|
@@ -152,7 +156,7 @@ class ThirdPartySummary extends Audit {
|
|
|
152
156
|
// Sort by blocking time first, then transfer size to break ties.
|
|
153
157
|
.sort((a, b) => (b.blockingTime - a.blockingTime) || (b.transferSize - a.transferSize));
|
|
154
158
|
|
|
155
|
-
const subitemSummary = {transferSize: 0, blockingTime: 0};
|
|
159
|
+
const subitemSummary = {transferSize: 0, blockingTime: 0, tbtImpact: 0};
|
|
156
160
|
const minTransferSize = Math.max(MIN_TRANSFER_SIZE_FOR_SUBITEMS, stats.transferSize / 20);
|
|
157
161
|
const maxSubItems = Math.min(MAX_SUBITEMS, items.length);
|
|
158
162
|
let numSubItems = 0;
|
|
@@ -167,6 +171,7 @@ class ThirdPartySummary extends Audit {
|
|
|
167
171
|
numSubItems++;
|
|
168
172
|
subitemSummary.transferSize += nextSubItem.transferSize;
|
|
169
173
|
subitemSummary.blockingTime += nextSubItem.blockingTime;
|
|
174
|
+
subitemSummary.tbtImpact += nextSubItem.tbtImpact;
|
|
170
175
|
}
|
|
171
176
|
if (!subitemSummary.blockingTime && !subitemSummary.transferSize) {
|
|
172
177
|
// Don't bother breaking down if there are no large resources.
|
|
@@ -179,6 +184,7 @@ class ThirdPartySummary extends Audit {
|
|
|
179
184
|
url: str_(i18n.UIStrings.otherResourcesLabel),
|
|
180
185
|
transferSize: stats.transferSize - subitemSummary.transferSize,
|
|
181
186
|
blockingTime: stats.blockingTime - subitemSummary.blockingTime,
|
|
187
|
+
tbtImpact: stats.tbtImpact - subitemSummary.tbtImpact,
|
|
182
188
|
};
|
|
183
189
|
if (remainder.transferSize > minTransferSize) {
|
|
184
190
|
items.push(remainder);
|
|
@@ -193,19 +199,21 @@ class ThirdPartySummary extends Audit {
|
|
|
193
199
|
*/
|
|
194
200
|
static async audit(artifacts, context) {
|
|
195
201
|
const settings = context.settings || {};
|
|
196
|
-
const trace = artifacts.traces[Audit.DEFAULT_PASS];
|
|
197
202
|
const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS];
|
|
198
203
|
const networkRecords = await NetworkRecords.request(devtoolsLog, context);
|
|
199
204
|
const classifiedEntities = await EntityClassification.request(
|
|
200
205
|
{URL: artifacts.URL, devtoolsLog}, context);
|
|
201
206
|
const firstPartyEntity = classifiedEntities.firstParty;
|
|
202
|
-
|
|
207
|
+
|
|
208
|
+
const metricComputationData = Audit.makeMetricComputationDataInput(artifacts, context);
|
|
209
|
+
const tbtImpactTasks = await TBTImpactTasks.request(metricComputationData, context);
|
|
210
|
+
|
|
203
211
|
const multiplier = settings.throttlingMethod === 'simulate' ?
|
|
204
212
|
settings.throttling.cpuSlowdownMultiplier : 1;
|
|
205
213
|
|
|
206
214
|
const summaries = ThirdPartySummary.getSummaries(
|
|
207
|
-
networkRecords,
|
|
208
|
-
const overallSummary = {wastedBytes: 0, wastedMs: 0};
|
|
215
|
+
networkRecords, tbtImpactTasks, multiplier, classifiedEntities);
|
|
216
|
+
const overallSummary = {wastedBytes: 0, wastedMs: 0, tbtImpact: 0};
|
|
209
217
|
|
|
210
218
|
const results = Array.from(summaries.byEntity.entries())
|
|
211
219
|
// Don't consider the page we're on to be third-party.
|
|
@@ -214,6 +222,7 @@ class ThirdPartySummary extends Audit {
|
|
|
214
222
|
.map(([entity, stats]) => {
|
|
215
223
|
overallSummary.wastedBytes += stats.transferSize;
|
|
216
224
|
overallSummary.wastedMs += stats.blockingTime;
|
|
225
|
+
overallSummary.tbtImpact += stats.tbtImpact;
|
|
217
226
|
|
|
218
227
|
return {
|
|
219
228
|
...stats,
|
|
@@ -240,6 +249,7 @@ class ThirdPartySummary extends Audit {
|
|
|
240
249
|
return {
|
|
241
250
|
score: 1,
|
|
242
251
|
notApplicable: true,
|
|
252
|
+
metricSavings: {TBT: 0},
|
|
243
253
|
};
|
|
244
254
|
}
|
|
245
255
|
|
|
@@ -252,6 +262,9 @@ class ThirdPartySummary extends Audit {
|
|
|
252
262
|
timeInMs: overallSummary.wastedMs,
|
|
253
263
|
}),
|
|
254
264
|
details,
|
|
265
|
+
metricSavings: {
|
|
266
|
+
TBT: overallSummary.tbtImpact,
|
|
267
|
+
},
|
|
255
268
|
};
|
|
256
269
|
}
|
|
257
270
|
}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
export { TBTImpactTasksComputed as TBTImpactTasks };
|
|
2
|
-
export type TBTImpactTask = LH.Artifacts.TaskNode & {
|
|
3
|
-
tbtImpact: number;
|
|
4
|
-
selfTbtImpact: number;
|
|
5
|
-
};
|
|
6
2
|
declare const TBTImpactTasksComputed: typeof TBTImpactTasks & {
|
|
7
3
|
request: (dependencies: import("../index.js").Artifacts.MetricComputationDataInput, context: import("../../types/utility-types.js").default.ImmutableObject<{
|
|
8
4
|
computedCache: Map<string, import("../lib/arbitrary-equality-map.js").ArbitraryEqualityMap>;
|
|
9
|
-
}>) => Promise<TBTImpactTask[]>;
|
|
5
|
+
}>) => Promise<import("../index.js").Artifacts.TBTImpactTask[]>;
|
|
10
6
|
};
|
|
11
|
-
/** @typedef {LH.Artifacts.TaskNode & {tbtImpact: number, selfTbtImpact: number}} TBTImpactTask */
|
|
12
7
|
declare class TBTImpactTasks {
|
|
13
8
|
/**
|
|
14
9
|
* @param {LH.Artifacts.TaskNode} task
|
|
@@ -28,27 +23,27 @@ declare class TBTImpactTasks {
|
|
|
28
23
|
* @param {LH.Artifacts.TaskNode[]} tasks
|
|
29
24
|
* @param {Map<LH.Artifacts.TaskNode, number>} taskToImpact
|
|
30
25
|
*/
|
|
31
|
-
static createImpactTasks(tasks: LH.Artifacts.TaskNode[], taskToImpact: Map<LH.Artifacts.TaskNode, number>): TBTImpactTask[];
|
|
26
|
+
static createImpactTasks(tasks: LH.Artifacts.TaskNode[], taskToImpact: Map<LH.Artifacts.TaskNode, number>): import("../index.js").Artifacts.TBTImpactTask[];
|
|
32
27
|
/**
|
|
33
28
|
* @param {LH.Artifacts.TaskNode[]} tasks
|
|
34
29
|
* @param {number} startTimeMs
|
|
35
30
|
* @param {number} endTimeMs
|
|
36
|
-
* @return {TBTImpactTask[]}
|
|
31
|
+
* @return {LH.Artifacts.TBTImpactTask[]}
|
|
37
32
|
*/
|
|
38
|
-
static computeImpactsFromObservedTasks(tasks: LH.Artifacts.TaskNode[], startTimeMs: number, endTimeMs: number): TBTImpactTask[];
|
|
33
|
+
static computeImpactsFromObservedTasks(tasks: LH.Artifacts.TaskNode[], startTimeMs: number, endTimeMs: number): LH.Artifacts.TBTImpactTask[];
|
|
39
34
|
/**
|
|
40
35
|
* @param {LH.Artifacts.TaskNode[]} tasks
|
|
41
36
|
* @param {LH.Gatherer.Simulation.Result['nodeTimings']} tbtNodeTimings
|
|
42
37
|
* @param {number} startTimeMs
|
|
43
38
|
* @param {number} endTimeMs
|
|
44
|
-
* @return {TBTImpactTask[]}
|
|
39
|
+
* @return {LH.Artifacts.TBTImpactTask[]}
|
|
45
40
|
*/
|
|
46
|
-
static computeImpactsFromLantern(tasks: LH.Artifacts.TaskNode[], tbtNodeTimings: LH.Gatherer.Simulation.Result['nodeTimings'], startTimeMs: number, endTimeMs: number): TBTImpactTask[];
|
|
41
|
+
static computeImpactsFromLantern(tasks: LH.Artifacts.TaskNode[], tbtNodeTimings: LH.Gatherer.Simulation.Result['nodeTimings'], startTimeMs: number, endTimeMs: number): LH.Artifacts.TBTImpactTask[];
|
|
47
42
|
/**
|
|
48
43
|
* @param {LH.Artifacts.MetricComputationDataInput} metricComputationData
|
|
49
44
|
* @param {LH.Artifacts.ComputedContext} context
|
|
50
|
-
* @return {Promise<TBTImpactTask[]>}
|
|
45
|
+
* @return {Promise<LH.Artifacts.TBTImpactTask[]>}
|
|
51
46
|
*/
|
|
52
|
-
static compute_(metricComputationData: LH.Artifacts.MetricComputationDataInput, context: LH.Artifacts.ComputedContext): Promise<TBTImpactTask[]>;
|
|
47
|
+
static compute_(metricComputationData: LH.Artifacts.MetricComputationDataInput, context: LH.Artifacts.ComputedContext): Promise<LH.Artifacts.TBTImpactTask[]>;
|
|
53
48
|
}
|
|
54
49
|
//# sourceMappingURL=tbt-impact-tasks.d.ts.map
|
|
@@ -12,8 +12,6 @@ import {TotalBlockingTime} from './metrics/total-blocking-time.js';
|
|
|
12
12
|
import {ProcessedTrace} from './processed-trace.js';
|
|
13
13
|
import {calculateTbtImpactForEvent} from './metrics/tbt-utils.js';
|
|
14
14
|
|
|
15
|
-
/** @typedef {LH.Artifacts.TaskNode & {tbtImpact: number, selfTbtImpact: number}} TBTImpactTask */
|
|
16
|
-
|
|
17
15
|
class TBTImpactTasks {
|
|
18
16
|
/**
|
|
19
17
|
* @param {LH.Artifacts.TaskNode} task
|
|
@@ -66,7 +64,7 @@ class TBTImpactTasks {
|
|
|
66
64
|
* @param {Map<LH.Artifacts.TaskNode, number>} taskToImpact
|
|
67
65
|
*/
|
|
68
66
|
static createImpactTasks(tasks, taskToImpact) {
|
|
69
|
-
/** @type {TBTImpactTask[]} */
|
|
67
|
+
/** @type {LH.Artifacts.TBTImpactTask[]} */
|
|
70
68
|
const tbtImpactTasks = [];
|
|
71
69
|
|
|
72
70
|
for (const task of tasks) {
|
|
@@ -92,7 +90,7 @@ class TBTImpactTasks {
|
|
|
92
90
|
* @param {LH.Artifacts.TaskNode[]} tasks
|
|
93
91
|
* @param {number} startTimeMs
|
|
94
92
|
* @param {number} endTimeMs
|
|
95
|
-
* @return {TBTImpactTask[]}
|
|
93
|
+
* @return {LH.Artifacts.TBTImpactTask[]}
|
|
96
94
|
*/
|
|
97
95
|
static computeImpactsFromObservedTasks(tasks, startTimeMs, endTimeMs) {
|
|
98
96
|
/** @type {Map<LH.Artifacts.TaskNode, number>} */
|
|
@@ -125,7 +123,7 @@ class TBTImpactTasks {
|
|
|
125
123
|
* @param {LH.Gatherer.Simulation.Result['nodeTimings']} tbtNodeTimings
|
|
126
124
|
* @param {number} startTimeMs
|
|
127
125
|
* @param {number} endTimeMs
|
|
128
|
-
* @return {TBTImpactTask[]}
|
|
126
|
+
* @return {LH.Artifacts.TBTImpactTask[]}
|
|
129
127
|
*/
|
|
130
128
|
static computeImpactsFromLantern(tasks, tbtNodeTimings, startTimeMs, endTimeMs) {
|
|
131
129
|
/** @type {Map<LH.Artifacts.TaskNode, number>} */
|
|
@@ -193,7 +191,7 @@ class TBTImpactTasks {
|
|
|
193
191
|
/**
|
|
194
192
|
* @param {LH.Artifacts.MetricComputationDataInput} metricComputationData
|
|
195
193
|
* @param {LH.Artifacts.ComputedContext} context
|
|
196
|
-
* @return {Promise<TBTImpactTask[]>}
|
|
194
|
+
* @return {Promise<LH.Artifacts.TBTImpactTask[]>}
|
|
197
195
|
*/
|
|
198
196
|
static async compute_(metricComputationData, context) {
|
|
199
197
|
const tbtResult = await TotalBlockingTime.request(metricComputationData, context);
|
package/core/index.cjs
CHANGED
|
@@ -5,38 +5,38 @@
|
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
7
7
|
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* @typedef ExportType
|
|
10
|
+
* @property {import('./index.js')['startFlow']} startFlow
|
|
11
|
+
* @property {import('./index.js')['navigation']} navigation
|
|
12
|
+
* @property {import('./index.js')['startTimespan']} startTimespan
|
|
13
|
+
* @property {import('./index.js')['snapshot']} snapshot
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/** @type {import('./index.js')['default'] & ExportType} */
|
|
9
17
|
const lighthouse = async function lighthouse(...args) {
|
|
10
18
|
const {default: lighthouse} = await import('./index.js');
|
|
11
19
|
return lighthouse(...args);
|
|
12
20
|
};
|
|
13
21
|
|
|
14
|
-
|
|
15
|
-
const startFlow = async function startFlow(...args) {
|
|
22
|
+
lighthouse.startFlow = async function startFlow(...args) {
|
|
16
23
|
const {startFlow} = await import('./index.js');
|
|
17
24
|
return startFlow(...args);
|
|
18
25
|
};
|
|
19
26
|
|
|
20
|
-
|
|
21
|
-
const navigation = async function navigation(...args) {
|
|
27
|
+
lighthouse.navigation = async function navigation(...args) {
|
|
22
28
|
const {navigation} = await import('./index.js');
|
|
23
29
|
return navigation(...args);
|
|
24
30
|
};
|
|
25
31
|
|
|
26
|
-
|
|
27
|
-
const startTimespan = async function startTimespan(...args) {
|
|
32
|
+
lighthouse.startTimespan = async function startTimespan(...args) {
|
|
28
33
|
const {startTimespan} = await import('./index.js');
|
|
29
34
|
return startTimespan(...args);
|
|
30
35
|
};
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
const snapshot = async function snapshot(...args) {
|
|
37
|
+
lighthouse.snapshot = async function snapshot(...args) {
|
|
34
38
|
const {snapshot} = await import('./index.js');
|
|
35
39
|
return snapshot(...args);
|
|
36
40
|
};
|
|
37
41
|
|
|
38
42
|
module.exports = lighthouse;
|
|
39
|
-
module.exports.startFlow = startFlow;
|
|
40
|
-
module.exports.navigation = navigation;
|
|
41
|
-
module.exports.startTimespan = startTimespan;
|
|
42
|
-
module.exports.snapshot = snapshot;
|
package/core/index.d.cts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
export = lighthouse;
|
|
2
|
-
/**
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* @typedef ExportType
|
|
4
|
+
* @property {import('./index.js')['startFlow']} startFlow
|
|
5
|
+
* @property {import('./index.js')['navigation']} navigation
|
|
6
|
+
* @property {import('./index.js')['startTimespan']} startTimespan
|
|
7
|
+
* @property {import('./index.js')['snapshot']} snapshot
|
|
8
|
+
*/
|
|
9
|
+
/** @type {import('./index.js')['default'] & ExportType} */
|
|
10
|
+
declare const lighthouse: typeof import("./index.js")['default'] & ExportType;
|
|
11
|
+
type ExportType = {
|
|
12
|
+
startFlow: typeof import("./index.js")['startFlow'];
|
|
13
|
+
navigation: typeof import("./index.js")['navigation'];
|
|
14
|
+
startTimespan: typeof import("./index.js")['startTimespan'];
|
|
15
|
+
snapshot: typeof import("./index.js")['snapshot'];
|
|
16
|
+
};
|
|
4
17
|
//# sourceMappingURL=index.d.cts.map
|
package/package.json
CHANGED
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "The manifest URL scheme ({scheme}) is not supported on Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Manifest start URL is not valid"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "مخطّط عنوان URL الخاص بملف البيان ({scheme}) غير متاح لنظام التشغيل Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "عنوان URL البداية لملف البيان غير صالح."
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Схемата ({scheme}) на URL адреса на манифеста не се поддържа под Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "URL адресът за стартиране в манифеста не е валиден"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "L'esquema d'URL del manifest ({scheme}) no s'admet a Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "L'URL d'inici del manifest no és vàlid"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Schéma adresy URL manifestu ({scheme}) není v systému Android podporováno."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Počáteční URL (start_url) v manifestu není platná"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Manifestets webadresseskema ({scheme}) understøttes ikke i Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Manifestets startwebadresse er ikke gyldig"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Das Manifest-URL-Schema ({scheme}) wird unter Android nicht unterstützt."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Start-URL des Manifests ist nicht gültig"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Το URL μανιφέστου ({scheme}) δεν υποστηρίζεται στο Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Το URL έναρξης μανιφέστου δεν είναι έγκυρο"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "The manifest URL scheme ({scheme}) is not supported on Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Manifest start URL is not valid"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "The manifest URL scheme ({scheme}) is not supported on Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Manifest start URL is not valid"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "[Ţĥé måñîƒéšţ ÛŔĻ šçĥémé (ᐅ{scheme}ᐊ) îš ñöţ šûþþöŕţéð öñ Åñðŕöîð. one two three four five six seven eight nine ten eleven twelve]"
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "[Måñîƒéšţ šţåŕţ ÛŔĻ îš ñöţ våļîð one two three four five six seven]"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "L̂íĝh́t̂h́ôúŝé ĉóûĺd̂ ńôt́ d̂ét̂ér̂ḿîńê íf̂ t́ĥé p̂áĝé îś îńŝt́âĺl̂áb̂ĺê. Ṕl̂éâśê t́r̂ý ŵít̂h́ â ńêẃêŕ v̂ér̂śîón̂ óf̂ Ćĥŕôḿê."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "T̂h́ê ḿâńîf́êśt̂ ÚR̂Ĺ ŝćĥém̂é ({scheme}) îś n̂ót̂ śûṕp̂ór̂t́êd́ ôń Âńd̂ŕôíd̂."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "M̂án̂íf̂éŝt́ ŝt́âŕt̂ ÚR̂Ĺ îś n̂ót̂ v́âĺîd́"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "El esquema de URL del manifiesto ({scheme}) no es compatible en Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "La URL de inicio del manifiesto no es válida"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "El esquema de URL del archivo de manifiesto ({scheme}) no es compatible con Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "La URL de inicio del archivo de manifiesto no es válida"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Manifestin URL-kaava ({scheme}) ei ole Androidin tukema."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Manifestin aloitus-URL ei kelpaa"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Hindi sinusuportahan sa Android ang scheme ng URL ng manifest ({scheme})."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Hindi valid ang start URL ng manifest"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Le schéma d'URL du fichier manifeste ({scheme}) n'est pas compatible avec Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "L'URL de démarrage du fichier manifeste n'est pas valide"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "הסכימה של כתובת ה-URL של המניפסט ({scheme}) אינה נתמכת ב-Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "כתובת ה-URL להתחלה של המניפסט לא חוקית"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "मेनिफ़ेस्ट का यूआरएल जिस स्कीम ({scheme}) का इस्तेमाल करता है वह Android पर काम नहीं करती."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "दिया गया मेनिफ़ेस्ट स्टार्ट यूआरएल मान्य नहीं है"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Shema URL-a manifesta ({scheme}) nije podržana na Androidu."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Početni URL manifesta nije važeći"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "A manifest URL-sémája ({scheme}) nem támogatott Androidon."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "A manifest kezdési URL-je érvénytelen"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Skema URL manifes ({scheme}) tidak didukung di Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "URL mulai manifes tidak valid"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Lo schema dell'URL del file manifest ({scheme}) non è supportato su Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "L'URL di avvio del file manifest non è valido"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "マニフェスト URL スキーム({scheme})は Android ではサポートされていません。"
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "マニフェストの開始 URL が無効です"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Android에서 지원되지 않는 매니페스트 URL 스키마({scheme})입니다."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "잘못된 매니페스트 시작 URL입니다."
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Aprašo URL schema ({scheme}) nepalaikoma sistemoje „Android“."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Aprašo pradžios URL netinkamas"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Manifesta URL shēma ({scheme}) netiek atbalstīta operētājsistēmā Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Manifesta sākuma URL nav derīgs"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Het URL-schema van het manifest ({scheme}) wordt niet ondersteund op Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "De start-URL voor het manifest is ongeldig"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Protokollen for manifestets nettadresse ({scheme}) støttes ikke i Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Start-nettadressen til manifestet er ikke gyldig"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Schemat adresu URL pliku manifestu ({scheme}) nie jest obsługiwany na urządzeniach z Androidem."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "URL początkowy pliku manifestu jest nieprawidłowy"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "O esquema do URL do manifesto ({scheme}) não é suportado no Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "O URL de início do manifesto não é válido."
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "O Android não tem suporte ao esquema de URL do manifesto ({scheme})."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "O URL de início do manifesto não é válido"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Schema adresei URL a manifestului ({scheme}) nu este acceptată pe Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Adresa URL inițială a manifestului nu este validă"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Android не поддерживает схему URL манифеста ({scheme})."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Недействительный URL стартовой страницы манифеста."
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Schéma webovej adresy manifestu ({scheme}) nie je v Androide podporovaná."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Začiatočná webová adresa manifestu nie je platná"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Shema URL-ja v manifestu ({scheme}) ni podprta v sistemu Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Začetni URL manifesta ni veljaven"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Šema URL-a manifesta ({scheme}) nije podržana na Android-u."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Početni URL manifesta nije važeći"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Шема URL-а манифеста ({scheme}) није подржана на Android-у."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Почетни URL манифеста није важећи"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Manifestets webbadresschema ({scheme}) stöds inte på Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Startwebbadressen i manifestet är ogiltig"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Androidல் மெனிஃபெஸ்ட் URL ஸ்கீம் ({scheme}) ஆதரிக்கப்படவில்லை."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "மெனிஃபெஸ்ட் ஸ்டார்ட் URL தவறானது"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "మ్యానిఫెస్ట్ URL స్కీమ్ ({scheme})కు Androidలో సపోర్ట్ లేదు."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "మ్యానిఫెస్ట్ ప్రారంభ URL చెల్లదు"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "รูปแบบ URL ของไฟล์ Manifest ({scheme}) ใช้ไม่ได้ใน Android"
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "URL เริ่มต้นของไฟล์ Manifest ไม่ถูกต้อง"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Manifest dosyasının URL şeması ({scheme}) Android'de desteklenmiyor."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Manifest başlangıç URL'si geçerli değil"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Схема URL-адреси маніфесту ({scheme}) не підтримується на Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "Початкова URL-адреса в маніфесті недійсна"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Lược đồ URL kê khai ({scheme}) không được hỗ trợ trên Android."
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "URL bắt đầu của tệp kê khai là không hợp lệ"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Android 不支援資訊清單網址配置 ({scheme})。"
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "資訊清單起始網址無效"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "Android 不支援資訊清單網址架構 ({scheme})。"
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "資訊清單開始網址無效"
|
|
1093
1090
|
},
|
|
@@ -1085,9 +1085,6 @@
|
|
|
1085
1085
|
"core/audits/installable-manifest.js | protocol-timeout": {
|
|
1086
1086
|
"message": "Lighthouse could not determine if the page is installable. Please try with a newer version of Chrome."
|
|
1087
1087
|
},
|
|
1088
|
-
"core/audits/installable-manifest.js | scheme-not-supported-for-webapk": {
|
|
1089
|
-
"message": "清单网址的架构 ({scheme}) 在 Android 设备上不受支持。"
|
|
1090
|
-
},
|
|
1091
1088
|
"core/audits/installable-manifest.js | start-url-not-valid": {
|
|
1092
1089
|
"message": "清单起始网址无效"
|
|
1093
1090
|
},
|
package/types/artifacts.d.ts
CHANGED
|
@@ -173,6 +173,7 @@ declare module Artifacts {
|
|
|
173
173
|
|
|
174
174
|
type NetworkRequest = _NetworkRequest;
|
|
175
175
|
type TaskNode = _TaskNode;
|
|
176
|
+
type TBTImpactTask = TaskNode & {tbtImpact: number, selfTbtImpact: number};
|
|
176
177
|
type MetaElement = Artifacts['MetaElements'][0];
|
|
177
178
|
|
|
178
179
|
interface URL {
|