lighthouse 12.6.1-dev.20250625 → 12.6.1-dev.20250626
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/insights/cls-culprits-insight.js +2 -2
- package/core/audits/insights/{interaction-to-next-paint-insight.d.ts → inp-breakdown-insight.d.ts} +3 -3
- package/core/audits/insights/{interaction-to-next-paint-insight.js → inp-breakdown-insight.js} +10 -10
- package/core/audits/insights/lcp-breakdown-insight.d.ts +16 -0
- package/core/audits/insights/{lcp-phases-insight.js → lcp-breakdown-insight.js} +19 -19
- package/core/audits/layout-shifts.js +1 -1
- package/core/config/default-config.js +4 -4
- package/core/config/experimental-config.js +2 -2
- package/core/scoring.d.ts +6 -0
- package/package.json +2 -2
- package/shared/localization/locales/ar-XB.json +0 -57
- package/shared/localization/locales/ar.json +0 -57
- package/shared/localization/locales/bg.json +0 -57
- package/shared/localization/locales/ca.json +0 -57
- package/shared/localization/locales/cs.json +0 -57
- package/shared/localization/locales/da.json +0 -57
- package/shared/localization/locales/de.json +0 -57
- package/shared/localization/locales/el.json +0 -57
- package/shared/localization/locales/en-GB.json +0 -57
- package/shared/localization/locales/en-US.json +61 -49
- package/shared/localization/locales/en-XL.json +61 -49
- package/shared/localization/locales/es-419.json +0 -57
- package/shared/localization/locales/es.json +0 -57
- package/shared/localization/locales/fi.json +0 -57
- package/shared/localization/locales/fil.json +0 -57
- package/shared/localization/locales/fr.json +0 -57
- package/shared/localization/locales/he.json +0 -57
- package/shared/localization/locales/hi.json +0 -57
- package/shared/localization/locales/hr.json +0 -57
- package/shared/localization/locales/hu.json +0 -57
- package/shared/localization/locales/id.json +0 -57
- package/shared/localization/locales/it.json +0 -57
- package/shared/localization/locales/ja.json +0 -57
- package/shared/localization/locales/ko.json +0 -57
- package/shared/localization/locales/lt.json +0 -57
- package/shared/localization/locales/lv.json +0 -57
- package/shared/localization/locales/nl.json +0 -57
- package/shared/localization/locales/no.json +0 -57
- package/shared/localization/locales/pl.json +0 -57
- package/shared/localization/locales/pt-PT.json +0 -57
- package/shared/localization/locales/pt.json +0 -57
- package/shared/localization/locales/ro.json +0 -57
- package/shared/localization/locales/ru.json +0 -57
- package/shared/localization/locales/sk.json +0 -57
- package/shared/localization/locales/sl.json +0 -57
- package/shared/localization/locales/sr-Latn.json +0 -57
- package/shared/localization/locales/sr.json +0 -57
- package/shared/localization/locales/sv.json +0 -57
- package/shared/localization/locales/ta.json +0 -57
- package/shared/localization/locales/te.json +0 -57
- package/shared/localization/locales/th.json +0 -57
- package/shared/localization/locales/tr.json +0 -57
- package/shared/localization/locales/uk.json +0 -57
- package/shared/localization/locales/vi.json +0 -57
- package/shared/localization/locales/zh-HK.json +0 -57
- package/shared/localization/locales/zh-TW.json +0 -57
- package/shared/localization/locales/zh.json +0 -57
- package/types/lhr/audit-details.d.ts +1 -0
- package/core/audits/insights/lcp-phases-insight.d.ts +0 -16
|
@@ -62,11 +62,11 @@ class CLSCulpritsInsight extends Audit {
|
|
|
62
62
|
cause: insightStr_(InsightUIStrings.unsizedImage),
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
-
for (const request of culprits.
|
|
65
|
+
for (const request of culprits.webFonts) {
|
|
66
66
|
const url = request.args.data.url;
|
|
67
67
|
subItems.push({
|
|
68
68
|
extra: {type: 'url', value: url},
|
|
69
|
-
cause: insightStr_(InsightUIStrings.
|
|
69
|
+
cause: insightStr_(InsightUIStrings.webFont),
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
for (const iframe of culprits.iframes) {
|
package/core/audits/insights/{interaction-to-next-paint-insight.d.ts → inp-breakdown-insight.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export default
|
|
2
|
-
declare class
|
|
1
|
+
export default INPBreakdownInsight;
|
|
2
|
+
declare class INPBreakdownInsight extends Audit {
|
|
3
3
|
/**
|
|
4
4
|
* @param {LH.Artifacts} artifacts
|
|
5
5
|
* @param {LH.Audit.Context} context
|
|
@@ -8,4 +8,4 @@ declare class InteractionToNextPaintInsight extends Audit {
|
|
|
8
8
|
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
|
|
9
9
|
}
|
|
10
10
|
import { Audit } from '../audit.js';
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=inp-breakdown-insight.d.ts.map
|
package/core/audits/insights/{interaction-to-next-paint-insight.js → inp-breakdown-insight.js}
RENAMED
|
@@ -4,22 +4,22 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {UIStrings} from '@paulirish/trace_engine/models/trace/insights/
|
|
7
|
+
import {UIStrings} from '@paulirish/trace_engine/models/trace/insights/INPBreakdown.js';
|
|
8
8
|
|
|
9
9
|
import {Audit} from '../audit.js';
|
|
10
10
|
import * as i18n from '../../lib/i18n/i18n.js';
|
|
11
11
|
import {adaptInsightToAuditProduct, makeNodeItemForNodeId} from './insight-audit.js';
|
|
12
12
|
|
|
13
13
|
// eslint-disable-next-line max-len
|
|
14
|
-
const str_ = i18n.createIcuMessageFn('node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
14
|
+
const str_ = i18n.createIcuMessageFn('node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js', UIStrings);
|
|
15
15
|
|
|
16
|
-
class
|
|
16
|
+
class INPBreakdownInsight extends Audit {
|
|
17
17
|
/**
|
|
18
18
|
* @return {LH.Audit.Meta}
|
|
19
19
|
*/
|
|
20
20
|
static get meta() {
|
|
21
21
|
return {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'inp-breakdown-insight',
|
|
23
23
|
title: str_(UIStrings.title),
|
|
24
24
|
failureTitle: str_(UIStrings.title),
|
|
25
25
|
description: str_(UIStrings.description),
|
|
@@ -35,7 +35,7 @@ class InteractionToNextPaintInsight extends Audit {
|
|
|
35
35
|
* @return {Promise<LH.Audit.Product>}
|
|
36
36
|
*/
|
|
37
37
|
static async audit(artifacts, context) {
|
|
38
|
-
return adaptInsightToAuditProduct(artifacts, context, '
|
|
38
|
+
return adaptInsightToAuditProduct(artifacts, context, 'INPBreakdown', (insight) => {
|
|
39
39
|
const event = insight.longestInteractionEvent;
|
|
40
40
|
if (!event) {
|
|
41
41
|
// TODO: show UIStrings.noInteractions?
|
|
@@ -44,16 +44,16 @@ class InteractionToNextPaintInsight extends Audit {
|
|
|
44
44
|
|
|
45
45
|
/** @type {LH.Audit.Details.Table['headings']} */
|
|
46
46
|
const headings = [
|
|
47
|
-
{key: 'label', valueType: 'text', label: str_(UIStrings.
|
|
47
|
+
{key: 'label', valueType: 'text', label: str_(UIStrings.subpart)},
|
|
48
48
|
{key: 'duration', valueType: 'ms', label: str_(i18n.UIStrings.columnDuration)},
|
|
49
49
|
];
|
|
50
50
|
|
|
51
51
|
/** @type {LH.Audit.Details.Table['items']} */
|
|
52
52
|
const items = [
|
|
53
53
|
/* eslint-disable max-len */
|
|
54
|
-
{
|
|
55
|
-
{
|
|
56
|
-
{
|
|
54
|
+
{subpart: 'inputDelay', label: str_(UIStrings.inputDelay), duration: event.inputDelay / 1000},
|
|
55
|
+
{subpart: 'processingDuration', label: str_(UIStrings.processingDuration), duration: event.mainThreadHandling / 1000},
|
|
56
|
+
{subpart: 'presentationDelay', label: str_(UIStrings.presentationDelay), duration: event.presentationDelay / 1000},
|
|
57
57
|
/* eslint-enable max-len */
|
|
58
58
|
];
|
|
59
59
|
|
|
@@ -65,4 +65,4 @@ class InteractionToNextPaintInsight extends Audit {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
export default
|
|
68
|
+
export default INPBreakdownInsight;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default LCPBreakdownInsight;
|
|
2
|
+
declare class LCPBreakdownInsight extends Audit {
|
|
3
|
+
/**
|
|
4
|
+
* @param {Required<import('@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js').LCPBreakdownInsightModel>['subparts']} subparts
|
|
5
|
+
* @return {LH.Audit.Details.Table}
|
|
6
|
+
*/
|
|
7
|
+
static makeSubpartsTable(subparts: Required<import("@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js").LCPBreakdownInsightModel>["subparts"]): LH.Audit.Details.Table;
|
|
8
|
+
/**
|
|
9
|
+
* @param {LH.Artifacts} artifacts
|
|
10
|
+
* @param {LH.Audit.Context} context
|
|
11
|
+
* @return {Promise<LH.Audit.Product>}
|
|
12
|
+
*/
|
|
13
|
+
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
|
|
14
|
+
}
|
|
15
|
+
import { Audit } from '../audit.js';
|
|
16
|
+
//# sourceMappingURL=lcp-breakdown-insight.d.ts.map
|
|
@@ -4,22 +4,22 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {UIStrings} from '@paulirish/trace_engine/models/trace/insights/
|
|
7
|
+
import {UIStrings} from '@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js';
|
|
8
8
|
|
|
9
9
|
import {Audit} from '../audit.js';
|
|
10
10
|
import * as i18n from '../../lib/i18n/i18n.js';
|
|
11
11
|
import {adaptInsightToAuditProduct, makeNodeItemForNodeId} from './insight-audit.js';
|
|
12
12
|
|
|
13
13
|
// eslint-disable-next-line max-len
|
|
14
|
-
const str_ = i18n.createIcuMessageFn('node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
14
|
+
const str_ = i18n.createIcuMessageFn('node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js', UIStrings);
|
|
15
15
|
|
|
16
|
-
class
|
|
16
|
+
class LCPBreakdownInsight extends Audit {
|
|
17
17
|
/**
|
|
18
18
|
* @return {LH.Audit.Meta}
|
|
19
19
|
*/
|
|
20
20
|
static get meta() {
|
|
21
21
|
return {
|
|
22
|
-
id: 'lcp-
|
|
22
|
+
id: 'lcp-breakdown-insight',
|
|
23
23
|
title: str_(UIStrings.title),
|
|
24
24
|
failureTitle: str_(UIStrings.title),
|
|
25
25
|
description: str_(UIStrings.description),
|
|
@@ -30,33 +30,33 @@ class LCPPhasesInsight extends Audit {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
|
-
* @param {Required<import('@paulirish/trace_engine/models/trace/insights/
|
|
33
|
+
* @param {Required<import('@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js').LCPBreakdownInsightModel>['subparts']} subparts
|
|
34
34
|
* @return {LH.Audit.Details.Table}
|
|
35
35
|
*/
|
|
36
|
-
static
|
|
37
|
-
const {ttfb, loadDelay,
|
|
36
|
+
static makeSubpartsTable(subparts) {
|
|
37
|
+
const {ttfb, loadDelay, loadDuration, renderDelay} = subparts;
|
|
38
38
|
|
|
39
39
|
/** @type {LH.Audit.Details.Table['headings']} */
|
|
40
40
|
const headings = [
|
|
41
|
-
{key: 'label', valueType: 'text', label: str_(UIStrings.
|
|
41
|
+
{key: 'label', valueType: 'text', label: str_(UIStrings.subpart)},
|
|
42
42
|
{key: 'duration', valueType: 'ms', label: str_(i18n.UIStrings.columnDuration)},
|
|
43
43
|
];
|
|
44
44
|
|
|
45
45
|
/** @type {LH.Audit.Details.Table['items']} */
|
|
46
46
|
let items = [
|
|
47
47
|
/* eslint-disable max-len */
|
|
48
|
-
{
|
|
49
|
-
{
|
|
50
|
-
{
|
|
51
|
-
{
|
|
48
|
+
{subpart: 'timeToFirstByte', label: str_(UIStrings.timeToFirstByte), duration: ttfb.range / 1000},
|
|
49
|
+
{subpart: 'resourceLoadDelay', label: str_(UIStrings.resourceLoadDelay), duration: (loadDelay?.range ?? 0) / 1000},
|
|
50
|
+
{subpart: 'resourceLoadDuration', label: str_(UIStrings.resourceLoadDuration), duration: (loadDuration?.range ?? 0) / 1000},
|
|
51
|
+
{subpart: 'elementRenderDelay', label: str_(UIStrings.elementRenderDelay), duration: renderDelay.range / 1000},
|
|
52
52
|
/* eslint-enable max-len */
|
|
53
53
|
];
|
|
54
54
|
|
|
55
55
|
if (loadDelay === undefined) {
|
|
56
|
-
items = items.filter(item => item.
|
|
56
|
+
items = items.filter(item => item.subpart !== 'resourceLoadDelay');
|
|
57
57
|
}
|
|
58
|
-
if (
|
|
59
|
-
items = items.filter(item => item.
|
|
58
|
+
if (loadDuration === undefined) {
|
|
59
|
+
items = items.filter(item => item.subpart !== 'resourceLoadDuration');
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
return Audit.makeTableDetails(headings, items);
|
|
@@ -68,17 +68,17 @@ class LCPPhasesInsight extends Audit {
|
|
|
68
68
|
* @return {Promise<LH.Audit.Product>}
|
|
69
69
|
*/
|
|
70
70
|
static async audit(artifacts, context) {
|
|
71
|
-
return adaptInsightToAuditProduct(artifacts, context, '
|
|
72
|
-
if (!insight.
|
|
71
|
+
return adaptInsightToAuditProduct(artifacts, context, 'LCPBreakdown', (insight) => {
|
|
72
|
+
if (!insight.subparts) {
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
return Audit.makeListDetails([
|
|
77
|
-
|
|
77
|
+
LCPBreakdownInsight.makeSubpartsTable(insight.subparts),
|
|
78
78
|
makeNodeItemForNodeId(artifacts.TraceElements, insight.lcpEvent?.args.data?.nodeId),
|
|
79
79
|
].filter(table => table !== undefined));
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
export default
|
|
84
|
+
export default LCPBreakdownInsight;
|
|
@@ -105,7 +105,7 @@ class LayoutShifts extends Audit {
|
|
|
105
105
|
cause: str_(UIStrings.rootCauseUnsizedMedia),
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
-
for (const request of rootCauses.
|
|
108
|
+
for (const request of rootCauses.webFonts) {
|
|
109
109
|
const url = request.args.data.url;
|
|
110
110
|
subItems.push({
|
|
111
111
|
extra: {type: 'url', value: url},
|
|
@@ -319,9 +319,9 @@ const defaultConfig = {
|
|
|
319
319
|
'insights/font-display-insight',
|
|
320
320
|
'insights/forced-reflow-insight',
|
|
321
321
|
'insights/image-delivery-insight',
|
|
322
|
-
'insights/
|
|
322
|
+
'insights/inp-breakdown-insight',
|
|
323
|
+
'insights/lcp-breakdown-insight',
|
|
323
324
|
'insights/lcp-discovery-insight',
|
|
324
|
-
'insights/lcp-phases-insight',
|
|
325
325
|
'insights/legacy-javascript-insight',
|
|
326
326
|
'insights/modern-http-insight',
|
|
327
327
|
'insights/network-dependency-tree-insight',
|
|
@@ -421,9 +421,9 @@ const defaultConfig = {
|
|
|
421
421
|
{id: 'font-display-insight', weight: 0, group: 'hidden'},
|
|
422
422
|
{id: 'forced-reflow-insight', weight: 0, group: 'hidden'},
|
|
423
423
|
{id: 'image-delivery-insight', weight: 0, group: 'hidden'},
|
|
424
|
-
{id: '
|
|
424
|
+
{id: 'inp-breakdown-insight', weight: 0, group: 'hidden'},
|
|
425
|
+
{id: 'lcp-breakdown-insight', weight: 0, group: 'hidden'},
|
|
425
426
|
{id: 'lcp-discovery-insight', weight: 0, group: 'hidden'},
|
|
426
|
-
{id: 'lcp-phases-insight', weight: 0, group: 'hidden'},
|
|
427
427
|
{id: 'legacy-javascript-insight', weight: 0, group: 'hidden'},
|
|
428
428
|
{id: 'modern-http-insight', weight: 0, group: 'hidden'},
|
|
429
429
|
{id: 'network-dependency-tree-insight', weight: 0, group: 'hidden'},
|
|
@@ -35,9 +35,9 @@ const config = {
|
|
|
35
35
|
{id: 'font-display-insight', weight: 0, group: 'insights'},
|
|
36
36
|
{id: 'forced-reflow-insight', weight: 0, group: 'insights'},
|
|
37
37
|
{id: 'image-delivery-insight', weight: 0, group: 'insights'},
|
|
38
|
-
{id: '
|
|
38
|
+
{id: 'inp-breakdown-insight', weight: 0, group: 'insights'},
|
|
39
|
+
{id: 'lcp-breakdown-insight', weight: 0, group: 'insights'},
|
|
39
40
|
{id: 'lcp-discovery-insight', weight: 0, group: 'insights'},
|
|
40
|
-
{id: 'lcp-phases-insight', weight: 0, group: 'insights'},
|
|
41
41
|
{id: 'legacy-javascript-insight', weight: 0, group: 'insights'},
|
|
42
42
|
{id: 'modern-http-insight', weight: 0, group: 'insights'},
|
|
43
43
|
{id: 'network-dependency-tree-insight', weight: 0, group: 'insights'},
|
package/core/scoring.d.ts
CHANGED
|
@@ -187,6 +187,7 @@ export class ReportScoring {
|
|
|
187
187
|
line: number;
|
|
188
188
|
column: number;
|
|
189
189
|
} | undefined;
|
|
190
|
+
functionName?: string | import("./index.js").IcuMessage | undefined;
|
|
190
191
|
} | {
|
|
191
192
|
type: "link";
|
|
192
193
|
text: string | import("./index.js").IcuMessage;
|
|
@@ -330,6 +331,7 @@ export class ReportScoring {
|
|
|
330
331
|
line: number;
|
|
331
332
|
column: number;
|
|
332
333
|
} | undefined;
|
|
334
|
+
functionName?: string | import("./index.js").IcuMessage | undefined;
|
|
333
335
|
} | {
|
|
334
336
|
type: "link";
|
|
335
337
|
text: string | import("./index.js").IcuMessage;
|
|
@@ -464,6 +466,7 @@ export class ReportScoring {
|
|
|
464
466
|
line: number;
|
|
465
467
|
column: number;
|
|
466
468
|
} | undefined;
|
|
469
|
+
functionName?: string | import("./index.js").IcuMessage | undefined;
|
|
467
470
|
} | {
|
|
468
471
|
type: "link";
|
|
469
472
|
text: string | import("./index.js").IcuMessage;
|
|
@@ -496,6 +499,7 @@ export class ReportScoring {
|
|
|
496
499
|
line: number;
|
|
497
500
|
column: number;
|
|
498
501
|
} | undefined;
|
|
502
|
+
functionName?: string | import("./index.js").IcuMessage | undefined;
|
|
499
503
|
} | {
|
|
500
504
|
type: "link";
|
|
501
505
|
text: string | import("./index.js").IcuMessage;
|
|
@@ -555,6 +559,7 @@ export class ReportScoring {
|
|
|
555
559
|
line: number;
|
|
556
560
|
column: number;
|
|
557
561
|
} | undefined;
|
|
562
|
+
functionName?: string | import("./index.js").IcuMessage | undefined;
|
|
558
563
|
} | {
|
|
559
564
|
type: "link";
|
|
560
565
|
text: string | import("./index.js").IcuMessage;
|
|
@@ -660,6 +665,7 @@ export class ReportScoring {
|
|
|
660
665
|
line: number;
|
|
661
666
|
column: number;
|
|
662
667
|
} | undefined;
|
|
668
|
+
functionName?: string | import("./index.js").IcuMessage | undefined;
|
|
663
669
|
} | {
|
|
664
670
|
type: "link";
|
|
665
671
|
text: string | import("./index.js").IcuMessage;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lighthouse",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "12.6.1-dev.
|
|
4
|
+
"version": "12.6.1-dev.20250626",
|
|
5
5
|
"description": "Automated auditing, performance metrics, and best practices for the web.",
|
|
6
6
|
"main": "./core/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"webtreemap-cdt": "^3.2.1"
|
|
190
190
|
},
|
|
191
191
|
"dependencies": {
|
|
192
|
-
"@paulirish/trace_engine": "0.0.
|
|
192
|
+
"@paulirish/trace_engine": "0.0.56",
|
|
193
193
|
"@sentry/node": "^9.28.1",
|
|
194
194
|
"axe-core": "^4.10.3",
|
|
195
195
|
"chrome-launcher": "^1.2.0",
|
|
@@ -2336,9 +2336,6 @@
|
|
|
2336
2336
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2337
2337
|
"message": "تحدث تغييرات التصميم عندما تتحرك العناصر بدون أي تدخُّل من المستخدم. [تحقَّق من أسباب تغييرات التصميم](https://web.dev/articles/optimize-cls)، مثل إضافة عناصر أو إزالتها أو تغيير خطوطها أثناء تحميل الصفحة."
|
|
2338
2338
|
},
|
|
2339
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | fontRequest": {
|
|
2340
|
-
"message": "طلب الخط"
|
|
2341
|
-
},
|
|
2342
2339
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
|
|
2343
2340
|
"message": "إطار iframe الذي تم إدخاله"
|
|
2344
2341
|
},
|
|
@@ -2513,30 +2510,6 @@
|
|
|
2513
2510
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
|
|
2514
2511
|
"message": "إنّ استخدام تنسيقات الفيديو بدلاً من ملفات GIF يمكن أن يؤدي إلى تحسين حجم تنزيل المحتوى المتحرك."
|
|
2515
2512
|
},
|
|
2516
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2517
|
-
"message": "ابدأ بالتحقيق في المرحلة الأطول. [يمكن تقليل التأخيرات](https://web.dev/articles/optimize-inp#optimize_interactions). ولتقليل مدة المعالجة، [حسِّن تكاليف سلسلة التعليمات الرئيسية](https://web.dev/articles/optimize-long-tasks)، والتي تكون في الغالب بيانات JavaScript."
|
|
2518
|
-
},
|
|
2519
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | duration": {
|
|
2520
|
-
"message": "المدة"
|
|
2521
|
-
},
|
|
2522
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | inputDelay": {
|
|
2523
|
-
"message": "تأخير عملية الإدخال"
|
|
2524
|
-
},
|
|
2525
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | noInteractions": {
|
|
2526
|
-
"message": "لم يتم رصد أي تفاعلات"
|
|
2527
|
-
},
|
|
2528
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | phase": {
|
|
2529
|
-
"message": "المرحلة"
|
|
2530
|
-
},
|
|
2531
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | presentationDelay": {
|
|
2532
|
-
"message": "تأخير العرض"
|
|
2533
|
-
},
|
|
2534
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | processingDuration": {
|
|
2535
|
-
"message": "مدة المعالجة"
|
|
2536
|
-
},
|
|
2537
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2538
|
-
"message": "مدى استجابة الصفحة لتفاعلات المستخدم (INP) حسب المرحلة"
|
|
2539
|
-
},
|
|
2540
2513
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2541
2514
|
"message": "يمكنك تحسين مقياس سرعة عرض أكبر محتوى مرئي (LCP) من خلال جعل صورة مقياس LCP [قابلة للاكتشاف](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) من HTML على الفور، و[تجنُّب التحميل الكسول](https://web.dev/articles/lcp-lazy-loading)."
|
|
2542
2515
|
},
|
|
@@ -2564,36 +2537,6 @@
|
|
|
2564
2537
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2565
2538
|
"message": "الاطّلاع على طلبات LCP"
|
|
2566
2539
|
},
|
|
2567
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2568
|
-
"message": "لكل [مرحلة استراتيجيات تحسين محدَّدة](https://web.dev/articles/optimize-lcp#lcp-breakdown). ومن الأفضل أن يتم قضاء معظم وقت سرعة عرض أكبر محتوى مرئي (LCP) في تحميل الموارد، وليس في التأخيرات."
|
|
2569
|
-
},
|
|
2570
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | duration": {
|
|
2571
|
-
"message": "المدة"
|
|
2572
|
-
},
|
|
2573
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | elementRenderDelay": {
|
|
2574
|
-
"message": "مهلة عرض العناصر"
|
|
2575
|
-
},
|
|
2576
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | fieldDuration": {
|
|
2577
|
-
"message": "الشريحة المئوية الـ 75 من بيانات تجارب المستخدمِين الحقيقيين"
|
|
2578
|
-
},
|
|
2579
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | noLcp": {
|
|
2580
|
-
"message": "لم يتم رصد أي مقياس لسرعة عرض أكبر محتوى مرئي (LCP)"
|
|
2581
|
-
},
|
|
2582
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | phase": {
|
|
2583
|
-
"message": "المرحلة"
|
|
2584
|
-
},
|
|
2585
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDelay": {
|
|
2586
|
-
"message": "مهلة تحميل الموارد"
|
|
2587
|
-
},
|
|
2588
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDuration": {
|
|
2589
|
-
"message": "مدة تحميل المورد"
|
|
2590
|
-
},
|
|
2591
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | timeToFirstByte": {
|
|
2592
|
-
"message": "مدة تحميل أول بايت"
|
|
2593
|
-
},
|
|
2594
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2595
|
-
"message": "سرعة عرض أكبر محتوى مرئي (LCP) حسب المرحلة"
|
|
2596
|
-
},
|
|
2597
2540
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnScript": {
|
|
2598
2541
|
"message": "النص البرمجي"
|
|
2599
2542
|
},
|
|
@@ -2336,9 +2336,6 @@
|
|
|
2336
2336
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2337
2337
|
"message": "تحدث تغييرات التصميم عندما تتحرك العناصر بدون أي تدخُّل من المستخدم. [تحقَّق من أسباب تغييرات التصميم](https://web.dev/articles/optimize-cls)، مثل إضافة عناصر أو إزالتها أو تغيير خطوطها أثناء تحميل الصفحة."
|
|
2338
2338
|
},
|
|
2339
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | fontRequest": {
|
|
2340
|
-
"message": "طلب الخط"
|
|
2341
|
-
},
|
|
2342
2339
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
|
|
2343
2340
|
"message": "إطار iframe الذي تم إدخاله"
|
|
2344
2341
|
},
|
|
@@ -2513,30 +2510,6 @@
|
|
|
2513
2510
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
|
|
2514
2511
|
"message": "إنّ استخدام تنسيقات الفيديو بدلاً من ملفات GIF يمكن أن يؤدي إلى تحسين حجم تنزيل المحتوى المتحرك."
|
|
2515
2512
|
},
|
|
2516
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2517
|
-
"message": "ابدأ بالتحقيق في المرحلة الأطول. [يمكن تقليل التأخيرات](https://web.dev/articles/optimize-inp#optimize_interactions). ولتقليل مدة المعالجة، [حسِّن تكاليف سلسلة التعليمات الرئيسية](https://web.dev/articles/optimize-long-tasks)، والتي تكون في الغالب بيانات JavaScript."
|
|
2518
|
-
},
|
|
2519
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | duration": {
|
|
2520
|
-
"message": "المدة"
|
|
2521
|
-
},
|
|
2522
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | inputDelay": {
|
|
2523
|
-
"message": "تأخير عملية الإدخال"
|
|
2524
|
-
},
|
|
2525
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | noInteractions": {
|
|
2526
|
-
"message": "لم يتم رصد أي تفاعلات"
|
|
2527
|
-
},
|
|
2528
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | phase": {
|
|
2529
|
-
"message": "المرحلة"
|
|
2530
|
-
},
|
|
2531
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | presentationDelay": {
|
|
2532
|
-
"message": "تأخير العرض"
|
|
2533
|
-
},
|
|
2534
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | processingDuration": {
|
|
2535
|
-
"message": "مدة المعالجة"
|
|
2536
|
-
},
|
|
2537
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2538
|
-
"message": "مدى استجابة الصفحة لتفاعلات المستخدم (INP) حسب المرحلة"
|
|
2539
|
-
},
|
|
2540
2513
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2541
2514
|
"message": "يمكنك تحسين مقياس سرعة عرض أكبر محتوى مرئي (LCP) من خلال جعل صورة مقياس LCP [قابلة للاكتشاف](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) من HTML على الفور، و[تجنُّب التحميل الكسول](https://web.dev/articles/lcp-lazy-loading)."
|
|
2542
2515
|
},
|
|
@@ -2564,36 +2537,6 @@
|
|
|
2564
2537
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2565
2538
|
"message": "الاطّلاع على طلبات LCP"
|
|
2566
2539
|
},
|
|
2567
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2568
|
-
"message": "لكل [مرحلة استراتيجيات تحسين محدَّدة](https://web.dev/articles/optimize-lcp#lcp-breakdown). ومن الأفضل أن يتم قضاء معظم وقت سرعة عرض أكبر محتوى مرئي (LCP) في تحميل الموارد، وليس في التأخيرات."
|
|
2569
|
-
},
|
|
2570
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | duration": {
|
|
2571
|
-
"message": "المدة"
|
|
2572
|
-
},
|
|
2573
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | elementRenderDelay": {
|
|
2574
|
-
"message": "مهلة عرض العناصر"
|
|
2575
|
-
},
|
|
2576
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | fieldDuration": {
|
|
2577
|
-
"message": "الشريحة المئوية الـ 75 من بيانات تجارب المستخدمِين الحقيقيين"
|
|
2578
|
-
},
|
|
2579
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | noLcp": {
|
|
2580
|
-
"message": "لم يتم رصد أي مقياس لسرعة عرض أكبر محتوى مرئي (LCP)"
|
|
2581
|
-
},
|
|
2582
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | phase": {
|
|
2583
|
-
"message": "المرحلة"
|
|
2584
|
-
},
|
|
2585
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDelay": {
|
|
2586
|
-
"message": "مهلة تحميل الموارد"
|
|
2587
|
-
},
|
|
2588
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDuration": {
|
|
2589
|
-
"message": "مدة تحميل المورد"
|
|
2590
|
-
},
|
|
2591
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | timeToFirstByte": {
|
|
2592
|
-
"message": "مدة تحميل أول بايت"
|
|
2593
|
-
},
|
|
2594
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2595
|
-
"message": "سرعة عرض أكبر محتوى مرئي (LCP) حسب المرحلة"
|
|
2596
|
-
},
|
|
2597
2540
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnScript": {
|
|
2598
2541
|
"message": "النص البرمجي"
|
|
2599
2542
|
},
|
|
@@ -2336,9 +2336,6 @@
|
|
|
2336
2336
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2337
2337
|
"message": "Структурни промени настъпват, когато елементите се преместват без взаимодействие от страна на потребителя. [Проучете причините за структурните промени](https://web.dev/articles/optimize-cls), като например добавяне или премахване на елементи или промяна на шрифтовете им при зареждане на страницата."
|
|
2338
2338
|
},
|
|
2339
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | fontRequest": {
|
|
2340
|
-
"message": "Заявка за шрифт"
|
|
2341
|
-
},
|
|
2342
2339
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
|
|
2343
2340
|
"message": "Вмъкната вложена рамка"
|
|
2344
2341
|
},
|
|
@@ -2513,30 +2510,6 @@
|
|
|
2513
2510
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
|
|
2514
2511
|
"message": "Използването на видеоформати вместо GIF файлове може да подобри размера за изтегляне на анимираното съдържание."
|
|
2515
2512
|
},
|
|
2516
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2517
|
-
"message": "Започнете проверката от най-продължителната фаза. [Забавянията могат да бъдат сведени до минимум](https://web.dev/articles/optimize-inp#optimize_interactions). За да ускорите обработката, [оптимизирайте работата на основната нишка](https://web.dev/articles/optimize-long-tasks), която често е JS."
|
|
2518
|
-
},
|
|
2519
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | duration": {
|
|
2520
|
-
"message": "Продължителност"
|
|
2521
|
-
},
|
|
2522
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | inputDelay": {
|
|
2523
|
-
"message": "Забавяне след входящи данни от действие"
|
|
2524
|
-
},
|
|
2525
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | noInteractions": {
|
|
2526
|
-
"message": "Не са открити взаимодействия"
|
|
2527
|
-
},
|
|
2528
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | phase": {
|
|
2529
|
-
"message": "Фаза"
|
|
2530
|
-
},
|
|
2531
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | presentationDelay": {
|
|
2532
|
-
"message": "Забавяне на представянето"
|
|
2533
|
-
},
|
|
2534
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | processingDuration": {
|
|
2535
|
-
"message": "Продължителност на обработването"
|
|
2536
|
-
},
|
|
2537
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2538
|
-
"message": "INP по фаза"
|
|
2539
|
-
},
|
|
2540
2513
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2541
2514
|
"message": "Оптимизирайте LCP, като направите изображението, представляващо LCP, незабавно [откриваемо](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) в HTML кода и [избягвате забавеното зареждане](https://web.dev/articles/lcp-lazy-loading)"
|
|
2542
2515
|
},
|
|
@@ -2564,36 +2537,6 @@
|
|
|
2564
2537
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2565
2538
|
"message": "Откриване на заявките за LCP"
|
|
2566
2539
|
},
|
|
2567
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2568
|
-
"message": "За всяка [фаза има конкретни стратегии за подобряване](https://web.dev/articles/optimize-lcp#lcp-breakdown). В идеалния случай по-голямата част от времето за LCP трябва да премине в зареждане на ресурсите, а не да е свързана със забавяния."
|
|
2569
|
-
},
|
|
2570
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | duration": {
|
|
2571
|
-
"message": "Продължителност"
|
|
2572
|
-
},
|
|
2573
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | elementRenderDelay": {
|
|
2574
|
-
"message": "Забавяне при рендерирането на елемента"
|
|
2575
|
-
},
|
|
2576
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | fieldDuration": {
|
|
2577
|
-
"message": "Поле със 75-и процентил"
|
|
2578
|
-
},
|
|
2579
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | noLcp": {
|
|
2580
|
-
"message": "Не е открито изобразяване на най-голямото съдържание (LCP)"
|
|
2581
|
-
},
|
|
2582
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | phase": {
|
|
2583
|
-
"message": "Фаза"
|
|
2584
|
-
},
|
|
2585
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDelay": {
|
|
2586
|
-
"message": "Забавяне при зареждането на ресурсите"
|
|
2587
|
-
},
|
|
2588
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDuration": {
|
|
2589
|
-
"message": "Продължителност на зареждането на ресурсите"
|
|
2590
|
-
},
|
|
2591
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | timeToFirstByte": {
|
|
2592
|
-
"message": "Време до първия байт"
|
|
2593
|
-
},
|
|
2594
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2595
|
-
"message": "LCP по фаза"
|
|
2596
|
-
},
|
|
2597
2540
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnScript": {
|
|
2598
2541
|
"message": "Скрипт"
|
|
2599
2542
|
},
|