sitespeed.io 37.4.1 → 37.5.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,6 +1,18 @@
1
1
 
2
2
  # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org))
3
3
 
4
+ ## 37.5.0 - 2025-04-30
5
+ ### Added
6
+ * Upgraded to Firefox 138 and Chrome 136 in the Docker container [#4507](https://github.com/sitespeedio/sitespeed.io/pull/4507).
7
+
8
+ ### Fixed
9
+ * Updated to latest Browsertime with a fix for Firefox 138 [#4506](https://github.com/sitespeedio/sitespeed.io/pull/4506).
10
+
11
+ ## 37.4.2 - 2025-04-19
12
+ ### Fixed
13
+ * s3: If you add Expires to your object using the API, it was broken since the upgrade to v3. This fix change so we allways use a Date when setting Expires [#4503](https://github.com/sitespeedio/sitespeed.io/pull/4503).
14
+ * Make sure that HAR files included in the HTML excludes closing script tags in the body of an response [#4500](https://github.com/sitespeedio/sitespeed.io/pull/4500).
15
+
4
16
  ## 37.4.1 - 2025-04-10
5
17
  ### Fixed
6
18
  * If testing one page fails, make sure that we still can genereate the HTML [#4495](https://github.com/sitespeedio/sitespeed.io/pull/4495).
package/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM sitespeedio/webbrowsers:chrome-135.0-firefox-137.0-edge-135.0-1
1
+ FROM sitespeedio/webbrowsers:chrome-136.0-firefox-138.0-edge-135.0
2
2
 
3
3
  ARG TARGETPLATFORM=linux/amd64
4
4
 
@@ -3,7 +3,7 @@
3
3
  //- specific run (the median run) in summaryPageHAR.
4
4
  //- Inline script tags breaks the output
5
5
  - dahar = h.get(pageInfo.data, 'browsertime.run.har', summaryPageHAR)
6
- - dahar = JSON.stringify(dahar.log).split('</script>').join('&lt;/script&gt;')
6
+ - dahar = JSON.stringify(dahar.log).split('</script>').join('&lt;/script&gt;').split('<script>').join('&lt;script&gt;')
7
7
 
8
8
  script(src= assetsPath + 'js/perf-cascade.min.js')
9
9
  script(type='text/javascript').
@@ -12,19 +12,35 @@ import { runWithConcurrencyLimit } from './limit.js';
12
12
 
13
13
  const log = getLogger('sitespeedio.plugin.s3');
14
14
 
15
+ const normalizeExpires = maybeSeconds => {
16
+ if (typeof maybeSeconds === 'number' && Number.isFinite(maybeSeconds)) {
17
+ const seconds = Number.parseInt(maybeSeconds, 10);
18
+ const expires = new Date(Date.now() + seconds * 1000);
19
+ log.info('Setting s3.expires to ' + expires);
20
+ return expires;
21
+ }
22
+ return maybeSeconds;
23
+ };
24
+
15
25
  async function uploadFile(file, s3Client, s3Options, prefix, baseDir) {
16
26
  const stream = await fsPromises.readFile(file);
17
27
  const contentType = getContentType(file);
18
28
  const subPath = path.relative(baseDir, file);
19
- const parameters = {
29
+ const baseParams = {
20
30
  Bucket: s3Options.bucketname,
21
31
  Key: path.join(s3Options.path || prefix, subPath),
22
32
  Body: stream,
23
33
  ContentType: contentType,
24
- ACL: s3Options.acl,
25
- ...s3Options.params
34
+ ACL: s3Options.acl
26
35
  };
27
36
 
37
+ const userParams = { ...s3Options.params };
38
+ if ('Expires' in userParams) {
39
+ userParams.Expires = normalizeExpires(userParams.Expires);
40
+ }
41
+
42
+ const parameters = { ...baseParams, ...userParams };
43
+
28
44
  try {
29
45
  await s3Client.send(new PutObjectCommand(parameters));
30
46
  log.debug(`Uploaded ${file} to S3 bucket ${s3Options.bucketname}`);
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "sitespeed.io",
3
- "version": "37.4.1",
3
+ "version": "37.5.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "sitespeed.io",
9
- "version": "37.4.1",
9
+ "version": "37.5.0",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "dependencies": {
@@ -17,7 +17,7 @@
17
17
  "@slack/webhook": "7.0.4",
18
18
  "@tgwf/co2": "0.16.4",
19
19
  "axe-core": "4.10.2",
20
- "browsertime": "24.5.2",
20
+ "browsertime": "24.5.3",
21
21
  "coach-core": "8.1.1",
22
22
  "dayjs": "1.11.11",
23
23
  "fast-crc32c": "2.0.0",
@@ -3231,10 +3231,9 @@
3231
3231
  }
3232
3232
  },
3233
3233
  "node_modules/browsertime": {
3234
- "version": "24.5.2",
3235
- "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-24.5.2.tgz",
3236
- "integrity": "sha512-TAgeT+qzr8rBjDLS2xRyqME6My1vUT/c4s5/1yaqAT1quxHWOhva75xJho16NCuGm6JpenQQTHBvgNCWK8he1Q==",
3237
- "license": "MIT",
3234
+ "version": "24.5.3",
3235
+ "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-24.5.3.tgz",
3236
+ "integrity": "sha512-ZXi0Af1APuXNUrHc2qIwEO9+tpwVePFzHjX7mvi2Qu09uuzBWjQsihyPl8t9u4/tUtQu60zi9ii1hMVmCEbW6w==",
3238
3237
  "dependencies": {
3239
3238
  "@devicefarmer/adbkit": "3.3.8",
3240
3239
  "@sitespeed.io/chromedriver": "134.0.6998-35",
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": "37.4.1",
8
+ "version": "37.5.0",
9
9
  "description": "sitespeed.io is an open-source tool for comprehensive web performance analysis, enabling you to test, monitor, and optimize your website’s speed using real browsers in various environments.",
10
10
  "keywords": [
11
11
  "performance",
@@ -88,7 +88,7 @@
88
88
  "@tgwf/co2": "0.16.4",
89
89
  "@slack/webhook": "7.0.4",
90
90
  "axe-core": "4.10.2",
91
- "browsertime": "24.5.2",
91
+ "browsertime": "24.5.3",
92
92
  "coach-core": "8.1.1",
93
93
  "dayjs": "1.11.11",
94
94
  "fast-crc32c": "2.0.0",