sitespeed.io 27.2.0 → 27.3.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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org))
2
2
 
3
+ ## 27.3.1 - 2023-04-28
4
+ ### Fixed
5
+ * Fix broken --firstParty parameter as reported in [#3822](https://github.com/sitespeedio/sitespeed.io/issues/3822) and fixed in [#3823](https://github.com/sitespeedio/sitespeed.io/pull/3823)
6
+ * Fix broken crawler [#3820](https://github.com/sitespeedio/sitespeed.io/pull/3820).
7
+ ## 27.3.0 - 2023-04-11
8
+ ### Added
9
+ * Upgraded Firefox to 112 and added new Browsertime with updated HAR version.
10
+
11
+ ### Fixed
12
+ * Better handling if getting the HAR fails [#3810](https://github.com/sitespeedio/sitespeed.io/pull/3810).
3
13
  ## 27.2.0 - 2023-04-07
4
14
  ### Added
5
15
  * Updated Edge and Edgedriver to 112.
package/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM sitespeedio/webbrowsers:chrome-112.0-firefox-111.0-edge-112.0
1
+ FROM sitespeedio/webbrowsers:chrome-112.0-firefox-112.0-edge-112.0
2
2
 
3
3
  ARG TARGETPLATFORM=linux/amd64
4
4
 
package/bin/sitespeed.js CHANGED
@@ -21,12 +21,10 @@ async function start() {
21
21
  try {
22
22
  const result = await run(options);
23
23
 
24
- if (options.storeResult) {
25
- if (options.storeResult == 'true') {
26
- writeFileSync('result.json', JSON.stringify(result));
27
- } else {
28
- writeFileSync(options.storeResult, JSON.stringify(result));
29
- }
24
+ // This can be used as an option to get hold of where the data is stored
25
+ // for third parties
26
+ if (options.storeResult == 'true') {
27
+ writeFileSync('result.json', JSON.stringify(result));
30
28
  }
31
29
 
32
30
  if (result.errors.length > 0) {
package/lib/cli/cli.js CHANGED
@@ -548,6 +548,12 @@ export async function parseCommandLine() {
548
548
  'Easy way to enable both chrome.timeline and CPU long tasks for Chrome and geckoProfile for Firefox',
549
549
  group: 'Browser'
550
550
  })
551
+ .option('browsertime.enableProfileRun', {
552
+ alias: 'enableProfileRun',
553
+ type: 'boolean',
554
+ describe:
555
+ 'Make one extra run that collects the profiling trace log (no other metrics is collected). For Chrome it will collect the timeline trace, for Firefox it will get the Geckoprofiler trace. This means you do not need to get the trace for all runs and can skip the overhead it produces.'
556
+ })
551
557
  .option('browsertime.videoParams.filmstripFullSize', {
552
558
  alias: 'videoParams.filmstripFullSize',
553
559
  type: 'boolean',
@@ -788,7 +794,7 @@ export async function parseCommandLine() {
788
794
  describe:
789
795
  'Collect the timeline data. Drag and drop the JSON in your Chrome detvools timeline panel or check out the CPU metrics.',
790
796
  type: 'boolean',
791
- default: true,
797
+ default: false,
792
798
  group: 'Chrome'
793
799
  })
794
800
  .option('browsertime.chrome.appendToUserAgent', {
@@ -54,11 +54,14 @@ export class AssetsAggregator {
54
54
 
55
55
  const url = asset.url;
56
56
 
57
- if (options.firstParty && !options.firstParty.test(url)) {
58
- this.slowestAssetsThirdParty.add(asset, page, runPage);
59
- this.largestAssetsThirdParty.add(asset, page, runPage);
60
- this.slowestThirdPartyAssetsByGroup[group].add(asset, page, runPage);
61
- this.largestThirdPartyAssetsByGroup[group].add(asset, page, runPage);
57
+ if (options.firstParty) {
58
+ const r = new RegExp(options.firstParty);
59
+ if (!r.test(url)) {
60
+ this.slowestAssetsThirdParty.add(asset, page, runPage);
61
+ this.largestAssetsThirdParty.add(asset, page, runPage);
62
+ this.slowestThirdPartyAssetsByGroup[group].add(asset, page, runPage);
63
+ this.largestThirdPartyAssetsByGroup[group].add(asset, page, runPage);
64
+ }
62
65
  }
63
66
 
64
67
  const urlInfo = this.assets[url] || {
@@ -4,6 +4,7 @@ import forEach from 'lodash.foreach';
4
4
  import set from 'lodash.set';
5
5
  import get from 'lodash.get';
6
6
  import coach from 'coach-core';
7
+ import { BrowsertimeEngine, browserScripts } from 'browsertime';
7
8
  const { getDomAdvice } = coach;
8
9
  import intel from 'intel';
9
10
  const log = intel.getLogger('plugin.browsertime');
@@ -52,7 +53,6 @@ async function preWarmServer(urls, options, scriptOrMultiple) {
52
53
  }
53
54
  }
54
55
 
55
- const { BrowsertimeEngine } = await import('browsertime');
56
56
  const engine = new BrowsertimeEngine(preWarmOptions);
57
57
 
58
58
  await engine.start();
@@ -65,6 +65,26 @@ async function preWarmServer(urls, options, scriptOrMultiple) {
65
65
  return delay(options.preWarmServerWaitTime || 5000);
66
66
  }
67
67
 
68
+ async function extraProfileRun(urls, options, scriptOrMultiple) {
69
+ log.info('Make one extra run to collect trace information');
70
+ options.iterations = 1;
71
+ if (options.browser === 'firefox') {
72
+ options.firefox.geckoProfiler = true;
73
+ } else if (options.browser === 'chrome') {
74
+ options.chrome.enableTraceScreenshots = true;
75
+ options.chrome.traceCategory = ['disabled-by-default-v8.cpu_profiler'];
76
+ options.chrome.timeline = true;
77
+ }
78
+ options.video = false;
79
+ options.visualMetrics = false;
80
+ const traceEngine = new BrowsertimeEngine(options);
81
+ await traceEngine.start();
82
+ await (scriptOrMultiple
83
+ ? traceEngine.runMultiple(urls, {})
84
+ : traceEngine.run(urls, {}));
85
+ await traceEngine.stop();
86
+ }
87
+
68
88
  async function parseUserScripts(scripts) {
69
89
  const { browserScripts } = await import('browsertime');
70
90
  if (!Array.isArray(scripts)) scripts = [scripts];
@@ -138,7 +158,6 @@ export async function analyzeUrl(
138
158
  btOptions.userAgent = iphone6UserAgent;
139
159
  }
140
160
  }
141
- const { BrowsertimeEngine, browserScripts } = await import('browsertime');
142
161
  const scriptCategories = await browserScripts.allScriptCategories();
143
162
  let scriptsByCategory = await browserScripts.getScriptsForCategories(
144
163
  scriptCategories
@@ -169,9 +188,15 @@ export async function analyzeUrl(
169
188
  await engine.start();
170
189
  if (scriptOrMultiple) {
171
190
  const res = await engine.runMultiple(url, scriptsByCategory, asyncScript);
191
+ if (btOptions.enableProfileRun) {
192
+ await extraProfileRun(url, btOptions, scriptOrMultiple);
193
+ }
172
194
  return res;
173
195
  } else {
174
196
  const res = await engine.run(url, scriptsByCategory, asyncScript);
197
+ if (btOptions.enableProfileRun) {
198
+ await extraProfileRun(url, btOptions, scriptOrMultiple);
199
+ }
175
200
  return res;
176
201
  }
177
202
  } finally {
@@ -267,7 +267,20 @@ export default class BrowsertimePlugin extends SitespeedioPlugin {
267
267
  url
268
268
  );
269
269
  }
270
- run.har = pickAPage(result.har, harIndex);
270
+ try {
271
+ run.har = pickAPage(result.har, harIndex);
272
+ } catch (harError) {
273
+ log.error('Couldnt get the right page for the HAR', harError);
274
+ super.sendMessage(
275
+ 'error',
276
+ 'Could not get the right page for the HAR, the page is missing',
277
+ {
278
+ url,
279
+ runIndex,
280
+ iteration: runIndex + 1
281
+ }
282
+ );
283
+ }
271
284
  } else {
272
285
  // If we do not have a HAR, use browser info from the result
273
286
  if (result.length > 0) {
@@ -5,8 +5,8 @@ import { SitespeedioPlugin } from '@sitespeed.io/plugin';
5
5
 
6
6
  const log = intel.getLogger('sitespeedio.plugin.crawler');
7
7
  import Crawler from 'simplecrawler';
8
- import { throwIfMissing } from '../../support/util';
9
- import { toArray } from '../../support/util';
8
+ import { throwIfMissing } from '../../support/util.js';
9
+ import { toArray } from '../../support/util.js';
10
10
 
11
11
  const defaultOptions = {
12
12
  depth: 3
@@ -21,20 +21,32 @@ small
21
21
  a#cpu
22
22
  h2 CPU
23
23
 
24
- if browsertime && browsertime.cpu && browsertime.cpu.events
24
+ if browsertime && browsertime.cpu && browsertime.cpu.events && !options.browsertime.enableProfileRun
25
25
  p Download the Chrome trace log and drag and drop it into Developer Tools / Performance in Chrome.
26
26
  .downloads
27
27
  if options.browsertime.chrome && options.browsertime.chrome.timeline
28
28
  - const tracePath = 'data/trace-' + (runNumber? runNumber : 1) + '.json.gz'
29
29
  a.button.button-download(href=tracePath, download=downloadName + '-timeline.json.gz') Download trace log
30
30
 
31
- if options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler && options.browser === 'firefox'
31
+ if options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler && options.browser === 'firefox' && !options.browsertime.enableProfileRun
32
32
  p Download the Firefox Geckoprofiler trace and drag and drop it into
33
33
  a(href='https://profiler.firefox.com') https://profiler.firefox.com
34
34
  .downloads
35
35
  - const tracePath = 'data/geckoProfile-' + (runNumber? runNumber : 1) + '.json.gz'
36
36
  a.button.button-download(href=tracePath, download=downloadName + '-geckoProfile.json.gz') Download trace
37
37
 
38
+ if options.browsertime && options.browsertime.enableProfileRun
39
+ if options.browser === 'firefox'
40
+ p Download the Firefox Geckoprofiler trace and drag and drop it into
41
+ a(href='https://profiler.firefox.com') https://profiler.firefox.com
42
+ .downloads
43
+ - const tracePath = 'data/geckoProfile-1-extra.json.gz'
44
+ a.button.button-download(href=tracePath, download=downloadName + '-geckoProfile.json.gz') Download extra run trace log
45
+ else if options.browser === 'chrome'
46
+ p Download the Chrome trace log and drag and drop it into Developer Tools / Performance in Chrome.
47
+ - const tracePath = 'data/trace-1-extra-run.json.gz'
48
+ a.button.button-download(href=tracePath, download=downloadName + '-timeline.json.gz') Download extra run trace log
49
+
38
50
  if browsertime && browsertime.cpu && browsertime.cpu.longTasks
39
51
  a#long-tasks
40
52
  h3 Long Tasks
@@ -226,7 +226,7 @@ block content
226
226
  section#pagexray-panel
227
227
  include ../pagexray/index.pug
228
228
 
229
- if options.cpu || (options.browsertime && options.browsertime.chrome && options.browsertime.chrome.collectLongTasks) || (options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler)
229
+ if options.cpu || (options.browsertime && options.browsertime.chrome && options.browsertime.chrome.collectLongTasks) || (options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler || options.browsertime &&options.browsertime.enableProfileRun)
230
230
  section#cpu-panel
231
231
  include ../cpu/index.pug
232
232
 
@@ -19,7 +19,7 @@
19
19
  if d.pagexray && d.pagexray.run
20
20
  a(id='pagexray', href='#pagexray', onclick='return selectTab(this, true);')
21
21
  | PageXray
22
- if options.cpu || options.browsertime && options.browsertime.chrome && options.browsertime.chrome.collectLongTasks || options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler
22
+ if options.cpu || options.browsertime && options.browsertime.chrome && options.browsertime.chrome.collectLongTasks || options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler || options.browsertime &&options.browsertime.enableProfileRun
23
23
  a(id='cpu', href='#cpu', onclick='return selectTab(this, true);')
24
24
  | CPU
25
25
  if d.thirdparty && d.thirdparty.run
@@ -292,7 +292,7 @@ block content
292
292
  section#pagexray-panel
293
293
  include ../pagexray/index.pug
294
294
 
295
- if options.cpu || options.browsertime && options.browsertime.chrome && options.browsertime.chrome.collectLongTasks || (options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler)
295
+ if options.cpu || options.browsertime && options.browsertime.chrome && options.browsertime.chrome.collectLongTasks || (options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler || options.browsertime &&options.browsertime.enableProfileRun)
296
296
  section#cpu-panel
297
297
  include ../cpu/index.pug
298
298
 
@@ -19,7 +19,7 @@
19
19
  if d.pagexray && d.pagexray.pageSummary
20
20
  a(id='pagexray', href='#pagexray', onclick='return selectTab(this, true);')
21
21
  | PageXray
22
- if options.cpu || options.browsertime && options.browsertime.chrome && options.browsertime.chrome.collectLongTasks || options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler
22
+ if options.cpu || options.browsertime && options.browsertime.chrome && options.browsertime.chrome.collectLongTasks || options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler || options.browsertime &&options.browsertime.enableProfileRun
23
23
  a(id='cpu', href='#cpu', onclick='return selectTab(this, true);')
24
24
  | CPU
25
25
  if d.thirdparty && d.thirdparty.pageSummary
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "sitespeed.io",
3
- "version": "27.2.0",
3
+ "version": "27.3.1",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "sitespeed.io",
9
- "version": "27.2.0",
9
+ "version": "27.3.1",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "@google-cloud/storage": "6.9.4",
12
+ "@google-cloud/storage": "6.9.5",
13
13
  "@influxdata/influxdb-client": "1.33.2",
14
- "@sitespeed.io/plugin": "0.0.4",
14
+ "@sitespeed.io/plugin": "0.0.6",
15
15
  "@tgwf/co2": "0.12.2",
16
16
  "aws-sdk": "2.1327.0",
17
- "axe-core": "4.6.3",
18
- "browsertime": "17.7.0",
17
+ "axe-core": "4.7.0",
18
+ "browsertime": "17.9.0",
19
19
  "cli-color": "2.0.3",
20
20
  "coach-core": "7.1.3",
21
21
  "concurrent-queue": "7.0.2",
@@ -72,7 +72,7 @@
72
72
  "license-checker": "^25.0.0",
73
73
  "marked": "4.2.12",
74
74
  "prettier": "2.8.4",
75
- "pug-lint": "^2.6.0",
75
+ "pug-lint": "^2.7.0",
76
76
  "pug-lint-config-clock": "^2.0.0",
77
77
  "sass": "1.58.3"
78
78
  },
@@ -382,9 +382,9 @@
382
382
  }
383
383
  },
384
384
  "node_modules/@google-cloud/storage": {
385
- "version": "6.9.4",
386
- "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.9.4.tgz",
387
- "integrity": "sha512-5Li+0xRJ8wgc+vlf7Tgew8COKEJgRzRmC5ozdSYaBj7BK+X39aPPBP6ROsDTiCZ0MpAg7dxIc+HhKiCvQDplXQ==",
385
+ "version": "6.9.5",
386
+ "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.9.5.tgz",
387
+ "integrity": "sha512-fcLsDA8YKcGuqvhk0XTjJGVpG9dzs5Em8IcUjSjspYvERuHYqMy9CMChWapSjv3Lyw//exa3mv4nUxPlV93BnA==",
388
388
  "dependencies": {
389
389
  "@google-cloud/paginator": "^3.0.7",
390
390
  "@google-cloud/projectify": "^3.0.0",
@@ -1046,9 +1046,9 @@
1046
1046
  }
1047
1047
  },
1048
1048
  "node_modules/@sitespeed.io/plugin": {
1049
- "version": "0.0.4",
1050
- "resolved": "https://registry.npmjs.org/@sitespeed.io/plugin/-/plugin-0.0.4.tgz",
1051
- "integrity": "sha512-by3DxWv5t6cH6pUpUFA3vNggdmxUCqHBN9rED1W3G+nQLw1OE/sBE0vGs92mQqHTILN6Y2wbTWxtYPRjEWDsJQ=="
1049
+ "version": "0.0.6",
1050
+ "resolved": "https://registry.npmjs.org/@sitespeed.io/plugin/-/plugin-0.0.6.tgz",
1051
+ "integrity": "sha512-LlH46uCTpW+M86JYdUzH5hD9yDj5dVMEi83MTBG/PfnxLAkWmOKqp9mh0zr1wfuyvAuOWxjwmqFKvivd1lRKLg=="
1052
1052
  },
1053
1053
  "node_modules/@sitespeed.io/throttle": {
1054
1054
  "version": "5.0.0",
@@ -1716,9 +1716,9 @@
1716
1716
  "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
1717
1717
  },
1718
1718
  "node_modules/axe-core": {
1719
- "version": "4.6.3",
1720
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz",
1721
- "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==",
1719
+ "version": "4.7.0",
1720
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz",
1721
+ "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==",
1722
1722
  "engines": {
1723
1723
  "node": ">=4"
1724
1724
  }
@@ -1843,9 +1843,9 @@
1843
1843
  }
1844
1844
  },
1845
1845
  "node_modules/browsertime": {
1846
- "version": "17.7.0",
1847
- "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-17.7.0.tgz",
1848
- "integrity": "sha512-R3YIU002RqQ24/Nz7yWEHhGT5dGcvEloEhfltMaSLrsdvW/jXMdv4TRg2/NuTzvgJILLLfDPpfBnJUbLD8v3PA==",
1846
+ "version": "17.9.0",
1847
+ "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-17.9.0.tgz",
1848
+ "integrity": "sha512-WuM5iGebb/paJBA2qDOJcbpTNQVB/HE90e6jDBoXzxRXAQRkxtbbyDVUnp5sJ0eBfGjmxaofZMcg7QT3Gf+oXQ==",
1849
1849
  "dependencies": {
1850
1850
  "@cypress/xvfb": "1.2.4",
1851
1851
  "@devicefarmer/adbkit": "2.11.3",
@@ -1856,11 +1856,11 @@
1856
1856
  "@sitespeed.io/tracium": "0.3.3",
1857
1857
  "btoa": "1.2.1",
1858
1858
  "chrome-har": "0.13.1",
1859
- "chrome-remote-interface": "0.32.1",
1859
+ "chrome-remote-interface": "0.32.2",
1860
1860
  "dayjs": "1.11.7",
1861
- "execa": "7.0.0",
1861
+ "execa": "7.1.1",
1862
1862
  "fast-stats": "0.0.6",
1863
- "ff-test-bidi-har-export": "0.0.6",
1863
+ "ff-test-bidi-har-export": "0.0.10",
1864
1864
  "find-up": "6.3.0",
1865
1865
  "get-port": "6.1.2",
1866
1866
  "hasbin": "1.2.3",
@@ -2127,9 +2127,9 @@
2127
2127
  }
2128
2128
  },
2129
2129
  "node_modules/chrome-remote-interface": {
2130
- "version": "0.32.1",
2131
- "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.32.1.tgz",
2132
- "integrity": "sha512-CU3/K/8YlU2H0DjsLRbxPsG4piiSGUcIy6GkGXF11SqOYoIeuUBivOsGXScaZnTyC1p4wFSR+GNmAM434/ALWw==",
2130
+ "version": "0.32.2",
2131
+ "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.32.2.tgz",
2132
+ "integrity": "sha512-3UbFKtEmqApehPQnqdblcggx7KveQphEMKQmdJZsOguE9ylw2N2/9Z7arO7xS55+DBJ/hyP8RrayLt4MMdJvQg==",
2133
2133
  "dependencies": {
2134
2134
  "commander": "2.11.x",
2135
2135
  "ws": "^7.2.0"
@@ -3637,9 +3637,9 @@
3637
3637
  }
3638
3638
  },
3639
3639
  "node_modules/execa": {
3640
- "version": "7.0.0",
3641
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.0.0.tgz",
3642
- "integrity": "sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==",
3640
+ "version": "7.1.1",
3641
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
3642
+ "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
3643
3643
  "dependencies": {
3644
3644
  "cross-spawn": "^7.0.3",
3645
3645
  "get-stream": "^6.0.1",
@@ -3832,9 +3832,9 @@
3832
3832
  }
3833
3833
  },
3834
3834
  "node_modules/ff-test-bidi-har-export": {
3835
- "version": "0.0.6",
3836
- "resolved": "https://registry.npmjs.org/ff-test-bidi-har-export/-/ff-test-bidi-har-export-0.0.6.tgz",
3837
- "integrity": "sha512-SVDfhXRAcW+mGZ7KSX6v49/SBDc4Xq1G6OkLz5BEt5WQdBkcM8cQILJaMhYZFgnnHuDN/5Z9YCDbzxL4DC8hHA=="
3835
+ "version": "0.0.10",
3836
+ "resolved": "https://registry.npmjs.org/ff-test-bidi-har-export/-/ff-test-bidi-har-export-0.0.10.tgz",
3837
+ "integrity": "sha512-0azA5fUrA3Fn4KFAg2LcFqM2Xav7+H41gj4GHgLMhZxSyHfPV0yhbs1y+6sv+skgak/IbBb75KZmkj0VFsdyEg=="
3838
3838
  },
3839
3839
  "node_modules/figures": {
3840
3840
  "version": "5.0.0",
@@ -4623,9 +4623,9 @@
4623
4623
  "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
4624
4624
  },
4625
4625
  "node_modules/human-signals": {
4626
- "version": "4.3.0",
4627
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz",
4628
- "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==",
4626
+ "version": "4.3.1",
4627
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
4628
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
4629
4629
  "engines": {
4630
4630
  "node": ">=14.18.0"
4631
4631
  }
@@ -7112,9 +7112,9 @@
7112
7112
  "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ=="
7113
7113
  },
7114
7114
  "node_modules/pug-lint": {
7115
- "version": "2.6.0",
7116
- "resolved": "https://registry.npmjs.org/pug-lint/-/pug-lint-2.6.0.tgz",
7117
- "integrity": "sha512-bCENAUT0grCSlUBIfX1USjpZPQWs5QccxVZoCIT4S+IevTn9NqJyzhrcyq/CFVSCOp9Z+pdwPQIkzdCvZ1pGlQ==",
7115
+ "version": "2.7.0",
7116
+ "resolved": "https://registry.npmjs.org/pug-lint/-/pug-lint-2.7.0.tgz",
7117
+ "integrity": "sha512-CcFFU9+cXu/0xXXQbE1Zus0u9l3OCXqU+2sw4NcnFGEml8RoCUqrSdVNoVkg2SYcNvcfcnV6h+ctmE5+Ptgj1w==",
7118
7118
  "dev": true,
7119
7119
  "dependencies": {
7120
7120
  "acorn": "^4.0.1",
@@ -7124,9 +7124,9 @@
7124
7124
  "glob": "^7.0.3",
7125
7125
  "minimatch": "^3.0.3",
7126
7126
  "path-is-absolute": "^1.0.0",
7127
- "pug-attrs": "^2.0.3",
7128
- "pug-error": "^1.3.2",
7129
- "pug-lexer": "^4.0.0",
7127
+ "pug-attrs": "^2.0.4",
7128
+ "pug-error": "^1.3.3",
7129
+ "pug-lexer": "^4.1.0",
7130
7130
  "resolve": "^1.1.7",
7131
7131
  "strip-json-comments": "^2.0.1",
7132
7132
  "void-elements": "^2.0.1"
@@ -9519,9 +9519,9 @@
9519
9519
  "integrity": "sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA=="
9520
9520
  },
9521
9521
  "@google-cloud/storage": {
9522
- "version": "6.9.4",
9523
- "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.9.4.tgz",
9524
- "integrity": "sha512-5Li+0xRJ8wgc+vlf7Tgew8COKEJgRzRmC5ozdSYaBj7BK+X39aPPBP6ROsDTiCZ0MpAg7dxIc+HhKiCvQDplXQ==",
9522
+ "version": "6.9.5",
9523
+ "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.9.5.tgz",
9524
+ "integrity": "sha512-fcLsDA8YKcGuqvhk0XTjJGVpG9dzs5Em8IcUjSjspYvERuHYqMy9CMChWapSjv3Lyw//exa3mv4nUxPlV93BnA==",
9525
9525
  "requires": {
9526
9526
  "@google-cloud/paginator": "^3.0.7",
9527
9527
  "@google-cloud/projectify": "^3.0.0",
@@ -10019,9 +10019,9 @@
10019
10019
  }
10020
10020
  },
10021
10021
  "@sitespeed.io/plugin": {
10022
- "version": "0.0.4",
10023
- "resolved": "https://registry.npmjs.org/@sitespeed.io/plugin/-/plugin-0.0.4.tgz",
10024
- "integrity": "sha512-by3DxWv5t6cH6pUpUFA3vNggdmxUCqHBN9rED1W3G+nQLw1OE/sBE0vGs92mQqHTILN6Y2wbTWxtYPRjEWDsJQ=="
10022
+ "version": "0.0.6",
10023
+ "resolved": "https://registry.npmjs.org/@sitespeed.io/plugin/-/plugin-0.0.6.tgz",
10024
+ "integrity": "sha512-LlH46uCTpW+M86JYdUzH5hD9yDj5dVMEi83MTBG/PfnxLAkWmOKqp9mh0zr1wfuyvAuOWxjwmqFKvivd1lRKLg=="
10025
10025
  },
10026
10026
  "@sitespeed.io/throttle": {
10027
10027
  "version": "5.0.0",
@@ -10523,9 +10523,9 @@
10523
10523
  "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
10524
10524
  },
10525
10525
  "axe-core": {
10526
- "version": "4.6.3",
10527
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz",
10528
- "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg=="
10526
+ "version": "4.7.0",
10527
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz",
10528
+ "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ=="
10529
10529
  },
10530
10530
  "babel-runtime": {
10531
10531
  "version": "6.26.0",
@@ -10632,9 +10632,9 @@
10632
10632
  }
10633
10633
  },
10634
10634
  "browsertime": {
10635
- "version": "17.7.0",
10636
- "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-17.7.0.tgz",
10637
- "integrity": "sha512-R3YIU002RqQ24/Nz7yWEHhGT5dGcvEloEhfltMaSLrsdvW/jXMdv4TRg2/NuTzvgJILLLfDPpfBnJUbLD8v3PA==",
10635
+ "version": "17.9.0",
10636
+ "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-17.9.0.tgz",
10637
+ "integrity": "sha512-WuM5iGebb/paJBA2qDOJcbpTNQVB/HE90e6jDBoXzxRXAQRkxtbbyDVUnp5sJ0eBfGjmxaofZMcg7QT3Gf+oXQ==",
10638
10638
  "requires": {
10639
10639
  "@cypress/xvfb": "1.2.4",
10640
10640
  "@devicefarmer/adbkit": "2.11.3",
@@ -10645,11 +10645,11 @@
10645
10645
  "@sitespeed.io/tracium": "0.3.3",
10646
10646
  "btoa": "1.2.1",
10647
10647
  "chrome-har": "0.13.1",
10648
- "chrome-remote-interface": "0.32.1",
10648
+ "chrome-remote-interface": "0.32.2",
10649
10649
  "dayjs": "1.11.7",
10650
- "execa": "7.0.0",
10650
+ "execa": "7.1.1",
10651
10651
  "fast-stats": "0.0.6",
10652
- "ff-test-bidi-har-export": "0.0.6",
10652
+ "ff-test-bidi-har-export": "0.0.10",
10653
10653
  "find-up": "6.3.0",
10654
10654
  "get-port": "6.1.2",
10655
10655
  "hasbin": "1.2.3",
@@ -10840,9 +10840,9 @@
10840
10840
  }
10841
10841
  },
10842
10842
  "chrome-remote-interface": {
10843
- "version": "0.32.1",
10844
- "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.32.1.tgz",
10845
- "integrity": "sha512-CU3/K/8YlU2H0DjsLRbxPsG4piiSGUcIy6GkGXF11SqOYoIeuUBivOsGXScaZnTyC1p4wFSR+GNmAM434/ALWw==",
10843
+ "version": "0.32.2",
10844
+ "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.32.2.tgz",
10845
+ "integrity": "sha512-3UbFKtEmqApehPQnqdblcggx7KveQphEMKQmdJZsOguE9ylw2N2/9Z7arO7xS55+DBJ/hyP8RrayLt4MMdJvQg==",
10846
10846
  "requires": {
10847
10847
  "commander": "2.11.x",
10848
10848
  "ws": "^7.2.0"
@@ -11989,9 +11989,9 @@
11989
11989
  }
11990
11990
  },
11991
11991
  "execa": {
11992
- "version": "7.0.0",
11993
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.0.0.tgz",
11994
- "integrity": "sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==",
11992
+ "version": "7.1.1",
11993
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
11994
+ "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
11995
11995
  "requires": {
11996
11996
  "cross-spawn": "^7.0.3",
11997
11997
  "get-stream": "^6.0.1",
@@ -12140,9 +12140,9 @@
12140
12140
  }
12141
12141
  },
12142
12142
  "ff-test-bidi-har-export": {
12143
- "version": "0.0.6",
12144
- "resolved": "https://registry.npmjs.org/ff-test-bidi-har-export/-/ff-test-bidi-har-export-0.0.6.tgz",
12145
- "integrity": "sha512-SVDfhXRAcW+mGZ7KSX6v49/SBDc4Xq1G6OkLz5BEt5WQdBkcM8cQILJaMhYZFgnnHuDN/5Z9YCDbzxL4DC8hHA=="
12143
+ "version": "0.0.10",
12144
+ "resolved": "https://registry.npmjs.org/ff-test-bidi-har-export/-/ff-test-bidi-har-export-0.0.10.tgz",
12145
+ "integrity": "sha512-0azA5fUrA3Fn4KFAg2LcFqM2Xav7+H41gj4GHgLMhZxSyHfPV0yhbs1y+6sv+skgak/IbBb75KZmkj0VFsdyEg=="
12146
12146
  },
12147
12147
  "figures": {
12148
12148
  "version": "5.0.0",
@@ -12722,9 +12722,9 @@
12722
12722
  }
12723
12723
  },
12724
12724
  "human-signals": {
12725
- "version": "4.3.0",
12726
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz",
12727
- "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ=="
12725
+ "version": "4.3.1",
12726
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
12727
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ=="
12728
12728
  },
12729
12729
  "ieee754": {
12730
12730
  "version": "1.1.13",
@@ -14657,9 +14657,9 @@
14657
14657
  }
14658
14658
  },
14659
14659
  "pug-lint": {
14660
- "version": "2.6.0",
14661
- "resolved": "https://registry.npmjs.org/pug-lint/-/pug-lint-2.6.0.tgz",
14662
- "integrity": "sha512-bCENAUT0grCSlUBIfX1USjpZPQWs5QccxVZoCIT4S+IevTn9NqJyzhrcyq/CFVSCOp9Z+pdwPQIkzdCvZ1pGlQ==",
14660
+ "version": "2.7.0",
14661
+ "resolved": "https://registry.npmjs.org/pug-lint/-/pug-lint-2.7.0.tgz",
14662
+ "integrity": "sha512-CcFFU9+cXu/0xXXQbE1Zus0u9l3OCXqU+2sw4NcnFGEml8RoCUqrSdVNoVkg2SYcNvcfcnV6h+ctmE5+Ptgj1w==",
14663
14663
  "dev": true,
14664
14664
  "requires": {
14665
14665
  "acorn": "^4.0.1",
@@ -14669,9 +14669,9 @@
14669
14669
  "glob": "^7.0.3",
14670
14670
  "minimatch": "^3.0.3",
14671
14671
  "path-is-absolute": "^1.0.0",
14672
- "pug-attrs": "^2.0.3",
14673
- "pug-error": "^1.3.2",
14674
- "pug-lexer": "^4.0.0",
14672
+ "pug-attrs": "^2.0.4",
14673
+ "pug-error": "^1.3.3",
14674
+ "pug-lexer": "^4.1.0",
14675
14675
  "resolve": "^1.1.7",
14676
14676
  "strip-json-comments": "^2.0.1",
14677
14677
  "void-elements": "^2.0.1"
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "sitespeed.io": "./bin/sitespeed.js",
6
6
  "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js"
7
7
  },
8
- "version": "27.2.0",
8
+ "version": "27.3.1",
9
9
  "description": "Analyze the web performance of your site",
10
10
  "keywords": [
11
11
  "performance",
@@ -73,17 +73,17 @@
73
73
  "marked": "4.2.12",
74
74
  "sass": "1.58.3",
75
75
  "prettier": "2.8.4",
76
- "pug-lint": "^2.6.0",
76
+ "pug-lint": "^2.7.0",
77
77
  "pug-lint-config-clock": "^2.0.0"
78
78
  },
79
79
  "exports": "./lib/sitespeed.js",
80
80
  "dependencies": {
81
- "@google-cloud/storage": "6.9.4",
81
+ "@google-cloud/storage": "6.9.5",
82
82
  "@influxdata/influxdb-client": "1.33.2",
83
83
  "@tgwf/co2": "0.12.2",
84
84
  "aws-sdk": "2.1327.0",
85
- "axe-core": "4.6.3",
86
- "browsertime": "17.7.0",
85
+ "axe-core": "4.7.0",
86
+ "browsertime": "17.9.0",
87
87
  "coach-core": "7.1.3",
88
88
  "cli-color": "2.0.3",
89
89
  "concurrent-queue": "7.0.2",
@@ -118,7 +118,7 @@
118
118
  "pug": "3.0.2",
119
119
  "recursive-readdir": "2.2.3",
120
120
  "simplecrawler": "1.1.9",
121
- "@sitespeed.io/plugin": "0.0.4",
121
+ "@sitespeed.io/plugin": "0.0.6",
122
122
  "tape": "5.6.3",
123
123
  "text-table": "0.2.0",
124
124
  "uuid": "9.0.0",