sitespeed.io 24.5.0 → 24.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/Dockerfile +1 -1
- package/lib/plugins/crux/pug/index.pug +106 -103
- package/lib/plugins/html/templates/url/metrics/index.pug +5 -4
- package/lib/plugins/html/templates/url/pagexray/index.pug +1 -1
- package/lib/plugins/html/templates/url/pagexray/perDomain.pug +4 -4
- package/npm-shrinkwrap.json +32 -32
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org))
|
|
2
2
|
|
|
3
|
+
## 24.7.0 - 2022-05-11
|
|
4
|
+
### Added
|
|
5
|
+
Updated to [Browsertime 16.4.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1640---2022-05-11) fixes a bug for LCP in the video and also output when LCP happens in the video.
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
* Make sure we got CLS from Browsertime when we try to render it [#3650](https://github.com/sitespeedio/sitespeed.io/pull/3650).
|
|
9
|
+
## 24.6.0 - 2022-05-10
|
|
10
|
+
### Added
|
|
11
|
+
* Updated to [Browsertime 16.3.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1630---2022-05-07) that collects Largest Contentful Paint from the browser (if the browser suppoorts the LCP API).
|
|
12
|
+
|
|
13
|
+
* Show total download time per domain [#3648](https://github.com/sitespeedio/sitespeed.io/pull/3648).
|
|
14
|
+
## 24.5.1 - 2022-05-06
|
|
15
|
+
### Fixed
|
|
16
|
+
* Reverted to Ubuntu 20 in the Docker container. Ubuntu 22 gave Firefox problems on ARM and we also seen other problems with NodeJS in that container.
|
|
17
|
+
* Updated PageXray/Coach Core that include SSL times in the total timings per domain (that was missed before).
|
|
18
|
+
* Added more safe check when we miss Crux data.
|
|
3
19
|
## 24.5.0 - 2022-05-05
|
|
4
20
|
### Added
|
|
5
21
|
* Add INP and TTFB to the CRUX metrics [#3645](https://github.com/sitespeedio/sitespeed.io/pull/3645).
|
package/Dockerfile
CHANGED
|
@@ -14,108 +14,111 @@ mixin sizeCell(title, size)
|
|
|
14
14
|
- const metrics = {first_contentful_paint:'First Contentful Paint (FCP)', largest_contentful_paint: 'Largest Contentful Paint (LCP)', first_input_delay:'First Input Delay (FID)', cumulative_layout_shift: 'Cumulative Layout Shift (CLS)',experimental_interaction_to_next_paint: 'Interaction to next paint (INP)', experimental_time_to_first_byte: 'Time to first byte (TTFB)'};
|
|
15
15
|
- const experiences = ['loadingExperience','originLoadingExperience'];
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
if experiences
|
|
18
|
+
small
|
|
19
|
+
||
|
|
20
|
+
each experience in experiences
|
|
21
|
+
each formFactor in Object.keys(crux[experience])
|
|
22
|
+
a(href='#' + experience + '-' + formFactor) #{experience} #{formFactor} |
|
|
23
|
+
| |
|
|
24
|
+
|
|
25
|
+
a#crux
|
|
26
|
+
h2 CrUx
|
|
27
|
+
p.small Chrome User Experience Report (CrUx) is powered by real user measurement across the public web, aggregated from users who have opted-in to syncing their browsing history, have not set up a Sync passphrase, and have usage statistic reporting enabled and is using Chrome.
|
|
28
|
+
|
|
29
|
+
p.small The CrUx data has four different buckets (form factor) depending on device: DESKTOP, PHONE, TABLET and ALL. You can choose which data to get with
|
|
30
|
+
code --crux.formFactor
|
|
31
|
+
| .
|
|
32
|
+
|
|
19
33
|
each experience in experiences
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
a
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
each experience in experiences
|
|
33
|
-
if experience === 'loadingExperience' && crux[experience]
|
|
34
|
-
p Over the last 30 days, this is the field data for this page for Chrome users.
|
|
35
|
-
else if crux[experience]
|
|
36
|
-
h4 All pages served from this origin
|
|
37
|
-
p This is a summary of all pages served from this origin over the last 30 days for Chrome users.
|
|
38
|
-
|
|
39
|
-
if crux[experience]
|
|
40
|
-
each formFactor in Object.keys(crux[experience])
|
|
41
|
-
if (crux[experience][formFactor] && crux[experience][formFactor].data)
|
|
42
|
-
a(id=experience + '-' + formFactor)
|
|
43
|
-
h3 Form Factor #{formFactor}
|
|
44
|
-
table
|
|
45
|
-
thead
|
|
46
|
-
tr
|
|
47
|
-
th Metric
|
|
48
|
-
th Value
|
|
49
|
-
tbody
|
|
50
|
-
each name, key in metrics
|
|
51
|
-
if crux[experience][formFactor].data.record.metrics[key]
|
|
52
|
-
tr
|
|
53
|
-
td #{name} 75 percentile
|
|
54
|
-
td #{key.indexOf('cumulative') > -1 ? crux[experience][formFactor].data.record.metrics[key].percentiles.p75 : h.time.ms(crux[experience][formFactor].data.record.metrics[key].percentiles.p75)}
|
|
55
|
-
|
|
56
|
-
h4 Distribution
|
|
57
|
-
- let cruxus = `${experience}.${formFactor}.data.record.metrics`;
|
|
58
|
-
- let FCPs = [Number(get(crux, `${cruxus}.first_contentful_paint.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.first_contentful_paint.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.first_contentful_paint.histogram[2].density`, 0)*100).toFixed(2)];
|
|
59
|
-
|
|
60
|
-
- let LCPs = [Number(get(crux, `${cruxus}.largest_contentful_paint.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.largest_contentful_paint.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.largest_contentful_paint.histogram[2].density`, 0)*100).toFixed(2)];
|
|
61
|
-
|
|
62
|
-
- let FIDs = [Number(get(crux, `${cruxus}.first_input_delay.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.first_input_delay.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.first_input_delay.histogram[2].density`, 0)*100).toFixed(2)];
|
|
63
|
-
|
|
64
|
-
- let CLSs = [Number(get(crux, `${cruxus}.cumulative_layout_shift.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.cumulative_layout_shift.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.cumulative_layout_shift.histogram[2].density`, 0)*100).toFixed(2)];
|
|
65
|
-
|
|
66
|
-
- let TTFBs = [Number(get(crux, `${cruxus}.experimental_time_to_first_byte.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.experimental_time_to_first_byte.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.experimental_time_to_first_byte.histogram[2].density`, 0)*100).toFixed(2)];
|
|
67
|
-
|
|
68
|
-
- let ITNPs = [Number(get(crux, `${cruxus}.experimental_interaction_to_next_paint.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.experimental_interaction_to_next_paint.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.experimental_interaction_to_next_paint.histogram[2].density`, 0)*100).toFixed(2)];
|
|
69
|
-
|
|
70
|
-
script(type='text/javascript').
|
|
71
|
-
document.addEventListener("DOMContentLoaded", function() {
|
|
72
|
-
|
|
73
|
-
function drawPie(id, series, labels) {
|
|
74
|
-
new Chartist.Pie(id, {
|
|
75
|
-
series,
|
|
76
|
-
labels,
|
|
77
|
-
}, {
|
|
78
|
-
showLabel: false,
|
|
79
|
-
plugins: [
|
|
80
|
-
Chartist.plugins.legend(
|
|
81
|
-
{ clickable: false,
|
|
82
|
-
position: 'bottom'
|
|
83
|
-
}
|
|
84
|
-
)
|
|
85
|
-
]
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
drawPie('#chartFCP#{experience + formFactor}', [#{FCPs}], ['Fast: #{FCPs[0]}%', 'Moderate #{FCPs[1]}%', 'Slow: #{FCPs[2]}%']);
|
|
90
|
-
drawPie('#chartLCP#{experience + formFactor}', [#{LCPs}], ['Fast: #{LCPs[0]}%', 'Moderate #{LCPs[1]}%', 'Slow: #{LCPs[2]}%']);
|
|
91
|
-
drawPie('#chartFID#{experience + formFactor}', [#{FIDs}], ['Fast: #{FIDs[0]}%', 'Moderate #{FIDs[1]}%', 'Slow: #{FIDs[2]}%']);
|
|
92
|
-
drawPie('#chartCLS#{experience + formFactor}', [#{CLSs}], ['Good: #{CLSs[0]}%', 'Need improvement: #{CLSs[1]}%', 'Poor: #{CLSs[2]}%']);
|
|
93
|
-
drawPie('#chartTTFB#{experience + formFactor}', [#{TTFBs}], ['Good: #{TTFBs[0]}%', 'Need improvement: #{TTFBs[1]}%', 'Poor: #{TTFBs[2]}%']);
|
|
94
|
-
drawPie('#chartITNP#{experience + formFactor}', [#{ITNPs}], ['Good: #{ITNPs[0]}%', 'Need improvement: #{ITNPs[1]}%', 'Poor: #{ITNPs[2]}%']);
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
});
|
|
98
|
-
.responsive
|
|
34
|
+
if experience === 'loadingExperience' && crux[experience]
|
|
35
|
+
p Over the last 30 days, this is the field data for this page for Chrome users.
|
|
36
|
+
else if crux[experience]
|
|
37
|
+
h4 All pages served from this origin
|
|
38
|
+
p This is a summary of all pages served from this origin over the last 30 days for Chrome users.
|
|
39
|
+
|
|
40
|
+
if crux[experience]
|
|
41
|
+
each formFactor in Object.keys(crux[experience])
|
|
42
|
+
if (crux[experience][formFactor] && crux[experience][formFactor].data)
|
|
43
|
+
a(id=experience + '-' + formFactor)
|
|
44
|
+
h3 Form Factor #{formFactor}
|
|
99
45
|
table
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
46
|
+
thead
|
|
47
|
+
tr
|
|
48
|
+
th Metric
|
|
49
|
+
th Value
|
|
50
|
+
tbody
|
|
51
|
+
each name, key in metrics
|
|
52
|
+
if crux[experience][formFactor].data.record.metrics[key]
|
|
53
|
+
tr
|
|
54
|
+
td #{name} 75 percentile
|
|
55
|
+
td #{key.indexOf('cumulative') > -1 ? crux[experience][formFactor].data.record.metrics[key].percentiles.p75 : h.time.ms(crux[experience][formFactor].data.record.metrics[key].percentiles.p75)}
|
|
56
|
+
|
|
57
|
+
h4 Distribution
|
|
58
|
+
- let cruxus = `${experience}.${formFactor}.data.record.metrics`;
|
|
59
|
+
- let FCPs = [Number(get(crux, `${cruxus}.first_contentful_paint.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.first_contentful_paint.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.first_contentful_paint.histogram[2].density`, 0)*100).toFixed(2)];
|
|
60
|
+
|
|
61
|
+
- let LCPs = [Number(get(crux, `${cruxus}.largest_contentful_paint.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.largest_contentful_paint.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.largest_contentful_paint.histogram[2].density`, 0)*100).toFixed(2)];
|
|
62
|
+
|
|
63
|
+
- let FIDs = [Number(get(crux, `${cruxus}.first_input_delay.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.first_input_delay.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.first_input_delay.histogram[2].density`, 0)*100).toFixed(2)];
|
|
64
|
+
|
|
65
|
+
- let CLSs = [Number(get(crux, `${cruxus}.cumulative_layout_shift.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.cumulative_layout_shift.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.cumulative_layout_shift.histogram[2].density`, 0)*100).toFixed(2)];
|
|
66
|
+
|
|
67
|
+
- let TTFBs = [Number(get(crux, `${cruxus}.experimental_time_to_first_byte.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.experimental_time_to_first_byte.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.experimental_time_to_first_byte.histogram[2].density`, 0)*100).toFixed(2)];
|
|
68
|
+
|
|
69
|
+
- let ITNPs = [Number(get(crux, `${cruxus}.experimental_interaction_to_next_paint.histogram[0].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.experimental_interaction_to_next_paint.histogram[1].density`, 0) * 100).toFixed(2), Number(get(crux, `${cruxus}.experimental_interaction_to_next_paint.histogram[2].density`, 0)*100).toFixed(2)];
|
|
70
|
+
|
|
71
|
+
script(type='text/javascript').
|
|
72
|
+
document.addEventListener("DOMContentLoaded", function() {
|
|
73
|
+
|
|
74
|
+
function drawPie(id, series, labels) {
|
|
75
|
+
new Chartist.Pie(id, {
|
|
76
|
+
series,
|
|
77
|
+
labels,
|
|
78
|
+
}, {
|
|
79
|
+
showLabel: false,
|
|
80
|
+
plugins: [
|
|
81
|
+
Chartist.plugins.legend(
|
|
82
|
+
{ clickable: false,
|
|
83
|
+
position: 'bottom'
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
drawPie('#chartFCP#{experience + formFactor}', [#{FCPs}], ['Fast: #{FCPs[0]}%', 'Moderate #{FCPs[1]}%', 'Slow: #{FCPs[2]}%']);
|
|
91
|
+
drawPie('#chartLCP#{experience + formFactor}', [#{LCPs}], ['Fast: #{LCPs[0]}%', 'Moderate #{LCPs[1]}%', 'Slow: #{LCPs[2]}%']);
|
|
92
|
+
drawPie('#chartFID#{experience + formFactor}', [#{FIDs}], ['Fast: #{FIDs[0]}%', 'Moderate #{FIDs[1]}%', 'Slow: #{FIDs[2]}%']);
|
|
93
|
+
drawPie('#chartCLS#{experience + formFactor}', [#{CLSs}], ['Good: #{CLSs[0]}%', 'Need improvement: #{CLSs[1]}%', 'Poor: #{CLSs[2]}%']);
|
|
94
|
+
drawPie('#chartTTFB#{experience + formFactor}', [#{TTFBs}], ['Good: #{TTFBs[0]}%', 'Need improvement: #{TTFBs[1]}%', 'Poor: #{TTFBs[2]}%']);
|
|
95
|
+
drawPie('#chartITNP#{experience + formFactor}', [#{ITNPs}], ['Good: #{ITNPs[0]}%', 'Need improvement: #{ITNPs[1]}%', 'Poor: #{ITNPs[2]}%']);
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
});
|
|
99
|
+
.responsive
|
|
100
|
+
table
|
|
101
|
+
tr
|
|
102
|
+
th #{metrics['first_contentful_paint']}
|
|
103
|
+
th #{metrics['largest_contentful_paint']}
|
|
104
|
+
th #{metrics['first_input_delay']}
|
|
105
|
+
tr
|
|
106
|
+
td(data-title=metrics['first_contentful_paint'])
|
|
107
|
+
.ct-chart(id='chartFCP' + experience + formFactor)
|
|
108
|
+
td(data-title=metrics['largest_contentful_paint'])
|
|
109
|
+
.ct-chart(id='chartLCP' + experience + formFactor)
|
|
110
|
+
td(data-title=metrics['first_input_delay'])
|
|
111
|
+
.ct-chart(id='chartFID' + experience + formFactor)
|
|
112
|
+
tr
|
|
113
|
+
th #{metrics['cumulative_layout_shift']}
|
|
114
|
+
th #{metrics['experimental_interaction_to_next_paint']}
|
|
115
|
+
th #{metrics['experimental_time_to_first_byte']}
|
|
116
|
+
tr
|
|
117
|
+
td(data-title=metrics['cumulative_layout_shift'])
|
|
118
|
+
.ct-chart(id='chartCLS' + experience + formFactor)
|
|
119
|
+
td(data-title=metrics['experimental_interaction_to_next_paint'])
|
|
120
|
+
.ct-chart(id='chartITNP' + experience + formFactor)
|
|
121
|
+
td(data-title=metrics['experimental_time_to_first_byte'])
|
|
122
|
+
.ct-chart(id='chartTTFB' + experience + formFactor)
|
|
123
|
+
else
|
|
124
|
+
p No data availible in the Chrome User Experience report.
|
|
@@ -142,10 +142,11 @@ if browsertime
|
|
|
142
142
|
td
|
|
143
143
|
a(href='#largestContentfulPaint') Largest Contentful Paint (LCP)
|
|
144
144
|
td.number #{h.time.ms(Math.max(timings.largestContentfulPaint.loadTime,timings.largestContentfulPaint.renderTime, timings.largestContentfulPaint.loadTime,timings.largestContentfulPaint.loadTime))}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
145
|
+
if (browsertime.pageinfo && browsertime.pageinfo.cumulativeLayoutShift)
|
|
146
|
+
tr
|
|
147
|
+
td
|
|
148
|
+
a(href='#cumulativeLayoutShift') Cumulative Layout Shift (CLS)
|
|
149
|
+
td.number #{browsertime.pageinfo.cumulativeLayoutShift.toFixed(2)}
|
|
149
150
|
if browsertime.timings.firstInput !== undefined
|
|
150
151
|
tr
|
|
151
152
|
td
|
|
@@ -10,7 +10,7 @@ small
|
|
|
10
10
|
| |
|
|
11
11
|
a(href='#requests-and-sizes-per-content-type') Requests and sizes per content type
|
|
12
12
|
| |
|
|
13
|
-
a(href='#
|
|
13
|
+
a(href='#data-per-domain') Data per domain
|
|
14
14
|
| |
|
|
15
15
|
a(href='#expires-and-last-modified-stats') Expires and last modified statistics
|
|
16
16
|
| |
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
a#
|
|
2
|
-
h3
|
|
1
|
+
a#data-per-domain
|
|
2
|
+
h3 Data per domain
|
|
3
3
|
.responsive
|
|
4
4
|
table(data-sortable, id='contentSizePerDomain')
|
|
5
|
-
+rowHeading(['Domain', '
|
|
5
|
+
+rowHeading(['Domain', 'Total download time', 'Transfer Size', 'Content Size', 'Requests'])
|
|
6
6
|
each data, domain in pagexray.domains
|
|
7
7
|
tr
|
|
8
8
|
td(data-title='Domain') #{domain}
|
|
9
|
-
+
|
|
9
|
+
+timeCell('totalTime', data.totalTime)
|
|
10
10
|
+sizeCell('transferSize', data.transferSize)
|
|
11
11
|
+sizeCell('contentSize', data.contentSize)
|
|
12
12
|
+numberCell('requests', data.requests)
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sitespeed.io",
|
|
3
|
-
"version": "24.
|
|
3
|
+
"version": "24.7.0",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "sitespeed.io",
|
|
9
|
-
"version": "24.
|
|
9
|
+
"version": "24.7.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@google-cloud/storage": "5.19.3",
|
|
13
13
|
"@tgwf/co2": "0.8.0",
|
|
14
14
|
"aws-sdk": "2.1121.0",
|
|
15
15
|
"axe-core": "4.4.1",
|
|
16
|
-
"browsertime": "16.
|
|
16
|
+
"browsertime": "16.4.0",
|
|
17
17
|
"cli-color": "2.0.2",
|
|
18
|
-
"coach-core": "7.1.
|
|
18
|
+
"coach-core": "7.1.2",
|
|
19
19
|
"concurrent-queue": "7.0.2",
|
|
20
20
|
"dayjs": "1.11.1",
|
|
21
21
|
"fast-crc32c": "2.0.0",
|
|
@@ -1681,9 +1681,9 @@
|
|
|
1681
1681
|
}
|
|
1682
1682
|
},
|
|
1683
1683
|
"node_modules/browsertime": {
|
|
1684
|
-
"version": "16.
|
|
1685
|
-
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.
|
|
1686
|
-
"integrity": "sha512-
|
|
1684
|
+
"version": "16.4.0",
|
|
1685
|
+
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.4.0.tgz",
|
|
1686
|
+
"integrity": "sha512-rbkN9KVJZLHICrWV0V9RNw/MBeta+zDGOI0sYJYQC/Usp+JOII1UJJt4qNHp54ixjAP8yxIQOJMTfAyDqnJTBw==",
|
|
1687
1687
|
"dependencies": {
|
|
1688
1688
|
"@cypress/xvfb": "1.2.4",
|
|
1689
1689
|
"@devicefarmer/adbkit": "2.11.3",
|
|
@@ -2168,17 +2168,17 @@
|
|
|
2168
2168
|
}
|
|
2169
2169
|
},
|
|
2170
2170
|
"node_modules/coach-core": {
|
|
2171
|
-
"version": "7.1.
|
|
2172
|
-
"resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.1.
|
|
2173
|
-
"integrity": "sha512-
|
|
2171
|
+
"version": "7.1.2",
|
|
2172
|
+
"resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.1.2.tgz",
|
|
2173
|
+
"integrity": "sha512-MuziK7sWmkQPHgkVy7vpegtpEJgt8LE9no2x5TwTQIhSMqSeUeREhzr6ayQ0XCjezRZV3+nB68TblEK7GKTbyQ==",
|
|
2174
2174
|
"dependencies": {
|
|
2175
2175
|
"filter-files": "0.4.0",
|
|
2176
2176
|
"json-stable-stringify": "1.0.1",
|
|
2177
2177
|
"lodash.groupby": "4.6.0",
|
|
2178
2178
|
"lodash.merge": "4.6.2",
|
|
2179
2179
|
"lodash.sortby": "4.7.0",
|
|
2180
|
-
"pagexray": "4.4.
|
|
2181
|
-
"third-party-web": "0.
|
|
2180
|
+
"pagexray": "4.4.2",
|
|
2181
|
+
"third-party-web": "0.17.1",
|
|
2182
2182
|
"wappalyzer-core": "6.6.0"
|
|
2183
2183
|
},
|
|
2184
2184
|
"engines": {
|
|
@@ -6175,9 +6175,9 @@
|
|
|
6175
6175
|
}
|
|
6176
6176
|
},
|
|
6177
6177
|
"node_modules/pagexray": {
|
|
6178
|
-
"version": "4.4.
|
|
6179
|
-
"resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.
|
|
6180
|
-
"integrity": "sha512-
|
|
6178
|
+
"version": "4.4.2",
|
|
6179
|
+
"resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.2.tgz",
|
|
6180
|
+
"integrity": "sha512-Cw1WhyuqEy4nACgUMzTfuZn7EcQrsq4ozpTnkVlsGjm4eMbdGXKN8QwflFi1g7p2FpgSq1ElKgTGFrzVNdbEyQ==",
|
|
6181
6181
|
"dependencies": {
|
|
6182
6182
|
"minimist": "1.2.6"
|
|
6183
6183
|
},
|
|
@@ -7814,9 +7814,9 @@
|
|
|
7814
7814
|
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
|
|
7815
7815
|
},
|
|
7816
7816
|
"node_modules/third-party-web": {
|
|
7817
|
-
"version": "0.
|
|
7818
|
-
"resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.
|
|
7819
|
-
"integrity": "sha512-
|
|
7817
|
+
"version": "0.17.1",
|
|
7818
|
+
"resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.17.1.tgz",
|
|
7819
|
+
"integrity": "sha512-X9Mha8cVeBwakunlZXkXL6xRzw8VCcDGWqT59EzeTYAJIi8ien3CuufnEGEx4ZUFahumNQdoOwf4H2T9Ca6lBg=="
|
|
7820
7820
|
},
|
|
7821
7821
|
"node_modules/through": {
|
|
7822
7822
|
"version": "2.3.8",
|
|
@@ -9761,9 +9761,9 @@
|
|
|
9761
9761
|
}
|
|
9762
9762
|
},
|
|
9763
9763
|
"browsertime": {
|
|
9764
|
-
"version": "16.
|
|
9765
|
-
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.
|
|
9766
|
-
"integrity": "sha512-
|
|
9764
|
+
"version": "16.4.0",
|
|
9765
|
+
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.4.0.tgz",
|
|
9766
|
+
"integrity": "sha512-rbkN9KVJZLHICrWV0V9RNw/MBeta+zDGOI0sYJYQC/Usp+JOII1UJJt4qNHp54ixjAP8yxIQOJMTfAyDqnJTBw==",
|
|
9767
9767
|
"requires": {
|
|
9768
9768
|
"@cypress/xvfb": "1.2.4",
|
|
9769
9769
|
"@devicefarmer/adbkit": "2.11.3",
|
|
@@ -10132,17 +10132,17 @@
|
|
|
10132
10132
|
}
|
|
10133
10133
|
},
|
|
10134
10134
|
"coach-core": {
|
|
10135
|
-
"version": "7.1.
|
|
10136
|
-
"resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.1.
|
|
10137
|
-
"integrity": "sha512-
|
|
10135
|
+
"version": "7.1.2",
|
|
10136
|
+
"resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.1.2.tgz",
|
|
10137
|
+
"integrity": "sha512-MuziK7sWmkQPHgkVy7vpegtpEJgt8LE9no2x5TwTQIhSMqSeUeREhzr6ayQ0XCjezRZV3+nB68TblEK7GKTbyQ==",
|
|
10138
10138
|
"requires": {
|
|
10139
10139
|
"filter-files": "0.4.0",
|
|
10140
10140
|
"json-stable-stringify": "1.0.1",
|
|
10141
10141
|
"lodash.groupby": "4.6.0",
|
|
10142
10142
|
"lodash.merge": "4.6.2",
|
|
10143
10143
|
"lodash.sortby": "4.7.0",
|
|
10144
|
-
"pagexray": "4.4.
|
|
10145
|
-
"third-party-web": "0.
|
|
10144
|
+
"pagexray": "4.4.2",
|
|
10145
|
+
"third-party-web": "0.17.1",
|
|
10146
10146
|
"wappalyzer-core": "6.6.0"
|
|
10147
10147
|
}
|
|
10148
10148
|
},
|
|
@@ -13201,9 +13201,9 @@
|
|
|
13201
13201
|
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
|
|
13202
13202
|
},
|
|
13203
13203
|
"pagexray": {
|
|
13204
|
-
"version": "4.4.
|
|
13205
|
-
"resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.
|
|
13206
|
-
"integrity": "sha512-
|
|
13204
|
+
"version": "4.4.2",
|
|
13205
|
+
"resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.2.tgz",
|
|
13206
|
+
"integrity": "sha512-Cw1WhyuqEy4nACgUMzTfuZn7EcQrsq4ozpTnkVlsGjm4eMbdGXKN8QwflFi1g7p2FpgSq1ElKgTGFrzVNdbEyQ==",
|
|
13207
13207
|
"requires": {
|
|
13208
13208
|
"minimist": "1.2.6"
|
|
13209
13209
|
}
|
|
@@ -14502,9 +14502,9 @@
|
|
|
14502
14502
|
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
|
|
14503
14503
|
},
|
|
14504
14504
|
"third-party-web": {
|
|
14505
|
-
"version": "0.
|
|
14506
|
-
"resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.
|
|
14507
|
-
"integrity": "sha512-
|
|
14505
|
+
"version": "0.17.1",
|
|
14506
|
+
"resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.17.1.tgz",
|
|
14507
|
+
"integrity": "sha512-X9Mha8cVeBwakunlZXkXL6xRzw8VCcDGWqT59EzeTYAJIi8ien3CuufnEGEx4ZUFahumNQdoOwf4H2T9Ca6lBg=="
|
|
14508
14508
|
},
|
|
14509
14509
|
"through": {
|
|
14510
14510
|
"version": "2.3.8",
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sitespeed.io": "./bin/sitespeed.js",
|
|
5
5
|
"sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js"
|
|
6
6
|
},
|
|
7
|
-
"version": "24.
|
|
7
|
+
"version": "24.7.0",
|
|
8
8
|
"description": "Analyze the web performance of your site",
|
|
9
9
|
"keywords": [
|
|
10
10
|
"performance",
|
|
@@ -80,8 +80,8 @@
|
|
|
80
80
|
"@tgwf/co2": "0.8.0",
|
|
81
81
|
"aws-sdk": "2.1121.0",
|
|
82
82
|
"axe-core": "4.4.1",
|
|
83
|
-
"browsertime": "16.
|
|
84
|
-
"coach-core": "7.1.
|
|
83
|
+
"browsertime": "16.4.0",
|
|
84
|
+
"coach-core": "7.1.2",
|
|
85
85
|
"cli-color": "2.0.2",
|
|
86
86
|
"concurrent-queue": "7.0.2",
|
|
87
87
|
"dayjs": "1.11.1",
|