sitespeed.io 29.3.0 → 29.4.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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org))
2
2
 
3
+ ## 29.4.0 - 2023-08-31
4
+ ### Added
5
+ * Display axe-core version on the summary page (before it was only showed on each run page) [#3950](https://github.com/sitespeedio/sitespeed.io/pull/3950).
6
+ * Display third-party-web and wappalyzer version in the HTML output (by upgrading to [Coach 8.0.0](https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#800---2023-08-30)) [#3953](https://github.com/sitespeedio/sitespeed.io/pull/3953).
7
+ * Display co2 version in the HTML output [#3953](https://github.com/sitespeedio/sitespeed.io/pull/3954).
8
+
3
9
  ## 29.3.0 - 2023-08-16
4
10
  ### Added
5
11
  * Chrome and Chromedriver 116.
@@ -2,6 +2,8 @@ import { resolve } from 'node:path';
2
2
  import { readFileSync } from 'node:fs';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import intel from 'intel';
5
+ import axe from 'axe-core';
6
+ const { version: axeVersion } = axe;
5
7
  import { SitespeedioPlugin } from '@sitespeed.io/plugin';
6
8
  const log = intel.getLogger('sitespeedio.plugin.axe');
7
9
  const __dirname = fileURLToPath(new URL('.', import.meta.url));
@@ -15,7 +17,7 @@ export default class AxePlugin extends SitespeedioPlugin {
15
17
  this.options = options;
16
18
  this.make = context.messageMaker('axe').make;
17
19
  this.pug = readFileSync(resolve(__dirname, 'pug', 'index.pug'), 'utf8');
18
- log.info('Axe plugin activated');
20
+ log.info(`Axe version %s plugin activated`, axeVersion);
19
21
  }
20
22
 
21
23
  processMessage(message, queue) {
@@ -35,7 +37,7 @@ export default class AxePlugin extends SitespeedioPlugin {
35
37
 
36
38
  case 'sitespeedio.setup': {
37
39
  // Tell other plugins that axe will run
38
- queue.postMessage(make('axe.setup'));
40
+ queue.postMessage(make('axe.setup', { version: axeVersion }));
39
41
 
40
42
  // Add the HTML pugs
41
43
  queue.postMessage(
@@ -1,13 +1,11 @@
1
1
 
2
2
  - const axe = pageInfo.data.axe.run ? pageInfo.data.axe.run : pageInfo.data.axe.pageSummary
3
3
 
4
-
5
4
  a
6
5
  h2 Axe
7
- p Axe is an accessibility testing engine for websites and other HTML-based user interfaces. Read more about
8
- a(href='https://github.com/dequelabs/axe-core') axe-core
9
- | . #{axe.testEngine ? 'Tested using ' + axe.testEngine.name + ' ' + axe.testEngine.version + '.' : ''}
10
-
6
+ p Axe is an accessibility testing engine for websites and other HTML-based user interfaces. Tested using #{axe.testEngine.name} version #{axe.testEngine.version}. Read more about
7
+ a(href='https://github.com/dequelabs/axe-core') axe-core
8
+ | .
11
9
 
12
10
  if pageInfo.data.axe.run
13
11
  h3 Violations
@@ -10,7 +10,13 @@ import isEmpty from 'lodash.isempty';
10
10
  import get from 'lodash.get';
11
11
  import { Stats } from 'fast-stats';
12
12
  import coach from 'coach-core';
13
- const { pickAPage, analyseHar, merge } = coach;
13
+ const {
14
+ pickAPage,
15
+ analyseHar,
16
+ merge,
17
+ getThirdPartyWebVersion,
18
+ getWappalyzerCoreVersion
19
+ } = coach;
14
20
  import { SitespeedioPlugin } from '@sitespeed.io/plugin';
15
21
 
16
22
  import { summarizeStats } from '../../support/statsHelpers.js';
@@ -123,6 +129,11 @@ export default class BrowsertimePlugin extends SitespeedioPlugin {
123
129
  _merge(options, message.data);
124
130
  break;
125
131
  }
132
+
133
+ case 'axe.setup': {
134
+ this.axeVersion = message.data.version;
135
+ break;
136
+ }
126
137
  // Andother plugin got JavaScript that they want to run in Browsertime
127
138
  case 'browsertime.scripts': {
128
139
  if (message.data.category && message.data.scripts) {
@@ -500,6 +511,11 @@ export default class BrowsertimePlugin extends SitespeedioPlugin {
500
511
  );
501
512
  advice = merge(coachAdvice, harResult);
502
513
  }
514
+ const thirdPartyWebVersion = getThirdPartyWebVersion();
515
+ const wappalyzerVersion = getWappalyzerCoreVersion();
516
+ advice.thirdPartyWebVersion = thirdPartyWebVersion;
517
+ advice.wappalyzerVersion = wappalyzerVersion;
518
+
503
519
  super.sendMessage('coach.run', advice, {
504
520
  url,
505
521
  group,
@@ -540,14 +556,12 @@ export default class BrowsertimePlugin extends SitespeedioPlugin {
540
556
 
541
557
  // Post the result on the queue so other plugins can use it
542
558
  if (this.useAxe) {
543
- super.sendMessage(
544
- 'axe.pageSummary',
545
- axeAggregatorPerURL.summarizeStats(),
546
- {
547
- url,
548
- group
549
- }
550
- );
559
+ let stats = axeAggregatorPerURL.summarizeStats();
560
+ stats.testEngine = { version: this.axeVersion, name: 'axe-core' };
561
+ super.sendMessage('axe.pageSummary', stats, {
562
+ url,
563
+ group
564
+ });
551
565
  }
552
566
 
553
567
  // Check for errors. Browsertime errors is an array of all iterations
@@ -54,6 +54,7 @@ mixin adviceInfo(name, id, perfectScore, node)
54
54
  p #{perfectScore}
55
55
 
56
56
  - const advice = pageInfo.data.coach.run ? pageInfo.data.coach.run.advice : pageInfo.data.coach.pageSummary.advice;
57
+ - const coachVersion = pageInfo.data.coach.run ? pageInfo.data.coach.run.version : pageInfo.data.coach.pageSummary.version;
57
58
 
58
59
  small
59
60
  if advice
@@ -73,7 +74,7 @@ small
73
74
  h2 Coach
74
75
  p.small
75
76
  a(href='https://github.com/sitespeedio/coach') The coach
76
- |  helps you find performance problems on your web page using web performance best practice rules. And gives you advice on privacy and best practices.
77
+ |  helps you find performance problems on your web page using web performance best practice rules. And gives you advice on privacy and best practices. Tested using Coach-core version #{coachVersion}.
77
78
 
78
79
  script(type='text/javascript').
79
80
  function toggleRow(toggleElement) {
@@ -1,7 +1,11 @@
1
+ - const wappalyserVersion = pageInfo.data.coach.run ? pageInfo.data.coach.run.wappalyzerVersion : pageInfo.data.coach.pageSummary.wappalyzerVersion;
2
+ - const thirdPartyWebVersion = pageInfo.data.coach.run ? pageInfo.data.coach.run.thirdPartyWebVersion : pageInfo.data.coach.pageSummary.thirdPartyWebVersion;
3
+
1
4
  a#technology
2
5
  h2 Technologies used to build the page.
3
6
  p Data collected using
4
- a(href='https://github.com/AliasIO/wappalyzer') Wappalyzer.
7
+ a(href='https://github.com/dochne/wappalyzer') Wappalyzer
8
+ | version #{wappalyserVersion}.
5
9
  | Use
6
10
  code --browsertime.firefox.includeResponseBodies html
7
11
  | or
@@ -27,7 +31,7 @@ else
27
31
 
28
32
  if (advice.info.thirdparty && Object.keys(advice.info.thirdparty.toolsByCategory).length > 0)
29
33
  p Data collected using
30
- a(href='https://github.com/patrickhulce/third-party-web') Third Party Web.
34
+ a(href='https://github.com/patrickhulce/third-party-web') Third Party Web #{thirdPartyWebVersion}
31
35
 
32
36
  table
33
37
  each data, category in advice.info.thirdparty.toolsByCategory
@@ -21,9 +21,10 @@ a#third-party
21
21
  a#third-party-categories
22
22
  h2 Third party
23
23
 
24
+ - const thirdPartyWebVersion = pageInfo.data.coach.run ? pageInfo.data.coach.run.thirdPartyWebVersion : pageInfo.data.coach.pageSummary.thirdPartyWebVersion;
24
25
  p Third party requests categorised by
25
26
  a(href='https://github.com/patrickhulce/third-party-web') Third party web
26
- | .
27
+ |  version #{thirdPartyWebVersion}.
27
28
 
28
29
  if thirdparty.category && Object.keys(thirdparty.category).length > 0
29
30
  .row
@@ -1,5 +1,4 @@
1
1
  import { resolve, join } from 'node:path';
2
- import { readFileSync } from 'node:fs';
3
2
  import { fileURLToPath } from 'node:url';
4
3
  import fs from 'node:fs';
5
4
  import zlib from 'node:zlib';
@@ -10,9 +9,15 @@ import { co2, hosting } from '@tgwf/co2';
10
9
  import { SitespeedioPlugin } from '@sitespeed.io/plugin';
11
10
  import { Aggregator } from './aggregator.js';
12
11
 
13
- const readFile = promisify(fs.readFile);
14
- const gunzip = promisify(zlib.gunzip);
12
+ const fsp = fs.promises;
15
13
  const __dirname = fileURLToPath(new URL('.', import.meta.url));
14
+
15
+ const packageJson = JSON.parse(
16
+ await fsp.readFile(resolve(join(__dirname, '..', '..', '..', 'package.json')))
17
+ );
18
+ const co2Version = packageJson.dependencies['@tgwf/co2'];
19
+
20
+ const gunzip = promisify(zlib.gunzip);
16
21
  const log = intel.getLogger('sitespeedio.plugin.sustainable');
17
22
 
18
23
  const DEFAULT_METRICS_PAGE_SUMMARY = [
@@ -41,7 +46,7 @@ async function getGzippedFileAsJson(jsonPath) {
41
46
  async function loadJSON(jsonPath) {
42
47
  const jsonBuffer = jsonPath.endsWith('.gz')
43
48
  ? await getGzippedFileAsJson(jsonPath)
44
- : await readFile(jsonPath);
49
+ : await fsp.readFile(jsonPath);
45
50
  return JSON.parse(jsonBuffer);
46
51
  }
47
52
 
@@ -50,12 +55,15 @@ export default class SustainablePlugin extends SitespeedioPlugin {
50
55
  super({ name: 'sustainable', options, context, queue });
51
56
  }
52
57
 
53
- open(context, options) {
58
+ async open(context, options) {
54
59
  this.storageManager = context.storageManager;
55
60
  this.options = options;
56
61
  this.sustainableOptions = options.sustainable || {};
57
62
  this.make = context.messageMaker('sustainable').make;
58
- this.pug = readFileSync(resolve(__dirname, 'pug', 'index.pug'), 'utf8');
63
+ this.pug = await fsp.readFile(
64
+ resolve(__dirname, 'pug', 'index.pug'),
65
+ 'utf8'
66
+ );
59
67
  this.aggregator = new Aggregator(options);
60
68
  this.firstRunsData = {};
61
69
  context.filterRegistry.registerFilterForType(
@@ -204,7 +212,8 @@ export default class SustainablePlugin extends SitespeedioPlugin {
204
212
  co2ThirdParty: co2PerParty.thirdParty,
205
213
  hostingGreenCheck,
206
214
  dirtiestResources,
207
- co2PerContentType
215
+ co2PerContentType,
216
+ co2Version
208
217
  },
209
218
  {
210
219
  url: message.url,
@@ -226,6 +235,8 @@ export default class SustainablePlugin extends SitespeedioPlugin {
226
235
  const extras = this.firstRunsData[url];
227
236
  // Attach first run so we can show that extra data that we don't collect stats for
228
237
  summaries.urls[url].firstRun = extras;
238
+
239
+ summaries.urls[url].co2Version = co2Version;
229
240
  queue.postMessage(
230
241
  make('sustainable.pageSummary', summaries.urls[url], {
231
242
  url: url,
@@ -11,6 +11,10 @@ h1 Sustainable Web
11
11
 
12
12
  - let sustainable = pageInfo.data.sustainable.run ? pageInfo.data.sustainable.run : pageInfo.data.sustainable.pageSummary
13
13
 
14
+ p The sustainable metrics is calculated using
15
+ a(href='https://github.com/thegreenwebfoundation/co2.js') @tgwf/co2
16
+ |  version #{sustainable.co2Version}.
17
+
14
18
  p We know that using the internet means using electricity, and because most of that electricity comes from fossil fuels, it means that more data we send, the more fossil fuels we end up burning.
15
19
 
16
20
  p This is terrible news for the climate, and
@@ -27,7 +31,8 @@ if !options.sustainable.pageViews
27
31
  if (sustainable.hostingInfo)
28
32
  p #{sustainable.hostingInfo.url} #{sustainable.hostingInfo.green === true ? 'is hosted green! This means the servers running the site use green energy' : 'does not appear to be running on green energy.'}
29
33
 
30
- p This information comes from The Green Web Foundation's datasets, which are published as open data. If you have questions, corrections or want to use this data yourself, please visit (href='https://www.thegreenwebfoundation.org') The Green Web Foundation website.
34
+ p This information comes from The Green Web Foundation's datasets, which are published as open data. If you have questions, corrections or want to use this data yourself, please visit
35
+ a(href='https://www.thegreenwebfoundation.org') The Green Web Foundation website.
31
36
 
32
37
  - const co2FirstParty = sustainable.co2FirstParty.median || sustainable.co2FirstParty
33
38
  - const co2ThirdParty = sustainable.co2ThirdParty.median === 0 ? 0 : sustainable.co2ThirdParty.median || sustainable.co2ThirdParty
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "sitespeed.io",
3
- "version": "29.3.0",
3
+ "version": "29.4.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "sitespeed.io",
9
- "version": "29.3.0",
9
+ "version": "29.4.0",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@google-cloud/storage": "6.9.5",
@@ -17,7 +17,7 @@
17
17
  "axe-core": "4.7.2",
18
18
  "browsertime": "17.15.0",
19
19
  "cli-color": "2.0.3",
20
- "coach-core": "7.2.1",
20
+ "coach-core": "8.0.2",
21
21
  "concurrent-queue": "7.0.2",
22
22
  "dayjs": "1.11.9",
23
23
  "fast-crc32c": "2.0.0",
@@ -2425,18 +2425,18 @@
2425
2425
  }
2426
2426
  },
2427
2427
  "node_modules/coach-core": {
2428
- "version": "7.2.1",
2429
- "resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.2.1.tgz",
2430
- "integrity": "sha512-Mci7Pwf+jmUmpAuao07v1n1yyHs3rQJQwLfRh7xs8ixzl7i0t1XfYWWKF2rdM7UeVmkJUadTdw24N3QotYBWSQ==",
2428
+ "version": "8.0.2",
2429
+ "resolved": "https://registry.npmjs.org/coach-core/-/coach-core-8.0.2.tgz",
2430
+ "integrity": "sha512-iszL8uyaP0KrcFXMYs2nGp1GEPggFAPZyClj6oiZBsXGB/aTdpZs1wmreSAs3bdx7amV9zHEN5Nm53FgWWraFQ==",
2431
2431
  "dependencies": {
2432
2432
  "filter-files": "0.4.0",
2433
2433
  "json-stable-stringify": "1.0.2",
2434
2434
  "lodash.groupby": "4.6.0",
2435
2435
  "lodash.merge": "4.6.2",
2436
2436
  "lodash.sortby": "4.7.0",
2437
- "pagexray": "4.4.2",
2438
- "third-party-web": "0.23.0",
2439
- "wappalyzer-core": "6.10.62"
2437
+ "pagexray": "4.4.4",
2438
+ "third-party-web": "0.24.0",
2439
+ "wappalyzer-core": "6.10.66"
2440
2440
  },
2441
2441
  "engines": {
2442
2442
  "node": ">=14.0.0"
@@ -6825,11 +6825,11 @@
6825
6825
  }
6826
6826
  },
6827
6827
  "node_modules/pagexray": {
6828
- "version": "4.4.2",
6829
- "resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.2.tgz",
6830
- "integrity": "sha512-Cw1WhyuqEy4nACgUMzTfuZn7EcQrsq4ozpTnkVlsGjm4eMbdGXKN8QwflFi1g7p2FpgSq1ElKgTGFrzVNdbEyQ==",
6828
+ "version": "4.4.4",
6829
+ "resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.4.tgz",
6830
+ "integrity": "sha512-eMeJzhtEUBDq8mI3DWD8n1iMFYt90lWE7gP5WfNoXFqFoTQZyj5DAg2O/W7VdRYqZYGpwswC7c0mFToeJfMwDg==",
6831
6831
  "dependencies": {
6832
- "minimist": "1.2.6"
6832
+ "minimist": "1.2.8"
6833
6833
  },
6834
6834
  "bin": {
6835
6835
  "pagexray": "bin/index.js"
@@ -6838,6 +6838,14 @@
6838
6838
  "node": ">=8.9.0"
6839
6839
  }
6840
6840
  },
6841
+ "node_modules/pagexray/node_modules/minimist": {
6842
+ "version": "1.2.8",
6843
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
6844
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
6845
+ "funding": {
6846
+ "url": "https://github.com/sponsors/ljharb"
6847
+ }
6848
+ },
6841
6849
  "node_modules/pako": {
6842
6850
  "version": "1.0.11",
6843
6851
  "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
@@ -8781,9 +8789,9 @@
8781
8789
  "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
8782
8790
  },
8783
8791
  "node_modules/third-party-web": {
8784
- "version": "0.23.0",
8785
- "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.23.0.tgz",
8786
- "integrity": "sha512-JMN1CYDnalQKs4Iyp2/HH1bhy4Euw5Tt1SSAANxmIQCXHrsMiD0c46KNDiRteuKkghXNEOzFlGoXAp3ewXdCXQ=="
8792
+ "version": "0.24.0",
8793
+ "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.24.0.tgz",
8794
+ "integrity": "sha512-mMkV7LE857QCG9DM/mkZoqsEEbJmtimnWBgm/bAmJuRlfVM29OLhPFse1ayrW1xmtJqg7bVU6ZBtjz8vVQGq2g=="
8787
8795
  },
8788
8796
  "node_modules/through": {
8789
8797
  "version": "2.3.8",
@@ -9125,9 +9133,10 @@
9125
9133
  }
9126
9134
  },
9127
9135
  "node_modules/wappalyzer-core": {
9128
- "version": "6.10.62",
9129
- "resolved": "https://registry.npmjs.org/wappalyzer-core/-/wappalyzer-core-6.10.62.tgz",
9130
- "integrity": "sha512-cCRWcH1L5E6UhCgnPw3w09bBfqH35OL87RjQri7QtQRqxjBlHr+BWKRObphAG0nBo1N01VZe/1EE/zRtEaUBHw==",
9136
+ "version": "6.10.66",
9137
+ "resolved": "https://registry.npmjs.org/wappalyzer-core/-/wappalyzer-core-6.10.66.tgz",
9138
+ "integrity": "sha512-7EOYy4DpdRcfoW00SfCwKjJE3//AAbyl2dzuG6DgICKPoRf60ero/1fBHOB2ipVTmIxpnnlsJ8jY0r5McwRwtA==",
9139
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
9131
9140
  "funding": [
9132
9141
  {
9133
9142
  "url": "https://github.com/sponsors/aliasio"
@@ -11239,18 +11248,18 @@
11239
11248
  }
11240
11249
  },
11241
11250
  "coach-core": {
11242
- "version": "7.2.1",
11243
- "resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.2.1.tgz",
11244
- "integrity": "sha512-Mci7Pwf+jmUmpAuao07v1n1yyHs3rQJQwLfRh7xs8ixzl7i0t1XfYWWKF2rdM7UeVmkJUadTdw24N3QotYBWSQ==",
11251
+ "version": "8.0.2",
11252
+ "resolved": "https://registry.npmjs.org/coach-core/-/coach-core-8.0.2.tgz",
11253
+ "integrity": "sha512-iszL8uyaP0KrcFXMYs2nGp1GEPggFAPZyClj6oiZBsXGB/aTdpZs1wmreSAs3bdx7amV9zHEN5Nm53FgWWraFQ==",
11245
11254
  "requires": {
11246
11255
  "filter-files": "0.4.0",
11247
11256
  "json-stable-stringify": "1.0.2",
11248
11257
  "lodash.groupby": "4.6.0",
11249
11258
  "lodash.merge": "4.6.2",
11250
11259
  "lodash.sortby": "4.7.0",
11251
- "pagexray": "4.4.2",
11252
- "third-party-web": "0.23.0",
11253
- "wappalyzer-core": "6.10.62"
11260
+ "pagexray": "4.4.4",
11261
+ "third-party-web": "0.24.0",
11262
+ "wappalyzer-core": "6.10.66"
11254
11263
  }
11255
11264
  },
11256
11265
  "code-excerpt": {
@@ -14572,11 +14581,18 @@
14572
14581
  "dev": true
14573
14582
  },
14574
14583
  "pagexray": {
14575
- "version": "4.4.2",
14576
- "resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.2.tgz",
14577
- "integrity": "sha512-Cw1WhyuqEy4nACgUMzTfuZn7EcQrsq4ozpTnkVlsGjm4eMbdGXKN8QwflFi1g7p2FpgSq1ElKgTGFrzVNdbEyQ==",
14584
+ "version": "4.4.4",
14585
+ "resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.4.tgz",
14586
+ "integrity": "sha512-eMeJzhtEUBDq8mI3DWD8n1iMFYt90lWE7gP5WfNoXFqFoTQZyj5DAg2O/W7VdRYqZYGpwswC7c0mFToeJfMwDg==",
14578
14587
  "requires": {
14579
- "minimist": "1.2.6"
14588
+ "minimist": "1.2.8"
14589
+ },
14590
+ "dependencies": {
14591
+ "minimist": {
14592
+ "version": "1.2.8",
14593
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
14594
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
14595
+ }
14580
14596
  }
14581
14597
  },
14582
14598
  "pako": {
@@ -16073,9 +16089,9 @@
16073
16089
  "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
16074
16090
  },
16075
16091
  "third-party-web": {
16076
- "version": "0.23.0",
16077
- "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.23.0.tgz",
16078
- "integrity": "sha512-JMN1CYDnalQKs4Iyp2/HH1bhy4Euw5Tt1SSAANxmIQCXHrsMiD0c46KNDiRteuKkghXNEOzFlGoXAp3ewXdCXQ=="
16092
+ "version": "0.24.0",
16093
+ "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.24.0.tgz",
16094
+ "integrity": "sha512-mMkV7LE857QCG9DM/mkZoqsEEbJmtimnWBgm/bAmJuRlfVM29OLhPFse1ayrW1xmtJqg7bVU6ZBtjz8vVQGq2g=="
16079
16095
  },
16080
16096
  "through": {
16081
16097
  "version": "2.3.8",
@@ -16351,9 +16367,9 @@
16351
16367
  "dev": true
16352
16368
  },
16353
16369
  "wappalyzer-core": {
16354
- "version": "6.10.62",
16355
- "resolved": "https://registry.npmjs.org/wappalyzer-core/-/wappalyzer-core-6.10.62.tgz",
16356
- "integrity": "sha512-cCRWcH1L5E6UhCgnPw3w09bBfqH35OL87RjQri7QtQRqxjBlHr+BWKRObphAG0nBo1N01VZe/1EE/zRtEaUBHw=="
16370
+ "version": "6.10.66",
16371
+ "resolved": "https://registry.npmjs.org/wappalyzer-core/-/wappalyzer-core-6.10.66.tgz",
16372
+ "integrity": "sha512-7EOYy4DpdRcfoW00SfCwKjJE3//AAbyl2dzuG6DgICKPoRf60ero/1fBHOB2ipVTmIxpnnlsJ8jY0r5McwRwtA=="
16357
16373
  },
16358
16374
  "webidl-conversions": {
16359
16375
  "version": "3.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": "29.3.0",
8
+ "version": "29.4.0",
9
9
  "description": "Analyze the web performance of your site",
10
10
  "keywords": [
11
11
  "performance",
@@ -84,7 +84,7 @@
84
84
  "aws-sdk": "2.1327.0",
85
85
  "axe-core": "4.7.2",
86
86
  "browsertime": "17.15.0",
87
- "coach-core": "7.2.1",
87
+ "coach-core": "8.0.2",
88
88
  "cli-color": "2.0.3",
89
89
  "concurrent-queue": "7.0.2",
90
90
  "dayjs": "1.11.9",