sitespeed.io 25.11.0 → 26.0.1
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 +45 -0
- package/Dockerfile +1 -1
- package/lib/cli/cli.js +6 -0
- package/lib/plugins/browsertime/default/metricsRun.js +16 -0
- package/lib/plugins/browsertime/default/metricsRunLimited.js +10 -0
- package/lib/plugins/browsertime/index.js +6 -1
- package/lib/plugins/coach/index.js +3 -1
- package/lib/plugins/graphite/cli.js +3 -12
- package/lib/plugins/graphite/data-generator.js +27 -38
- package/lib/plugins/graphite/index.js +14 -17
- package/lib/plugins/html/templates/url/includes/pageRunInfo.pug +1 -1
- package/lib/plugins/lateststorer/index.js +5 -0
- package/lib/plugins/pagexray/index.js +3 -1
- package/lib/plugins/thirdparty/index.js +3 -1
- package/lib/support/flattenMessage.js +9 -0
- package/npm-shrinkwrap.json +25 -25
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org))
|
|
2
2
|
|
|
3
|
+
## 26.0.1 - 2022-09-27
|
|
4
|
+
### Fixed
|
|
5
|
+
* Upgrading to [Browsertime 16.17.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16170---2022-09-27) that contains a fix to collect battery temperature on Android, making it possible to send the data to Graphite again.
|
|
6
|
+
|
|
7
|
+
## 26.0.0 - 2022-09-23
|
|
8
|
+
|
|
9
|
+
Hi and welcome to 26.0.0! There's a couple of small fixes and additions and one breaking change. You are only affected by the breaking change if you used to use `--graphite.perIteration` (sending data for all iterations to Graphite) or if you used `--graphite.skipSummary` (do not send summary information). Please read the changed section if you are affected!
|
|
10
|
+
|
|
11
|
+
When you upgrade to 26.0.0 you will have an easier way of sending data per run to Graphite, there will be a blog post better explaining how you can use it.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
Sending metrics per run to Graphite:
|
|
15
|
+
* The default setup did miss a lot of important performance metrics, so you needed to set them up yourself. That is fixed in this PR.
|
|
16
|
+
* There where a lot of data sent from PageXray, third party and the coach per run. That was not smart since those metrics rarely change between runs and take a lot of space. This PR sets default so none of those metrics are sent
|
|
17
|
+
* We introduce a limited set of run metrics from Browsertime (visual metrics and Google Web Vitals and a couple of more) that can be used when sending data per run. This will help you keep track of those metrics together with the default median/min/max values. More info coming up. It's enabled by default, disable it with `--browsertime.limitedRunData false`
|
|
18
|
+
* Sending data per run to Graphite was broken: We sent a new key per run meaning it will take up a lot of extra space in Graphite. With this fix we send them under the run key. That way we can configure Graphite to keep data under that key that happened every 20 s (or however fast it takes to do one run) and then automatically remove the data after a week.
|
|
19
|
+
* Graphite configuration `--graphite.perIteration` and `--graphite.skipSummary` is removed. You can now configure which data to send to Graphite by using `--graphite.messages`. By default we send _pageSummary_ (data summarised per URL) and _summary_ (data summarised per domain). If you want to send _pageSummary_ and _run_ data (data for each run) you can do that with by adding `--graphite.messages run` `--graphite.messages pageSummary`.
|
|
20
|
+
* We removed the possibility to send VisualProgress and videoRecordingStart data to the datasource since that is something you do not need there.
|
|
21
|
+
* We updated Grafana and the Graphite container to latest versions. The Graphite container contains _storage-schemas.conf_ configuration that is a good default:
|
|
22
|
+
```
|
|
23
|
+
[sitespeed_crux]
|
|
24
|
+
pattern = ^sitespeed_io\.crux\.
|
|
25
|
+
retentions = 1d:1y
|
|
26
|
+
|
|
27
|
+
[sitespeed_run]
|
|
28
|
+
pattern = ^sitespeed_io\.(.*)\.(.*)\.run\.
|
|
29
|
+
retentions = 20s:8d
|
|
30
|
+
|
|
31
|
+
[sitespeed]
|
|
32
|
+
pattern = ^sitespeed_io\.
|
|
33
|
+
retentions = 30m:40d
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
When you send data per run to Graphite it is stored every 20 second (do not make runs more often than that) and saved for 8 days. If you test many URLs this can still be a lot of data so use https://m30m.github.io/whisper-calculator/ to calculate how much space you need.
|
|
37
|
+
|
|
38
|
+
See PR [#3721](https://github.com/sitespeedio/sitespeed.io/pull/3721).
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
* Checkout the [pre built Raspberry Pi image](https://github.com/sitespeedio/raspberrypi) for running sitespeed.io tests on your Android phone.
|
|
42
|
+
* Upgraded to Firefox 105 and Edge 105 in the Docker container.
|
|
43
|
+
* Upgraded to Browsertime 16.16.0
|
|
44
|
+
* Include --preURL information in the latest storer info [#3729](https://github.com/sitespeedio/sitespeed.io/pull/3729).
|
|
45
|
+
### Fixed
|
|
46
|
+
* Fix graphite.sendAnnotation option [#3726](https://github.com/sitespeedio/sitespeed.io/pull/3726).
|
|
47
|
+
* Show timestamp when each run happens on the run page [#3730](https://github.com/sitespeedio/sitespeed.io/pull/3730).
|
|
3
48
|
## 25.11.0 - 2022-09-04
|
|
4
49
|
### Added
|
|
5
50
|
* Make it possible to configure run options for AXE (before you could only configure configuration options) [#3718](https://github.com/sitespeedio/sitespeed.io/pull/3718). Checkout [how to configure AXE](https://www.sitespeed.io/documentation/sitespeed.io/axe/#configure-axe).* Removed showing if the page is an AMP page (that battle was won a long time ago) and instead show information from the Network information API when its available [#3719](https://github.com/sitespeedio/sitespeed.io/pull/3719).
|
package/Dockerfile
CHANGED
package/lib/cli/cli.js
CHANGED
|
@@ -270,6 +270,12 @@ module.exports.parseCommandLine = function parseCommandLine() {
|
|
|
270
270
|
'Run Browsertime in debug mode. Use commands.breakpoint(name) to set btreakpoints in your script. Debug mode works for Firefox/Chrome/Edge on desktop.',
|
|
271
271
|
group: 'Browser'
|
|
272
272
|
})
|
|
273
|
+
.option('browsertime.limitedRunData', {
|
|
274
|
+
type: 'boolean',
|
|
275
|
+
default: true,
|
|
276
|
+
describe: 'Send only limited metrics from one run to the datasource.',
|
|
277
|
+
group: 'Browser'
|
|
278
|
+
})
|
|
273
279
|
.option('browsertime.gnirehtet', {
|
|
274
280
|
alias: 'gnirehtet',
|
|
275
281
|
type: 'boolean',
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module.exports = [
|
|
2
|
+
'fullyLoaded',
|
|
3
|
+
'timings.ttfb',
|
|
4
|
+
'timings.firstPaint',
|
|
5
|
+
'timings.elementTimings.*.renderTime',
|
|
6
|
+
'timings.pageTimings.*',
|
|
7
|
+
'timings.largestContentfulPaint.renderTime',
|
|
8
|
+
'visualMetrics.*',
|
|
9
|
+
'googleWebVitals.*',
|
|
10
|
+
'cpu.longTasks.*',
|
|
11
|
+
'timings.mainDocumentTimings.*',
|
|
12
|
+
'browser.cpuBenchmark',
|
|
13
|
+
'android.batteryTemperature.*',
|
|
14
|
+
'deltaToTFFB.*',
|
|
15
|
+
'timings.userTimings.*'
|
|
16
|
+
];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
module.exports = [
|
|
2
|
+
'fullyLoaded',
|
|
3
|
+
'timings.ttfb',
|
|
4
|
+
'timings.paintTiming.first-contentful-paint',
|
|
5
|
+
'cpu.longTasks.totalBlockingTime',
|
|
6
|
+
'cpu.longTasks.lastLongTask',
|
|
7
|
+
'visualMetrics.*',
|
|
8
|
+
'browser.cpuBenchmark',
|
|
9
|
+
'googleWebVitals.largestContentfulPaint'
|
|
10
|
+
];
|
|
@@ -16,6 +16,8 @@ const statsHelpers = require('../../support/statsHelpers');
|
|
|
16
16
|
const TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
|
|
17
17
|
const DEFAULT_METRICS_PAGE_SUMMARY = require('./default/metricsPageSummary');
|
|
18
18
|
const DEFAULT_METRICS_SUMMARY = require('./default/metricsSummary');
|
|
19
|
+
const DEFAULT_METRICS_RUN = require('./default/metricsRun');
|
|
20
|
+
const DEFAULT_METRICS_RUN_LIMITED = require('./default/metricsRunLimited');
|
|
19
21
|
const ConsoleLogAggregator = require('./consoleLogAggregator');
|
|
20
22
|
const AxeAggregator = require('./axeAggregator');
|
|
21
23
|
const filmstrip = require('./filmstrip');
|
|
@@ -63,7 +65,9 @@ module.exports = {
|
|
|
63
65
|
'browsertime.summary'
|
|
64
66
|
);
|
|
65
67
|
context.filterRegistry.registerFilterForType(
|
|
66
|
-
|
|
68
|
+
this.options.limitedRunData
|
|
69
|
+
? DEFAULT_METRICS_RUN_LIMITED
|
|
70
|
+
: DEFAULT_METRICS_RUN,
|
|
67
71
|
'browsertime.run'
|
|
68
72
|
);
|
|
69
73
|
this.axeAggregatorTotal = new AxeAggregator(this.options);
|
|
@@ -392,6 +396,7 @@ module.exports = {
|
|
|
392
396
|
url,
|
|
393
397
|
group,
|
|
394
398
|
runIndex,
|
|
399
|
+
runTime: run.timestamp,
|
|
395
400
|
iteration: runIndex + 1
|
|
396
401
|
})
|
|
397
402
|
);
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
const aggregator = require('./aggregator');
|
|
3
3
|
const log = require('intel').getLogger('plugin.coach');
|
|
4
4
|
|
|
5
|
+
const DEFAULT_METRICS_RUN = [];
|
|
6
|
+
|
|
5
7
|
const DEFAULT_METRICS_SUMMARY = [
|
|
6
8
|
'score.*',
|
|
7
9
|
'performance.score.*',
|
|
@@ -32,7 +34,7 @@ module.exports = {
|
|
|
32
34
|
'coach.summary'
|
|
33
35
|
);
|
|
34
36
|
context.filterRegistry.registerFilterForType(
|
|
35
|
-
|
|
37
|
+
DEFAULT_METRICS_RUN,
|
|
36
38
|
'coach.run'
|
|
37
39
|
);
|
|
38
40
|
context.filterRegistry.registerFilterForType(
|
|
@@ -96,18 +96,9 @@ module.exports = {
|
|
|
96
96
|
describe: 'Break up number of metrics to send with each request.',
|
|
97
97
|
group: 'Graphite'
|
|
98
98
|
},
|
|
99
|
-
|
|
100
|
-
default:
|
|
101
|
-
|
|
102
|
-
describe:
|
|
103
|
-
'Skip sending summary messages data to Graphite (summaries over a domain).',
|
|
104
|
-
group: 'Graphite'
|
|
105
|
-
},
|
|
106
|
-
perIteration: {
|
|
107
|
-
default: false,
|
|
108
|
-
type: 'boolean',
|
|
109
|
-
describe:
|
|
110
|
-
'Send each iteration of metrics to Graphite. By default we only send page summaries (the summaries of all runs) but you can also send all the runs. Make sure to setup statsd or Graphite correctly to handle it.',
|
|
99
|
+
messages: {
|
|
100
|
+
default: ['pageSummary', 'summary'],
|
|
101
|
+
options: ['pageSummary', 'summary', 'run'],
|
|
111
102
|
group: 'Graphite'
|
|
112
103
|
}
|
|
113
104
|
};
|
|
@@ -53,15 +53,6 @@ function keyPathFromMessage(message, options, includeQueryParams, alias) {
|
|
|
53
53
|
// add the group of the summary message
|
|
54
54
|
typeParts.splice(1, 0, graphiteUtil.toSafeKey(message.group));
|
|
55
55
|
}
|
|
56
|
-
// if we are sending run metrics and we have an iteration
|
|
57
|
-
if (
|
|
58
|
-
options.graphite &&
|
|
59
|
-
options.graphite.perIteration &&
|
|
60
|
-
message.type.endsWith('run') &&
|
|
61
|
-
message.iteration
|
|
62
|
-
) {
|
|
63
|
-
typeParts.splice(0, 1, 'run-' + message.iteration);
|
|
64
|
-
}
|
|
65
56
|
|
|
66
57
|
if (options.graphite && options.graphite.addSlugToKey) {
|
|
67
58
|
typeParts.unshift(options.slug);
|
|
@@ -91,37 +82,35 @@ class GraphiteDataGenerator {
|
|
|
91
82
|
return reduce(
|
|
92
83
|
flatten.flattenMessageData(message),
|
|
93
84
|
(entries, value, key) => {
|
|
94
|
-
if (
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
if (key.includes('timings') && key.includes('measures')) {
|
|
105
|
-
key = key.replace(/measures\.(\d+)/, function (match, idx) {
|
|
106
|
-
return (
|
|
107
|
-
'measures.' +
|
|
108
|
-
message.data.timings.userTimings.measures[idx].name
|
|
109
|
-
);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
85
|
+
if (message.type === 'browsertime.run') {
|
|
86
|
+
if (key.includes('timings') && key.includes('marks')) {
|
|
87
|
+
key = key.replace(/marks\.(\d+)/, function (match, idx) {
|
|
88
|
+
return (
|
|
89
|
+
'marks.' + message.data.timings.userTimings.marks[idx].name
|
|
90
|
+
);
|
|
91
|
+
});
|
|
112
92
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
url.search = '';
|
|
120
|
-
return 'assets.' + graphiteUtil.toSafeKey(url.toString());
|
|
121
|
-
},
|
|
122
|
-
{}
|
|
93
|
+
|
|
94
|
+
if (key.includes('timings') && key.includes('measures')) {
|
|
95
|
+
key = key.replace(/measures\.(\d+)/, function (match, idx) {
|
|
96
|
+
return (
|
|
97
|
+
'measures.' +
|
|
98
|
+
message.data.timings.userTimings.measures[idx].name
|
|
123
99
|
);
|
|
124
|
-
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (message.type === 'pagexray.run') {
|
|
104
|
+
if (key.includes('assets')) {
|
|
105
|
+
key = key.replace(
|
|
106
|
+
/assets\.(\d+)/,
|
|
107
|
+
function (match, idx) {
|
|
108
|
+
let url = new URL(message.data.assets[idx].url);
|
|
109
|
+
url.search = '';
|
|
110
|
+
return 'assets.' + graphiteUtil.toSafeKey(url.toString());
|
|
111
|
+
},
|
|
112
|
+
{}
|
|
113
|
+
);
|
|
125
114
|
}
|
|
126
115
|
}
|
|
127
116
|
|
|
@@ -5,6 +5,7 @@ const GraphiteSender = require('./graphite-sender');
|
|
|
5
5
|
const StatsDSender = require('./statsd-sender');
|
|
6
6
|
const merge = require('lodash.merge');
|
|
7
7
|
const get = require('lodash.get');
|
|
8
|
+
const dayjs = require('dayjs');
|
|
8
9
|
const log = require('intel').getLogger('sitespeedio.plugin.graphite');
|
|
9
10
|
const sendAnnotations = require('./send-annotation');
|
|
10
11
|
const DataGenerator = require('./data-generator');
|
|
@@ -12,6 +13,7 @@ const graphiteUtil = require('../../support/tsdbUtil');
|
|
|
12
13
|
const isStatsd = require('./helpers/is-statsd');
|
|
13
14
|
const throwIfMissing = require('../../support/util').throwIfMissing;
|
|
14
15
|
const cliUtil = require('../../cli/util');
|
|
16
|
+
const toArray = require('../../support/util').toArray;
|
|
15
17
|
|
|
16
18
|
module.exports = {
|
|
17
19
|
name() {
|
|
@@ -60,10 +62,11 @@ module.exports = {
|
|
|
60
62
|
this.messageTypesToFireAnnotations = [];
|
|
61
63
|
this.receivedTypesThatFireAnnotations = {};
|
|
62
64
|
this.make = context.messageMaker('graphite').make;
|
|
63
|
-
this.sendAnnotation = opts.sendAnnotation
|
|
65
|
+
this.sendAnnotation = opts.sendAnnotation;
|
|
64
66
|
this.alias = {};
|
|
65
67
|
this.wptExtras = {};
|
|
66
68
|
this.usingBrowsertime = false;
|
|
69
|
+
this.types = toArray(options.graphite.messages);
|
|
67
70
|
},
|
|
68
71
|
|
|
69
72
|
processMessage(message, queue) {
|
|
@@ -97,21 +100,12 @@ module.exports = {
|
|
|
97
100
|
this.alias[message.url] = message.data;
|
|
98
101
|
}
|
|
99
102
|
|
|
100
|
-
const
|
|
101
|
-
if (
|
|
102
|
-
!(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
)
|
|
107
|
-
) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// If you don't want to send summary information about all pages for a domain
|
|
112
|
-
if (this.skipSummary && message.type.endsWith('.summary')) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
103
|
+
const types = message.type.split('.');
|
|
104
|
+
if (types.length > 1) {
|
|
105
|
+
if (!this.types.includes(types[1])) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
} else return;
|
|
115
109
|
|
|
116
110
|
if (this.messageTypesToFireAnnotations.includes(message.type)) {
|
|
117
111
|
this.receivedTypesThatFireAnnotations[message.url]
|
|
@@ -134,6 +128,7 @@ module.exports = {
|
|
|
134
128
|
if (message.group === 'total') {
|
|
135
129
|
return;
|
|
136
130
|
}
|
|
131
|
+
const filterRegistry = this.filterRegistry;
|
|
137
132
|
message = filterRegistry.filterMessage(message);
|
|
138
133
|
if (isEmpty(message.data)) return;
|
|
139
134
|
|
|
@@ -142,7 +137,9 @@ module.exports = {
|
|
|
142
137
|
// run
|
|
143
138
|
const dataPoints = this.dataGenerator.dataFromMessage(
|
|
144
139
|
message,
|
|
145
|
-
|
|
140
|
+
message.type === 'browsertime.run'
|
|
141
|
+
? dayjs(message.runTime)
|
|
142
|
+
: this.timestamp,
|
|
146
143
|
this.alias
|
|
147
144
|
);
|
|
148
145
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
if pageInfo.data.browsertime
|
|
2
|
-
p.small Tested #{
|
|
2
|
+
p.small Tested #{timestamp} using #{h.cap(browserName || options.browsertime.browser)} #{browser.version}
|
|
3
3
|
if options.multi && options.html.showScript
|
|
4
4
|
| (
|
|
5
5
|
a(href= rootPath + 'scripts.html')= 'script'
|
|
@@ -161,6 +161,11 @@ module.exports = {
|
|
|
161
161
|
json.browser.version
|
|
162
162
|
}`;
|
|
163
163
|
|
|
164
|
+
if (options.browsertime && options.browsertime.preURL) {
|
|
165
|
+
json.preURL = options.browsertime.preURL;
|
|
166
|
+
json.friendlyHTML += ` first visiting <a href="${options.browsertime.preURL}">${options.browsertime.preURL}</a>`;
|
|
167
|
+
}
|
|
168
|
+
|
|
164
169
|
if (options.mobile) {
|
|
165
170
|
json.friendlyHTML += ` (emulating mobile)`;
|
|
166
171
|
}
|
|
@@ -31,6 +31,8 @@ const DEFAULT_PAGEXRAY_SUMMARY_METRICS = [
|
|
|
31
31
|
'cookies'
|
|
32
32
|
];
|
|
33
33
|
|
|
34
|
+
const DEFAULT_PAGEXRAY_RUN_METRICS = [];
|
|
35
|
+
|
|
34
36
|
module.exports = {
|
|
35
37
|
open(context, options) {
|
|
36
38
|
this.options = options;
|
|
@@ -45,7 +47,7 @@ module.exports = {
|
|
|
45
47
|
'pagexray.summary'
|
|
46
48
|
);
|
|
47
49
|
context.filterRegistry.registerFilterForType(
|
|
48
|
-
|
|
50
|
+
DEFAULT_PAGEXRAY_RUN_METRICS,
|
|
49
51
|
'pagexray.run'
|
|
50
52
|
);
|
|
51
53
|
|
|
@@ -11,6 +11,8 @@ const DEFAULT_THIRDPARTY_PAGESUMMARY_METRICS = [
|
|
|
11
11
|
'cookies.*'
|
|
12
12
|
];
|
|
13
13
|
|
|
14
|
+
const DEFAULT_THIRDPARTY_RUN_METRICS = [];
|
|
15
|
+
|
|
14
16
|
module.exports = {
|
|
15
17
|
open(context, options) {
|
|
16
18
|
this.metrics = {};
|
|
@@ -29,7 +31,7 @@ module.exports = {
|
|
|
29
31
|
'thirdparty.pageSummary'
|
|
30
32
|
);
|
|
31
33
|
context.filterRegistry.registerFilterForType(
|
|
32
|
-
|
|
34
|
+
DEFAULT_THIRDPARTY_RUN_METRICS,
|
|
33
35
|
'thirdparty.run'
|
|
34
36
|
);
|
|
35
37
|
},
|
|
@@ -63,6 +63,15 @@ module.exports = {
|
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
+
// Hack to remove visual progress from default metrics
|
|
67
|
+
if (keyPrefix.indexOf('visualMetrics.VisualProgress') > -1) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (keyPrefix.indexOf('visualMetrics.videoRecordingStart') > -1) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
66
75
|
const valueType = typeof value;
|
|
67
76
|
|
|
68
77
|
switch (valueType) {
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sitespeed.io",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "26.0.1",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "sitespeed.io",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "26.0.1",
|
|
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
|
-
"axe-core": "4.4.
|
|
16
|
-
"browsertime": "16.
|
|
15
|
+
"axe-core": "4.4.3",
|
|
16
|
+
"browsertime": "16.17.0",
|
|
17
17
|
"cli-color": "2.0.2",
|
|
18
18
|
"coach-core": "7.1.2",
|
|
19
19
|
"concurrent-queue": "7.0.2",
|
|
@@ -887,9 +887,9 @@
|
|
|
887
887
|
}
|
|
888
888
|
},
|
|
889
889
|
"node_modules/@sitespeed.io/chromedriver": {
|
|
890
|
-
"version": "
|
|
891
|
-
"resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-
|
|
892
|
-
"integrity": "sha512-
|
|
890
|
+
"version": "105.0.5195-19",
|
|
891
|
+
"resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-105.0.5195-19.tgz",
|
|
892
|
+
"integrity": "sha512-YNkoc15/XYO8K4MdmT0x1Z4K1TxB2cvvieiXKZFzIcuF+JCJikW05gwZ/dXkTmmB80w+hDn2mREFfgBEgDJNFA==",
|
|
893
893
|
"hasInstallScript": true,
|
|
894
894
|
"dependencies": {
|
|
895
895
|
"node-downloader-helper": "2.1.1",
|
|
@@ -1584,11 +1584,11 @@
|
|
|
1584
1584
|
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
|
|
1585
1585
|
},
|
|
1586
1586
|
"node_modules/axe-core": {
|
|
1587
|
-
"version": "4.4.
|
|
1588
|
-
"resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.
|
|
1589
|
-
"integrity": "sha512-
|
|
1587
|
+
"version": "4.4.3",
|
|
1588
|
+
"resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz",
|
|
1589
|
+
"integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==",
|
|
1590
1590
|
"engines": {
|
|
1591
|
-
"node": ">=
|
|
1591
|
+
"node": ">=4"
|
|
1592
1592
|
}
|
|
1593
1593
|
},
|
|
1594
1594
|
"node_modules/babel-runtime": {
|
|
@@ -1711,13 +1711,13 @@
|
|
|
1711
1711
|
}
|
|
1712
1712
|
},
|
|
1713
1713
|
"node_modules/browsertime": {
|
|
1714
|
-
"version": "16.
|
|
1715
|
-
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.
|
|
1716
|
-
"integrity": "sha512-
|
|
1714
|
+
"version": "16.17.0",
|
|
1715
|
+
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.17.0.tgz",
|
|
1716
|
+
"integrity": "sha512-8o/dv24UdTgKIhuAjndUs3FvhPvgT/m8YQw0TM6fE3lItAXzOC31uQYuaqubnz1ARwPprioa0vX7XNCYo4WBjQ==",
|
|
1717
1717
|
"dependencies": {
|
|
1718
1718
|
"@cypress/xvfb": "1.2.4",
|
|
1719
1719
|
"@devicefarmer/adbkit": "2.11.3",
|
|
1720
|
-
"@sitespeed.io/chromedriver": "
|
|
1720
|
+
"@sitespeed.io/chromedriver": "105.0.5195-19",
|
|
1721
1721
|
"@sitespeed.io/edgedriver": "104.0.1293-47",
|
|
1722
1722
|
"@sitespeed.io/geckodriver": "0.31.0-c",
|
|
1723
1723
|
"@sitespeed.io/throttle": "5.0.0",
|
|
@@ -9238,9 +9238,9 @@
|
|
|
9238
9238
|
}
|
|
9239
9239
|
},
|
|
9240
9240
|
"@sitespeed.io/chromedriver": {
|
|
9241
|
-
"version": "
|
|
9242
|
-
"resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-
|
|
9243
|
-
"integrity": "sha512-
|
|
9241
|
+
"version": "105.0.5195-19",
|
|
9242
|
+
"resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-105.0.5195-19.tgz",
|
|
9243
|
+
"integrity": "sha512-YNkoc15/XYO8K4MdmT0x1Z4K1TxB2cvvieiXKZFzIcuF+JCJikW05gwZ/dXkTmmB80w+hDn2mREFfgBEgDJNFA==",
|
|
9244
9244
|
"requires": {
|
|
9245
9245
|
"node-downloader-helper": "2.1.1",
|
|
9246
9246
|
"node-stream-zip": "1.15.0"
|
|
@@ -9766,9 +9766,9 @@
|
|
|
9766
9766
|
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
|
|
9767
9767
|
},
|
|
9768
9768
|
"axe-core": {
|
|
9769
|
-
"version": "4.4.
|
|
9770
|
-
"resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.
|
|
9771
|
-
"integrity": "sha512-
|
|
9769
|
+
"version": "4.4.3",
|
|
9770
|
+
"resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz",
|
|
9771
|
+
"integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w=="
|
|
9772
9772
|
},
|
|
9773
9773
|
"babel-runtime": {
|
|
9774
9774
|
"version": "6.26.0",
|
|
@@ -9875,13 +9875,13 @@
|
|
|
9875
9875
|
}
|
|
9876
9876
|
},
|
|
9877
9877
|
"browsertime": {
|
|
9878
|
-
"version": "16.
|
|
9879
|
-
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.
|
|
9880
|
-
"integrity": "sha512-
|
|
9878
|
+
"version": "16.17.0",
|
|
9879
|
+
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.17.0.tgz",
|
|
9880
|
+
"integrity": "sha512-8o/dv24UdTgKIhuAjndUs3FvhPvgT/m8YQw0TM6fE3lItAXzOC31uQYuaqubnz1ARwPprioa0vX7XNCYo4WBjQ==",
|
|
9881
9881
|
"requires": {
|
|
9882
9882
|
"@cypress/xvfb": "1.2.4",
|
|
9883
9883
|
"@devicefarmer/adbkit": "2.11.3",
|
|
9884
|
-
"@sitespeed.io/chromedriver": "
|
|
9884
|
+
"@sitespeed.io/chromedriver": "105.0.5195-19",
|
|
9885
9885
|
"@sitespeed.io/edgedriver": "104.0.1293-47",
|
|
9886
9886
|
"@sitespeed.io/geckodriver": "0.31.0-c",
|
|
9887
9887
|
"@sitespeed.io/throttle": "5.0.0",
|
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": "
|
|
7
|
+
"version": "26.0.1",
|
|
8
8
|
"description": "Analyze the web performance of your site",
|
|
9
9
|
"keywords": [
|
|
10
10
|
"performance",
|
|
@@ -79,8 +79,8 @@
|
|
|
79
79
|
"@google-cloud/storage": "5.19.3",
|
|
80
80
|
"@tgwf/co2": "0.8.0",
|
|
81
81
|
"aws-sdk": "2.1121.0",
|
|
82
|
-
"axe-core": "4.4.
|
|
83
|
-
"browsertime": "16.
|
|
82
|
+
"axe-core": "4.4.3",
|
|
83
|
+
"browsertime": "16.17.0",
|
|
84
84
|
"coach-core": "7.1.2",
|
|
85
85
|
"cli-color": "2.0.2",
|
|
86
86
|
"concurrent-queue": "7.0.2",
|