From 884d03ec5bb08309aeb947a131798e77fbdf8947 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Fri, 25 Feb 2022 14:13:07 +0100 Subject: [PATCH 001/105] Show alias in result budget json. (#3582) One thing that do not work 100% correct is if we have multiple URLs with the same alias, then it could be that we do not show the correct URL in the budget HTML file. --- lib/plugins/budget/verify.js | 12 ++++++++---- lib/plugins/html/htmlBuilder.js | 6 +++++- lib/plugins/html/templates/budget.pug | 9 ++++++--- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lib/plugins/budget/verify.js b/lib/plugins/budget/verify.js index 7d971923d..fe22a3877 100644 --- a/lib/plugins/budget/verify.js +++ b/lib/plugins/budget/verify.js @@ -166,14 +166,18 @@ module.exports = { } // group working/failing per URL if (failing.length > 0) { - result.failing[message.url] = result.failing[message.url] - ? result.failing[message.url].concat(failing) + result.failing[alias || message.url] = result.failing[ + alias || message.url + ] + ? result.failing[alias || message.url].concat(failing) : failing; } if (working.length > 0) { - result.working[message.url] = result.working[message.url] - ? result.working[message.url].concat(working) + result.working[alias || message.url] = result.working[ + alias || message.url + ] + ? result.working[alias || message.url].concat(working) : working; } } diff --git a/lib/plugins/html/htmlBuilder.js b/lib/plugins/html/htmlBuilder.js index dfb9cc16d..1a0a0b0c2 100644 --- a/lib/plugins/html/htmlBuilder.js +++ b/lib/plugins/html/htmlBuilder.js @@ -160,13 +160,17 @@ class HTMLBuilder { for (const url of Object.keys(budget.working)) { totalWorking = totalWorking + budget.working[url].length; } + const aliasToUrl = {}; + for (let url of Object.keys(options.urlsMetaData)) { + aliasToUrl[options.urlsMetaData[url].urlAlias] = url; + } this.summary.budget = { pageTitle: `Performance budget for ${name} with ${totalWorking} working and ${totalFailing} failing budgets.`, pageDescription: 'The list of failing and working performance budgets.', budget, totalFailing, totalWorking, - alias: options.urlsMetaData + aliasToUrl }; } diff --git a/lib/plugins/html/templates/budget.pug b/lib/plugins/html/templates/budget.pug index bea9e12fb..9eba4d5e4 100644 --- a/lib/plugins/html/templates/budget.pug +++ b/lib/plugins/html/templates/budget.pug @@ -2,12 +2,15 @@ extends ./layout.pug include _tableMixins mixin row(budget) - each results, url in budget + each results, urlOrAlias in budget each result in results tr td - a(href=url)= alias[url] ? alias[url].urlAlias : url - p #{alias[url] ? url : ''} + if (urlOrAlias && urlOrAlias.startsWith('http')) + a(href=urlOrAlias)= urlOrAlias + else + a(href=aliasToUrl[urlOrAlias])= urlOrAlias + p #{aliasToUrl[urlOrAlias]} td #{result.metric} with value #{result.friendlyValue || result.value} limit #{result.limitType} #{result.friendlyLimit || result.limit} block content From d6d00e9de99a408b424988563cb9224e9cbaa7d3 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 25 Feb 2022 14:15:39 +0100 Subject: [PATCH 002/105] changelog: alias in budget file --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6731b7efd..b10309876 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) +## UNRELEASED + +### Fixed +* If you use alias and budget files, the outcome (result budget json and others) shoudl use the alias of the URL instead of the URL [#3582](https://github.com/sitespeedio/sitespeed.io/pull/3582). ## 23.1.0 - 2022-02-24 ### Added * Updated [Browsertime](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1510---2022-02-24) that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser. From 2c372668a743498d0e4bcaa85899cdf40c8b5de8 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 1 Mar 2022 15:08:39 +0100 Subject: [PATCH 003/105] docs: Add examples with exit code https://github.com/sitespeedio/sitespeed.io/issues/3585 --- .../documentation/sitespeed.io/performance-budget/index.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/documentation/sitespeed.io/performance-budget/index.md b/docs/documentation/sitespeed.io/performance-budget/index.md index 70924c36c..fc175f87b 100644 --- a/docs/documentation/sitespeed.io/performance-budget/index.md +++ b/docs/documentation/sitespeed.io/performance-budget/index.md @@ -31,6 +31,13 @@ The log will look something like this: [2019-01-20 19:58:18] INFO: Budget: 3 working and 2 failing tests ~~~ +And if you check the return code after your run and you have failing budgets the exit code will be larger than zero. + +~~~shell +echo $? +1 +~~~ + The report looks like this. ![Example of the budget]({{site.baseurl}}/img/budget.png) From 07cdbcc543abfbb75ce3fc386fba9a055e47f95d Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 1 Mar 2022 21:02:17 +0100 Subject: [PATCH 004/105] sitespeed.io action example (#3586) --- .github/budget.json | 13 ++++++++++++ .../workflows/sitespeed-io-action-example.yml | 21 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 .github/budget.json create mode 100644 .github/workflows/sitespeed-io-action-example.yml diff --git a/.github/budget.json b/.github/budget.json new file mode 100644 index 000000000..5cc108f4e --- /dev/null +++ b/.github/budget.json @@ -0,0 +1,13 @@ +{ + "budget": { + "thirdParty": { + "requests": 0 + }, + "score": { + "bestpractice": 100, + "privacy": 100, + "performance": 98 + } + } + } + \ No newline at end of file diff --git a/.github/workflows/sitespeed-io-action-example.yml b/.github/workflows/sitespeed-io-action-example.yml new file mode 100644 index 000000000..7f4ed5cab --- /dev/null +++ b/.github/workflows/sitespeed-io-action-example.yml @@ -0,0 +1,21 @@ +name: sitespeed.io action example +on: + push: + branches: + - main +jobs: + run-sitespeed: + runs-on: ubuntu-latest + name: running sitespeed.io + steps: + - name: code checkout + uses: actions/checkout@v2 + # Here we build our own container to make sure we test against our latest code + # but YOU can just used the latest version by specifying + # sitespeedio/sitespeed.io:VERSION + - name: Build Docker containers + run: | + docker buildx install + docker buildx build --load --platform linux/amd64 -t sitespeedio/sitespeed.io . + - name: running sitespeed.io container with arguments and optional Docker options + run: docker run -v "$(pwd):/sitespeed.io" sitespeedio/sitespeed.io https://www.sitespeed.io --budget.configPath .github/budget.json -n 1 \ No newline at end of file From 0f79c73bfa4e022334f2427fe1a8bcdf21e57046 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Fri, 4 Mar 2022 08:26:08 +0100 Subject: [PATCH 005/105] Ignore sustainable.setup messages #3321 (#3587) --- lib/plugins/analysisstorer/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/plugins/analysisstorer/index.js b/lib/plugins/analysisstorer/index.js index d49794f4e..f72fb31fe 100644 --- a/lib/plugins/analysisstorer/index.js +++ b/lib/plugins/analysisstorer/index.js @@ -29,7 +29,8 @@ function shouldIgnoreMessage(message) { 'ftp.finished', 'graphite.setup', 'influxdb.setup', - 'grafana.setup' + 'grafana.setup', + 'sustainable.setup' ].indexOf(message.type) >= 0 ); } From a6ef1ec674c394d7d1f90a2c751ad59df8067873 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Fri, 4 Mar 2022 10:49:39 +0100 Subject: [PATCH 006/105] New BT and Chrome and Edge 99 (#3590) --- Dockerfile | 2 +- docs/_includes/version/browsertime.txt | 2 +- npm-shrinkwrap.json | 46 +++++++++++++------------- package.json | 2 +- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/Dockerfile b/Dockerfile index 268bea46b..6d4d675ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM sitespeedio/webbrowsers:chrome-98.0-firefox-97.0-edge-98.0 +FROM sitespeedio/webbrowsers:chrome-99.0-firefox-97.0-edge-99.0 ARG TARGETPLATFORM=linux/amd64 diff --git a/docs/_includes/version/browsertime.txt b/docs/_includes/version/browsertime.txt index ebed9e6f5..aa646ce59 100644 --- a/docs/_includes/version/browsertime.txt +++ b/docs/_includes/version/browsertime.txt @@ -1 +1 @@ -15.1.1 \ No newline at end of file +15.2.0 \ No newline at end of file diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 06e74eb64..308d53592 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -13,7 +13,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.3.5", - "browsertime": "15.1.1", + "browsertime": "15.2.0", "cli-color": "2.0.0", "coach-core": "7.1.0", "concurrent-queue": "7.0.2", @@ -910,9 +910,9 @@ "optional": true }, "node_modules/@sitespeed.io/chromedriver": { - "version": "98.0.4758-102b", - "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-98.0.4758-102b.tgz", - "integrity": "sha512-u0OKq3udxar9SUMYeNAgT9g1JIy8lwRxEoCQ9rkrRTyH3ImAWre/sU+n0mLs0k4Rs1KxXizQ/Cgj7o9C9vqdQg==", + "version": "99.0.4844-51", + "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-99.0.4844-51.tgz", + "integrity": "sha512-IRUKnrN/w2jfcFzhboarmSzqvlUxaK+ztfZRB7bZksWu6gdOP3O8Ci4cDuLUPIm1/vtIUFXn/7pXh4e/SY5Wcw==", "hasInstallScript": true, "dependencies": { "node-downloader-helper": "1.0.19", @@ -920,9 +920,9 @@ } }, "node_modules/@sitespeed.io/edgedriver": { - "version": "98.0.1108-43", - "resolved": "https://registry.npmjs.org/@sitespeed.io/edgedriver/-/edgedriver-98.0.1108-43.tgz", - "integrity": "sha512-QCj6L98CE42DvTXheQCaede3Ple/KXpjL0YghhXcwN+rD03T9/50Wy5PPeNt1UGVSUTc+DAdx0lY1n4U0hWpAg==", + "version": "99.0.1150-25", + "resolved": "https://registry.npmjs.org/@sitespeed.io/edgedriver/-/edgedriver-99.0.1150-25.tgz", + "integrity": "sha512-HQH7RmaV495xl8ksxRPYrT67xUfNr76o4ZKyx+OU0NgF3TJyCrgvbJylV1iQR3mP42JVoC0GW5XIGEDzphqA+w==", "hasInstallScript": true, "dependencies": { "node-downloader-helper": "1.0.18", @@ -1460,14 +1460,14 @@ } }, "node_modules/browsertime": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.1.1.tgz", - "integrity": "sha512-3cb1+TuUKEGCeGbFLtlk4mjIaEB/ygaiw4RqVbyO8bvcJ0JMuU9NUzU2sR6KL+kjn6SdleYPF2LkKzFQVwsAzA==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.2.0.tgz", + "integrity": "sha512-e0h4pBWHEJvCGqTUK+vIjqjy9K5L1J+cnExktWIazS+ZR7WpBXX/E8eVZKRnUxK9p0jp46E171xD/cyCxtr5aA==", "dependencies": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", - "@sitespeed.io/chromedriver": "98.0.4758-102b", - "@sitespeed.io/edgedriver": "98.0.1108-43", + "@sitespeed.io/chromedriver": "99.0.4844-51", + "@sitespeed.io/edgedriver": "99.0.1150-25", "@sitespeed.io/geckodriver": "0.30.0", "@sitespeed.io/throttle": "3.0.0", "@sitespeed.io/tracium": "0.3.3", @@ -8157,18 +8157,18 @@ } }, "@sitespeed.io/chromedriver": { - "version": "98.0.4758-102b", - "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-98.0.4758-102b.tgz", - "integrity": "sha512-u0OKq3udxar9SUMYeNAgT9g1JIy8lwRxEoCQ9rkrRTyH3ImAWre/sU+n0mLs0k4Rs1KxXizQ/Cgj7o9C9vqdQg==", + "version": "99.0.4844-51", + "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-99.0.4844-51.tgz", + "integrity": "sha512-IRUKnrN/w2jfcFzhboarmSzqvlUxaK+ztfZRB7bZksWu6gdOP3O8Ci4cDuLUPIm1/vtIUFXn/7pXh4e/SY5Wcw==", "requires": { "node-downloader-helper": "1.0.19", "node-stream-zip": "1.15.0" } }, "@sitespeed.io/edgedriver": { - "version": "98.0.1108-43", - "resolved": "https://registry.npmjs.org/@sitespeed.io/edgedriver/-/edgedriver-98.0.1108-43.tgz", - "integrity": "sha512-QCj6L98CE42DvTXheQCaede3Ple/KXpjL0YghhXcwN+rD03T9/50Wy5PPeNt1UGVSUTc+DAdx0lY1n4U0hWpAg==", + "version": "99.0.1150-25", + "resolved": "https://registry.npmjs.org/@sitespeed.io/edgedriver/-/edgedriver-99.0.1150-25.tgz", + "integrity": "sha512-HQH7RmaV495xl8ksxRPYrT67xUfNr76o4ZKyx+OU0NgF3TJyCrgvbJylV1iQR3mP42JVoC0GW5XIGEDzphqA+w==", "requires": { "node-downloader-helper": "1.0.18", "node-stream-zip": "1.15.0" @@ -8603,14 +8603,14 @@ } }, "browsertime": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.1.1.tgz", - "integrity": "sha512-3cb1+TuUKEGCeGbFLtlk4mjIaEB/ygaiw4RqVbyO8bvcJ0JMuU9NUzU2sR6KL+kjn6SdleYPF2LkKzFQVwsAzA==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.2.0.tgz", + "integrity": "sha512-e0h4pBWHEJvCGqTUK+vIjqjy9K5L1J+cnExktWIazS+ZR7WpBXX/E8eVZKRnUxK9p0jp46E171xD/cyCxtr5aA==", "requires": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", - "@sitespeed.io/chromedriver": "98.0.4758-102b", - "@sitespeed.io/edgedriver": "98.0.1108-43", + "@sitespeed.io/chromedriver": "99.0.4844-51", + "@sitespeed.io/edgedriver": "99.0.1150-25", "@sitespeed.io/geckodriver": "0.30.0", "@sitespeed.io/throttle": "3.0.0", "@sitespeed.io/tracium": "0.3.3", diff --git a/package.json b/package.json index 6b203234a..dca0e290b 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.3.5", - "browsertime": "15.1.1", + "browsertime": "15.2.0", "coach-core": "7.1.0", "cli-color": "2.0.0", "concurrent-queue": "7.0.2", From 8288741349afb2dba6f0709cd5d6a4a0297160be Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 4 Mar 2022 10:52:31 +0100 Subject: [PATCH 007/105] changelog: added Chrome and Edge updates --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b10309876..e97553f6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,13 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) -## UNRELEASED +## 23.2.0 - UNRELEASED +### Added +* Updated to Chrome and Edge 99 in the Docker container. Updated to Chromedriver and Edgedriver 99 [#3590](https://github.com/sitespeedio/sitespeed.io/pull/3590). ### Fixed -* If you use alias and budget files, the outcome (result budget json and others) shoudl use the alias of the URL instead of the URL [#3582](https://github.com/sitespeedio/sitespeed.io/pull/3582). +* If you use alias and budget files, the outcome (result budget json and others) should use the alias of the URL instead of the URL [#3582](https://github.com/sitespeedio/sitespeed.io/pull/3582). +* Ignore sustainable.setup messages when storing analysistorer [#3578](https://github.com/sitespeedio/sitespeed.io/pull/3587). + ## 23.1.0 - 2022-02-24 ### Added * Updated [Browsertime](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1510---2022-02-24) that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser. From 8684c24afe095b36fc9819970bfb140e8c153bda Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 5 Mar 2022 09:55:58 +0100 Subject: [PATCH 008/105] changelog: new release --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e97553f6a..c59f5144b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) -## 23.2.0 - UNRELEASED +## 23.2.0 - 2022-03-05 ### Added * Updated to Chrome and Edge 99 in the Docker container. Updated to Chromedriver and Edgedriver 99 [#3590](https://github.com/sitespeedio/sitespeed.io/pull/3590). From c9b88c7b07576050b91914247b1db80b3dff0016 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 5 Mar 2022 09:56:51 +0100 Subject: [PATCH 009/105] 23.2.0 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 308d53592..ca4935670 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.1.0", + "version": "23.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.1.0", + "version": "23.2.0", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index dca0e290b..69c7ff260 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.1.0", + "version": "23.2.0", "description": "Analyze the web performance of your site", "keywords": [ "performance", From 7cb9d643f60ab3979ddf81313462216622f7b404 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 5 Mar 2022 09:58:42 +0100 Subject: [PATCH 010/105] new release --- docs/_includes/version/sitespeed.io.txt | 2 +- docs/feed/atom.xml | 90 ++++++++++++------------- docs/feed/rss.xml | 70 +++++++++---------- 3 files changed, 81 insertions(+), 81 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index ed1add2e7..3bc99c2dc 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -23.1.0 \ No newline at end of file +23.2.0 \ No newline at end of file diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index de06216d4..42771ea6c 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ https://www.sitespeed.io sitespeed.io release feed - 2022-02-24T11:41:01.679Z + 2022-03-05T08:57:21.519Z https://github.com/jpmonette/feed Peter Hedenskog @@ -17,55 +17,22 @@ All rights reserved 2021, Peter Hedenskog and team - <![CDATA[sitespeed.io 23.1.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 + <![CDATA[sitespeed.io 23.2.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 - 2022-02-24T11:41:01.679Z - + 2022-03-05T08:57:21.519Z + Sitespeed.io https://www.sitespeed.io - <![CDATA[browsertime 15.1.1]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.1 + <![CDATA[browsertime 15.2.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 - 2022-02-24T10:17:34.808Z - - - Sitespeed.io - https://www.sitespeed.io - - - - <![CDATA[coach-core 7.1.0]]> - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 - - 2022-02-06T19:04:25.854Z - - - Sitespeed.io - https://www.sitespeed.io - - - - <![CDATA[pagexray 4.4.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 - - 2022-02-04T09:31:40.035Z - - - Sitespeed.io - https://www.sitespeed.io - - - - <![CDATA[chrome-har 0.13.0]]> - https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 - - 2022-02-04T09:28:03.010Z - + 2022-03-04T09:50:00.997Z + Sitespeed.io https://www.sitespeed.io @@ -75,7 +42,7 @@ <![CDATA[throttle 3.1.0]]> https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 - 2022-02-01T14:01:20.897Z + 2022-02-24T13:43:37.435Z Sitespeed.io @@ -86,24 +53,57 @@ <![CDATA[humble 0.1.2]]> https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.1.2 - 2022-02-01T14:01:20.895Z + 2022-02-24T13:43:37.433Z Sitespeed.io https://www.sitespeed.io + + <![CDATA[pagexray 4.4.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 + + 2022-02-24T13:43:37.433Z + + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach-core 7.1.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 + + 2022-02-24T13:43:37.432Z + + + Sitespeed.io + https://www.sitespeed.io + + <![CDATA[coach 7.0.0]]> https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 - 2022-02-01T14:01:20.894Z + 2022-02-24T13:43:37.432Z Sitespeed.io https://www.sitespeed.io + + <![CDATA[chrome-har 0.13.0]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 + + 2022-02-24T13:43:37.431Z + + + Sitespeed.io + https://www.sitespeed.io + + <![CDATA[compare 1.0.0]]> https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#1.0.0 diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index c33758cce..28d96b27b 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io Follow new releases of sitespeed.io tools - Thu, 24 Feb 2022 11:41:01 GMT + Sat, 05 Mar 2022 08:57:21 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -17,66 +17,66 @@ Performance - <![CDATA[sitespeed.io 23.1.0]]> + <![CDATA[sitespeed.io 23.2.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 - Thu, 24 Feb 2022 11:41:01 GMT - + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 + Sat, 05 Mar 2022 08:57:21 GMT + - <![CDATA[browsertime 15.1.1]]> + <![CDATA[browsertime 15.2.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.1 - Thu, 24 Feb 2022 10:17:34 GMT - + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 + Fri, 04 Mar 2022 09:50:00 GMT + - - <![CDATA[coach-core 7.1.0]]> - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 - Sun, 06 Feb 2022 19:04:25 GMT - - - - - <![CDATA[pagexray 4.4.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 - Fri, 04 Feb 2022 09:31:40 GMT - - - - - <![CDATA[chrome-har 0.13.0]]> - https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 - Fri, 04 Feb 2022 09:28:03 GMT - - <![CDATA[throttle 3.1.0]]> https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md# https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 - Tue, 01 Feb 2022 14:01:20 GMT + Thu, 24 Feb 2022 13:43:37 GMT <![CDATA[humble 0.1.2]]> https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md# https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.1.2 - Tue, 01 Feb 2022 14:01:20 GMT + Thu, 24 Feb 2022 13:43:37 GMT + + <![CDATA[pagexray 4.4.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md# + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 + Thu, 24 Feb 2022 13:43:37 GMT + + + + + <![CDATA[coach-core 7.1.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md# + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 + Thu, 24 Feb 2022 13:43:37 GMT + + + <![CDATA[coach 7.0.0]]> https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md# https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 - Tue, 01 Feb 2022 14:01:20 GMT + Thu, 24 Feb 2022 13:43:37 GMT + + <![CDATA[chrome-har 0.13.0]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md# + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 + Thu, 24 Feb 2022 13:43:37 GMT + + <![CDATA[compare 1.0.0]]> https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md# From e6dcda1f3889821e72c2a956efd7bc6ff57cba82 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 5 Mar 2022 11:33:21 +0100 Subject: [PATCH 011/105] changelog: lighthouse 9.4.0 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c59f5144b..7d6d98635 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) +## UNRELEASED +### Added +* The +1 container is upgraded to use Lighthouse 9.4.0. ## 23.2.0 - 2022-03-05 ### Added From 8a5c097a08832646d8af26fe67f085e3e1953842 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Mon, 7 Mar 2022 15:29:20 +0100 Subject: [PATCH 012/105] new release with new BT --- CHANGELOG.md | 4 +++- docs/_includes/version/browsertime.txt | 2 +- .../browsertime/configuration/config.md | 1 + npm-shrinkwrap.json | 14 +++++++------- package.json | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d6d98635..becb8ff5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,10 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) -## UNRELEASED +## 23.3.0 - 2022-03-07 ### Added * The +1 container is upgraded to use Lighthouse 9.4.0. +* Updated to [Browsertime 15.3.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1530---2022-03-07). + ## 23.2.0 - 2022-03-05 ### Added diff --git a/docs/_includes/version/browsertime.txt b/docs/_includes/version/browsertime.txt index aa646ce59..7ed6fef85 100644 --- a/docs/_includes/version/browsertime.txt +++ b/docs/_includes/version/browsertime.txt @@ -1 +1 @@ -15.2.0 \ No newline at end of file +15.3.0 \ No newline at end of file diff --git a/docs/documentation/browsertime/configuration/config.md b/docs/documentation/browsertime/configuration/config.md index 0d61ac1a0..1d458809e 100644 --- a/docs/documentation/browsertime/configuration/config.md +++ b/docs/documentation/browsertime/configuration/config.md @@ -31,6 +31,7 @@ chrome --chrome.collectConsoleLog Collect Chromes console log and save to disk. [boolean] --chrome.appendToUserAgent Append to the user agent. [string] --chrome.noDefaultOptions Prevent Browsertime from setting its default options for Chrome [boolean] + --chrome.cleanUserDataDir If you use --user-data-dir as an argument to Chrome and want to clean that directory between each iteration you should use --chrome.cleanUserDataDir true. [boolean] --chrome.CPUThrottlingRate Enables CPU throttling to emulate slow CPUs. Throttling rate as a slowdown factor (1 is no throttle, 2 is 2x slowdown, etc) [number] --chrome.includeResponseBodies Include response bodies in the HAR file. [choices: "none", "all", "html"] [default: "none"] --chrome.cdp.performance Collect Chrome perfromance metrics from Chrome DevTools Protocol [boolean] [default: true] diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index ca4935670..d4212255a 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -13,7 +13,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.3.5", - "browsertime": "15.2.0", + "browsertime": "15.3.0", "cli-color": "2.0.0", "coach-core": "7.1.0", "concurrent-queue": "7.0.2", @@ -1460,9 +1460,9 @@ } }, "node_modules/browsertime": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.2.0.tgz", - "integrity": "sha512-e0h4pBWHEJvCGqTUK+vIjqjy9K5L1J+cnExktWIazS+ZR7WpBXX/E8eVZKRnUxK9p0jp46E171xD/cyCxtr5aA==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.3.0.tgz", + "integrity": "sha512-ReAADBxx7lNeqoacRP70fitGmxV0eUCJqfHXO4VTceHSw51BCsPlNhgUyGqjDNbQu0p0mHmSEDe2yavXOqZv4A==", "dependencies": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", @@ -8603,9 +8603,9 @@ } }, "browsertime": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.2.0.tgz", - "integrity": "sha512-e0h4pBWHEJvCGqTUK+vIjqjy9K5L1J+cnExktWIazS+ZR7WpBXX/E8eVZKRnUxK9p0jp46E171xD/cyCxtr5aA==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.3.0.tgz", + "integrity": "sha512-ReAADBxx7lNeqoacRP70fitGmxV0eUCJqfHXO4VTceHSw51BCsPlNhgUyGqjDNbQu0p0mHmSEDe2yavXOqZv4A==", "requires": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", diff --git a/package.json b/package.json index 69c7ff260..55ff10228 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.3.5", - "browsertime": "15.2.0", + "browsertime": "15.3.0", "coach-core": "7.1.0", "cli-color": "2.0.0", "concurrent-queue": "7.0.2", From 39c26dd6d4873d7b737adfc131ce809202a79afe Mon Sep 17 00:00:00 2001 From: soulgalore Date: Mon, 7 Mar 2022 15:29:43 +0100 Subject: [PATCH 013/105] 23.3.0 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index d4212255a..c4b6db3a9 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.2.0", + "version": "23.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.2.0", + "version": "23.3.0", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index 55ff10228..ba4f4c258 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.2.0", + "version": "23.3.0", "description": "Analyze the web performance of your site", "keywords": [ "performance", From cf9f6dcc92da6ebaa8aed5962f972a22374ce4ca Mon Sep 17 00:00:00 2001 From: soulgalore Date: Mon, 7 Mar 2022 15:56:23 +0100 Subject: [PATCH 014/105] new release --- docs/_includes/version/sitespeed.io.txt | 2 +- docs/feed/atom.xml | 18 +++++++++--------- docs/feed/rss.xml | 18 +++++++++--------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index 3bc99c2dc..19e7d572b 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -23.2.0 \ No newline at end of file +23.3.0 \ No newline at end of file diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index 42771ea6c..ae04bac09 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ https://www.sitespeed.io sitespeed.io release feed - 2022-03-05T08:57:21.519Z + 2022-03-07T14:30:13.873Z https://github.com/jpmonette/feed Peter Hedenskog @@ -17,22 +17,22 @@ All rights reserved 2021, Peter Hedenskog and team - <![CDATA[sitespeed.io 23.2.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 + <![CDATA[sitespeed.io 23.3.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 - 2022-03-05T08:57:21.519Z - + 2022-03-07T14:30:13.873Z + Sitespeed.io https://www.sitespeed.io - <![CDATA[browsertime 15.2.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 + <![CDATA[browsertime 15.3.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 - 2022-03-04T09:50:00.997Z - + 2022-03-07T13:59:36.236Z + Sitespeed.io https://www.sitespeed.io diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index 28d96b27b..36ce04d64 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io Follow new releases of sitespeed.io tools - Sat, 05 Mar 2022 08:57:21 GMT + Mon, 07 Mar 2022 14:30:13 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -17,19 +17,19 @@ Performance - <![CDATA[sitespeed.io 23.2.0]]> + <![CDATA[sitespeed.io 23.3.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 - Sat, 05 Mar 2022 08:57:21 GMT - + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 + Mon, 07 Mar 2022 14:30:13 GMT + - <![CDATA[browsertime 15.2.0]]> + <![CDATA[browsertime 15.3.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 - Fri, 04 Mar 2022 09:50:00 GMT - + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + Mon, 07 Mar 2022 13:59:36 GMT + From 77ddb1b16625f780b3c3fdc4ca2eb0e35fe61588 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 8 Mar 2022 00:00:42 +0100 Subject: [PATCH 015/105] Firefox 98 (#3592) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6d4d675ab..859c84c2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM sitespeedio/webbrowsers:chrome-99.0-firefox-97.0-edge-99.0 +FROM sitespeedio/webbrowsers:chrome-99.0-firefox-98.0-edge-99.0 ARG TARGETPLATFORM=linux/amd64 From f0be749fe81ac932de144808fc48a5f87b06ac37 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Wed, 9 Mar 2022 10:05:25 +0100 Subject: [PATCH 016/105] Add link to each run in side by side metric page. (#3593) Make it easier to get to the run that collected that metric. --- lib/plugins/html/templates/url/summary/metrics/index.pug | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/plugins/html/templates/url/summary/metrics/index.pug b/lib/plugins/html/templates/url/summary/metrics/index.pug index 922e19a72..097cba515 100644 --- a/lib/plugins/html/templates/url/summary/metrics/index.pug +++ b/lib/plugins/html/templates/url/summary/metrics/index.pug @@ -52,8 +52,11 @@ block content tr td b #{friendly.name} + - let pageIndex = 1 each page in runPages - td #{friendly.format(get (page, 'data.' + tool + '.run.' + (friendly.runPath || friendly.path)))} + td + a(href=pageIndex + '.html') #{friendly.format(get (page, 'data.' + tool + '.run.' + (friendly.runPath || friendly.path)))} + - pageIndex++ td #{friendly.format(get (mySummary, 'data.' + tool + '.pageSummary.statistics.' + friendly.runPath + '.median', ''))} td #{friendly.format(get (mySummary, 'data.' + tool + '.pageSummary.statistics.' + friendly.runPath + '.mean', ''))} td #{friendly.format(get (mySummary, 'data.' + tool + '.pageSummary.statistics.' + friendly.runPath + '.stddev', ''))} From 2cf8a980ff3dd8d58e365939c4048a33e052ed29 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Wed, 9 Mar 2022 10:29:34 +0100 Subject: [PATCH 017/105] Use the hack until Firefox > 96 (#3594) --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a918fd4b7..47142f1b1 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -23,7 +23,7 @@ jobs: - name: Run test on default container for Edge run: docker run --rm sitespeedio/sitespeed.io https://www.sitespeed.io -n 1 -b edge - name: Run test on slim container - run: docker run --rm sitespeedio/sitespeed.io:slim https://www.sitespeed.io -n 1 + run: docker run --rm sitespeedio/sitespeed.io:slim https://www.sitespeed.io -n 1 --browsertime.firefox.preference "devtools.netmonitor.persistlog:true" - name: Test WebPageReplay with Chrome run: docker run --cap-add=NET_ADMIN --rm -e REPLAY=true -e LATENCY=100 sitespeedio/sitespeed.io https://www.sitespeed.io -n 3 -b chrome - name: Test WebPageReplay with Firefox From 2b6544790ce5c932b7661d3320fd5a84639f874d Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 9 Mar 2022 18:53:35 +0100 Subject: [PATCH 018/105] changelog: new release --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index becb8ff5b..8a8e3775c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) +## 23.4.0 - 2022-03-09 +### Added +* Firefox 98 in the Docker container [#3592](https://github.com/sitespeedio/sitespeed.io/pull/3592). +* Added link to each run in the side by side metric page, making it easier to go to the correct run [#3593](https://github.com/sitespeedio/sitespeed.io/pull/3593). + ## 23.3.0 - 2022-03-07 ### Added * The +1 container is upgraded to use Lighthouse 9.4.0. From fb348b48291a1624a851c28e8242f50ee3d7edbe Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 9 Mar 2022 18:54:57 +0100 Subject: [PATCH 019/105] 23.4.0 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index c4b6db3a9..60bbbc3ff 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.3.0", + "version": "23.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.3.0", + "version": "23.4.0", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index ba4f4c258..12f4a2ca5 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.3.0", + "version": "23.4.0", "description": "Analyze the web performance of your site", "keywords": [ "performance", From 6512ea245f36c3023a1e62fefa45050cf26f8ad2 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 9 Mar 2022 18:59:05 +0100 Subject: [PATCH 020/105] new version --- docs/_includes/version/sitespeed.io.txt | 2 +- docs/feed/atom.xml | 12 ++++++------ docs/feed/rss.xml | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index 19e7d572b..d3135784c 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -23.3.0 \ No newline at end of file +23.4.0 \ No newline at end of file diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index ae04bac09..93833f251 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ https://www.sitespeed.io sitespeed.io release feed - 2022-03-07T14:30:13.873Z + 2022-03-09T17:55:42.980Z https://github.com/jpmonette/feed Peter Hedenskog @@ -17,11 +17,11 @@ All rights reserved 2021, Peter Hedenskog and team - <![CDATA[sitespeed.io 23.3.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 + <![CDATA[sitespeed.io 23.4.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 - 2022-03-07T14:30:13.873Z - + 2022-03-09T17:55:42.980Z + Sitespeed.io https://www.sitespeed.io @@ -32,7 +32,7 @@ https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 2022-03-07T13:59:36.236Z - + Sitespeed.io https://www.sitespeed.io diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index 36ce04d64..4c741489c 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io Follow new releases of sitespeed.io tools - Mon, 07 Mar 2022 14:30:13 GMT + Wed, 09 Mar 2022 17:55:42 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -17,11 +17,11 @@ Performance - <![CDATA[sitespeed.io 23.3.0]]> + <![CDATA[sitespeed.io 23.4.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 - Mon, 07 Mar 2022 14:30:13 GMT - + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + Wed, 09 Mar 2022 17:55:42 GMT + @@ -29,7 +29,7 @@ https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md# https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 Mon, 07 Mar 2022 13:59:36 GMT - + From 0f31c4e7d9aa067c60845f247a6513a2e4665959 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Thu, 10 Mar 2022 22:21:38 +0100 Subject: [PATCH 021/105] Add --view as alias on Mac to open the result page (#3596) --- lib/cli/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cli/cli.js b/lib/cli/cli.js index 9f482cada..622950f0e 100644 --- a/lib/cli/cli.js +++ b/lib/cli/cli.js @@ -1487,7 +1487,7 @@ module.exports.parseCommandLine = function parseCommandLine() { describe: 'Give your test a name.' }) .option('open', { - alias: 'o', + alias: ['o', 'view'], describe: 'Open your test result in your default browser (Mac OS only).' }) .option('slug', { From 731cc4eb73b1b2089774fe5e6d000ea42b2eaf49 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Thu, 10 Mar 2022 22:21:55 +0100 Subject: [PATCH 022/105] update to latest Grafana (#3595) --- docker/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 319dd8f08..93f5a4838 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,7 +1,7 @@ version: '3' services: grafana: - image: grafana/grafana:8.2.3 + image: grafana/grafana:8.4.3 hostname: grafana depends_on: - graphite From 9cd19d4c3cbfe7e814c01b4af87a7237aadb5d1e Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Thu, 10 Mar 2022 23:13:34 +0100 Subject: [PATCH 023/105] Use xdg-open for open default browser on Linux (#3597) --- bin/sitespeed.js | 2 ++ lib/cli/cli.js | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/sitespeed.js b/bin/sitespeed.js index ca868d35c..885c23b6a 100755 --- a/bin/sitespeed.js +++ b/bin/sitespeed.js @@ -29,6 +29,8 @@ async function run(options) { if ((options.open || options.o) && os.platform() === 'darwin') { execSync('open ' + result.localPath + '/index.html'); + } else if ((options.open || options.o) && os.platform() === 'linux') { + execSync('xdg-open ' + result.localPath + '/index.html'); } if ( diff --git a/lib/cli/cli.js b/lib/cli/cli.js index 622950f0e..2c1214264 100644 --- a/lib/cli/cli.js +++ b/lib/cli/cli.js @@ -1488,7 +1488,8 @@ module.exports.parseCommandLine = function parseCommandLine() { }) .option('open', { alias: ['o', 'view'], - describe: 'Open your test result in your default browser (Mac OS only).' + describe: + 'Open your test result in your default browser (Mac OS or Linux with xdg-open).' }) .option('slug', { describe: From 86384c9664af0cfe136ffc5f5cbc63829639d8ac Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 11 Mar 2022 11:42:24 +0100 Subject: [PATCH 024/105] bump to use latest dashboards --- docker/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 93f5a4838..f64ab792e 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -40,7 +40,7 @@ services: # - /absolute/path/to/graphite/conf/storage-aggregation.conf:/opt/graphite/conf/storage-aggregation.conf # - /absolute/path/to/graphite/conf/carbon.conf:/opt/graphite/conf/carbon.conf grafana-setup: - image: sitespeedio/grafana-bootstrap:20.4.0 + image: sitespeedio/grafana-bootstrap:23.5.0 links: - grafana environment: From ff06fbc06517874c93355350d33855ae5d0914a3 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 11 Mar 2022 12:06:32 +0100 Subject: [PATCH 025/105] changelog: new release --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a8e3775c..3dceb58fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) +## 23.4.0 - 2022-03-11 +### Added +* The -slim DOcker container now uses Firefox 98. +* Updated Grafana to latest 8.4.3 in the Docker compose file. +* Updated [Graphite dashboards](https://github.com/sitespeedio/grafana-bootstrap-docker/tree/main/dashboards/graphite) to use Timeseries graphs instead of old "Graph". +* You can use `-o` or `--open` or `--view` to open the result page after you run sitespeed.io on Mac and Linux [#3569](https://github.com/sitespeedio/sitespeed.io/pull/3596). +* Open the result with `-o` on Linux using xdg-open [#3597](https://github.com/sitespeedio/sitespeed.io/pull/3597). + ## 23.4.0 - 2022-03-09 ### Added * Firefox 98 in the Docker container [#3592](https://github.com/sitespeedio/sitespeed.io/pull/3592). From 9d4ebaf10af03c99e2935299f83993b1d14017c7 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 11 Mar 2022 12:07:00 +0100 Subject: [PATCH 026/105] 23.5.0 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 60bbbc3ff..c70e06171 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.4.0", + "version": "23.5.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.4.0", + "version": "23.5.0", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index 12f4a2ca5..fa9ad3e24 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.4.0", + "version": "23.5.0", "description": "Analyze the web performance of your site", "keywords": [ "performance", From 4aedf613476a6d6f5e7b2106b7fb500b6480719a Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 11 Mar 2022 12:24:05 +0100 Subject: [PATCH 027/105] new version --- docs/_includes/version/sitespeed.io.txt | 2 +- .../documentation/sitespeed.io/configuration/config.md | 2 +- docs/feed/atom.xml | 10 +++++----- docs/feed/rss.xml | 10 +++++----- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index d3135784c..dd6db9f49 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -23.4.0 \ No newline at end of file +23.5.0 \ No newline at end of file diff --git a/docs/documentation/sitespeed.io/configuration/config.md b/docs/documentation/sitespeed.io/configuration/config.md index c6ad7a791..0bde5fd7b 100644 --- a/docs/documentation/sitespeed.io/configuration/config.md +++ b/docs/documentation/sitespeed.io/configuration/config.md @@ -291,7 +291,7 @@ Options: --useHash If your site uses # for URLs and # give you unique URLs you need to turn on useHash. By default is it turned off, meaning URLs with hash and without hash are treated as the same URL [boolean] [default: false] --multi Test multiple URLs within the same browser session (same cache etc). Only works with Browsertime. Use this if you want to test multiple pages (use journey) or want to test multiple pages with scripts. You can mix URLs and scripts (the order will matter): login.js https://www.sitespeed.io/ logout.js - More details: https://www.sitespeed.io/documentation/sitespeed.io/scripting/ [boolean] [default: false] --name Give your test a name. - -o, --open Open your test result in your default browser (Mac OS only). + -o, --open, --view Open your test result in your default browser (Mac OS or Linux with xdg-open). --slug Give your test a slug. The slug is used when you send the metrics to your data storage to identify the test and the folder of the tests. The max length of the slug is 200 characters and it can only contain a-z A-Z 0-9 and -_ characters. --config Path to JSON config file -h, --help Show help [boolean] diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index 93833f251..f50ee168b 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ https://www.sitespeed.io sitespeed.io release feed - 2022-03-09T17:55:42.980Z + 2022-03-11T11:07:53.102Z https://github.com/jpmonette/feed Peter Hedenskog @@ -17,11 +17,11 @@ All rights reserved 2021, Peter Hedenskog and team - <![CDATA[sitespeed.io 23.4.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + <![CDATA[sitespeed.io 23.5.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 - 2022-03-09T17:55:42.980Z - + 2022-03-11T11:07:53.102Z + Sitespeed.io https://www.sitespeed.io diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index 4c741489c..3ffbcb54b 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io Follow new releases of sitespeed.io tools - Wed, 09 Mar 2022 17:55:42 GMT + Fri, 11 Mar 2022 11:07:53 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -17,11 +17,11 @@ Performance - <![CDATA[sitespeed.io 23.4.0]]> + <![CDATA[sitespeed.io 23.5.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 - Wed, 09 Mar 2022 17:55:42 GMT - + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 + Fri, 11 Mar 2022 11:07:53 GMT + From 49c202433e7f76ab880283c3c03972072d76ca75 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 12 Mar 2022 11:48:32 +0100 Subject: [PATCH 028/105] changelog: typeo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3dceb58fb..c8f78c48b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## 23.4.0 - 2022-03-11 ### Added -* The -slim DOcker container now uses Firefox 98. +* The -slim Docker container now uses Firefox 98. * Updated Grafana to latest 8.4.3 in the Docker compose file. * Updated [Graphite dashboards](https://github.com/sitespeedio/grafana-bootstrap-docker/tree/main/dashboards/graphite) to use Timeseries graphs instead of old "Graph". * You can use `-o` or `--open` or `--view` to open the result page after you run sitespeed.io on Mac and Linux [#3569](https://github.com/sitespeedio/sitespeed.io/pull/3596). From daaba18267b6c173107f110e28c215837c2efba8 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 12 Mar 2022 19:10:24 +0100 Subject: [PATCH 029/105] docs: fetch rss without proxy --- docs/_headers | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/_headers b/docs/_headers index f4ade9168..077e612e9 100644 --- a/docs/_headers +++ b/docs/_headers @@ -22,4 +22,6 @@ /js/* Cache-Control: public, max-age=3600000 /css/* - Cache-Control: public, max-age=3600000 + Cache-Control: public, max-age=3600000 +/feed/* + Access-Control-Allow-Origin: * \ No newline at end of file From 2e83c1953f079dfb5ea364c83ef251e9182159d6 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sun, 13 Mar 2022 09:06:56 +0100 Subject: [PATCH 030/105] fix year --- release/feed.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/feed.js b/release/feed.js index e26af9c70..c205e691c 100644 --- a/release/feed.js +++ b/release/feed.js @@ -57,7 +57,7 @@ async function generateFeed() { language: 'en', // optional, used only in RSS 2.0, possible values: http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes image: 'https://www.sitespeed.io/img/logos/sitespeed.io.png', favicon: 'http://www.sitespeed.io/favicon.ico', - copyright: 'All rights reserved 2021, Peter Hedenskog and team', + copyright: 'All rights reserved 2022, Peter Hedenskog and team', updated: new Date(sortedVersionFiles[0].time), // use the date from the latest updated version file feedLinks: { atom: 'https://www.sitespeed.io/feed/atom.xml', From 8899912904f5bdf9be137de9b799f50403d65fd1 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sun, 13 Mar 2022 09:15:56 +0100 Subject: [PATCH 031/105] feeds: use HTML --- docs/feed/atom.xml | 91 ++++++++++++++++++++++++++++++++++++++++------ docs/feed/rss.xml | 91 ++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 160 insertions(+), 22 deletions(-) diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index f50ee168b..b401e2f91 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -14,14 +14,29 @@ Follow new releases of sitespeed.io tools https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico - All rights reserved 2021, Peter Hedenskog and team + All rights reserved 2022, Peter Hedenskog and team <![CDATA[sitespeed.io 23.5.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 2022-03-11T11:07:53.102Z - + +
  • The -slim Docker container now uses Firefox 98.
  • + +
      +
    • Updated Grafana to latest 8.4.3 in the Docker compose file.
    • +
    + +
      +
    • You can use -o or --open or --view to open the result page after you run sitespeed.io on Mac and Linux #3569.
    • +
    +
      +
    • Open the result with -o on Linux using xdg-open #3597.
    • +
    +]]>
    Sitespeed.io https://www.sitespeed.io @@ -32,7 +47,16 @@ https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 2022-03-07T13:59:36.236Z - + +
  • Updated to Chromedriver and Edgedriver 99.
  • + +
      +
    • Updated Docker container to use Chrome and Edge 99 #1738.
    • +
    +
      +
    • Added more view ports for emulated mobile in Chrome #1736.
    • +
    +]]>
    Sitespeed.io https://www.sitespeed.io @@ -43,7 +67,10 @@ https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 2022-02-24T13:43:37.435Z - + +
  • Add support for setting packet loss. Add --packetLoss and set the loss in percentage.
  • + +]]>
    Sitespeed.io https://www.sitespeed.io @@ -54,7 +81,10 @@ https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.1.2 2022-02-24T13:43:37.433Z - + +
  • Updated throttle frontend to latest version where you can see throttling profiles set by using the API and with custom throttling support.
  • + +]]>
    Sitespeed.io https://www.sitespeed.io @@ -65,7 +95,10 @@ https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 2022-02-24T13:43:37.433Z - + +
  • Fallback if mime types aren't mapped and use file endings. At the moment we fallback for some of the font types #109.
  • + +]]>
    Sitespeed.io https://www.sitespeed.io @@ -76,7 +109,13 @@ https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 2022-02-24T13:43:37.432Z - + +
  • Upgraded to PageXray 4.0.0.
  • + +
      +
    • Upgraded to third party web 0.13.0.
    • +
    +]]>
    Sitespeed.io https://www.sitespeed.io @@ -87,7 +126,10 @@ https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 2022-02-24T13:43:37.432Z - + +
  • Updated to use latest Coach core and Browertime.
  • + +]]>
    Sitespeed.io https://www.sitespeed.io @@ -98,7 +140,10 @@ https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 2022-02-24T13:43:37.431Z - + +
  • Add _isLinkPreload on the request object if it is isLinkPreload #94.
  • + +]]>
    Sitespeed.io https://www.sitespeed.io @@ -109,7 +154,28 @@ https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#1.0.0 2021-10-29T18:25:09.436Z - + +
  • Added support for using Github gists see #34.
  • + +
      +
    • Added support for using a config file to configure which HARs to test.
    • +
    +
      +
    • Added support for copy/paste directly you HAR, configuration file or a gist URL or id.
    • +
    +
      +
    • Refactor the CSS into Sass, development build process now uses BrowserSync.
    • +
    +
      +
    • Service worker added for offline support. Workbox is used to achieve this.
    • +
    +
      +
    • Added support for showing changes in request/responses if you compare the same page #63.
    • +
    +
      +
    • New internal structure and use the new configuration object all the way.
    • +
    +]]>
    Sitespeed.io https://www.sitespeed.io @@ -120,7 +186,10 @@ https://github.com/sitespeedio/chrome-trace/blob/main/CHANGELOG.md#0.2.2 2021-10-29T18:25:09.435Z - + +
  • Catch if we can't find the first thread event. We now throws an exception (that's not optimal since we don't know what's wrong) with the info of what's wrong. We can change that later on.
  • + +]]>
    Sitespeed.io https://www.sitespeed.io diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index 3ffbcb54b..6c7b46f7f 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -13,7 +13,7 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png https://www.sitespeed.io - All rights reserved 2021, Peter Hedenskog and team + All rights reserved 2022, Peter Hedenskog and team Performance @@ -21,7 +21,22 @@ https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md# https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 Fri, 11 Mar 2022 11:07:53 GMT - + +
  • The -slim Docker container now uses Firefox 98.
  • + +
      +
    • Updated Grafana to latest 8.4.3 in the Docker compose file.
    • +
    + +
      +
    • You can use -o or --open or --view to open the result page after you run sitespeed.io on Mac and Linux #3569.
    • +
    +
      +
    • Open the result with -o on Linux using xdg-open #3597.
    • +
    +]]>
    @@ -29,7 +44,16 @@ https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md# https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 Mon, 07 Mar 2022 13:59:36 GMT - + +
  • Updated to Chromedriver and Edgedriver 99.
  • + +
      +
    • Updated Docker container to use Chrome and Edge 99 #1738.
    • +
    +
      +
    • Added more view ports for emulated mobile in Chrome #1736.
    • +
    +]]>
    @@ -37,21 +61,30 @@ https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md# https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 Thu, 24 Feb 2022 13:43:37 GMT - + +
  • Add support for setting packet loss. Add --packetLoss and set the loss in percentage.
  • + +]]>
    <![CDATA[humble 0.1.2]]> https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md# https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.1.2 Thu, 24 Feb 2022 13:43:37 GMT - + +
  • Updated throttle frontend to latest version where you can see throttling profiles set by using the API and with custom throttling support.
  • + +]]>
    <![CDATA[pagexray 4.4.0]]> https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md# https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 Thu, 24 Feb 2022 13:43:37 GMT - + +
  • Fallback if mime types aren't mapped and use file endings. At the moment we fallback for some of the font types #109.
  • + +]]>
    @@ -59,7 +92,13 @@ https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md# https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 Thu, 24 Feb 2022 13:43:37 GMT - + +
  • Upgraded to PageXray 4.0.0.
  • + +
      +
    • Upgraded to third party web 0.13.0.
    • +
    +]]>
    @@ -67,7 +106,10 @@ https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md# https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 Thu, 24 Feb 2022 13:43:37 GMT - + +
  • Updated to use latest Coach core and Browertime.
  • + +]]>
    @@ -75,14 +117,38 @@ https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md# https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 Thu, 24 Feb 2022 13:43:37 GMT - + +
  • Add _isLinkPreload on the request object if it is isLinkPreload #94.
  • + +]]>
    <![CDATA[compare 1.0.0]]> https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md# https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#1.0.0 Fri, 29 Oct 2021 18:25:09 GMT - + +
  • Added support for using Github gists see #34.
  • + +
      +
    • Added support for using a config file to configure which HARs to test.
    • +
    +
      +
    • Added support for copy/paste directly you HAR, configuration file or a gist URL or id.
    • +
    +
      +
    • Refactor the CSS into Sass, development build process now uses BrowserSync.
    • +
    +
      +
    • Service worker added for offline support. Workbox is used to achieve this.
    • +
    +
      +
    • Added support for showing changes in request/responses if you compare the same page #63.
    • +
    +
      +
    • New internal structure and use the new configuration object all the way.
    • +
    +]]>
    @@ -90,7 +156,10 @@ https://github.com/sitespeedio/chrome-trace/blob/main/CHANGELOG.md# https://github.com/sitespeedio/chrome-trace/blob/main/CHANGELOG.md#0.2.2 Fri, 29 Oct 2021 18:25:09 GMT - + +
  • Catch if we can't find the first thread event. We now throws an exception (that's not optimal since we don't know what's wrong) with the info of what's wrong. We can change that later on.
  • + +]]>
    \ No newline at end of file From 89e5d29b7e3aada1f950ca8aa613a088f20bf711 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 15 Mar 2022 08:08:10 +0100 Subject: [PATCH 032/105] changelog: fix wrong version number --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8f78c48b..df8e72aec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) -## 23.4.0 - 2022-03-11 +## 23.5.0 - 2022-03-11 ### Added * The -slim Docker container now uses Firefox 98. * Updated Grafana to latest 8.4.3 in the Docker compose file. From 22f5ac0b5a61451722e8993e276da00f99664b80 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 15 Mar 2022 20:05:41 +0100 Subject: [PATCH 033/105] Include HTML in the RSS feeds and more feeds (#3599) * Include HTML in the RSS feeds --- docs/_layouts/startpage.html | 14 +- docs/feed/{index.xml => blog.xml} | 0 docs/feed/browsertime.atom | 205 +++++++++++++++++++++++++ docs/feed/browsertime.rss | 176 ++++++++++++++++++++++ docs/feed/chrome-har.atom | 136 +++++++++++++++++ docs/feed/chrome-har.rss | 101 +++++++++++++ docs/feed/chrome-trace.atom | 18 +++ docs/feed/chrome-trace.rss | 15 ++ docs/feed/coach-core.atom | 232 +++++++++++++++++++++++++++++ docs/feed/coach-core.rss | 203 +++++++++++++++++++++++++ docs/feed/coach.atom | 141 ++++++++++++++++++ docs/feed/coach.rss | 115 ++++++++++++++ docs/feed/compare.atom | 210 ++++++++++++++++++++++++++ docs/feed/compare.rss | 184 +++++++++++++++++++++++ docs/feed/humble.atom | 33 ++++ docs/feed/humble.rss | 26 ++++ docs/feed/pagexray.atom | 180 ++++++++++++++++++++++ docs/feed/pagexray.rss | 151 +++++++++++++++++++ docs/feed/sitespeed.io.atom | 224 ++++++++++++++++++++++++++++ docs/feed/sitespeed.io.rss | 195 ++++++++++++++++++++++++ docs/feed/throttle.atom | 108 ++++++++++++++ docs/feed/throttle.rss | 77 ++++++++++ npm-shrinkwrap.json | 49 ++++-- package.json | 3 +- release/feed.js | 240 +++++++++++++++++++----------- 25 files changed, 2928 insertions(+), 108 deletions(-) rename docs/feed/{index.xml => blog.xml} (100%) create mode 100644 docs/feed/browsertime.atom create mode 100644 docs/feed/browsertime.rss create mode 100644 docs/feed/chrome-har.atom create mode 100644 docs/feed/chrome-har.rss create mode 100644 docs/feed/chrome-trace.atom create mode 100644 docs/feed/chrome-trace.rss create mode 100644 docs/feed/coach-core.atom create mode 100644 docs/feed/coach-core.rss create mode 100644 docs/feed/coach.atom create mode 100644 docs/feed/coach.rss create mode 100644 docs/feed/compare.atom create mode 100644 docs/feed/compare.rss create mode 100644 docs/feed/humble.atom create mode 100644 docs/feed/humble.rss create mode 100644 docs/feed/pagexray.atom create mode 100644 docs/feed/pagexray.rss create mode 100644 docs/feed/sitespeed.io.atom create mode 100644 docs/feed/sitespeed.io.rss create mode 100644 docs/feed/throttle.atom create mode 100644 docs/feed/throttle.rss diff --git a/docs/_layouts/startpage.html b/docs/_layouts/startpage.html index 1f440aecb..98941cc4f 100644 --- a/docs/_layouts/startpage.html +++ b/docs/_layouts/startpage.html @@ -42,8 +42,18 @@ layout: compress - - + + + + + + + + + + + + diff --git a/docs/feed/index.xml b/docs/feed/blog.xml similarity index 100% rename from docs/feed/index.xml rename to docs/feed/blog.xml diff --git a/docs/feed/browsertime.atom b/docs/feed/browsertime.atom new file mode 100644 index 000000000..21cc0ab26 --- /dev/null +++ b/docs/feed/browsertime.atom @@ -0,0 +1,205 @@ + + + browsertime-release-feed + browsertime release feed + 2022-03-07T13:59:36.236Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of browsertime + https://www.sitespeed.io/img/logos/browsertime.png + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + + <![CDATA[browsertime 15.2.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 + + 2022-03-04T00:00:00.000Z + Added +
      +
    • Updated to Chromedriver and Edgedriver 99.
    • +
    +
      +
    • Updated Docker container to use Chrome and Edge 99 #1738.
    • +
    +

    Fixed

    +
      +
    • Added more view ports for emulated mobile in Chrome #1736.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 15.1.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.1 + + 2022-02-24T00:00:00.000Z + Fixed + +]]> + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[browsertime 15.1.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.0 + + 2022-02-24T00:00:00.000Z + Added +
      +
    • Collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser #1735.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 15.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.1 + + 2022-02-21T00:00:00.000Z + Fixed +
      +
    • Make sure connectivity is only set before the test begins #1733.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 15.0.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.0 + + 2022-02-20T00:00:00.000Z + Added +
      +
    • New alias for getting the Chrome trace log: --chrome.trace #1728.
    • +
    +
      +
    • On OS X and Linux the DNS will be flushed between runs. You can disable that with --disableDNSFlush true #1732.
    • +
    +

    Fixed

    + +
      +
    • Moved test to Ava instead of mocha and moved most testing against a local HTTP server instead of internet #1725.
    • +
    +

    Changed

    +
      +
    • Removed the built in support for TSProxy #1718. TSProxy only worked with Python 2.7 and we want to remove that dependency.
    • +
    +
      +
    • Removed support for using speedline and the CLI arg --chrome.visualMetricsUsingTrace #1727.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 14.21.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 + + 2022-02-09T00:00:00.000Z + Fixed +
      +
    • Always disable the new ChromeWhaxyNewUI splash screen in Chrome #1717.
    • +
    +
      +
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 14.21.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 + + 2022-02-08T00:00:00.000Z + Added +
      +
    • Upgraded to Egdedriver 98
    • +
    +
      +
    • Upgraded to Edge 98 and Firefox 97 in the Docker container
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 14.20.3]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 + + 2022-02-07T00:00:00.000Z + Fixed +
      +
    • There's a new setup how we build Docker releases and this release uses the new pipeline.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 14.20.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 + + 2022-02-07T00:00:00.000Z + Added +
      +
    • Docker container for both amd64 and arm64.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 14.19.2]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 + + 2022-02-05T00:00:00.000Z + Fixed +
      +
    • Upgraded to Geckodriver 0.30.0 #1710.
    • +
    +
      +
    • Upgraded to Chromedriver that always looks for Chromedriver in PATH for arm64.
    • +
    +
      +
    • Fixed getting Geckoprofile on Android when you do not specify Android package #1712.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    +
    \ No newline at end of file diff --git a/docs/feed/browsertime.rss b/docs/feed/browsertime.rss new file mode 100644 index 000000000..670b26a50 --- /dev/null +++ b/docs/feed/browsertime.rss @@ -0,0 +1,176 @@ + + + + browsertime release feed + https://www.sitespeed.io + New releases and changelog feed of browsertime + Mon, 07 Mar 2022 13:59:36 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + browsertime release feed + https://www.sitespeed.io/img/logos/browsertime.png + https://www.sitespeed.io + + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + <![CDATA[browsertime 15.2.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 + Fri, 04 Mar 2022 00:00:00 GMT + Added +
      +
    • Updated to Chromedriver and Edgedriver 99.
    • +
    +
      +
    • Updated Docker container to use Chrome and Edge 99 #1738.
    • +
    +

    Fixed

    +
      +
    • Added more view ports for emulated mobile in Chrome #1736.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 15.1.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.1 + Thu, 24 Feb 2022 00:00:00 GMT + Fixed + +]]> + + + + <![CDATA[browsertime 15.1.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.0 + Thu, 24 Feb 2022 00:00:00 GMT + Added +
      +
    • Collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser #1735.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 15.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.1 + Mon, 21 Feb 2022 00:00:00 GMT + Fixed +
      +
    • Make sure connectivity is only set before the test begins #1733.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 15.0.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.0 + Sun, 20 Feb 2022 00:00:00 GMT + Added +
      +
    • New alias for getting the Chrome trace log: --chrome.trace #1728.
    • +
    +
      +
    • On OS X and Linux the DNS will be flushed between runs. You can disable that with --disableDNSFlush true #1732.
    • +
    +

    Fixed

    + +
      +
    • Moved test to Ava instead of mocha and moved most testing against a local HTTP server instead of internet #1725.
    • +
    +

    Changed

    +
      +
    • Removed the built in support for TSProxy #1718. TSProxy only worked with Python 2.7 and we want to remove that dependency.
    • +
    +
      +
    • Removed support for using speedline and the CLI arg --chrome.visualMetricsUsingTrace #1727.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 14.21.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 + Wed, 09 Feb 2022 00:00:00 GMT + Fixed +
      +
    • Always disable the new ChromeWhaxyNewUI splash screen in Chrome #1717.
    • +
    +
      +
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 14.21.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 + Tue, 08 Feb 2022 00:00:00 GMT + Added +
      +
    • Upgraded to Egdedriver 98
    • +
    +
      +
    • Upgraded to Edge 98 and Firefox 97 in the Docker container
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 14.20.3]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 + Mon, 07 Feb 2022 00:00:00 GMT + Fixed +
      +
    • There's a new setup how we build Docker releases and this release uses the new pipeline.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 14.20.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 + Mon, 07 Feb 2022 00:00:00 GMT + Added +
      +
    • Docker container for both amd64 and arm64.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 14.19.2]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 + Sat, 05 Feb 2022 00:00:00 GMT + Fixed +
      +
    • Upgraded to Geckodriver 0.30.0 #1710.
    • +
    +
      +
    • Upgraded to Chromedriver that always looks for Chromedriver in PATH for arm64.
    • +
    +
      +
    • Fixed getting Geckoprofile on Android when you do not specify Android package #1712.
    • +
    +]]>
    + +
    +
    +
    \ No newline at end of file diff --git a/docs/feed/chrome-har.atom b/docs/feed/chrome-har.atom new file mode 100644 index 000000000..41aeda9a4 --- /dev/null +++ b/docs/feed/chrome-har.atom @@ -0,0 +1,136 @@ + + + chrome-har-release-feed + chrome-har release feed + 2022-02-24T13:43:37.431Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of chrome-har + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + + <![CDATA[chrome-har 0.13.0]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 + + 2022-02-04T00:00:00.000Z + Added +
      +
    • Add _isLinkPreload on the request object if it is isLinkPreload #94.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[chrome-har 0.12.0]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.12.0 + + 2020-10-29T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[chrome-har 0.11.12]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.12 + + 2020-09-09T00:00:00.000Z + Fixed +
      +
    • Removed test directory from the release, thank you Yury Michurin for the PR #75.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[chrome-har 0.11.11]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.11 + + 2020-08-06T00:00:00.000Z + Fixed + +]]> + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[chrome-har 0.11.10]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.10 + + 2020-07-29T00:00:00.000Z + Added +
      +
    • Parse extra info events (parse extra request data from the Network.requestWillBeSentExtraInfo event and parse extra response data from the Network.responseReceivedExtraInfo event), thank you Michael Dijkstra for the PR #71.
    • +
    +
      +
    • Update to day-js 1.8.31.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[chrome-har 0.11.9]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.9 + + 2020-05-26T00:00:00.000Z + Fixed +
      +
    • Updated dependencies: dayjs - 1.8.27, debug: 4.1.1, tough-cookie - 4.0.0, uuid - 8.0.0
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[chrome-har 0.11.7]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.7 + + 2020-03-09T00:00:00.000Z + Fixed +
      +
    • And excluded the shrinkwrap file again.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[chrome-har 0.11.6]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.6 + + 2020-03-09T00:00:00.000Z + Fixed +
      +
    • Exclude the test folder from the release.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    +
    \ No newline at end of file diff --git a/docs/feed/chrome-har.rss b/docs/feed/chrome-har.rss new file mode 100644 index 000000000..c1a39ce15 --- /dev/null +++ b/docs/feed/chrome-har.rss @@ -0,0 +1,101 @@ + + + + chrome-har release feed + https://www.sitespeed.io + New releases and changelog feed of chrome-har + Thu, 24 Feb 2022 13:43:37 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + <![CDATA[chrome-har 0.13.0]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 + Fri, 04 Feb 2022 00:00:00 GMT + Added +
      +
    • Add _isLinkPreload on the request object if it is isLinkPreload #94.
    • +
    +]]>
    +
    + + <![CDATA[chrome-har 0.12.0]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.12.0 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.12.0 + Thu, 29 Oct 2020 00:00:00 GMT + + + <![CDATA[chrome-har 0.11.12]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.12 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.12 + Wed, 09 Sep 2020 00:00:00 GMT + Fixed +
      +
    • Removed test directory from the release, thank you Yury Michurin for the PR #75.
    • +
    +]]>
    +
    + + <![CDATA[chrome-har 0.11.11]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.11 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.11 + Thu, 06 Aug 2020 00:00:00 GMT + Fixed + +]]> + + + <![CDATA[chrome-har 0.11.10]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.10 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.10 + Wed, 29 Jul 2020 00:00:00 GMT + Added +
      +
    • Parse extra info events (parse extra request data from the Network.requestWillBeSentExtraInfo event and parse extra response data from the Network.responseReceivedExtraInfo event), thank you Michael Dijkstra for the PR #71.
    • +
    +
      +
    • Update to day-js 1.8.31.
    • +
    +]]>
    +
    + + <![CDATA[chrome-har 0.11.9]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.9 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.9 + Tue, 26 May 2020 00:00:00 GMT + Fixed +
      +
    • Updated dependencies: dayjs - 1.8.27, debug: 4.1.1, tough-cookie - 4.0.0, uuid - 8.0.0
    • +
    +]]>
    +
    + + <![CDATA[chrome-har 0.11.7]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.7 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.7 + Mon, 09 Mar 2020 00:00:00 GMT + Fixed +
      +
    • And excluded the shrinkwrap file again.
    • +
    +]]>
    +
    + + <![CDATA[chrome-har 0.11.6]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.6 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.6 + Mon, 09 Mar 2020 00:00:00 GMT + Fixed +
      +
    • Exclude the test folder from the release.
    • +
    +]]>
    +
    +
    +
    \ No newline at end of file diff --git a/docs/feed/chrome-trace.atom b/docs/feed/chrome-trace.atom new file mode 100644 index 000000000..2379e5b78 --- /dev/null +++ b/docs/feed/chrome-trace.atom @@ -0,0 +1,18 @@ + + + chrome-trace-release-feed + chrome-trace release feed + 2021-10-29T18:25:09.435Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of chrome-trace + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + \ No newline at end of file diff --git a/docs/feed/chrome-trace.rss b/docs/feed/chrome-trace.rss new file mode 100644 index 000000000..ea8a399f3 --- /dev/null +++ b/docs/feed/chrome-trace.rss @@ -0,0 +1,15 @@ + + + + chrome-trace release feed + https://www.sitespeed.io + New releases and changelog feed of chrome-trace + Fri, 29 Oct 2021 18:25:09 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + \ No newline at end of file diff --git a/docs/feed/coach-core.atom b/docs/feed/coach-core.atom new file mode 100644 index 000000000..2c9dd6ccd --- /dev/null +++ b/docs/feed/coach-core.atom @@ -0,0 +1,232 @@ + + + coach-core-release-feed + coach-core release feed + 2022-02-24T13:43:37.432Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of coach-core + https://www.sitespeed.io/img/logos/coach.png + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + + <![CDATA[coach-core 7.1.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 + + 2022-02-06T00:00:00.000Z + Added +
      +
    • Upgraded to PageXray 4.0.0.
    • +
    +
      +
    • Upgraded to third party web 0.13.0.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach-core 7.0.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.0.0 + + 2021-12-01T00:00:00.000Z + Added +
      +
    • Updated third-party-web to 0.12.6.
    • +
    +
      +
    • Use Chrome(ium) render blocking information to know if a request is render blocking or not #66.
    • +
    +
      +
    • Report offending JavaScript assets if the JavaScript max limits kicks in #70.
    • +
    +
      +
    • New largest contentful paint advice #76.
    • +
    +
      +
    • New first contentful paint advice #77.
    • +
    +
      +
    • Added TBT in the CPU longtask advice #80.
    • +
    +
      +
    • Report content and transfer size for offending URLs #81.
    • +
    +
      +
    • Report offending assets with transfer/content size for page size limit #82.
    • +
    +

    Fixed

    + + +
      +
    • Removed mentions aboout server push #69
    • +
    +
      +
    • Added more information on how to debug CPU advice #71.
    • +
    +

    Changed

    +
      +
    • Moved AMP advice to best practice instead of privacy #67.
    • +
    +
      +
    • Increased favicon max size advice from 5 to 10 kb #68
    • +
    +
      +
    • Renamed the fastRender advice to avoidRenderBlocking #73
    • +
    +
      +
    • Remove the third party async advice #74
    • +
    +
      +
    • Updated the layout shift advice to use cumulative layout shift #75
    • +
    +
      +
    • Changed id of the Google Tag Manager advice #79
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach-core 6.4.3]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.3 + + 2021-07-21T00:00:00.000Z + Fixed +
      +
    • Updated to latest PageXray and Third patrty web 0.12.4.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach-core 6.4.2]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.2 + + 2021-07-05T00:00:00.000Z + Fixed +
      +
    • Make sure JQuery refs are set back to original ref #62 see #61.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach-core 6.4.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.1 + + 2021-06-23T00:00:00.000Z + Fixed +
      +
    • Use all headers for Wappalyzer (before only the main document was used) #60.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach-core 6.4.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.0 + + 2021-06-02T00:00:00.000Z + Added +
      +
    • Updated to PageXray 4.2.0 that adds support for getting render blocking info in Chrome.
    • +
    +
      +
    • Update wappalyzer-core from 6.5.32 to 6.6.0 #57
    • +
    +

    Fixed

    +
      +
    • Only look for GET request for private and caching headers #55. See #53.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach-core 6.3.3]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.3 + + 2021-04-14T00:00:00.000Z + Fixed + +]]> + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach-core 6.3.2]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.2 + + 2021-04-13T00:00:00.000Z + Fixed + +]]> + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach-core 6.3.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.1 + + 2021-04-09T00:00:00.000Z + Fixed +
      +
    • Better check for the new FLoC privacy advice.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach-core 6.3.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 + + 2021-04-09T00:00:00.000Z + Added +
      +
    • New privacy advice that looks for header to disable of FLoC in Chrome.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    +
    \ No newline at end of file diff --git a/docs/feed/coach-core.rss b/docs/feed/coach-core.rss new file mode 100644 index 000000000..d98c8b99a --- /dev/null +++ b/docs/feed/coach-core.rss @@ -0,0 +1,203 @@ + + + + coach-core release feed + https://www.sitespeed.io + New releases and changelog feed of coach-core + Thu, 24 Feb 2022 13:43:37 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + coach-core release feed + https://www.sitespeed.io/img/logos/coach.png + https://www.sitespeed.io + + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + <![CDATA[coach-core 7.1.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 + Sun, 06 Feb 2022 00:00:00 GMT + Added +
      +
    • Upgraded to PageXray 4.0.0.
    • +
    +
      +
    • Upgraded to third party web 0.13.0.
    • +
    +]]>
    + +
    + + <![CDATA[coach-core 7.0.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.0.0 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.0.0 + Wed, 01 Dec 2021 00:00:00 GMT + Added +
      +
    • Updated third-party-web to 0.12.6.
    • +
    +
      +
    • Use Chrome(ium) render blocking information to know if a request is render blocking or not #66.
    • +
    +
      +
    • Report offending JavaScript assets if the JavaScript max limits kicks in #70.
    • +
    +
      +
    • New largest contentful paint advice #76.
    • +
    +
      +
    • New first contentful paint advice #77.
    • +
    +
      +
    • Added TBT in the CPU longtask advice #80.
    • +
    +
      +
    • Report content and transfer size for offending URLs #81.
    • +
    +
      +
    • Report offending assets with transfer/content size for page size limit #82.
    • +
    +

    Fixed

    + + +
      +
    • Removed mentions aboout server push #69
    • +
    +
      +
    • Added more information on how to debug CPU advice #71.
    • +
    +

    Changed

    +
      +
    • Moved AMP advice to best practice instead of privacy #67.
    • +
    +
      +
    • Increased favicon max size advice from 5 to 10 kb #68
    • +
    +
      +
    • Renamed the fastRender advice to avoidRenderBlocking #73
    • +
    +
      +
    • Remove the third party async advice #74
    • +
    +
      +
    • Updated the layout shift advice to use cumulative layout shift #75
    • +
    +
      +
    • Changed id of the Google Tag Manager advice #79
    • +
    +]]>
    + +
    + + <![CDATA[coach-core 6.4.3]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.3 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.3 + Wed, 21 Jul 2021 00:00:00 GMT + Fixed +
      +
    • Updated to latest PageXray and Third patrty web 0.12.4.
    • +
    +]]>
    + +
    + + <![CDATA[coach-core 6.4.2]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.2 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.2 + Mon, 05 Jul 2021 00:00:00 GMT + Fixed +
      +
    • Make sure JQuery refs are set back to original ref #62 see #61.
    • +
    +]]>
    + +
    + + <![CDATA[coach-core 6.4.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.1 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.1 + Wed, 23 Jun 2021 00:00:00 GMT + Fixed +
      +
    • Use all headers for Wappalyzer (before only the main document was used) #60.
    • +
    +]]>
    + +
    + + <![CDATA[coach-core 6.4.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.0 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.0 + Wed, 02 Jun 2021 00:00:00 GMT + Added +
      +
    • Updated to PageXray 4.2.0 that adds support for getting render blocking info in Chrome.
    • +
    +
      +
    • Update wappalyzer-core from 6.5.32 to 6.6.0 #57
    • +
    +

    Fixed

    +
      +
    • Only look for GET request for private and caching headers #55. See #53.
    • +
    +]]>
    + +
    + + <![CDATA[coach-core 6.3.3]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.3 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.3 + Wed, 14 Apr 2021 00:00:00 GMT + Fixed + +]]> + + + + <![CDATA[coach-core 6.3.2]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.2 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.2 + Tue, 13 Apr 2021 00:00:00 GMT + Fixed + +]]> + + + + <![CDATA[coach-core 6.3.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.1 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.1 + Fri, 09 Apr 2021 00:00:00 GMT + Fixed +
      +
    • Better check for the new FLoC privacy advice.
    • +
    +]]>
    + +
    + + <![CDATA[coach-core 6.3.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 + Fri, 09 Apr 2021 00:00:00 GMT + Added +
      +
    • New privacy advice that looks for header to disable of FLoC in Chrome.
    • +
    +]]>
    + +
    +
    +
    \ No newline at end of file diff --git a/docs/feed/coach.atom b/docs/feed/coach.atom new file mode 100644 index 000000000..aa3b6ffca --- /dev/null +++ b/docs/feed/coach.atom @@ -0,0 +1,141 @@ + + + coach-release-feed + coach release feed + 2022-02-24T13:43:37.432Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of coach + https://www.sitespeed.io/img/logos/coach.png + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + + <![CDATA[coach 7.0.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 + + 2021-12-01T00:00:00.000Z + Added +
      +
    • Updated to use latest Coach core and Browertime.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach 6.4.3]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#6.4.3 + + 2021-10-15T00:00:00.000Z + Added +
      +
    • Updated to use latest Browsertime with latest Chromedriver
    • +
    +
      +
    • Updated Docker container to use latest Chrome/Firefox
    • +
    +
      +
    • Use Browsertime 11.0.0
    • +
    +
      +
    • Use Coach-code 6.0
    • +
    +
      +
    • Use latest Firefox and Chrome
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach 5.0.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#5.0.0 + + 2020-03-11T00:00:00.000Z + Changed +
      +
    • We moved out the core functionality to coach-core. This makes it easy to use the Coach in your own code.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach 4.5.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.5.0 + + 2020-02-20T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach 4.4.1]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.1 + + 2020-02-07T00:00:00.000Z + Fixed +
      +
    • Upgraded to Browsertime 8.0.1
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[coach 4.4.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.0 + + 2020-02-05T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach 4.3.1]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.1 + + 2020-01-10T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach 4.3.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.0 + + 2019-12-12T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach 4.2.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.2.0 + + 2019-11-02T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + +
    \ No newline at end of file diff --git a/docs/feed/coach.rss b/docs/feed/coach.rss new file mode 100644 index 000000000..b6831581c --- /dev/null +++ b/docs/feed/coach.rss @@ -0,0 +1,115 @@ + + + + coach release feed + https://www.sitespeed.io + New releases and changelog feed of coach + Thu, 24 Feb 2022 13:43:37 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + coach release feed + https://www.sitespeed.io/img/logos/coach.png + https://www.sitespeed.io + + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + <![CDATA[coach 7.0.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 + Wed, 01 Dec 2021 00:00:00 GMT + Added +
      +
    • Updated to use latest Coach core and Browertime.
    • +
    +]]>
    + +
    + + <![CDATA[coach 6.4.3]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#6.4.3 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#6.4.3 + Fri, 15 Oct 2021 00:00:00 GMT + Added +
      +
    • Updated to use latest Browsertime with latest Chromedriver
    • +
    +
      +
    • Updated Docker container to use latest Chrome/Firefox
    • +
    +
      +
    • Use Browsertime 11.0.0
    • +
    +
      +
    • Use Coach-code 6.0
    • +
    +
      +
    • Use latest Firefox and Chrome
    • +
    +]]>
    + +
    + + <![CDATA[coach 5.0.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#5.0.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#5.0.0 + Wed, 11 Mar 2020 00:00:00 GMT + Changed +
      +
    • We moved out the core functionality to coach-core. This makes it easy to use the Coach in your own code.
    • +
    +]]>
    + +
    + + <![CDATA[coach 4.5.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.5.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.5.0 + Thu, 20 Feb 2020 00:00:00 GMT + + + + <![CDATA[coach 4.4.1]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.1 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.1 + Fri, 07 Feb 2020 00:00:00 GMT + Fixed +
      +
    • Upgraded to Browsertime 8.0.1
    • +
    +]]>
    + +
    + + <![CDATA[coach 4.4.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.0 + Wed, 05 Feb 2020 00:00:00 GMT + + + + <![CDATA[coach 4.3.1]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.1 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.1 + Fri, 10 Jan 2020 00:00:00 GMT + + + + <![CDATA[coach 4.3.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.0 + Thu, 12 Dec 2019 00:00:00 GMT + + + + <![CDATA[coach 4.2.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.2.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.2.0 + Sat, 02 Nov 2019 00:00:00 GMT + + +
    +
    \ No newline at end of file diff --git a/docs/feed/compare.atom b/docs/feed/compare.atom new file mode 100644 index 000000000..af0cbdfa7 --- /dev/null +++ b/docs/feed/compare.atom @@ -0,0 +1,210 @@ + + + compare-release-feed + compare release feed + 2021-10-29T18:25:09.436Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of compare + https://www.sitespeed.io/img/logos/compare.png + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + + <![CDATA[compare 1.0.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#1.0.0 + + 2018-11-28T00:00:00.000Z + Added +
      +
    • Added support for using Github gists see #34.
    • +
    +
      +
    • Added support for using a config file to configure which HARs to test.
    • +
    +
      +
    • Added support for copy/paste directly you HAR, configuration file or a gist URL or id.
    • +
    +
      +
    • Refactor the CSS into Sass, development build process now uses BrowserSync.
    • +
    +
      +
    • Service worker added for offline support. Workbox is used to achieve this.
    • +
    +
      +
    • Added support for showing changes in request/responses if you compare the same page #63.
    • +
    +

    Changed

    +
      +
    • New internal structure and use the new configuration object all the way.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[compare 0.6.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.6.0 + + 2018-10-17T00:00:00.000Z + Added +
      +
    • Sort CPU events by name to make it easier to spot regressions
    • +
    +
      +
    • Upgraded to latest release of template7
    • +
    +
      +
    • Added more Visual Metrics.
    • +
    +
      +
    • Upgrad to PageXray 2.4.0
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[compare 0.5.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.1 + + 2018-06-01T00:00:00.000Z + Fixed +
      +
    • Layout -> Rendering in latest Browsertime.
    • +
    +
      +
    • Upgraded to PerfCascade 2.5.2 fixiing Edge tab bug
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[compare 0.5.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.0 + + 2018-04-05T00:00:00.000Z + Added +
      +
    • CPU metrics are now showed automatically.
    • +
    +
      +
    • Styled the PageXray info table to make it easier to read.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[compare 0.4.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.1 + + 2018-04-04T00:00:00.000Z + Fixed +
      +
    • Major code refactoring to make it easier to do changes in the future.
    • +
    +
      +
    • Uploading files failed on Firefox.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[compare 0.4.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.0 + + 2018-04-02T00:00:00.000Z + Added +
      +
    • Upgraded to PerfCascade 2.4.1
    • +
    +
      +
    • You can change/upload HAR files when you already compare two HARs.
    • +
    +

    Fixed

    +
      +
    • The layout in the PageXray table was dependent of the length of the URL. That could make some pages look really bad.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[compare 0.3.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.3.0 + + 2018-03-30T00:00:00.000Z + Added +
      +
    • Automatically load the HAR files if both files are given in the URL . Thanks Ivru for the PR #15.
    • +
    +
      +
    • You can automatically load one HAR file by adding ?har1=URL&compare=1 as the full URL.
    • +
    +
      +
    • Updated to PageXray 2.2.1
    • +
    +
      +
    • You can now drag and drop one HAR file with multiple pages and compare the pages with each others #16.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[compare 0.2.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.1 + + 2018-02-03T00:00:00.000Z + Fixed +
      +
    • Upgraded to PerfCascade 2.2.2 that makes HAR files from WebPageTest Linux render
    • +
    +
      +
    • Log errors to the console
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[compare 0.2.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.0 + + 2018-02-01T00:00:00.000Z + Added +
      +
    • Upgraded to PageXray 2.1.0 and added more CPU metrics
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    +
    \ No newline at end of file diff --git a/docs/feed/compare.rss b/docs/feed/compare.rss new file mode 100644 index 000000000..e9807688b --- /dev/null +++ b/docs/feed/compare.rss @@ -0,0 +1,184 @@ + + + + compare release feed + https://www.sitespeed.io + New releases and changelog feed of compare + Fri, 29 Oct 2021 18:25:09 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + compare release feed + https://www.sitespeed.io/img/logos/compare.png + https://www.sitespeed.io + + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + <![CDATA[compare 1.0.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#1.0.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#1.0.0 + Wed, 28 Nov 2018 00:00:00 GMT + Added +
      +
    • Added support for using Github gists see #34.
    • +
    +
      +
    • Added support for using a config file to configure which HARs to test.
    • +
    +
      +
    • Added support for copy/paste directly you HAR, configuration file or a gist URL or id.
    • +
    +
      +
    • Refactor the CSS into Sass, development build process now uses BrowserSync.
    • +
    +
      +
    • Service worker added for offline support. Workbox is used to achieve this.
    • +
    +
      +
    • Added support for showing changes in request/responses if you compare the same page #63.
    • +
    +

    Changed

    +
      +
    • New internal structure and use the new configuration object all the way.
    • +
    +]]>
    + +
    + + <![CDATA[compare 0.6.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.6.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.6.0 + Wed, 17 Oct 2018 00:00:00 GMT + Added +
      +
    • Sort CPU events by name to make it easier to spot regressions
    • +
    +
      +
    • Upgraded to latest release of template7
    • +
    +
      +
    • Added more Visual Metrics.
    • +
    +
      +
    • Upgrad to PageXray 2.4.0
    • +
    +]]>
    + +
    + + <![CDATA[compare 0.5.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.1 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.1 + Fri, 01 Jun 2018 00:00:00 GMT + Fixed +
      +
    • Layout -> Rendering in latest Browsertime.
    • +
    +
      +
    • Upgraded to PerfCascade 2.5.2 fixiing Edge tab bug
    • +
    +]]>
    + +
    + + <![CDATA[compare 0.5.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.0 + Thu, 05 Apr 2018 00:00:00 GMT + Added +
      +
    • CPU metrics are now showed automatically.
    • +
    +
      +
    • Styled the PageXray info table to make it easier to read.
    • +
    +]]>
    + +
    + + <![CDATA[compare 0.4.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.1 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.1 + Wed, 04 Apr 2018 00:00:00 GMT + Fixed +
      +
    • Major code refactoring to make it easier to do changes in the future.
    • +
    +
      +
    • Uploading files failed on Firefox.
    • +
    +]]>
    + +
    + + <![CDATA[compare 0.4.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.0 + Mon, 02 Apr 2018 00:00:00 GMT + Added +
      +
    • Upgraded to PerfCascade 2.4.1
    • +
    +
      +
    • You can change/upload HAR files when you already compare two HARs.
    • +
    +

    Fixed

    +
      +
    • The layout in the PageXray table was dependent of the length of the URL. That could make some pages look really bad.
    • +
    +]]>
    + +
    + + <![CDATA[compare 0.3.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.3.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.3.0 + Fri, 30 Mar 2018 00:00:00 GMT + Added +
      +
    • Automatically load the HAR files if both files are given in the URL . Thanks Ivru for the PR #15.
    • +
    +
      +
    • You can automatically load one HAR file by adding ?har1=URL&compare=1 as the full URL.
    • +
    +
      +
    • Updated to PageXray 2.2.1
    • +
    +
      +
    • You can now drag and drop one HAR file with multiple pages and compare the pages with each others #16.
    • +
    +]]>
    + +
    + + <![CDATA[compare 0.2.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.1 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.1 + Sat, 03 Feb 2018 00:00:00 GMT + Fixed +
      +
    • Upgraded to PerfCascade 2.2.2 that makes HAR files from WebPageTest Linux render
    • +
    +
      +
    • Log errors to the console
    • +
    +]]>
    + +
    + + <![CDATA[compare 0.2.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.0 + Thu, 01 Feb 2018 00:00:00 GMT + Added +
      +
    • Upgraded to PageXray 2.1.0 and added more CPU metrics
    • +
    +]]>
    + +
    +
    +
    \ No newline at end of file diff --git a/docs/feed/humble.atom b/docs/feed/humble.atom new file mode 100644 index 000000000..f8db12dd6 --- /dev/null +++ b/docs/feed/humble.atom @@ -0,0 +1,33 @@ + + + humble-release-feed + humble release feed + 2022-02-24T13:43:37.433Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of humble + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + + <![CDATA[humble 0.2.0]]> + https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.2.0 + + 2020-01-11T00:00:00.000Z + Added +
      +
    • Updated throttle frontend to latest version where you can see throttling profiles set by using the API and with custom throttling support.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    +
    \ No newline at end of file diff --git a/docs/feed/humble.rss b/docs/feed/humble.rss new file mode 100644 index 000000000..8fccd24b3 --- /dev/null +++ b/docs/feed/humble.rss @@ -0,0 +1,26 @@ + + + + humble release feed + https://www.sitespeed.io + New releases and changelog feed of humble + Thu, 24 Feb 2022 13:43:37 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + <![CDATA[humble 0.2.0]]> + https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.2.0 + https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.2.0 + Sat, 11 Jan 2020 00:00:00 GMT + Added +
      +
    • Updated throttle frontend to latest version where you can see throttling profiles set by using the API and with custom throttling support.
    • +
    +]]>
    +
    +
    +
    \ No newline at end of file diff --git a/docs/feed/pagexray.atom b/docs/feed/pagexray.atom new file mode 100644 index 000000000..fce842acd --- /dev/null +++ b/docs/feed/pagexray.atom @@ -0,0 +1,180 @@ + + + pagexray-release-feed + pagexray release feed + 2022-02-24T13:43:37.433Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of pagexray + https://www.sitespeed.io/img/logos/pagexray.png + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + + <![CDATA[pagexray 4.4.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 + + 2022-02-04T00:00:00.000Z + Added +
      +
    • Fallback if mime types aren't mapped and use file endings. At the moment we fallback for some of the font types #109.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 4.3.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 + + 2021-07-21T00:00:00.000Z + Added +
      +
    • Added missing in_body_parser_blocking render blocking info for Chrome.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 4.3.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 + + 2021-06-02T00:00:00.000Z + Added +
      +
    • Include request method per asset #105.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 4.2.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.2.0 + + 2021-05-28T00:00:00.000Z + Added +
      +
    • Attach info about render blocking assets coming/working in Chrome 92 #104.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 4.1.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.1.0 + + 2021-04-08T00:00:00.000Z + Added +
      +
    • Attach Google Web Vitals data from Browsertime #101.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 4.0.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.0.0 + + 2020-12-12T00:00:00.000Z + Changed +
      +
    • The new header structure actually sucked. Instead follow other tools and flatten headers returning an array #98.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 3.1.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.1 + + 2020-12-11T00:00:00.000Z + Fixed +
      +
    • Ooops, missed to expose the third party cookie data #97.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 3.1.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.0 + + 2020-12-11T00:00:00.000Z + Added +
      +
    • Get third party domains for cookies #96.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 3.0.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.0.0 + + 2020-12-11T00:00:00.000Z + Added +
      +
    • PageXray can categorise connections as H3 #95.
    • +
    +

    Fixed

    +
      +
    • Getting cookies was broken. Fixed in #92, #93 and #94.
    • +
    +

    Changed

    +
      +
    • Request/response headers are now returned with name/value keys to handle headers with the same name. This will only affect you if you get assets from PageXray #93.
    • +
    +
      +
    • Removed cookie statistics field since it was broken. Report number of first and third party cookies instead.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 2.6.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 + + 2020-11-13T00:00:00.000Z + Added +
      +
    • If an asset has the HTML/text content it will be added to the asset section #90.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    +
    \ No newline at end of file diff --git a/docs/feed/pagexray.rss b/docs/feed/pagexray.rss new file mode 100644 index 000000000..ab4b8e7c3 --- /dev/null +++ b/docs/feed/pagexray.rss @@ -0,0 +1,151 @@ + + + + pagexray release feed + https://www.sitespeed.io + New releases and changelog feed of pagexray + Thu, 24 Feb 2022 13:43:37 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + pagexray release feed + https://www.sitespeed.io/img/logos/pagexray.png + https://www.sitespeed.io + + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + <![CDATA[pagexray 4.4.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 + Fri, 04 Feb 2022 00:00:00 GMT + Added +
      +
    • Fallback if mime types aren't mapped and use file endings. At the moment we fallback for some of the font types #109.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 4.3.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 + Wed, 21 Jul 2021 00:00:00 GMT + Added +
      +
    • Added missing in_body_parser_blocking render blocking info for Chrome.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 4.3.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 + Wed, 02 Jun 2021 00:00:00 GMT + Added +
      +
    • Include request method per asset #105.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 4.2.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.2.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.2.0 + Fri, 28 May 2021 00:00:00 GMT + Added +
      +
    • Attach info about render blocking assets coming/working in Chrome 92 #104.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 4.1.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.1.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.1.0 + Thu, 08 Apr 2021 00:00:00 GMT + Added +
      +
    • Attach Google Web Vitals data from Browsertime #101.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 4.0.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.0.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.0.0 + Sat, 12 Dec 2020 00:00:00 GMT + Changed +
      +
    • The new header structure actually sucked. Instead follow other tools and flatten headers returning an array #98.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 3.1.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.1 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.1 + Fri, 11 Dec 2020 00:00:00 GMT + Fixed +
      +
    • Ooops, missed to expose the third party cookie data #97.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 3.1.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.0 + Fri, 11 Dec 2020 00:00:00 GMT + Added +
      +
    • Get third party domains for cookies #96.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 3.0.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.0.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.0.0 + Fri, 11 Dec 2020 00:00:00 GMT + Added +
      +
    • PageXray can categorise connections as H3 #95.
    • +
    +

    Fixed

    +
      +
    • Getting cookies was broken. Fixed in #92, #93 and #94.
    • +
    +

    Changed

    +
      +
    • Request/response headers are now returned with name/value keys to handle headers with the same name. This will only affect you if you get assets from PageXray #93.
    • +
    +
      +
    • Removed cookie statistics field since it was broken. Report number of first and third party cookies instead.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 2.6.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 + Fri, 13 Nov 2020 00:00:00 GMT + Added +
      +
    • If an asset has the HTML/text content it will be added to the asset section #90.
    • +
    +]]>
    + +
    +
    +
    \ No newline at end of file diff --git a/docs/feed/sitespeed.io.atom b/docs/feed/sitespeed.io.atom new file mode 100644 index 000000000..d23282af4 --- /dev/null +++ b/docs/feed/sitespeed.io.atom @@ -0,0 +1,224 @@ + + + sitespeed.io-release-feed + sitespeed.io release feed + 2022-03-11T11:07:53.102Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of sitespeed.io + https://www.sitespeed.io/img/logos/sitespeed.io.png + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + + <![CDATA[sitespeed.io 23.4.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + + 2022-03-11T00:00:00.000Z + Added +
      +
    • The -slim Docker container now uses Firefox 98.
    • +
    +
      +
    • Updated Grafana to latest 8.4.3 in the Docker compose file.
    • +
    + +
      +
    • You can use -o or --open or --view to open the result page after you run sitespeed.io on Mac and Linux #3569.
    • +
    +
      +
    • Open the result with -o on Linux using xdg-open #3597.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[sitespeed.io 23.4.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + + 2022-03-09T00:00:00.000Z + Added +
      +
    • Firefox 98 in the Docker container #3592.
    • +
    +
      +
    • Added link to each run in the side by side metric page, making it easier to go to the correct run #3593.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[sitespeed.io 23.3.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 + + 2022-03-07T00:00:00.000Z + Added +
      +
    • The +1 container is upgraded to use Lighthouse 9.4.0.
    • +
    + +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[sitespeed.io 23.2.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 + + 2022-03-05T00:00:00.000Z + Added +
      +
    • Updated to Chrome and Edge 99 in the Docker container. Updated to Chromedriver and Edgedriver 99 #3590.
    • +
    +

    Fixed

    +
      +
    • If you use alias and budget files, the outcome (result budget json and others) should use the alias of the URL instead of the URL #3582.
    • +
    +
      +
    • Ignore sustainable.setup messages when storing analysistorer #3578.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[sitespeed.io 23.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 + + 2022-02-24T00:00:00.000Z + Added +
      +
    • Updated Browsertime that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser.
    • +
    +
      +
    • Show Browsertime version in runtime settings #3575.
    • +
    +

    Fixed

    +
      +
    • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[sitespeed.io 23.0.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 + + 2022-02-21T00:00:00.000Z + Fixed +
      +
    • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[sitespeed.io 23.0.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 + + 2022-02-21T00:00:00.000Z + Added +
      +
    • Use Browsertime 15.0.0.
    • +
    +
      +
    • Show alias name in the budget report page #3572.
    • +
    +

    Fixed

    +
      +
    • Fix broken JUnit output. Thank you rghetu for finding it #3569.
    • +
    +
      +
    • When comparing metrics side by side for different runs, mean/median and stddev was sometimes broken for some timing metrics. Fixed with #3573
    • +
    +

    Breaking changes

    +
      +
    • In this release we updated to Browsertime 15.0.0 that drops built in support for TSProxy. The reason to drop TSProxy is that it only works in Python 2 and the sunset for Python 2 was January 1, 2020. If you still need TSProxy you can set it up yourself.
    • +
    +
      +
    • Browsertime also drop support for getting visual metrics from the trace log. It was added to evaluate if it could be a compliment to the video visual metrics but it was not. Removing it also decreased the number of dependencies in Browsertime.
    • +
    +
      +
    • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[sitespeed.io 22.1.2]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 + + 2022-02-09T00:00:00.000Z + Fixed +
      +
    • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[sitespeed.io 22.1.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 + + 2022-02-08T00:00:00.000Z + Fixed +
      +
    • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[sitespeed.io 22.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 + + 2022-02-08T00:00:00.000Z + Added +
      +
    • Upgraded to latest Browsertime with Egdedriver 98.
    • +
    +
      +
    • Upgraded to Edge 98 and Firefox 97 in the (amd64) Docker containers.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    +
    \ No newline at end of file diff --git a/docs/feed/sitespeed.io.rss b/docs/feed/sitespeed.io.rss new file mode 100644 index 000000000..50c31c889 --- /dev/null +++ b/docs/feed/sitespeed.io.rss @@ -0,0 +1,195 @@ + + + + sitespeed.io release feed + https://www.sitespeed.io + New releases and changelog feed of sitespeed.io + Fri, 11 Mar 2022 11:07:53 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + sitespeed.io release feed + https://www.sitespeed.io/img/logos/sitespeed.io.png + https://www.sitespeed.io + + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + <![CDATA[sitespeed.io 23.4.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + Fri, 11 Mar 2022 00:00:00 GMT + Added +
      +
    • The -slim Docker container now uses Firefox 98.
    • +
    +
      +
    • Updated Grafana to latest 8.4.3 in the Docker compose file.
    • +
    + +
      +
    • You can use -o or --open or --view to open the result page after you run sitespeed.io on Mac and Linux #3569.
    • +
    +
      +
    • Open the result with -o on Linux using xdg-open #3597.
    • +
    +]]>
    + +
    + + <![CDATA[sitespeed.io 23.4.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + Wed, 09 Mar 2022 00:00:00 GMT + Added +
      +
    • Firefox 98 in the Docker container #3592.
    • +
    +
      +
    • Added link to each run in the side by side metric page, making it easier to go to the correct run #3593.
    • +
    +]]>
    + +
    + + <![CDATA[sitespeed.io 23.3.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 + Mon, 07 Mar 2022 00:00:00 GMT + Added +
      +
    • The +1 container is upgraded to use Lighthouse 9.4.0.
    • +
    + +]]>
    + +
    + + <![CDATA[sitespeed.io 23.2.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 + Sat, 05 Mar 2022 00:00:00 GMT + Added +
      +
    • Updated to Chrome and Edge 99 in the Docker container. Updated to Chromedriver and Edgedriver 99 #3590.
    • +
    +

    Fixed

    +
      +
    • If you use alias and budget files, the outcome (result budget json and others) should use the alias of the URL instead of the URL #3582.
    • +
    +
      +
    • Ignore sustainable.setup messages when storing analysistorer #3578.
    • +
    +]]>
    + +
    + + <![CDATA[sitespeed.io 23.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 + Thu, 24 Feb 2022 00:00:00 GMT + Added +
      +
    • Updated Browsertime that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser.
    • +
    +
      +
    • Show Browsertime version in runtime settings #3575.
    • +
    +

    Fixed

    +
      +
    • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
    • +
    +]]>
    + +
    + + <![CDATA[sitespeed.io 23.0.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 + Mon, 21 Feb 2022 00:00:00 GMT + Fixed +
      +
    • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
    • +
    +]]>
    + +
    + + <![CDATA[sitespeed.io 23.0.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 + Mon, 21 Feb 2022 00:00:00 GMT + Added +
      +
    • Use Browsertime 15.0.0.
    • +
    +
      +
    • Show alias name in the budget report page #3572.
    • +
    +

    Fixed

    +
      +
    • Fix broken JUnit output. Thank you rghetu for finding it #3569.
    • +
    +
      +
    • When comparing metrics side by side for different runs, mean/median and stddev was sometimes broken for some timing metrics. Fixed with #3573
    • +
    +

    Breaking changes

    +
      +
    • In this release we updated to Browsertime 15.0.0 that drops built in support for TSProxy. The reason to drop TSProxy is that it only works in Python 2 and the sunset for Python 2 was January 1, 2020. If you still need TSProxy you can set it up yourself.
    • +
    +
      +
    • Browsertime also drop support for getting visual metrics from the trace log. It was added to evaluate if it could be a compliment to the video visual metrics but it was not. Removing it also decreased the number of dependencies in Browsertime.
    • +
    +
      +
    • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
    • +
    +]]>
    + +
    + + <![CDATA[sitespeed.io 22.1.2]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 + Wed, 09 Feb 2022 00:00:00 GMT + Fixed +
      +
    • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
    • +
    +]]>
    + +
    + + <![CDATA[sitespeed.io 22.1.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 + Tue, 08 Feb 2022 00:00:00 GMT + Fixed +
      +
    • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
    • +
    +]]>
    + +
    + + <![CDATA[sitespeed.io 22.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 + Tue, 08 Feb 2022 00:00:00 GMT + Added +
      +
    • Upgraded to latest Browsertime with Egdedriver 98.
    • +
    +
      +
    • Upgraded to Edge 98 and Firefox 97 in the (amd64) Docker containers.
    • +
    +]]>
    + +
    +
    +
    \ No newline at end of file diff --git a/docs/feed/throttle.atom b/docs/feed/throttle.atom new file mode 100644 index 000000000..76bd21095 --- /dev/null +++ b/docs/feed/throttle.atom @@ -0,0 +1,108 @@ + + + throttle-release-feed + throttle release feed + 2022-02-24T13:43:37.435Z + https://github.com/jpmonette/feed + + Peter Hedenskog + peter@soulgalore.com + https://www.peterhedenskog.com + + + + New releases and changelog feed of throttle + http://www.sitespeed.io/favicon.ico + All rights reserved 2022, Peter Hedenskog and team + + + <![CDATA[throttle 3.1.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 + + 2021-12-26T00:00:00.000Z + Added +
      +
    • Add support for setting packet loss. Add --packetLoss and set the loss in percentage.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[throttle 3.0.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.0.0 + + 2021-08-09T00:00:00.000Z + Changed +
      +
    • When you run on Mac OS we changed so localhost traffic is not throttled by default. To throttle on localhost use --localhost. This makes sence if you use WebDriver to drive your browser on your local machine. And Mac OS now works the same as Linux.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[throttle 2.1.2]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.2 + + 2021-07-29T00:00:00.000Z + Fixed +
      +
    • Fix breakage when multiple default routes are declared , thank you Andy Richardson for PR #62.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[throttle 2.1.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.1 + + 2021-03-19T00:00:00.000Z + Fixed +
      +
    • A better check for missing net-tools on Linux, thank you Radu Micu for the PR #56.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[throttle 2.1.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.0 + + 2021-03-10T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[throttle 2.0.2]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.2 + + 2020-09-10T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[throttle 2.0.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 + + 2020-08-22T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + +
    \ No newline at end of file diff --git a/docs/feed/throttle.rss b/docs/feed/throttle.rss new file mode 100644 index 000000000..a9f924055 --- /dev/null +++ b/docs/feed/throttle.rss @@ -0,0 +1,77 @@ + + + + throttle release feed + https://www.sitespeed.io + New releases and changelog feed of throttle + Thu, 24 Feb 2022 13:43:37 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + All rights reserved 2022, Peter Hedenskog and team + Web Performance + + + <![CDATA[throttle 3.1.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 + Sun, 26 Dec 2021 00:00:00 GMT + Added +
      +
    • Add support for setting packet loss. Add --packetLoss and set the loss in percentage.
    • +
    +]]>
    +
    + + <![CDATA[throttle 3.0.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.0.0 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.0.0 + Mon, 09 Aug 2021 00:00:00 GMT + Changed +
      +
    • When you run on Mac OS we changed so localhost traffic is not throttled by default. To throttle on localhost use --localhost. This makes sence if you use WebDriver to drive your browser on your local machine. And Mac OS now works the same as Linux.
    • +
    +]]>
    +
    + + <![CDATA[throttle 2.1.2]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.2 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.2 + Thu, 29 Jul 2021 00:00:00 GMT + Fixed +
      +
    • Fix breakage when multiple default routes are declared , thank you Andy Richardson for PR #62.
    • +
    +]]>
    +
    + + <![CDATA[throttle 2.1.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.1 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.1 + Fri, 19 Mar 2021 00:00:00 GMT + Fixed +
      +
    • A better check for missing net-tools on Linux, thank you Radu Micu for the PR #56.
    • +
    +]]>
    +
    + + <![CDATA[throttle 2.1.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.0 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.0 + Wed, 10 Mar 2021 00:00:00 GMT + + + <![CDATA[throttle 2.0.2]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.2 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.2 + Thu, 10 Sep 2020 00:00:00 GMT + + + <![CDATA[throttle 2.0.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 + Sat, 22 Aug 2020 00:00:00 GMT + +
    +
    \ No newline at end of file diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index c70e06171..69379e4ce 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -59,7 +59,7 @@ "bluebird": "3.5.5", "chai": "4.2.0", "chai-as-promised": "7.1.1", - "changelog-parser": "2.8.0", + "changelog-parser": "2.8.1", "clean-css-cli": "4.3.0", "eslint": "8.0.0", "eslint-config-prettier": "8.3.0", @@ -67,6 +67,7 @@ "feed": "4.2.2", "jsdoc": "^3.6.7", "license-checker": "^16.0.0", + "marked": "4.0.12", "mocha": "^5.0.4", "prettier": "2.4.1", "pug-lint": "^2.6.0", @@ -1628,9 +1629,9 @@ } }, "node_modules/changelog-parser": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.8.0.tgz", - "integrity": "sha512-ZtSwN0hY7t+WpvaXqqXz98RHCNhWX9HsvCRAv1aBLlqJ7BpKtqdM6Nu6JOiUhRAWR7Gov0aN0fUnmflTz0WgZg==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.8.1.tgz", + "integrity": "sha512-tNUYFRCEeWTXmwLqoNtOEzx9wcytg72MmGQqsEs14ClYwIDln7sbQw7FJj/dulXgSlsxkemc9gpPQhZYZx1TPw==", "dev": true, "dependencies": { "line-reader": "^0.2.4", @@ -4164,6 +4165,18 @@ "markdown-it": "bin/markdown-it.js" } }, + "node_modules/jsdoc/node_modules/marked": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", + "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/jsdoc/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4726,15 +4739,15 @@ } }, "node_modules/marked": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.4.tgz", - "integrity": "sha512-MIL0xKRDQM3DE7dJr/wa6JV0EmK9yZ3cwuTc2bu66FNm/tmEMm9cJCgJZpt9R+K1T+pB2iBNV55wvnwSd345zg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", "dev": true, "bin": { - "marked": "bin/marked" + "marked": "bin/marked.js" }, "engines": { - "node": ">= 8.16.2" + "node": ">= 12" } }, "node_modules/mdurl": { @@ -8735,9 +8748,9 @@ } }, "changelog-parser": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.8.0.tgz", - "integrity": "sha512-ZtSwN0hY7t+WpvaXqqXz98RHCNhWX9HsvCRAv1aBLlqJ7BpKtqdM6Nu6JOiUhRAWR7Gov0aN0fUnmflTz0WgZg==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.8.1.tgz", + "integrity": "sha512-tNUYFRCEeWTXmwLqoNtOEzx9wcytg72MmGQqsEs14ClYwIDln7sbQw7FJj/dulXgSlsxkemc9gpPQhZYZx1TPw==", "dev": true, "requires": { "line-reader": "^0.2.4", @@ -10755,6 +10768,12 @@ "uc.micro": "^1.0.5" } }, + "marked": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", + "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "dev": true + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -11230,9 +11249,9 @@ "requires": {} }, "marked": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.4.tgz", - "integrity": "sha512-MIL0xKRDQM3DE7dJr/wa6JV0EmK9yZ3cwuTc2bu66FNm/tmEMm9cJCgJZpt9R+K1T+pB2iBNV55wvnwSd345zg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", "dev": true }, "mdurl": { diff --git a/package.json b/package.json index fa9ad3e24..a8088b803 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "bluebird": "3.5.5", "chai": "4.2.0", "chai-as-promised": "7.1.1", - "changelog-parser": "2.8.0", + "changelog-parser": "2.8.1", "clean-css-cli": "4.3.0", "eslint": "8.0.0", "eslint-config-prettier": "8.3.0", @@ -62,6 +62,7 @@ "feed": "4.2.2", "jsdoc": "^3.6.7", "license-checker": "^16.0.0", + "marked":"4.0.12", "mocha": "^5.0.4", "sass": "1.34.0", "prettier": "2.4.1", diff --git a/release/feed.js b/release/feed.js index c205e691c..81c9ad630 100644 --- a/release/feed.js +++ b/release/feed.js @@ -2,6 +2,22 @@ const Feed = require('feed').Feed; const fs = require('fs'); const path = require('path'); const parseChangelog = require('changelog-parser'); +const { marked } = require('marked'); + +const allFeeds = []; + +const images = { + 'sitespeed.io': 'https://www.sitespeed.io/img/logos/sitespeed.io.png', + browsertime: 'https://www.sitespeed.io/img/logos/browsertime.png', + 'coach-core': 'https://www.sitespeed.io/img/logos/coach.png', + pagexray: 'https://www.sitespeed.io/img/logos/pagexray.png', + throttle: '', + coach: 'https://www.sitespeed.io/img/logos/coach.png', + 'chrome-har': '', + 'chrome-trace': '', + compare: 'https://www.sitespeed.io/img/logos/compare.png', + humble: '' +}; const getSortedFiles = dir => { const files = fs.readdirSync(dir); @@ -16,52 +32,26 @@ const getSortedFiles = dir => { .sort((a, b) => b.time - a.time); }; -function getResult(result) { - let allData = ''; - if (result.parsed) { - if (result.parsed.Added) { - for (let added of result.parsed.Added) { - allData += ' ' + added; - } - } - if (result.parsed.Fixed) { - for (let fixed of result.parsed.Fixed) { - allData += ' ' + fixed; - } - } - - if (result.parsed.Changed) { - for (let changed of result.parsed.Changed) { - allData += ' ' + changed; - } - } - - if (result.parsed['Breaking changes']) { - for (let breaking of result.parsed['Breaking changes']) { - allData += ' ' + breaking; - } - } - return allData; - } -} - -async function generateFeed() { - const versionDir = './docs/_includes/version/'; - const sortedVersionFiles = getSortedFiles(versionDir); - - const feed = new Feed({ - title: 'sitespeed.io release feed', - description: 'Follow new releases of sitespeed.io tools', - id: 'https://www.sitespeed.io', +function getFeed(tool, time) { + return new Feed({ + title: `${tool} release feed`, + description: `New releases and changelog feed of ${tool}`, + id: `${tool}-release-feed`, link: 'https://www.sitespeed.io', language: 'en', // optional, used only in RSS 2.0, possible values: http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes - image: 'https://www.sitespeed.io/img/logos/sitespeed.io.png', + image: images[tool], favicon: 'http://www.sitespeed.io/favicon.ico', copyright: 'All rights reserved 2022, Peter Hedenskog and team', - updated: new Date(sortedVersionFiles[0].time), // use the date from the latest updated version file + updated: new Date(time), feedLinks: { - atom: 'https://www.sitespeed.io/feed/atom.xml', - rss: 'https://www.sitespeed.io/feed/rss.xml' + atom: + tool === 'sitespeed.io' + ? `https://www.sitespeed.io/feed/atom.xml` + : `https://www.sitespeed.io/feed/${tool}.atom`, + rss: + tool === 'sitespeed.io' + ? `https://www.sitespeed.io/feed/rss.xml` + : `https://www.sitespeed.io/feed/${tool}.rss` }, author: { name: 'Peter Hedenskog', @@ -69,65 +59,135 @@ async function generateFeed() { link: 'https://www.peterhedenskog.com' } }); +} - const getContent = async () => { - const content = {}; - for (let tool of sortedVersionFiles) { - const changelog = - tool.name === 'sitespeed.io' - ? './CHANGELOG.md' - : '../' + tool.name + '/CHANGELOG.md'; - const result = await parseChangelog(changelog); - if (result.versions[0].date !== null) { - content[tool.name] = getResult(result.versions[0]); - } else if (result.versions[1]) { - content[tool.name] = getResult(result.versions[1]); - } else { - // skip missing data - console.log(`Missing data for tool ${tool.name}`); +function addItemToFeed(feed, item, tool) { + feed.addItem({ + title: `${tool} ${item.version}`, + id: `https://github.com/sitespeedio/${tool}/blob/main/CHANGELOG.md#${item.version}`, + link: `https://github.com/sitespeedio/${tool}/blob/main/CHANGELOG.md#${item.version}`, + description: getResultAsHTML(item), + author: [ + { + name: 'Sitespeed.io', + link: 'https://www.sitespeed.io' + } + ], + date: new Date(item.date), + image: images[tool] + }); +} + +function getResultAsHTML(result) { + let allData = ''; + if (result.parsed) { + if (result.parsed.Added) { + allData += `

    Added

    \n`; + for (let added of result.parsed.Added) { + allData += ' ' + marked.parse(added); + } + } + if (result.parsed.Fixed) { + allData += `

    Fixed

    \n`; + for (let fixed of result.parsed.Fixed) { + allData += ' ' + marked.parse(fixed); } } - return content; - }; - const descriptions = await getContent(); - const images = { - 'sitespeed.io': 'https://www.sitespeed.io/img/logos/sitespeed.io.png', - browsertime: 'https://www.sitespeed.io/img/logos/browsertime.png', - 'coach-core': 'https://www.sitespeed.io/img/logos/coach.png', - pagexray: 'https://www.sitespeed.io/img/logos/pagexray.png', - throttle: '', - coach: 'https://www.sitespeed.io/img/logos/coach.png', - 'chrome-har': '', - 'chrome-trace': '', - compare: 'https://www.sitespeed.io/img/logos/compare.png', - humble: '' - }; + if (result.parsed.Changed) { + allData += `

    Changed

    \n`; + for (let changed of result.parsed.Changed) { + allData += ' ' + marked.parse(changed); + } + } - sortedVersionFiles.forEach(file => { - feed.addItem({ - title: `${file.name} ${file.version}`, - id: `https://github.com/sitespeedio/${file.name}/blob/main/CHANGELOG.md#${file.version}`, - link: `https://github.com/sitespeedio/${file.name}/blob/main/CHANGELOG.md#`, - description: descriptions[file.name], - // content: content[file.name], - author: [ - { - name: 'Sitespeed.io', - link: 'https://www.sitespeed.io' - } - ], - date: new Date(file.time), - image: images[file.name] - }); + if (result.parsed['Breaking changes']) { + allData += `

    Breaking changes

    \n`; + for (let breaking of result.parsed['Breaking changes']) { + allData += ' ' + marked.parse(breaking); + } + } + + if (result.parsed['Deprecated']) { + allData += `

    Deprecated

    \n`; + for (let deprecated of result.parsed['Deprecated']) { + allData += ' ' + marked.parse(deprecated); + } + } + + if (result.parsed['Removed']) { + allData += `

    Removed

    \n`; + for (let removed of result.parsed['Removed']) { + allData += ' ' + marked.parse(removed); + } + } + + if (result.parsed['Security']) { + allData += `

    Security

    \n`; + for (let security of result.parsed['Security']) { + allData += ' ' + marked.parse(security); + } + } + + return allData; + } +} + +const getContent = async tool => { + const content = []; + const changelog = + tool === 'sitespeed.io' ? './CHANGELOG.md' : '../' + tool + '/CHANGELOG.md'; + const result = await parseChangelog({ + filePath: changelog, + removeMarkdown: false }); - feed.addCategory('Performance'); + for (let i = 0; i < 10; i++) { + // It's not unreleased + if (result.versions[i] && result.versions[i].date !== null) { + content.push(result.versions[i]); + allFeeds.push({ tool, item: result.versions[i] }); + } + } + return content; +}; +async function generateFeed() { + const versionDir = './docs/_includes/version/'; + const sortedVersionFiles = getSortedFiles(versionDir); + + for (let tool of sortedVersionFiles) { + const feed = getFeed(tool.name, tool.time); + feed.addCategory('Web Performance'); + const items = await getContent(tool.name); + for (let item of items) { + addItemToFeed(feed, item, tool.name); + } + + const docPath = './docs/'; + + fs.writeFileSync( + path.join(docPath, 'feed', `${tool.name}.rss`), + feed.rss2() + ); + fs.writeFileSync( + path.join(docPath, 'feed', `${tool.name}.atom`), + feed.atom1() + ); + } + + allFeeds.sort(function (a, b) { + return new Date(b.item.date) - new Date(a.item.date); + }); + + const allFeed = getFeed('sitespeed.io', allFeeds[0].item.date); + for (let item of allFeeds) { + addItemToFeed(allFeed, item.item, item.tool); + } const docPath = './docs/'; - fs.writeFileSync(path.join(docPath, 'feed', 'rss.xml'), feed.rss2()); - fs.writeFileSync(path.join(docPath, 'feed', 'atom.xml'), feed.atom1()); + fs.writeFileSync(path.join(docPath, 'feed', `rss.xml`), allFeed.rss2()); + fs.writeFileSync(path.join(docPath, 'feed', `atom.xml`), allFeed.atom1()); } generateFeed(); From 9f3b7715ddf4010841116d3a304ee5da02a4bc02 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 15 Mar 2022 20:06:22 +0100 Subject: [PATCH 034/105] update feeds --- docs/feed/atom.xml | 1223 +++++++++++++++++++++++++++++++++-- docs/feed/rss.xml | 1019 +++++++++++++++++++++++++++-- docs/feed/sitespeed.io.atom | 6 +- docs/feed/sitespeed.io.rss | 6 +- 4 files changed, 2146 insertions(+), 108 deletions(-) diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index b401e2f91..2ad233451 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -1,8 +1,8 @@ - https://www.sitespeed.io + sitespeed.io-release-feed sitespeed.io release feed - 2022-03-11T11:07:53.102Z + 2022-03-11T00:00:00.000Z https://github.com/jpmonette/feed Peter Hedenskog @@ -11,17 +11,17 @@ - Follow new releases of sitespeed.io tools + New releases and changelog feed of sitespeed.io https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team - <![CDATA[sitespeed.io 23.5.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 - - 2022-03-11T11:07:53.102Z - + + 2022-03-11T00:00:00.000Z + Added +
    • The -slim Docker container now uses Firefox 98.
      @@ -43,16 +43,76 @@ - <![CDATA[browsertime 15.3.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 - - 2022-03-07T13:59:36.236Z - + <![CDATA[sitespeed.io 23.4.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + + 2022-03-09T00:00:00.000Z + Added +
        +
      • Firefox 98 in the Docker container #3592.
      • +
      +
        +
      • Added link to each run in the side by side metric page, making it easier to go to the correct run #3593.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[sitespeed.io 23.3.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 + + 2022-03-07T00:00:00.000Z + Added +
        +
      • The +1 container is upgraded to use Lighthouse 9.4.0.
      • +
      + +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[sitespeed.io 23.2.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 + + 2022-03-05T00:00:00.000Z + Added +
        +
      • Updated to Chrome and Edge 99 in the Docker container. Updated to Chromedriver and Edgedriver 99 #3590.
      • +
      +

      Fixed

      +
        +
      • If you use alias and budget files, the outcome (result budget json and others) should use the alias of the URL instead of the URL #3582.
      • +
      +
        +
      • Ignore sustainable.setup messages when storing analysistorer #3578.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 15.2.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 + + 2022-03-04T00:00:00.000Z + Added +
      • Updated to Chromedriver and Edgedriver 99.
      • Updated Docker container to use Chrome and Edge 99 #1738.
      +

      Fixed

      • Added more view ports for emulated mobile in Chrome #1736.
      @@ -63,12 +123,20 @@ - <![CDATA[throttle 3.1.0]]> - https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 - - 2022-02-24T13:43:37.435Z - -
    • Add support for setting packet loss. Add --packetLoss and set the loss in percentage.
    • + <![CDATA[sitespeed.io 23.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 + + 2022-02-24T00:00:00.000Z + Added +
        +
      • Updated Browsertime that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser.
      • +
      +
        +
      • Show Browsertime version in runtime settings #3575.
      • +
      +

      Fixed

      +
        +
      • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
      ]]>
      @@ -77,12 +145,13 @@ - <![CDATA[humble 0.1.2]]> - https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.1.2 - - 2022-02-24T13:43:37.433Z - -
    • Updated throttle frontend to latest version where you can see throttling profiles set by using the API and with custom throttling support.
    • + <![CDATA[browsertime 15.1.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.1 + + 2022-02-24T00:00:00.000Z + Fixed + ]]> @@ -91,12 +160,224 @@ - <![CDATA[pagexray 4.4.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 - - 2022-02-24T13:43:37.433Z - -
    • Fallback if mime types aren't mapped and use file endings. At the moment we fallback for some of the font types #109.
    • + <![CDATA[browsertime 15.1.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.0 + + 2022-02-24T00:00:00.000Z + Added +
        +
      • Collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser #1735.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[sitespeed.io 23.0.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 + + 2022-02-21T00:00:00.000Z + Fixed +
        +
      • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[sitespeed.io 23.0.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 + + 2022-02-21T00:00:00.000Z + Added +
        +
      • Use Browsertime 15.0.0.
      • +
      +
        +
      • Show alias name in the budget report page #3572.
      • +
      +

      Fixed

      +
        +
      • Fix broken JUnit output. Thank you rghetu for finding it #3569.
      • +
      +
        +
      • When comparing metrics side by side for different runs, mean/median and stddev was sometimes broken for some timing metrics. Fixed with #3573
      • +
      +

      Breaking changes

      +
        +
      • In this release we updated to Browsertime 15.0.0 that drops built in support for TSProxy. The reason to drop TSProxy is that it only works in Python 2 and the sunset for Python 2 was January 1, 2020. If you still need TSProxy you can set it up yourself.
      • +
      +
        +
      • Browsertime also drop support for getting visual metrics from the trace log. It was added to evaluate if it could be a compliment to the video visual metrics but it was not. Removing it also decreased the number of dependencies in Browsertime.
      • +
      +
        +
      • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 15.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.1 + + 2022-02-21T00:00:00.000Z + Fixed +
        +
      • Make sure connectivity is only set before the test begins #1733.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 15.0.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.0 + + 2022-02-20T00:00:00.000Z + Added +
        +
      • New alias for getting the Chrome trace log: --chrome.trace #1728.
      • +
      +
        +
      • On OS X and Linux the DNS will be flushed between runs. You can disable that with --disableDNSFlush true #1732.
      • +
      +

      Fixed

      + +
        +
      • Moved test to Ava instead of mocha and moved most testing against a local HTTP server instead of internet #1725.
      • +
      +

      Changed

      +
        +
      • Removed the built in support for TSProxy #1718. TSProxy only worked with Python 2.7 and we want to remove that dependency.
      • +
      +
        +
      • Removed support for using speedline and the CLI arg --chrome.visualMetricsUsingTrace #1727.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[sitespeed.io 22.1.2]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 + + 2022-02-09T00:00:00.000Z + Fixed +
        +
      • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 14.21.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 + + 2022-02-09T00:00:00.000Z + Fixed +
        +
      • Always disable the new ChromeWhaxyNewUI splash screen in Chrome #1717.
      • +
      +
        +
      • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[sitespeed.io 22.1.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 + + 2022-02-08T00:00:00.000Z + Fixed +
        +
      • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[sitespeed.io 22.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 + + 2022-02-08T00:00:00.000Z + Added +
        +
      • Upgraded to latest Browsertime with Egdedriver 98.
      • +
      +
        +
      • Upgraded to Edge 98 and Firefox 97 in the (amd64) Docker containers.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 14.21.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 + + 2022-02-08T00:00:00.000Z + Added +
        +
      • Upgraded to Egdedriver 98
      • +
      +
        +
      • Upgraded to Edge 98 and Firefox 97 in the Docker container
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 14.20.3]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 + + 2022-02-07T00:00:00.000Z + Fixed +
        +
      • There's a new setup how we build Docker releases and this release uses the new pipeline.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 14.20.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 + + 2022-02-07T00:00:00.000Z + Added +
        +
      • Docker container for both amd64 and arm64.
      ]]>
      @@ -107,9 +388,10 @@ <![CDATA[coach-core 7.1.0]]> https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 - - 2022-02-24T13:43:37.432Z - + + 2022-02-06T00:00:00.000Z + Added +
      • Upgraded to PageXray 4.0.0.
        @@ -122,12 +404,34 @@ - <![CDATA[coach 7.0.0]]> - https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 - - 2022-02-24T13:43:37.432Z - -
      • Updated to use latest Coach core and Browertime.
      • + <![CDATA[browsertime 14.19.2]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 + + 2022-02-05T00:00:00.000Z + Fixed +
          +
        • Upgraded to Geckodriver 0.30.0 #1710.
        • +
        +
          +
        • Upgraded to Chromedriver that always looks for Chromedriver in PATH for arm64.
        • +
        +
          +
        • Fixed getting Geckoprofile on Android when you do not specify Android package #1712.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[pagexray 4.4.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 + + 2022-02-04T00:00:00.000Z + Added +
          +
        • Fallback if mime types aren't mapped and use file endings. At the moment we fallback for some of the font types #109.
        ]]>
        @@ -138,9 +442,10 @@ <![CDATA[chrome-har 0.13.0]]> https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 - - 2022-02-24T13:43:37.431Z - + + 2022-02-04T00:00:00.000Z + Added +
        • Add _isLinkPreload on the request object if it is isLinkPreload #94.
        ]]>
        @@ -149,12 +454,684 @@ https://www.sitespeed.io + + <![CDATA[throttle 3.1.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 + + 2021-12-26T00:00:00.000Z + Added +
          +
        • Add support for setting packet loss. Add --packetLoss and set the loss in percentage.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach-core 7.0.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.0.0 + + 2021-12-01T00:00:00.000Z + Added +
          +
        • Updated third-party-web to 0.12.6.
        • +
        +
          +
        • Use Chrome(ium) render blocking information to know if a request is render blocking or not #66.
        • +
        +
          +
        • Report offending JavaScript assets if the JavaScript max limits kicks in #70.
        • +
        +
          +
        • New largest contentful paint advice #76.
        • +
        +
          +
        • New first contentful paint advice #77.
        • +
        +
          +
        • Added TBT in the CPU longtask advice #80.
        • +
        +
          +
        • Report content and transfer size for offending URLs #81.
        • +
        +
          +
        • Report offending assets with transfer/content size for page size limit #82.
        • +
        +

        Fixed

        + + +
          +
        • Removed mentions aboout server push #69
        • +
        +
          +
        • Added more information on how to debug CPU advice #71.
        • +
        +

        Changed

        +
          +
        • Moved AMP advice to best practice instead of privacy #67.
        • +
        +
          +
        • Increased favicon max size advice from 5 to 10 kb #68
        • +
        +
          +
        • Renamed the fastRender advice to avoidRenderBlocking #73
        • +
        +
          +
        • Remove the third party async advice #74
        • +
        +
          +
        • Updated the layout shift advice to use cumulative layout shift #75
        • +
        +
          +
        • Changed id of the Google Tag Manager advice #79
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach 7.0.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 + + 2021-12-01T00:00:00.000Z + Added +
          +
        • Updated to use latest Coach core and Browertime.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach 6.4.3]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#6.4.3 + + 2021-10-15T00:00:00.000Z + Added +
          +
        • Updated to use latest Browsertime with latest Chromedriver
        • +
        +
          +
        • Updated Docker container to use latest Chrome/Firefox
        • +
        +
          +
        • Use Browsertime 11.0.0
        • +
        +
          +
        • Use Coach-code 6.0
        • +
        +
          +
        • Use latest Firefox and Chrome
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[throttle 3.0.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.0.0 + + 2021-08-09T00:00:00.000Z + Changed +
          +
        • When you run on Mac OS we changed so localhost traffic is not throttled by default. To throttle on localhost use --localhost. This makes sence if you use WebDriver to drive your browser on your local machine. And Mac OS now works the same as Linux.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[throttle 2.1.2]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.2 + + 2021-07-29T00:00:00.000Z + Fixed +
          +
        • Fix breakage when multiple default routes are declared , thank you Andy Richardson for PR #62.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[pagexray 4.3.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 + + 2021-07-21T00:00:00.000Z + Added +
          +
        • Added missing in_body_parser_blocking render blocking info for Chrome.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach-core 6.4.3]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.3 + + 2021-07-21T00:00:00.000Z + Fixed +
          +
        • Updated to latest PageXray and Third patrty web 0.12.4.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach-core 6.4.2]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.2 + + 2021-07-05T00:00:00.000Z + Fixed +
          +
        • Make sure JQuery refs are set back to original ref #62 see #61.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach-core 6.4.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.1 + + 2021-06-23T00:00:00.000Z + Fixed +
          +
        • Use all headers for Wappalyzer (before only the main document was used) #60.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[pagexray 4.3.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 + + 2021-06-02T00:00:00.000Z + Added +
          +
        • Include request method per asset #105.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach-core 6.4.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.0 + + 2021-06-02T00:00:00.000Z + Added +
          +
        • Updated to PageXray 4.2.0 that adds support for getting render blocking info in Chrome.
        • +
        +
          +
        • Update wappalyzer-core from 6.5.32 to 6.6.0 #57
        • +
        +

        Fixed

        +
          +
        • Only look for GET request for private and caching headers #55. See #53.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[pagexray 4.2.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.2.0 + + 2021-05-28T00:00:00.000Z + Added +
          +
        • Attach info about render blocking assets coming/working in Chrome 92 #104.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach-core 6.3.3]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.3 + + 2021-04-14T00:00:00.000Z + Fixed + +]]> + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach-core 6.3.2]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.2 + + 2021-04-13T00:00:00.000Z + Fixed + +]]> + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach-core 6.3.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.1 + + 2021-04-09T00:00:00.000Z + Fixed +
          +
        • Better check for the new FLoC privacy advice.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach-core 6.3.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 + + 2021-04-09T00:00:00.000Z + Added +
          +
        • New privacy advice that looks for header to disable of FLoC in Chrome.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[pagexray 4.1.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.1.0 + + 2021-04-08T00:00:00.000Z + Added +
          +
        • Attach Google Web Vitals data from Browsertime #101.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[throttle 2.1.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.1 + + 2021-03-19T00:00:00.000Z + Fixed +
          +
        • A better check for missing net-tools on Linux, thank you Radu Micu for the PR #56.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[throttle 2.1.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.0 + + 2021-03-10T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[pagexray 4.0.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.0.0 + + 2020-12-12T00:00:00.000Z + Changed +
          +
        • The new header structure actually sucked. Instead follow other tools and flatten headers returning an array #98.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[pagexray 3.1.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.1 + + 2020-12-11T00:00:00.000Z + Fixed +
          +
        • Ooops, missed to expose the third party cookie data #97.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[pagexray 3.1.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.0 + + 2020-12-11T00:00:00.000Z + Added +
          +
        • Get third party domains for cookies #96.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[pagexray 3.0.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.0.0 + + 2020-12-11T00:00:00.000Z + Added +
          +
        • PageXray can categorise connections as H3 #95.
        • +
        +

        Fixed

        +
          +
        • Getting cookies was broken. Fixed in #92, #93 and #94.
        • +
        +

        Changed

        +
          +
        • Request/response headers are now returned with name/value keys to handle headers with the same name. This will only affect you if you get assets from PageXray #93.
        • +
        +
          +
        • Removed cookie statistics field since it was broken. Report number of first and third party cookies instead.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[pagexray 2.6.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 + + 2020-11-13T00:00:00.000Z + Added +
          +
        • If an asset has the HTML/text content it will be added to the asset section #90.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[chrome-har 0.12.0]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.12.0 + + 2020-10-29T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[throttle 2.0.2]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.2 + + 2020-09-10T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[chrome-har 0.11.12]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.12 + + 2020-09-09T00:00:00.000Z + Fixed +
          +
        • Removed test directory from the release, thank you Yury Michurin for the PR #75.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[throttle 2.0.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 + + 2020-08-22T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[chrome-har 0.11.11]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.11 + + 2020-08-06T00:00:00.000Z + Fixed + +]]> + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[chrome-har 0.11.10]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.10 + + 2020-07-29T00:00:00.000Z + Added +
          +
        • Parse extra info events (parse extra request data from the Network.requestWillBeSentExtraInfo event and parse extra response data from the Network.responseReceivedExtraInfo event), thank you Michael Dijkstra for the PR #71.
        • +
        +
          +
        • Update to day-js 1.8.31.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[chrome-har 0.11.9]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.9 + + 2020-05-26T00:00:00.000Z + Fixed +
          +
        • Updated dependencies: dayjs - 1.8.27, debug: 4.1.1, tough-cookie - 4.0.0, uuid - 8.0.0
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach 5.0.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#5.0.0 + + 2020-03-11T00:00:00.000Z + Changed +
          +
        • We moved out the core functionality to coach-core. This makes it easy to use the Coach in your own code.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[chrome-har 0.11.7]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.7 + + 2020-03-09T00:00:00.000Z + Fixed +
          +
        • And excluded the shrinkwrap file again.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[chrome-har 0.11.6]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.6 + + 2020-03-09T00:00:00.000Z + Fixed +
          +
        • Exclude the test folder from the release.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach 4.5.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.5.0 + + 2020-02-20T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach 4.4.1]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.1 + + 2020-02-07T00:00:00.000Z + Fixed +
          +
        • Upgraded to Browsertime 8.0.1
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach 4.4.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.0 + + 2020-02-05T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[humble 0.2.0]]> + https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.2.0 + + 2020-01-11T00:00:00.000Z + Added +
          +
        • Updated throttle frontend to latest version where you can see throttling profiles set by using the API and with custom throttling support.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        + + <![CDATA[coach 4.3.1]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.1 + + 2020-01-10T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach 4.3.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.0 + + 2019-12-12T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[coach 4.2.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.2.0 + + 2019-11-02T00:00:00.000Z + + Sitespeed.io + https://www.sitespeed.io + + <![CDATA[compare 1.0.0]]> https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#1.0.0 - - 2021-10-29T18:25:09.436Z - + + 2018-11-28T00:00:00.000Z + Added +
        • Added support for using Github gists see #34.
          @@ -172,6 +1149,7 @@
          • Added support for showing changes in request/responses if you compare the same page #63.
          +

          Changed

          • New internal structure and use the new configuration object all the way.
          @@ -182,12 +1160,155 @@ - <![CDATA[chrome-trace 0.2.2]]> - https://github.com/sitespeedio/chrome-trace/blob/main/CHANGELOG.md#0.2.2 - - 2021-10-29T18:25:09.435Z - -
        • Catch if we can't find the first thread event. We now throws an exception (that's not optimal since we don't know what's wrong) with the info of what's wrong. We can change that later on.
        • + <![CDATA[compare 0.6.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.6.0 + + 2018-10-17T00:00:00.000Z + Added +
            +
          • Sort CPU events by name to make it easier to spot regressions
          • +
          +
            +
          • Upgraded to latest release of template7
          • +
          +
            +
          • Added more Visual Metrics.
          • +
          +
            +
          • Upgrad to PageXray 2.4.0
          • +
          +]]>
          + + Sitespeed.io + https://www.sitespeed.io + + + + <![CDATA[compare 0.5.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.1 + + 2018-06-01T00:00:00.000Z + Fixed +
            +
          • Layout -> Rendering in latest Browsertime.
          • +
          +
            +
          • Upgraded to PerfCascade 2.5.2 fixiing Edge tab bug
          • +
          +]]>
          + + Sitespeed.io + https://www.sitespeed.io + +
          + + <![CDATA[compare 0.5.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.0 + + 2018-04-05T00:00:00.000Z + Added +
            +
          • CPU metrics are now showed automatically.
          • +
          +
            +
          • Styled the PageXray info table to make it easier to read.
          • +
          +]]>
          + + Sitespeed.io + https://www.sitespeed.io + +
          + + <![CDATA[compare 0.4.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.1 + + 2018-04-04T00:00:00.000Z + Fixed +
            +
          • Major code refactoring to make it easier to do changes in the future.
          • +
          +
            +
          • Uploading files failed on Firefox.
          • +
          +]]>
          + + Sitespeed.io + https://www.sitespeed.io + +
          + + <![CDATA[compare 0.4.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.0 + + 2018-04-02T00:00:00.000Z + Added +
            +
          • Upgraded to PerfCascade 2.4.1
          • +
          +
            +
          • You can change/upload HAR files when you already compare two HARs.
          • +
          +

          Fixed

          +
            +
          • The layout in the PageXray table was dependent of the length of the URL. That could make some pages look really bad.
          • +
          +]]>
          + + Sitespeed.io + https://www.sitespeed.io + +
          + + <![CDATA[compare 0.3.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.3.0 + + 2018-03-30T00:00:00.000Z + Added +
            +
          • Automatically load the HAR files if both files are given in the URL . Thanks Ivru for the PR #15.
          • +
          +
            +
          • You can automatically load one HAR file by adding ?har1=URL&compare=1 as the full URL.
          • +
          +
            +
          • Updated to PageXray 2.2.1
          • +
          +
            +
          • You can now drag and drop one HAR file with multiple pages and compare the pages with each others #16.
          • +
          +]]>
          + + Sitespeed.io + https://www.sitespeed.io + +
          + + <![CDATA[compare 0.2.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.1 + + 2018-02-03T00:00:00.000Z + Fixed +
            +
          • Upgraded to PerfCascade 2.2.2 that makes HAR files from WebPageTest Linux render
          • +
          +
            +
          • Log errors to the console
          • +
          +]]>
          + + Sitespeed.io + https://www.sitespeed.io + +
          + + <![CDATA[compare 0.2.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.0 + + 2018-02-01T00:00:00.000Z + Added +
            +
          • Upgraded to PageXray 2.1.0 and added more CPU metrics
          ]]>
          diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index 6c7b46f7f..f3e2deace 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -3,8 +3,8 @@ sitespeed.io release feed https://www.sitespeed.io - Follow new releases of sitespeed.io tools - Fri, 11 Mar 2022 11:07:53 GMT + New releases and changelog feed of sitespeed.io + Fri, 11 Mar 2022 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -14,14 +14,14 @@ https://www.sitespeed.io All rights reserved 2022, Peter Hedenskog and team - Performance <![CDATA[sitespeed.io 23.5.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md# + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 - Fri, 11 Mar 2022 11:07:53 GMT - + Fri, 11 Mar 2022 00:00:00 GMT + Added +
          • The -slim Docker container now uses Firefox 98.
            @@ -40,16 +40,67 @@ - <![CDATA[browsertime 15.3.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 - Mon, 07 Mar 2022 13:59:36 GMT - + <![CDATA[sitespeed.io 23.4.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + Wed, 09 Mar 2022 00:00:00 GMT + Added +
              +
            • Firefox 98 in the Docker container #3592.
            • +
            +
              +
            • Added link to each run in the side by side metric page, making it easier to go to the correct run #3593.
            • +
            +]]>
            + +
            + + <![CDATA[sitespeed.io 23.3.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 + Mon, 07 Mar 2022 00:00:00 GMT + Added +
              +
            • The +1 container is upgraded to use Lighthouse 9.4.0.
            • +
            + +]]>
            + +
            + + <![CDATA[sitespeed.io 23.2.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 + Sat, 05 Mar 2022 00:00:00 GMT + Added +
              +
            • Updated to Chrome and Edge 99 in the Docker container. Updated to Chromedriver and Edgedriver 99 #3590.
            • +
            +

            Fixed

            +
              +
            • If you use alias and budget files, the outcome (result budget json and others) should use the alias of the URL instead of the URL #3582.
            • +
            +
              +
            • Ignore sustainable.setup messages when storing analysistorer #3578.
            • +
            +]]>
            + +
            + + <![CDATA[browsertime 15.2.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 + Fri, 04 Mar 2022 00:00:00 GMT + Added +
            • Updated to Chromedriver and Edgedriver 99.
            • Updated Docker container to use Chrome and Edge 99 #1738.
            +

            Fixed

            • Added more view ports for emulated mobile in Chrome #1736.
            @@ -57,77 +108,819 @@
            - <![CDATA[throttle 3.1.0]]> - https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 - Thu, 24 Feb 2022 13:43:37 GMT - -
          • Add support for setting packet loss. Add --packetLoss and set the loss in percentage.
          • + <![CDATA[sitespeed.io 23.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 + Thu, 24 Feb 2022 00:00:00 GMT + Added +
              +
            • Updated Browsertime that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser.
            • +
            +
              +
            • Show Browsertime version in runtime settings #3575.
            • +
            +

            Fixed

            +
              +
            • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
            ]]>
            +
            - <![CDATA[humble 0.1.2]]> - https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.1.2 - Thu, 24 Feb 2022 13:43:37 GMT - -
          • Updated throttle frontend to latest version where you can see throttling profiles set by using the API and with custom throttling support.
          • + <![CDATA[browsertime 15.1.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.1 + Thu, 24 Feb 2022 00:00:00 GMT + Fixed + ]]> +
            - <![CDATA[pagexray 4.4.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 - Thu, 24 Feb 2022 13:43:37 GMT - -
          • Fallback if mime types aren't mapped and use file endings. At the moment we fallback for some of the font types #109.
          • + <![CDATA[browsertime 15.1.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.0 + Thu, 24 Feb 2022 00:00:00 GMT + Added +
              +
            • Collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser #1735.
            ]]>
            - + +
            + + <![CDATA[sitespeed.io 23.0.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 + Mon, 21 Feb 2022 00:00:00 GMT + Fixed +
              +
            • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
            • +
            +]]>
            + +
            + + <![CDATA[sitespeed.io 23.0.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 + Mon, 21 Feb 2022 00:00:00 GMT + Added +
              +
            • Use Browsertime 15.0.0.
            • +
            +
              +
            • Show alias name in the budget report page #3572.
            • +
            +

            Fixed

            +
              +
            • Fix broken JUnit output. Thank you rghetu for finding it #3569.
            • +
            +
              +
            • When comparing metrics side by side for different runs, mean/median and stddev was sometimes broken for some timing metrics. Fixed with #3573
            • +
            +

            Breaking changes

            +
              +
            • In this release we updated to Browsertime 15.0.0 that drops built in support for TSProxy. The reason to drop TSProxy is that it only works in Python 2 and the sunset for Python 2 was January 1, 2020. If you still need TSProxy you can set it up yourself.
            • +
            +
              +
            • Browsertime also drop support for getting visual metrics from the trace log. It was added to evaluate if it could be a compliment to the video visual metrics but it was not. Removing it also decreased the number of dependencies in Browsertime.
            • +
            +
              +
            • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
            • +
            +]]>
            + +
            + + <![CDATA[browsertime 15.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.1 + Mon, 21 Feb 2022 00:00:00 GMT + Fixed +
              +
            • Make sure connectivity is only set before the test begins #1733.
            • +
            +]]>
            + +
            + + <![CDATA[browsertime 15.0.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.0 + Sun, 20 Feb 2022 00:00:00 GMT + Added +
              +
            • New alias for getting the Chrome trace log: --chrome.trace #1728.
            • +
            +
              +
            • On OS X and Linux the DNS will be flushed between runs. You can disable that with --disableDNSFlush true #1732.
            • +
            +

            Fixed

            + +
              +
            • Moved test to Ava instead of mocha and moved most testing against a local HTTP server instead of internet #1725.
            • +
            +

            Changed

            +
              +
            • Removed the built in support for TSProxy #1718. TSProxy only worked with Python 2.7 and we want to remove that dependency.
            • +
            +
              +
            • Removed support for using speedline and the CLI arg --chrome.visualMetricsUsingTrace #1727.
            • +
            +]]>
            + +
            + + <![CDATA[sitespeed.io 22.1.2]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 + Wed, 09 Feb 2022 00:00:00 GMT + Fixed +
              +
            • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
            • +
            +]]>
            + +
            + + <![CDATA[browsertime 14.21.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 + Wed, 09 Feb 2022 00:00:00 GMT + Fixed +
              +
            • Always disable the new ChromeWhaxyNewUI splash screen in Chrome #1717.
            • +
            +
              +
            • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
            • +
            +]]>
            + +
            + + <![CDATA[sitespeed.io 22.1.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 + Tue, 08 Feb 2022 00:00:00 GMT + Fixed +
              +
            • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
            • +
            +]]>
            + +
            + + <![CDATA[sitespeed.io 22.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 + Tue, 08 Feb 2022 00:00:00 GMT + Added +
              +
            • Upgraded to latest Browsertime with Egdedriver 98.
            • +
            +
              +
            • Upgraded to Edge 98 and Firefox 97 in the (amd64) Docker containers.
            • +
            +]]>
            + +
            + + <![CDATA[browsertime 14.21.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 + Tue, 08 Feb 2022 00:00:00 GMT + Added +
              +
            • Upgraded to Egdedriver 98
            • +
            +
              +
            • Upgraded to Edge 98 and Firefox 97 in the Docker container
            • +
            +]]>
            + +
            + + <![CDATA[browsertime 14.20.3]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 + Mon, 07 Feb 2022 00:00:00 GMT + Fixed +
              +
            • There's a new setup how we build Docker releases and this release uses the new pipeline.
            • +
            +]]>
            + +
            + + <![CDATA[browsertime 14.20.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 + Mon, 07 Feb 2022 00:00:00 GMT + Added +
              +
            • Docker container for both amd64 and arm64.
            • +
            +]]>
            +
            <![CDATA[coach-core 7.1.0]]> - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md# + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 - Thu, 24 Feb 2022 13:43:37 GMT - + Sun, 06 Feb 2022 00:00:00 GMT + Added +
            • Upgraded to PageXray 4.0.0.
            • Upgraded to third party web 0.13.0.
            +]]>
            + +
            + + <![CDATA[browsertime 14.19.2]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 + Sat, 05 Feb 2022 00:00:00 GMT + Fixed +
              +
            • Upgraded to Geckodriver 0.30.0 #1710.
            • +
            +
              +
            • Upgraded to Chromedriver that always looks for Chromedriver in PATH for arm64.
            • +
            +
              +
            • Fixed getting Geckoprofile on Android when you do not specify Android package #1712.
            • +
            +]]>
            + +
            + + <![CDATA[pagexray 4.4.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 + Fri, 04 Feb 2022 00:00:00 GMT + Added +
              +
            • Fallback if mime types aren't mapped and use file endings. At the moment we fallback for some of the font types #109.
            • +
            +]]>
            + +
            + + <![CDATA[chrome-har 0.13.0]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 + Fri, 04 Feb 2022 00:00:00 GMT + Added +
              +
            • Add _isLinkPreload on the request object if it is isLinkPreload #94.
            • +
            +]]>
            +
            + + <![CDATA[throttle 3.1.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 + Sun, 26 Dec 2021 00:00:00 GMT + Added +
              +
            • Add support for setting packet loss. Add --packetLoss and set the loss in percentage.
            • +
            +]]>
            +
            + + <![CDATA[coach-core 7.0.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.0.0 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.0.0 + Wed, 01 Dec 2021 00:00:00 GMT + Added +
              +
            • Updated third-party-web to 0.12.6.
            • +
            +
              +
            • Use Chrome(ium) render blocking information to know if a request is render blocking or not #66.
            • +
            +
              +
            • Report offending JavaScript assets if the JavaScript max limits kicks in #70.
            • +
            +
              +
            • New largest contentful paint advice #76.
            • +
            +
              +
            • New first contentful paint advice #77.
            • +
            +
              +
            • Added TBT in the CPU longtask advice #80.
            • +
            +
              +
            • Report content and transfer size for offending URLs #81.
            • +
            +
              +
            • Report offending assets with transfer/content size for page size limit #82.
            • +
            +

            Fixed

            + + +
              +
            • Removed mentions aboout server push #69
            • +
            +
              +
            • Added more information on how to debug CPU advice #71.
            • +
            +

            Changed

            +
              +
            • Moved AMP advice to best practice instead of privacy #67.
            • +
            +
              +
            • Increased favicon max size advice from 5 to 10 kb #68
            • +
            +
              +
            • Renamed the fastRender advice to avoidRenderBlocking #73
            • +
            +
              +
            • Remove the third party async advice #74
            • +
            +
              +
            • Updated the layout shift advice to use cumulative layout shift #75
            • +
            +
              +
            • Changed id of the Google Tag Manager advice #79
            • +
            ]]>
            <![CDATA[coach 7.0.0]]> - https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md# + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#7.0.0 - Thu, 24 Feb 2022 13:43:37 GMT - + Wed, 01 Dec 2021 00:00:00 GMT + Added +
            • Updated to use latest Coach core and Browertime.
            ]]>
            - <![CDATA[chrome-har 0.13.0]]> - https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.13.0 - Thu, 24 Feb 2022 13:43:37 GMT - -
          • Add _isLinkPreload on the request object if it is isLinkPreload #94.
          • + <![CDATA[coach 6.4.3]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#6.4.3 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#6.4.3 + Fri, 15 Oct 2021 00:00:00 GMT + Added +
              +
            • Updated to use latest Browsertime with latest Chromedriver
            • +
            +
              +
            • Updated Docker container to use latest Chrome/Firefox
            • +
            +
              +
            • Use Browsertime 11.0.0
            • +
            +
              +
            • Use Coach-code 6.0
            • +
            +
              +
            • Use latest Firefox and Chrome
            • +
            +]]>
            + +
            + + <![CDATA[throttle 3.0.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.0.0 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.0.0 + Mon, 09 Aug 2021 00:00:00 GMT + Changed +
              +
            • When you run on Mac OS we changed so localhost traffic is not throttled by default. To throttle on localhost use --localhost. This makes sence if you use WebDriver to drive your browser on your local machine. And Mac OS now works the same as Linux.
            ]]>
            + + <![CDATA[throttle 2.1.2]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.2 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.2 + Thu, 29 Jul 2021 00:00:00 GMT + Fixed +
              +
            • Fix breakage when multiple default routes are declared , thank you Andy Richardson for PR #62.
            • +
            +]]>
            +
            + + <![CDATA[pagexray 4.3.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 + Wed, 21 Jul 2021 00:00:00 GMT + Added +
              +
            • Added missing in_body_parser_blocking render blocking info for Chrome.
            • +
            +]]>
            + +
            + + <![CDATA[coach-core 6.4.3]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.3 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.3 + Wed, 21 Jul 2021 00:00:00 GMT + Fixed +
              +
            • Updated to latest PageXray and Third patrty web 0.12.4.
            • +
            +]]>
            + +
            + + <![CDATA[coach-core 6.4.2]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.2 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.2 + Mon, 05 Jul 2021 00:00:00 GMT + Fixed +
              +
            • Make sure JQuery refs are set back to original ref #62 see #61.
            • +
            +]]>
            + +
            + + <![CDATA[coach-core 6.4.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.1 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.1 + Wed, 23 Jun 2021 00:00:00 GMT + Fixed +
              +
            • Use all headers for Wappalyzer (before only the main document was used) #60.
            • +
            +]]>
            + +
            + + <![CDATA[pagexray 4.3.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 + Wed, 02 Jun 2021 00:00:00 GMT + Added +
              +
            • Include request method per asset #105.
            • +
            +]]>
            + +
            + + <![CDATA[coach-core 6.4.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.0 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.0 + Wed, 02 Jun 2021 00:00:00 GMT + Added +
              +
            • Updated to PageXray 4.2.0 that adds support for getting render blocking info in Chrome.
            • +
            +
              +
            • Update wappalyzer-core from 6.5.32 to 6.6.0 #57
            • +
            +

            Fixed

            +
              +
            • Only look for GET request for private and caching headers #55. See #53.
            • +
            +]]>
            + +
            + + <![CDATA[pagexray 4.2.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.2.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.2.0 + Fri, 28 May 2021 00:00:00 GMT + Added +
              +
            • Attach info about render blocking assets coming/working in Chrome 92 #104.
            • +
            +]]>
            + +
            + + <![CDATA[coach-core 6.3.3]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.3 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.3 + Wed, 14 Apr 2021 00:00:00 GMT + Fixed + +]]> + + + + <![CDATA[coach-core 6.3.2]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.2 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.2 + Tue, 13 Apr 2021 00:00:00 GMT + Fixed + +]]> + + + + <![CDATA[coach-core 6.3.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.1 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.1 + Fri, 09 Apr 2021 00:00:00 GMT + Fixed +
              +
            • Better check for the new FLoC privacy advice.
            • +
            +]]>
            + +
            + + <![CDATA[coach-core 6.3.0]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 + Fri, 09 Apr 2021 00:00:00 GMT + Added +
              +
            • New privacy advice that looks for header to disable of FLoC in Chrome.
            • +
            +]]>
            + +
            + + <![CDATA[pagexray 4.1.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.1.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.1.0 + Thu, 08 Apr 2021 00:00:00 GMT + Added +
              +
            • Attach Google Web Vitals data from Browsertime #101.
            • +
            +]]>
            + +
            + + <![CDATA[throttle 2.1.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.1 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.1 + Fri, 19 Mar 2021 00:00:00 GMT + Fixed +
              +
            • A better check for missing net-tools on Linux, thank you Radu Micu for the PR #56.
            • +
            +]]>
            +
            + + <![CDATA[throttle 2.1.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.0 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.1.0 + Wed, 10 Mar 2021 00:00:00 GMT + + + <![CDATA[pagexray 4.0.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.0.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.0.0 + Sat, 12 Dec 2020 00:00:00 GMT + Changed +
              +
            • The new header structure actually sucked. Instead follow other tools and flatten headers returning an array #98.
            • +
            +]]>
            + +
            + + <![CDATA[pagexray 3.1.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.1 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.1 + Fri, 11 Dec 2020 00:00:00 GMT + Fixed +
              +
            • Ooops, missed to expose the third party cookie data #97.
            • +
            +]]>
            + +
            + + <![CDATA[pagexray 3.1.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.1.0 + Fri, 11 Dec 2020 00:00:00 GMT + Added +
              +
            • Get third party domains for cookies #96.
            • +
            +]]>
            + +
            + + <![CDATA[pagexray 3.0.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.0.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#3.0.0 + Fri, 11 Dec 2020 00:00:00 GMT + Added +
              +
            • PageXray can categorise connections as H3 #95.
            • +
            +

            Fixed

            +
              +
            • Getting cookies was broken. Fixed in #92, #93 and #94.
            • +
            +

            Changed

            +
              +
            • Request/response headers are now returned with name/value keys to handle headers with the same name. This will only affect you if you get assets from PageXray #93.
            • +
            +
              +
            • Removed cookie statistics field since it was broken. Report number of first and third party cookies instead.
            • +
            +]]>
            + +
            + + <![CDATA[pagexray 2.6.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 + Fri, 13 Nov 2020 00:00:00 GMT + Added +
              +
            • If an asset has the HTML/text content it will be added to the asset section #90.
            • +
            +]]>
            + +
            + + <![CDATA[chrome-har 0.12.0]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.12.0 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.12.0 + Thu, 29 Oct 2020 00:00:00 GMT + + + <![CDATA[throttle 2.0.2]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.2 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.2 + Thu, 10 Sep 2020 00:00:00 GMT + + + <![CDATA[chrome-har 0.11.12]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.12 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.12 + Wed, 09 Sep 2020 00:00:00 GMT + Fixed +
              +
            • Removed test directory from the release, thank you Yury Michurin for the PR #75.
            • +
            +]]>
            +
            + + <![CDATA[throttle 2.0.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 + Sat, 22 Aug 2020 00:00:00 GMT + + + <![CDATA[chrome-har 0.11.11]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.11 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.11 + Thu, 06 Aug 2020 00:00:00 GMT + Fixed + +]]> + + + <![CDATA[chrome-har 0.11.10]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.10 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.10 + Wed, 29 Jul 2020 00:00:00 GMT + Added +
              +
            • Parse extra info events (parse extra request data from the Network.requestWillBeSentExtraInfo event and parse extra response data from the Network.responseReceivedExtraInfo event), thank you Michael Dijkstra for the PR #71.
            • +
            +
              +
            • Update to day-js 1.8.31.
            • +
            +]]>
            +
            + + <![CDATA[chrome-har 0.11.9]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.9 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.9 + Tue, 26 May 2020 00:00:00 GMT + Fixed +
              +
            • Updated dependencies: dayjs - 1.8.27, debug: 4.1.1, tough-cookie - 4.0.0, uuid - 8.0.0
            • +
            +]]>
            +
            + + <![CDATA[coach 5.0.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#5.0.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#5.0.0 + Wed, 11 Mar 2020 00:00:00 GMT + Changed +
              +
            • We moved out the core functionality to coach-core. This makes it easy to use the Coach in your own code.
            • +
            +]]>
            + +
            + + <![CDATA[chrome-har 0.11.7]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.7 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.7 + Mon, 09 Mar 2020 00:00:00 GMT + Fixed +
              +
            • And excluded the shrinkwrap file again.
            • +
            +]]>
            +
            + + <![CDATA[chrome-har 0.11.6]]> + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.6 + https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.6 + Mon, 09 Mar 2020 00:00:00 GMT + Fixed +
              +
            • Exclude the test folder from the release.
            • +
            +]]>
            +
            + + <![CDATA[coach 4.5.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.5.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.5.0 + Thu, 20 Feb 2020 00:00:00 GMT + + + + <![CDATA[coach 4.4.1]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.1 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.1 + Fri, 07 Feb 2020 00:00:00 GMT + Fixed +
              +
            • Upgraded to Browsertime 8.0.1
            • +
            +]]>
            + +
            + + <![CDATA[coach 4.4.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.4.0 + Wed, 05 Feb 2020 00:00:00 GMT + + + + <![CDATA[humble 0.2.0]]> + https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.2.0 + https://github.com/sitespeedio/humble/blob/main/CHANGELOG.md#0.2.0 + Sat, 11 Jan 2020 00:00:00 GMT + Added +
              +
            • Updated throttle frontend to latest version where you can see throttling profiles set by using the API and with custom throttling support.
            • +
            +]]>
            +
            + + <![CDATA[coach 4.3.1]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.1 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.1 + Fri, 10 Jan 2020 00:00:00 GMT + + + + <![CDATA[coach 4.3.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.3.0 + Thu, 12 Dec 2019 00:00:00 GMT + + + + <![CDATA[coach 4.2.0]]> + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.2.0 + https://github.com/sitespeedio/coach/blob/main/CHANGELOG.md#4.2.0 + Sat, 02 Nov 2019 00:00:00 GMT + + <![CDATA[compare 1.0.0]]> - https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md# + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#1.0.0 https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#1.0.0 - Fri, 29 Oct 2021 18:25:09 GMT - + Wed, 28 Nov 2018 00:00:00 GMT + Added +
            • Added support for using Github gists see #34.
              @@ -145,6 +938,7 @@
              • Added support for showing changes in request/responses if you compare the same page #63.
              +

              Changed

              • New internal structure and use the new configuration object all the way.
              @@ -152,14 +946,137 @@ - <![CDATA[chrome-trace 0.2.2]]> - https://github.com/sitespeedio/chrome-trace/blob/main/CHANGELOG.md# - https://github.com/sitespeedio/chrome-trace/blob/main/CHANGELOG.md#0.2.2 - Fri, 29 Oct 2021 18:25:09 GMT - -
            • Catch if we can't find the first thread event. We now throws an exception (that's not optimal since we don't know what's wrong) with the info of what's wrong. We can change that later on.
            • + <![CDATA[compare 0.6.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.6.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.6.0 + Wed, 17 Oct 2018 00:00:00 GMT + Added +
                +
              • Sort CPU events by name to make it easier to spot regressions
              • +
              +
                +
              • Upgraded to latest release of template7
              • +
              +
                +
              • Added more Visual Metrics.
              • +
              +
                +
              • Upgrad to PageXray 2.4.0
              ]]>
              + +
              + + <![CDATA[compare 0.5.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.1 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.1 + Fri, 01 Jun 2018 00:00:00 GMT + Fixed +
                +
              • Layout -> Rendering in latest Browsertime.
              • +
              +
                +
              • Upgraded to PerfCascade 2.5.2 fixiing Edge tab bug
              • +
              +]]>
              + +
              + + <![CDATA[compare 0.5.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.5.0 + Thu, 05 Apr 2018 00:00:00 GMT + Added +
                +
              • CPU metrics are now showed automatically.
              • +
              +
                +
              • Styled the PageXray info table to make it easier to read.
              • +
              +]]>
              + +
              + + <![CDATA[compare 0.4.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.1 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.1 + Wed, 04 Apr 2018 00:00:00 GMT + Fixed +
                +
              • Major code refactoring to make it easier to do changes in the future.
              • +
              +
                +
              • Uploading files failed on Firefox.
              • +
              +]]>
              + +
              + + <![CDATA[compare 0.4.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.4.0 + Mon, 02 Apr 2018 00:00:00 GMT + Added +
                +
              • Upgraded to PerfCascade 2.4.1
              • +
              +
                +
              • You can change/upload HAR files when you already compare two HARs.
              • +
              +

              Fixed

              +
                +
              • The layout in the PageXray table was dependent of the length of the URL. That could make some pages look really bad.
              • +
              +]]>
              + +
              + + <![CDATA[compare 0.3.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.3.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.3.0 + Fri, 30 Mar 2018 00:00:00 GMT + Added +
                +
              • Automatically load the HAR files if both files are given in the URL . Thanks Ivru for the PR #15.
              • +
              +
                +
              • You can automatically load one HAR file by adding ?har1=URL&compare=1 as the full URL.
              • +
              +
                +
              • Updated to PageXray 2.2.1
              • +
              +
                +
              • You can now drag and drop one HAR file with multiple pages and compare the pages with each others #16.
              • +
              +]]>
              + +
              + + <![CDATA[compare 0.2.1]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.1 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.1 + Sat, 03 Feb 2018 00:00:00 GMT + Fixed +
                +
              • Upgraded to PerfCascade 2.2.2 that makes HAR files from WebPageTest Linux render
              • +
              +
                +
              • Log errors to the console
              • +
              +]]>
              + +
              + + <![CDATA[compare 0.2.0]]> + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.0 + https://github.com/sitespeedio/compare/blob/main/CHANGELOG.md#0.2.0 + Thu, 01 Feb 2018 00:00:00 GMT + Added +
                +
              • Upgraded to PageXray 2.1.0 and added more CPU metrics
              • +
              +]]>
              +
              \ No newline at end of file diff --git a/docs/feed/sitespeed.io.atom b/docs/feed/sitespeed.io.atom index d23282af4..5d40f52c3 100644 --- a/docs/feed/sitespeed.io.atom +++ b/docs/feed/sitespeed.io.atom @@ -17,9 +17,9 @@ All rights reserved 2022, Peter Hedenskog and team - <![CDATA[sitespeed.io 23.4.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 - + <![CDATA[sitespeed.io 23.5.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 + 2022-03-11T00:00:00.000Z Added
                diff --git a/docs/feed/sitespeed.io.rss b/docs/feed/sitespeed.io.rss index 50c31c889..1ba1c8370 100644 --- a/docs/feed/sitespeed.io.rss +++ b/docs/feed/sitespeed.io.rss @@ -17,9 +17,9 @@ Web Performance - <![CDATA[sitespeed.io 23.4.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.4.0 + <![CDATA[sitespeed.io 23.5.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 Fri, 11 Mar 2022 00:00:00 GMT Added
                  From 5974e2c262a29789f69e7c81ce5c3c8fb840d35f Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 22 Mar 2022 18:09:30 +0100 Subject: [PATCH 035/105] Use path context so .dockerignore is not ignored (#3605) https://github.com/sitespeedio/sitespeed.io/issues/3602 --- .github/workflows/building-docker-release.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/building-docker-release.yml b/.github/workflows/building-docker-release.yml index 90d4790d2..64fba1dd4 100644 --- a/.github/workflows/building-docker-release.yml +++ b/.github/workflows/building-docker-release.yml @@ -29,6 +29,7 @@ jobs: name: Build and push sitespeed.io uses: docker/build-push-action@v2 with: + context: . platforms: linux/amd64,linux/arm64 push: true tags: sitespeedio/sitespeed.io:${{steps.tag.outputs.tag}},sitespeedio/sitespeed.io:latest @@ -36,6 +37,7 @@ jobs: name: Build and push sitespeed.io+1 uses: docker/build-push-action@v2 with: + context: . platforms: linux/amd64,linux/arm64 file: ./docker/Dockerfile-plus1 build-args: version=${{steps.tag.outputs.tag}} @@ -45,6 +47,7 @@ jobs: name: Build and push sitespeed.io+wpt uses: docker/build-push-action@v2 with: + context: . platforms: linux/amd64,linux/arm64 file: ./docker/Dockerfile-webpagetest build-args: version=${{steps.tag.outputs.tag}} @@ -54,6 +57,7 @@ jobs: name: Build and push sitespeed.io-slim uses: docker/build-push-action@v2 with: + context: . platforms: linux/amd64,linux/arm64 file: ./Dockerfile-slim build-args: version=${{steps.tag.outputs.tag}} From a84d0dbd34b39bc47b551d106e6b55119c63a4a1 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 22 Mar 2022 18:09:49 +0100 Subject: [PATCH 036/105] Include shrinkwrap when building (#3604) * Include shrinkwrap when building * include docker again --- .dockerignore | 2 ++ Dockerfile | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.dockerignore b/.dockerignore index 552fe5a10..8ce97589b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,4 +2,6 @@ !bin !lib !package.json +!LICENSE +!npm-shrinkwrap.json !docker diff --git a/Dockerfile b/Dockerfile index 859c84c2e..29a40774c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,7 +26,8 @@ RUN wpr installroot --https_cert_file /webpagereplay/certs/wpr_cert.pem --https_ RUN mkdir -p /usr/src/app WORKDIR /usr/src/app -COPY package.* /usr/src/app/ +COPY package.json /usr/src/app/ +COPY npm-shrinkwrap.json /usr/src/app/ RUN npm install --production && npm cache clean --force COPY . /usr/src/app @@ -37,7 +38,6 @@ RUN mkdir -m 0750 /root/.android ADD docker/adb/insecure_shared_adbkey /root/.android/adbkey ADD docker/adb/insecure_shared_adbkey.pub /root/.android/adbkey.pub - # Allow all users to run commands needed by sitespeedio/throttle via sudo # See https://github.com/sitespeedio/throttle/blob/main/lib/tc.js RUN echo 'ALL ALL=NOPASSWD: /usr/sbin/tc, /usr/sbin/route, /usr/sbin/ip' > /etc/sudoers.d/tc From cd56c648b466d33a77d289de1e53f0516e7368c7 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 22 Mar 2022 18:12:25 +0100 Subject: [PATCH 037/105] Update to latest NodeJS --- Dockerfile-slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile-slim b/Dockerfile-slim index f51472ab3..e2ea681ef 100644 --- a/Dockerfile-slim +++ b/Dockerfile-slim @@ -1,4 +1,4 @@ -FROM node:16.14.0-bullseye-slim +FROM node:16.14.2-bullseye-slim ARG TARGETPLATFORM=linux/amd64 From 3fcf5b0ac8b499a052482ae2b9b377506ad7308d Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 22 Mar 2022 19:13:02 +0100 Subject: [PATCH 038/105] Use latest NodeJS and Ubuntu container #3603 (#3606) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 29a40774c..ce296438a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM sitespeedio/webbrowsers:chrome-99.0-firefox-98.0-edge-99.0 +FROM sitespeedio/webbrowsers:chrome-99.0-firefox-98.0-edge-99.0-b ARG TARGETPLATFORM=linux/amd64 From 419c09e61039176f702674950c65096936f43b35 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 22 Mar 2022 21:00:19 +0100 Subject: [PATCH 039/105] changelog: docker updates --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index df8e72aec..3613b2615 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) + +## 23.5.1 - 2022-03-22 +### Fixed +* Updated to latest NodeJS and Ubuntu updates in the Docker container with some security updates[#3306](https://github.com/sitespeedio/sitespeed.io/pull/3606). Also updated the slim container with latest NodeJS. +* Make sure the shrinkwrap file is used when building the container [#3604](https://github.com/sitespeedio/sitespeed.io/pull/3604) and (hopefully) fix so that .dockerignore is not ignored when Github Actions build the containers. + ## 23.5.0 - 2022-03-11 + ### Added * The -slim Docker container now uses Firefox 98. * Updated Grafana to latest 8.4.3 in the Docker compose file. From 045c27557d66585f574bed341c786e071e1e57f5 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 22 Mar 2022 21:00:41 +0100 Subject: [PATCH 040/105] docs: redirect for feeds --- docs/_redirects | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 docs/_redirects diff --git a/docs/_redirects b/docs/_redirects new file mode 100644 index 000000000..b5a19d221 --- /dev/null +++ b/docs/_redirects @@ -0,0 +1,5 @@ +# Redirects from what the browser requests to what we serve +/feed/index.xml /feed/blog.xml +/feeds /feed/rss.xml +/feed /feed/rss.xml 302 +/rss /feed/rss.xml \ No newline at end of file From 1040728babd9bbd62cf97bb4058ac2a05f416555 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 22 Mar 2022 21:01:42 +0100 Subject: [PATCH 041/105] 23.5.1 --- npm-shrinkwrap.json | 4 ++-- package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 69379e4ce..29b6eea79 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.5.0", + "version": "23.5.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.5.0", + "version": "23.5.1", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index a8088b803..b63f17083 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.5.0", + "version": "23.5.1", "description": "Analyze the web performance of your site", "keywords": [ "performance", @@ -62,7 +62,7 @@ "feed": "4.2.2", "jsdoc": "^3.6.7", "license-checker": "^16.0.0", - "marked":"4.0.12", + "marked": "4.0.12", "mocha": "^5.0.4", "sass": "1.34.0", "prettier": "2.4.1", From 0a5b0ee441f027be79287b0c00a0eee9ba2dd91e Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 22 Mar 2022 21:30:54 +0100 Subject: [PATCH 042/105] Add missing checkout action --- .github/workflows/building-docker-release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/building-docker-release.yml b/.github/workflows/building-docker-release.yml index 64fba1dd4..27304254e 100644 --- a/.github/workflows/building-docker-release.yml +++ b/.github/workflows/building-docker-release.yml @@ -7,6 +7,9 @@ jobs: docker: runs-on: ubuntu-latest steps: + - + name: Checkout + uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 From 5987f81c10bd0142c1b2eaed0782bdc4d4b014bf Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 22 Mar 2022 21:31:54 +0100 Subject: [PATCH 043/105] changelog: version bump --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3613b2615..153505806 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) -## 23.5.1 - 2022-03-22 +## 23.5.2 - 2022-03-22 ### Fixed * Updated to latest NodeJS and Ubuntu updates in the Docker container with some security updates[#3306](https://github.com/sitespeedio/sitespeed.io/pull/3606). Also updated the slim container with latest NodeJS. * Make sure the shrinkwrap file is used when building the container [#3604](https://github.com/sitespeedio/sitespeed.io/pull/3604) and (hopefully) fix so that .dockerignore is not ignored when Github Actions build the containers. From 5c51a3e76b677dd0af58d68e22a42508f873c782 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 22 Mar 2022 21:32:35 +0100 Subject: [PATCH 044/105] 23.5.2 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 29b6eea79..d19b1341f 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.5.1", + "version": "23.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.5.1", + "version": "23.5.2", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index b63f17083..3bdc877c4 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.5.1", + "version": "23.5.2", "description": "Analyze the web performance of your site", "keywords": [ "performance", From 283297559f03f363d2eec86da0f2a1acd6d0fba0 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 22 Mar 2022 22:20:06 +0100 Subject: [PATCH 045/105] 23.5.2 --- docs/_includes/version/sitespeed.io.txt | 2 +- docs/feed/atom.xml | 74 ++++++++++++------------- docs/feed/browsertime.atom | 36 +++++------- docs/feed/browsertime.rss | 30 ++++------ docs/feed/rss.xml | 62 ++++++++++----------- docs/feed/sitespeed.io.atom | 38 ++++++------- docs/feed/sitespeed.io.rss | 32 +++++------ 7 files changed, 125 insertions(+), 149 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index dd6db9f49..8f4f2af4f 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -23.5.0 \ No newline at end of file +23.5.2 \ No newline at end of file diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index 2ad233451..6dc2dd22d 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-03-11T00:00:00.000Z + 2022-03-22T00:00:00.000Z https://github.com/jpmonette/feed Peter Hedenskog @@ -15,6 +15,24 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.5.2]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 + + 2022-03-22T00:00:00.000Z + Fixed +
                    +
                  • Updated to latest NodeJS and Ubuntu updates in the Docker container with some security updates#3306. Also updated the slim container with latest NodeJS.
                  • +
                  +
                    +
                  • Make sure the shrinkwrap file is used when building the container #3604 and (hopefully) fix so that .dockerignore is not ignored when Github Actions build the containers.
                  • +
                  +]]>
                  + + Sitespeed.io + https://www.sitespeed.io + +
                  <![CDATA[sitespeed.io 23.5.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 @@ -72,6 +90,21 @@ +]]>
              + + Sitespeed.io + https://www.sitespeed.io + +
              + + <![CDATA[browsertime 15.3.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + + 2022-03-07T00:00:00.000Z + Added +
                +
              • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
              • +
              ]]>
              Sitespeed.io @@ -313,24 +346,6 @@
              • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
              -]]>
          - - Sitespeed.io - https://www.sitespeed.io - -
          - - <![CDATA[sitespeed.io 22.1.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 - - 2022-02-08T00:00:00.000Z - Added -
            -
          • Upgraded to latest Browsertime with Egdedriver 98.
          • -
          -
            -
          • Upgraded to Edge 98 and Firefox 97 in the (amd64) Docker containers.
          • -
          ]]>
          Sitespeed.io @@ -397,27 +412,6 @@
          • Upgraded to third party web 0.13.0.
          -]]>
        - - Sitespeed.io - https://www.sitespeed.io - - - - <![CDATA[browsertime 14.19.2]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 - - 2022-02-05T00:00:00.000Z - Fixed -
          -
        • Upgraded to Geckodriver 0.30.0 #1710.
        • -
        -
          -
        • Upgraded to Chromedriver that always looks for Chromedriver in PATH for arm64.
        • -
        -
          -
        • Fixed getting Geckoprofile on Android when you do not specify Android package #1712.
        • -
        ]]>
        Sitespeed.io diff --git a/docs/feed/browsertime.atom b/docs/feed/browsertime.atom index 21cc0ab26..595028596 100644 --- a/docs/feed/browsertime.atom +++ b/docs/feed/browsertime.atom @@ -16,6 +16,21 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[browsertime 15.3.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + + 2022-03-07T00:00:00.000Z + Added +
          +
        • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        <![CDATA[browsertime 15.2.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 @@ -175,27 +190,6 @@
        • Docker container for both amd64 and arm64.
        -]]>
        - - Sitespeed.io - https://www.sitespeed.io - -
        - - <![CDATA[browsertime 14.19.2]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 - - 2022-02-05T00:00:00.000Z - Fixed -
          -
        • Upgraded to Geckodriver 0.30.0 #1710.
        • -
        -
          -
        • Upgraded to Chromedriver that always looks for Chromedriver in PATH for arm64.
        • -
        -
          -
        • Fixed getting Geckoprofile on Android when you do not specify Android package #1712.
        • -
        ]]>
        Sitespeed.io diff --git a/docs/feed/browsertime.rss b/docs/feed/browsertime.rss index 670b26a50..e76e1887d 100644 --- a/docs/feed/browsertime.rss +++ b/docs/feed/browsertime.rss @@ -16,6 +16,18 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[browsertime 15.3.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + Mon, 07 Mar 2022 00:00:00 GMT + Added +
          +
        • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
        • +
        +]]>
        + +
        <![CDATA[browsertime 15.2.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.2.0 @@ -151,24 +163,6 @@
        • Docker container for both amd64 and arm64.
        -]]> - -
        - - <![CDATA[browsertime 14.19.2]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 - Sat, 05 Feb 2022 00:00:00 GMT - Fixed -
          -
        • Upgraded to Geckodriver 0.30.0 #1710.
        • -
        -
          -
        • Upgraded to Chromedriver that always looks for Chromedriver in PATH for arm64.
        • -
        -
          -
        • Fixed getting Geckoprofile on Android when you do not specify Android package #1712.
        • -
        ]]>
        diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index f3e2deace..f53065f56 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Fri, 11 Mar 2022 00:00:00 GMT + Tue, 22 Mar 2022 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -15,6 +15,21 @@ All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.5.2]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 + Tue, 22 Mar 2022 00:00:00 GMT + Fixed +
          +
        • Updated to latest NodeJS and Ubuntu updates in the Docker container with some security updates#3306. Also updated the slim container with latest NodeJS.
        • +
        +
          +
        • Make sure the shrinkwrap file is used when building the container #3604 and (hopefully) fix so that .dockerignore is not ignored when Github Actions build the containers.
        • +
        +]]>
        + +
        <![CDATA[sitespeed.io 23.5.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 @@ -69,6 +84,18 @@ ]]> + + <![CDATA[browsertime 15.3.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + Mon, 07 Mar 2022 00:00:00 GMT + Added +
          +
        • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
        • +
        +]]>
        + +
        <![CDATA[sitespeed.io 23.2.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 @@ -271,21 +298,6 @@
        • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
        -]]> - -
        - - <![CDATA[sitespeed.io 22.1.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 - Tue, 08 Feb 2022 00:00:00 GMT - Added -
          -
        • Upgraded to latest Browsertime with Egdedriver 98.
        • -
        -
          -
        • Upgraded to Edge 98 and Firefox 97 in the (amd64) Docker containers.
        • -
        ]]>
        @@ -343,24 +355,6 @@ ]]> - - <![CDATA[browsertime 14.19.2]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.19.2 - Sat, 05 Feb 2022 00:00:00 GMT - Fixed -
          -
        • Upgraded to Geckodriver 0.30.0 #1710.
        • -
        -
          -
        • Upgraded to Chromedriver that always looks for Chromedriver in PATH for arm64.
        • -
        -
          -
        • Fixed getting Geckoprofile on Android when you do not specify Android package #1712.
        • -
        -]]>
        - -
        <![CDATA[pagexray 4.4.0]]> https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 diff --git a/docs/feed/sitespeed.io.atom b/docs/feed/sitespeed.io.atom index 5d40f52c3..769696cea 100644 --- a/docs/feed/sitespeed.io.atom +++ b/docs/feed/sitespeed.io.atom @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-03-11T11:07:53.102Z + 2022-03-22T20:33:41.037Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,24 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.5.2]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 + + 2022-03-22T00:00:00.000Z + Fixed +
          +
        • Updated to latest NodeJS and Ubuntu updates in the Docker container with some security updates#3306. Also updated the slim container with latest NodeJS.
        • +
        +
          +
        • Make sure the shrinkwrap file is used when building the container #3604 and (hopefully) fix so that .dockerignore is not ignored when Github Actions build the containers.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        <![CDATA[sitespeed.io 23.5.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 @@ -197,24 +215,6 @@
        • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
        -]]>
        - - Sitespeed.io - https://www.sitespeed.io - -
        - - <![CDATA[sitespeed.io 22.1.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 - - 2022-02-08T00:00:00.000Z - Added -
          -
        • Upgraded to latest Browsertime with Egdedriver 98.
        • -
        -
          -
        • Upgraded to Edge 98 and Firefox 97 in the (amd64) Docker containers.
        • -
        ]]>
        Sitespeed.io diff --git a/docs/feed/sitespeed.io.rss b/docs/feed/sitespeed.io.rss index 1ba1c8370..66626a2ae 100644 --- a/docs/feed/sitespeed.io.rss +++ b/docs/feed/sitespeed.io.rss @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Fri, 11 Mar 2022 11:07:53 GMT + Tue, 22 Mar 2022 20:33:41 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,21 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[sitespeed.io 23.5.2]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 + Tue, 22 Mar 2022 00:00:00 GMT + Fixed +
          +
        • Updated to latest NodeJS and Ubuntu updates in the Docker container with some security updates#3306. Also updated the slim container with latest NodeJS.
        • +
        +
          +
        • Make sure the shrinkwrap file is used when building the container #3604 and (hopefully) fix so that .dockerignore is not ignored when Github Actions build the containers.
        • +
        +]]>
        + +
        <![CDATA[sitespeed.io 23.5.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.0 @@ -173,21 +188,6 @@
        • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
        -]]> - -
        - - <![CDATA[sitespeed.io 22.1.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.0 - Tue, 08 Feb 2022 00:00:00 GMT - Added -
          -
        • Upgraded to latest Browsertime with Egdedriver 98.
        • -
        -
          -
        • Upgraded to Edge 98 and Firefox 97 in the (amd64) Docker containers.
        • -
        ]]>
        From 4cfd29f152e1b88cd3e0702d7e54f685f37bdbf8 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 23 Mar 2022 08:13:37 +0100 Subject: [PATCH 046/105] docs: include redirects --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index f35977566..3cdde0930 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -4,7 +4,7 @@ markdown: kramdown compress_html: clippings: all endings: all -include: ["_headers"] +include: ["_headers", "_redirects"] highlighter: none kramdown: syntax_highlighter_opts: From 3266dcb75815e9f3d4e680446f50192a0964c016 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 23 Mar 2022 18:32:57 +0100 Subject: [PATCH 047/105] docs: about how we run docker security checks --- docs/documentation/sitespeed.io/docker/index.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/documentation/sitespeed.io/docker/index.md b/docs/documentation/sitespeed.io/docker/index.md index 8ff4b26f1..bd6c7beef 100644 --- a/docs/documentation/sitespeed.io/docker/index.md +++ b/docs/documentation/sitespeed.io/docker/index.md @@ -196,4 +196,9 @@ Enter any password. This will start your VNC server which you can use by any VNC - Download VNC client like RealVNC - Enter VNC server : `0.0.0.0:5900` - When prompted for password, enter the password you entered while creating the vnc server. -- You should be able to view the contents of `Xvfb`. \ No newline at end of file +- You should be able to view the contents of `Xvfb`. + +## Security +In our build process we [run Trivy vulnerability scanner](https://github.com/sitespeedio/sitespeed.io/blob/main/.github/workflows/docker-scan.yml) on the docker image and we break builds on *CRITICAL* issues. The reason for that is that if should break in *HIGH* issues we would probably never be able to release any containers. We update the OS in Docker continously but it can happen that sometimes have HIGH issues. + +If you need to have a container that do not have lower security issues, you can do that by building your own containers and manage it yourself. \ No newline at end of file From e486a8a8a378ece86551ca0492cbeaeecf51b158 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Wed, 23 Mar 2022 18:57:30 +0100 Subject: [PATCH 048/105] Pickup browser and version when we store latest run JSON (#3607) --- lib/plugins/lateststorer/index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/plugins/lateststorer/index.js b/lib/plugins/lateststorer/index.js index 30b1256c0..f6d5dfa23 100644 --- a/lib/plugins/lateststorer/index.js +++ b/lib/plugins/lateststorer/index.js @@ -17,6 +17,12 @@ module.exports = { break; } + case 'browsertime.browser': { + this.browserData = message.data; + console.log(this.browserData); + break; + } + case 'browsertime.config': { if (message.data.screenshot) { this.useScreenshots = message.data.screenshot; @@ -122,6 +128,11 @@ module.exports = { json.android.androidVersion = message.data.android.androidVersion; } + if (this.browserData) { + json.browser = {}; + json.browser.name = this.browserData.name; + json.browser.version = this.browserData.version; + } const data = JSON.stringify(json, null, 0); return this.storageManager.writeDataToDir( data, From d7fcb8b4f3c7a052f186a530e33cf8a1134c36e9 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Thu, 24 Mar 2022 08:39:54 +0100 Subject: [PATCH 049/105] Add friendly HTML to the latest stored data (#3609) * Add friendly HTML to the latest stored data * Add iterations --- lib/plugins/lateststorer/index.js | 53 ++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/lib/plugins/lateststorer/index.js b/lib/plugins/lateststorer/index.js index f6d5dfa23..a5ff0f44d 100644 --- a/lib/plugins/lateststorer/index.js +++ b/lib/plugins/lateststorer/index.js @@ -1,7 +1,14 @@ 'use strict'; const path = require('path'); +const osName = require('os-name'); +const getos = require('getos'); +const { promisify } = require('util'); +const getOS = promisify(getos); +const os = require('os'); +const get = require('lodash.get'); const graphiteUtil = require('../../support/tsdbUtil'); +const helpers = require('../../support/helpers'); module.exports = { open(context, options) { @@ -19,7 +26,6 @@ module.exports = { case 'browsertime.browser': { this.browserData = message.data; - console.log(this.browserData); break; } @@ -35,6 +41,7 @@ module.exports = { // Only use the first one for now if (message.iteration === 1 && this.options.copyLatestFilesToBase) { const options = this.options; + const browserData = this.browserData; const baseDir = this.storageManager.getBaseDir(); // Hack to get out of the date dir const newPath = path.resolve(baseDir, '..'); @@ -128,10 +135,46 @@ module.exports = { json.android.androidVersion = message.data.android.androidVersion; } - if (this.browserData) { - json.browser = {}; - json.browser.name = this.browserData.name; - json.browser.version = this.browserData.version; + json.browser = {}; + json.browser.name = helpers.cap(get(browserData, 'browser.name')); + json.browser.version = get(browserData, 'browser.version', 'unknown'); + + json.friendlyHTML = `Tested ${ + json.alias ? json.alias : message.url + } ${options.browsertime.iterations} iterations at ${ + json.timestamp + } using ${json.browser.name} ${json.browser.version}`; + + if (options.mobile) { + json.friendlyHTML += ` (emulating mobile)`; + } + + if (options.multi) { + json.friendlyHTML += ` as a multi page test`; + } + + if (options.replay) { + json.friendlyHTML += ' using a replay proxy'; + } + + if (!options.mobile && !options.ios && !browserData.android) { + json.friendlyHTML += ' with view port ' + options.viewPort; + } + + if (browserData.android) { + json.friendlyHTML += ` on ${browserData.android.model} Android version ${browserData.android.androidVersion} [${browserData.android.id}].`; + } else if (message.data.ios) { + json.friendlyHTML += ` ${message.data.ios.deviceName} [${message.data.ios.deviceUDID}]`; + } else { + let osInfo = osName(); + if (os.platform() === 'linux') { + const linux = await getOS(); + osInfo = `${linux.dist} ${linux.release}`; + } + // We are testing on desktop + json.friendlyHTML += options.browsertime.docker + ? ' using Docker ' + osInfo + : ' on ' + osInfo; } const data = JSON.stringify(json, null, 0); return this.storageManager.writeDataToDir( From b3c1f6905e3078636211d259c3f8cc1b9dc1e649 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Fri, 25 Mar 2022 08:36:41 +0100 Subject: [PATCH 050/105] Add the result URL for handy links (#3610) --- lib/plugins/lateststorer/index.js | 32 ++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/lib/plugins/lateststorer/index.js b/lib/plugins/lateststorer/index.js index a5ff0f44d..05cf3c53d 100644 --- a/lib/plugins/lateststorer/index.js +++ b/lib/plugins/lateststorer/index.js @@ -15,6 +15,7 @@ module.exports = { this.storageManager = context.storageManager; this.alias = {}; this.options = options; + this.context = context; }, async processMessage(message) { switch (message.type) { @@ -141,9 +142,12 @@ module.exports = { json.friendlyHTML = `Tested ${ json.alias ? json.alias : message.url - } ${options.browsertime.iterations} iterations at ${ - json.timestamp - } using ${json.browser.name} ${json.browser.version}`; + } ${helpers.plural( + options.browsertime.iterations, + 'iteration' + )} at ${json.timestamp} using ${json.browser.name} ${ + json.browser.version + }`; if (options.mobile) { json.friendlyHTML += ` (emulating mobile)`; @@ -158,24 +162,38 @@ module.exports = { } if (!options.mobile && !options.ios && !browserData.android) { - json.friendlyHTML += ' with view port ' + options.viewPort; + json.friendlyHTML += ' with viewport ' + options.viewPort; } if (browserData.android) { json.friendlyHTML += ` on ${browserData.android.model} Android version ${browserData.android.androidVersion} [${browserData.android.id}].`; } else if (message.data.ios) { - json.friendlyHTML += ` ${message.data.ios.deviceName} [${message.data.ios.deviceUDID}]`; + json.friendlyHTML += ` ${message.data.ios.deviceName} [${message.data.ios.deviceUDID}].`; } else { + // We are testing on desktop let osInfo = osName(); if (os.platform() === 'linux') { const linux = await getOS(); osInfo = `${linux.dist} ${linux.release}`; } - // We are testing on desktop json.friendlyHTML += options.browsertime.docker ? ' using Docker ' + osInfo - : ' on ' + osInfo; + : ' on ' + osInfo + '.'; } + + // Hack to add a result URL + if (this.context.resultUrls.hasBaseUrl()) { + let resultURL = + this.context.resultUrls.absoluteSummaryPageUrl( + message.url, + this.alias[message.url] + ) + 'index.html'; + + json.friendlyHTML += + ' View result.'; + json.result = resultURL; + } + const data = JSON.stringify(json, null, 0); return this.storageManager.writeDataToDir( data, From f94763671f1a1d6176e7244d6d7721c7fe4b1921 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 25 Mar 2022 08:48:35 +0100 Subject: [PATCH 051/105] docs: pushing missing image --- docs/img/ico/sitespeed.io-57.png | Bin 0 -> 3385 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/img/ico/sitespeed.io-57.png diff --git a/docs/img/ico/sitespeed.io-57.png b/docs/img/ico/sitespeed.io-57.png new file mode 100644 index 0000000000000000000000000000000000000000..8ce93972f8eabb50ad3c0a2dbb228026aa919dac GIT binary patch literal 3385 zcmbVP30O>f8$U56wA`eUM#gZZn`WzNnyJyQ8Jg--R9bYJIa8x%X=XAr3YX$WM545i z>r&s9Y|)~$5-CEYg&}6-mWq-OrEa(MrN55b}9`3HINC(`n+eY#RKu24?A ze?RE#>JYHwJ#xv|qsN-FW(9|Yz(U{Y8(0&GsO1*JBO{54i9(U6{!T-AWsN(Hw#d}z z#fz5%gM&FaITtS%PED##_~?1tJ2f@+p!w0**w~Y{4iKT9ITJz9&@gb|EC@=Ty)tlt zq{@z{aa#=mCM{YTU+)YW?7e9g;f)x(F~>iZ>j_ATxUb03ZfAzW!o=h6jbo=VCw>KMcZ1xdIps z0QL@20mzJm#HcVRoWrA{`^zfPC=QE?_9HTI41o(2!J%yxLOxqPeVJP$nPe8)VHL_= zN`VQukQhWsxlue3MM_0~=B2=E)ixH5`V0|AQqfK-g(!c9H_C-Cgis_5-ja#K;ZP(p zCJe{64TH$Il_&y^fXCtqSUk~^fTs|M6g(02^+3b=ge*2?o$Kna+Tb@TIzlWKP_S5u zM1ql6VfeyuES^jzV{rs5fnW(EEJZS&7?fJ_L`%OhxI!YPkRuRt_&k(~5e(zUh^c7U z)-O(Q1=F-V(bqu1A;U^R0Tz$Jshs)@WHG04f*4`cXXPv=7K(zn5Kk2q93+7y9z~QQuPK{mo<)!3sk_tzdvm4o~HT`5#0eS5OR5(W<;z;&GM)vM&Lr z${UVsfg@0GxGzu!pT%LzrlAB&oRuYk=!>(ZSd%DLL<=1LA5ge#SfCjEuV5CF!sZLP zAnY=S3x-2j0WTblnhqqzg&)Ni!irVaeYS$ZpwM|DG00;=bXO`G_8P!;Pm+Wg#_(0KLS5X|)=Q^N(OjUhT(M(lhAr|`UHs>!#;0vuJ0)k2ZL%P4f zM0~bb0tz9ga5!53LqTC-^RcR4{Nf4rU!DB??GJtX4Gs?j)pB|c!7tO34C2A#O9;=Y zo2G_^05A(hcXjfm?d7Hi`gClZx7u$?S?Ii!^!cQ(k? zHZOD6RzJTw;%qEUY6u1FjO`4uzIi9HL0P1$BP`9P0mIFGnVku;YH?eujzV#N6;J8E zFhL!$rOf|yP}M-}gI+zh#%(*|s($novv>Q?HJ16r%?JBsGOMQ}{uDnehF6w>+*(^c~oYoq!rlA{|Au`$H z;L3@~fs6*Fv*~P+)zYM6O)Yay-Eb@kXy5Z4``1sD@1AYFo&+v1B|L4^_6j8hwkntN zO!t(UlU^L?BA^`Na(h_W`;S<88m9I{2ZW4fX9*GznD%p;U9kqk#lN)sRXn`+YH%nR zI2P9@KD+Byij8KXCS}kwJpRbt*>la1&OzFeo%Q9Xw!Xh=gVaTuY2T%jWhuO@13?*P zboLzjy!0JCqUiCQ$(IBE6Go#UvcqN>c~_D%b{icK>Mg59CDqmJcF-Cd|2T9L<(^k@ z`P%44Cil@wZasP)xP@d}@oY<}Oz5(l)YCf<9X?k-t><~!L|5}ltHvS!p8&P~j^^^r zL3(65CA>BX>WdAMQbRr7V*IbI4LF>1 zq!D?Gi;#zMy6Ku))eD{_{x(G27k5YQaj4u$-FilZ$ELPfIo3mQEo~>wOQKtU(i$-S z8?Zsm+cD)*mAxx4|I+M{{XtjsN%00NHNEoXjS9sY^9*|Kn`8l)+-!1hUMql$h@|MM>_5^G6QLsCqC=;0-$O@^LR zKTnOHEb80XeZhb|5pI91rV*E_c;S4sGS9X2ZeG+!!SJ>?jbC(}=7a_f6wFMizjL|( zu&QcklLezL<46|i_|~`Ew?7zeUU4S=Y~?1r4IFRNHnXajQfl$OJWN@uVS^kKXSX|D zsS$^qj3DeYBujLaVg3%;m;0SDh6ft@p48bj4;Gu0U)!t`D#(K^tN$7areBVmWA0GD~{+pE>EEYgY}WgvXsJ@-0Lmkg$XI=I*uu?6{#0)U*}m; zN|zosK~@zi)>^Rer3=OUbrKgm5#dGkDF`9`ec)X`^^(RLfu4F!H+wCMgeUu3zJe~|!j9;~tU0tzOPE}^7PJD=+)h|!4Vr>r}+jWta8L4?Y)M zDlD6uM=jKMmj}llo59+vv+ePZG~Shw)Wb)zdtL6}tJ){xULQ94ZS$xZP@3H0tzm|& zr<<@-l;jyt+RhcveSYWa1LGMN`rIU`_xeOvyJ>pGNQR)%9Tn>WD;A7gCoCd#x$8^#$#D1+)`y*YgXSt4YPYO?*#Z zWNzwZa>tD=%hd}X1ixuuzkj(Wo?7=LD^35kur{uLG_bV%jCpy8_u@4EdAr&@^7QVP zJ@4z4ZrGt!`^WP?=pGPS)ocV0)p9Of0&MNiWDI&abnL1&p&&ae>r#@(yBpR#k~~jQ zo;+nxz1QlPvr{xKw66W#Muh0P+K16eqTjaFc^8A+3Iggk{M^~W4)Mn$ZDPxYIy=w2 ztL^I|Ax(Q%u0pPtj0zO{D*&Ue(+X#<_TH@OrpiTvaS$U>B5v Date: Fri, 25 Mar 2022 09:26:14 +0100 Subject: [PATCH 052/105] tuning link text --- lib/plugins/lateststorer/index.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/plugins/lateststorer/index.js b/lib/plugins/lateststorer/index.js index 05cf3c53d..dde17624d 100644 --- a/lib/plugins/lateststorer/index.js +++ b/lib/plugins/lateststorer/index.js @@ -177,7 +177,7 @@ module.exports = { osInfo = `${linux.dist} ${linux.release}`; } json.friendlyHTML += options.browsertime.docker - ? ' using Docker ' + osInfo + ? ' using Docker ' + osInfo + '.' : ' on ' + osInfo + '.'; } @@ -189,8 +189,7 @@ module.exports = { this.alias[message.url] ) + 'index.html'; - json.friendlyHTML += - ' View result.'; + json.friendlyHTML += ' [result].'; json.result = resultURL; } From 6d29de6ffdf0e6f22dd045893950bc53ac8465fa Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 25 Mar 2022 09:28:31 +0100 Subject: [PATCH 053/105] changelog: new release --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 153505806..1cdbf12fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) +## 23.6.0 - 2022-03-25 +### Added +* Various fixes to add more content to the JSON stored from the latest run, making it easier to show more meta data for a run in Grafana [#3607](https://github.com/sitespeedio/sitespeed.io/pull/3607), [#3609](https://github.com/sitespeedio/sitespeed.io/pull/3609) and [#3610](https://github.com/sitespeedio/sitespeed.io/pull/3610). ## 23.5.2 - 2022-03-22 ### Fixed * Updated to latest NodeJS and Ubuntu updates in the Docker container with some security updates[#3306](https://github.com/sitespeedio/sitespeed.io/pull/3606). Also updated the slim container with latest NodeJS. From ebb92c8a84502d4f70aa7e7b328fe4b659f44bf1 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 25 Mar 2022 09:29:27 +0100 Subject: [PATCH 054/105] 23.6.0 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index d19b1341f..8e6937e3b 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.5.2", + "version": "23.6.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.5.2", + "version": "23.6.0", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index 3bdc877c4..80dcac054 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.5.2", + "version": "23.6.0", "description": "Analyze the web performance of your site", "keywords": [ "performance", From 516a7b233439eddeec01994af9139dae4ed56caf Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 25 Mar 2022 09:30:57 +0100 Subject: [PATCH 055/105] Bump new version --- docs/_includes/version/sitespeed.io.txt | 2 +- docs/feed/atom.xml | 32 ++++++++++++------------- docs/feed/rss.xml | 26 ++++++++++---------- docs/feed/sitespeed.io.atom | 32 ++++++++++++------------- docs/feed/sitespeed.io.rss | 26 ++++++++++---------- 5 files changed, 59 insertions(+), 59 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index 8f4f2af4f..708ec2335 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -23.5.2 \ No newline at end of file +23.6.0 \ No newline at end of file diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index 6dc2dd22d..f6074bfa7 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-03-22T00:00:00.000Z + 2022-03-25T00:00:00.000Z https://github.com/jpmonette/feed Peter Hedenskog @@ -15,6 +15,21 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.6.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 + + 2022-03-25T00:00:00.000Z + Added +
          +
        • Various fixes to add more content to the JSON stored from the latest run, making it easier to show more meta data for a run in Grafana #3607, #3609 and #3610.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        <![CDATA[sitespeed.io 23.5.2]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 @@ -331,21 +346,6 @@
        • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
        -]]>
        - - Sitespeed.io - https://www.sitespeed.io - -
        - - <![CDATA[sitespeed.io 22.1.1]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 - - 2022-02-08T00:00:00.000Z - Fixed -
          -
        • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
        • -
        ]]>
        Sitespeed.io diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index f53065f56..3cd474396 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Tue, 22 Mar 2022 00:00:00 GMT + Fri, 25 Mar 2022 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -15,6 +15,18 @@ All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.6.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 + Fri, 25 Mar 2022 00:00:00 GMT + Added +
          +
        • Various fixes to add more content to the JSON stored from the latest run, making it easier to show more meta data for a run in Grafana #3607, #3609 and #3610.
        • +
        +]]>
        + +
        <![CDATA[sitespeed.io 23.5.2]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 @@ -289,18 +301,6 @@ ]]> - - <![CDATA[sitespeed.io 22.1.1]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 - Tue, 08 Feb 2022 00:00:00 GMT - Fixed -
          -
        • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
        • -
        -]]>
        - -
        <![CDATA[browsertime 14.21.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 diff --git a/docs/feed/sitespeed.io.atom b/docs/feed/sitespeed.io.atom index 769696cea..b789626e0 100644 --- a/docs/feed/sitespeed.io.atom +++ b/docs/feed/sitespeed.io.atom @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-03-22T20:33:41.037Z + 2022-03-25T08:30:09.607Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,21 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.6.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 + + 2022-03-25T00:00:00.000Z + Added +
          +
        • Various fixes to add more content to the JSON stored from the latest run, making it easier to show more meta data for a run in Grafana #3607, #3609 and #3610.
        • +
        +]]>
        + + Sitespeed.io + https://www.sitespeed.io + +
        <![CDATA[sitespeed.io 23.5.2]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 @@ -200,21 +215,6 @@
        • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
        -]]>
      - - Sitespeed.io - https://www.sitespeed.io - - - - <![CDATA[sitespeed.io 22.1.1]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 - - 2022-02-08T00:00:00.000Z - Fixed -
        -
      • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
      • -
      ]]>
      Sitespeed.io diff --git a/docs/feed/sitespeed.io.rss b/docs/feed/sitespeed.io.rss index 66626a2ae..c91c9c448 100644 --- a/docs/feed/sitespeed.io.rss +++ b/docs/feed/sitespeed.io.rss @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Tue, 22 Mar 2022 20:33:41 GMT + Fri, 25 Mar 2022 08:30:09 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,18 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[sitespeed.io 23.6.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 + Fri, 25 Mar 2022 00:00:00 GMT + Added +
        +
      • Various fixes to add more content to the JSON stored from the latest run, making it easier to show more meta data for a run in Grafana #3607, #3609 and #3610.
      • +
      +]]>
      + +
      <![CDATA[sitespeed.io 23.5.2]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.5.2 @@ -176,18 +188,6 @@
      • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
      -]]> - -
      - - <![CDATA[sitespeed.io 22.1.1]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.1 - Tue, 08 Feb 2022 00:00:00 GMT - Fixed -
        -
      • The slim container with only Firefox was broken in last release. It's now re-released with Firefox 96 and Firefox 97 coming soon.
      • -
      ]]>
      From fee304a02b580c814e5ec23aa12d923838d78153 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Fri, 25 Mar 2022 14:04:39 +0100 Subject: [PATCH 056/105] Text format and use timestamp from context and display UTC offset (#3611) --- lib/plugins/lateststorer/index.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/plugins/lateststorer/index.js b/lib/plugins/lateststorer/index.js index dde17624d..7c61a61a6 100644 --- a/lib/plugins/lateststorer/index.js +++ b/lib/plugins/lateststorer/index.js @@ -109,11 +109,14 @@ module.exports = { ); } + const timestamp = this.context.timestamp.format( + 'YYYY-MM-DD HH:mm:ss Z' + ); // Also store a JSON with data that we can use later const json = { url: message.url, alias: this.alias[message.url], - timestamp: message.data.timestamp, + timestamp, iterations: options.browsertime.iterations, name: options.name }; @@ -140,12 +143,12 @@ module.exports = { json.browser.name = helpers.cap(get(browserData, 'browser.name')); json.browser.version = get(browserData, 'browser.version', 'unknown'); - json.friendlyHTML = `Tested ${ + json.friendlyHTML = `${ json.alias ? json.alias : message.url - } ${helpers.plural( + } ${helpers.plural( options.browsertime.iterations, 'iteration' - )} at ${json.timestamp} using ${json.browser.name} ${ + )} at ${json.timestamp} using ${json.browser.name} ${ json.browser.version }`; @@ -177,8 +180,8 @@ module.exports = { osInfo = `${linux.dist} ${linux.release}`; } json.friendlyHTML += options.browsertime.docker - ? ' using Docker ' + osInfo + '.' - : ' on ' + osInfo + '.'; + ? ' using Docker ' + osInfo + : ' on ' + osInfo; } // Hack to add a result URL @@ -189,7 +192,8 @@ module.exports = { this.alias[message.url] ) + 'index.html'; - json.friendlyHTML += ' [result].'; + json.friendlyHTML += + ' [result].'; json.result = resultURL; } From 423c0de6a26e449ffb1feeb63cb68b7f30818779 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 25 Mar 2022 15:32:05 +0100 Subject: [PATCH 057/105] changelog: new release --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cdbf12fe..68446093f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) +## 23.6.1 - 2022-03-25 +### Fixed +* Fixing text formatting in the JSON from latest run and make sure we display the time with UTC[#3611](https://github.com/sitespeedio/sitespeed.io/pull/3611). ## 23.6.0 - 2022-03-25 ### Added * Various fixes to add more content to the JSON stored from the latest run, making it easier to show more meta data for a run in Grafana [#3607](https://github.com/sitespeedio/sitespeed.io/pull/3607), [#3609](https://github.com/sitespeedio/sitespeed.io/pull/3609) and [#3610](https://github.com/sitespeedio/sitespeed.io/pull/3610). From 2d200e59321b37a49d3c87575a9b5a16bc69b325 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 25 Mar 2022 15:33:35 +0100 Subject: [PATCH 058/105] 23.6.1 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 8e6937e3b..8b53b3c26 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.6.0", + "version": "23.6.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.6.0", + "version": "23.6.1", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index 80dcac054..1e30f3087 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.6.0", + "version": "23.6.1", "description": "Analyze the web performance of your site", "keywords": [ "performance", From 90078d514168bddab1e687122c4ba20e38edb1fb Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 26 Mar 2022 19:38:06 +0100 Subject: [PATCH 059/105] new version --- docs/_includes/version/sitespeed.io.txt | 2 +- docs/feed/atom.xml | 30 +++++++++++------------ docs/feed/rss.xml | 24 +++++++++---------- docs/feed/sitespeed.io.atom | 32 ++++++++++++------------- docs/feed/sitespeed.io.rss | 26 ++++++++++---------- 5 files changed, 57 insertions(+), 57 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index 708ec2335..336c821c4 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -23.6.0 \ No newline at end of file +23.6.1 \ No newline at end of file diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index f6074bfa7..24bdf71d5 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -15,6 +15,21 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.6.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 + + 2022-03-25T00:00:00.000Z + Fixed +
        +
      • Fixing text formatting in the JSON from latest run and make sure we display the time with UTC#3611.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      <![CDATA[sitespeed.io 23.6.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 @@ -313,21 +328,6 @@
      • Removed support for using speedline and the CLI arg --chrome.visualMetricsUsingTrace #1727.
      -]]>
      - - Sitespeed.io - https://www.sitespeed.io - -
      - - <![CDATA[sitespeed.io 22.1.2]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 - - 2022-02-09T00:00:00.000Z - Fixed -
        -
      • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
      • -
      ]]>
      Sitespeed.io diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index 3cd474396..7d3ade6f3 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -15,6 +15,18 @@ All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.6.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 + Fri, 25 Mar 2022 00:00:00 GMT + Fixed +
        +
      • Fixing text formatting in the JSON from latest run and make sure we display the time with UTC#3611.
      • +
      +]]>
      + +
      <![CDATA[sitespeed.io 23.6.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 @@ -274,18 +286,6 @@ ]]> - - <![CDATA[sitespeed.io 22.1.2]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 - Wed, 09 Feb 2022 00:00:00 GMT - Fixed -
        -
      • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
      • -
      -]]>
      - -
      <![CDATA[browsertime 14.21.1]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 diff --git a/docs/feed/sitespeed.io.atom b/docs/feed/sitespeed.io.atom index b789626e0..37c93a724 100644 --- a/docs/feed/sitespeed.io.atom +++ b/docs/feed/sitespeed.io.atom @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-03-25T08:30:09.607Z + 2022-03-25T14:34:04.135Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,21 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.6.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 + + 2022-03-25T00:00:00.000Z + Fixed +
        +
      • Fixing text formatting in the JSON from latest run and make sure we display the time with UTC#3611.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      <![CDATA[sitespeed.io 23.6.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 @@ -200,21 +215,6 @@
      • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
      -]]>
      - - Sitespeed.io - https://www.sitespeed.io - -
      - - <![CDATA[sitespeed.io 22.1.2]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 - - 2022-02-09T00:00:00.000Z - Fixed -
        -
      • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
      • -
      ]]>
      Sitespeed.io diff --git a/docs/feed/sitespeed.io.rss b/docs/feed/sitespeed.io.rss index c91c9c448..b5bf00553 100644 --- a/docs/feed/sitespeed.io.rss +++ b/docs/feed/sitespeed.io.rss @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Fri, 25 Mar 2022 08:30:09 GMT + Fri, 25 Mar 2022 14:34:04 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,18 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[sitespeed.io 23.6.1]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 + Fri, 25 Mar 2022 00:00:00 GMT + Fixed +
        +
      • Fixing text formatting in the JSON from latest run and make sure we display the time with UTC#3611.
      • +
      +]]>
      + +
      <![CDATA[sitespeed.io 23.6.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.0 @@ -176,18 +188,6 @@
      • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
      -]]> - -
      - - <![CDATA[sitespeed.io 22.1.2]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#22.1.2 - Wed, 09 Feb 2022 00:00:00 GMT - Fixed -
        -
      • Updated to Browsertime 14.21.1 that disables the new Chrome splash screen by default.
      • -
      ]]>
      From 50e1a4c3aade27652840a848c05620b13df6dc09 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 30 Mar 2022 06:35:56 +0200 Subject: [PATCH 060/105] Use Chrome 100 in the container --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ce296438a..e0189c8e2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM sitespeedio/webbrowsers:chrome-99.0-firefox-98.0-edge-99.0-b +FROM sitespeedio/webbrowsers:chrome-100.0-firefox-98.0-edge-99.0-b ARG TARGETPLATFORM=linux/amd64 From 4f4babda13e0355396ff8ab440351eb153e3a6a9 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 30 Mar 2022 17:36:00 +0200 Subject: [PATCH 061/105] new bt --- CHANGELOG.md | 3 ++ docs/_includes/version/browsertime.txt | 2 +- .../browsertime/configuration/config.md | 3 +- lib/cli/cli.js | 2 +- npm-shrinkwrap.json | 48 +++++++++---------- package.json | 2 +- 6 files changed, 32 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68446093f..74a123de5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) +## UNRELEASED +### Added +* Updated to Chrome/Chromedriver 100 and Browsertime 15.4.0. ## 23.6.1 - 2022-03-25 ### Fixed diff --git a/docs/_includes/version/browsertime.txt b/docs/_includes/version/browsertime.txt index 7ed6fef85..92edc454c 100644 --- a/docs/_includes/version/browsertime.txt +++ b/docs/_includes/version/browsertime.txt @@ -1 +1 @@ -15.3.0 \ No newline at end of file +15.4.0 \ No newline at end of file diff --git a/docs/documentation/browsertime/configuration/config.md b/docs/documentation/browsertime/configuration/config.md index 1d458809e..3300534b2 100644 --- a/docs/documentation/browsertime/configuration/config.md +++ b/docs/documentation/browsertime/configuration/config.md @@ -137,6 +137,7 @@ Options: --visualElements, --visuaElements Collect Visual Metrics from elements. Works only with --visualMetrics turned on. By default you will get visual metrics from the largest image within the view port and the largest h1. You can also configure to pickup your own defined elements with --scriptInput.visualElements [boolean] --visualMetricsPerceptual Collect Perceptual Speed Index when you run --visualMetrics. [boolean] --visualMetricsContentful Collect Contentful Speed Index when you run --visualMetrics. [boolean] + --visualMetricsPortable Use the portable visual-metrics processing script (no ImageMagick dependencies). [boolean] --scriptInput.visualElements Include specific elements in visual elements. Give the element a name and select it with document.body.querySelector. Use like this: --scriptInput.visualElements name:domSelector see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors. Add multiple instances to measure multiple elements. Visual Metrics will use these elements and calculate when they are visible and fully rendered. --scriptInput.longTask, --minLongTaskLength Set the minimum length of a task to be categorised as a CPU Long Task. It can never be smaller than 50. The value is in ms and only works in Chromium browsers at the moment. [number] [default: 50] -b, --browser Specify browser. Safari only works on OS X/iOS. Edge only work on OS that supports Edge. [choices: "chrome", "firefox", "edge", "safari"] [default: "chrome"] @@ -162,7 +163,7 @@ Options: -r, --requestheader Request header that will be added to the request. Add multiple instances to add multiple request headers. Works for Firefox and Chrome. Use the following format key:value --cookie Cookie that will be added to the request. Add multiple instances to add multiple request cookies. Works for Firefox and Chrome. Use the following format cookieName=cookieValue --injectJs Inject JavaScript into the current page at document_start. Works for Firefox and Chrome. More info: https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/contentScripts - --block Domain to block. Add multiple instances to add multiple domains that will be blocked. If you use Chrome you can also use --blockDomainsExcept (that is more performant). Works for Firefox and Chrome. + --block Domain to block or URL or URL pattern to block. If you use Chrome you can also use --blockDomainsExcept (that is more performant). Works in Chrome/Edge. For Firefox you can only block domains. --percentiles The percentile values within the data browsertime will calculate and report. This argument uses Yargs arrays and you you to set them correctly it is recommended to use a configuraration file instead. [array] [default: [0,10,90,99,100]] --decimals The decimal points browsertime statistics round to. [number] [default: 0] --iqr Use IQR, or Inter Quartile Range filtering filters data based on the spread of the data. See https://en.wikipedia.org/wiki/Interquartile_range. In some cases, IQR filtering may not filter out anything. This can happen if the acceptable range is wider than the bounds of your dataset. [boolean] [default: false] diff --git a/lib/cli/cli.js b/lib/cli/cli.js index 2c1214264..cb21a3a65 100644 --- a/lib/cli/cli.js +++ b/lib/cli/cli.js @@ -970,7 +970,7 @@ module.exports.parseCommandLine = function parseCommandLine() { .option('browsertime.block', { alias: 'block', describe: - 'Domain to block. Add multiple instances to add multiple domains that will be blocked. Only works in Chrome and Firefox.', + 'Domain or URL or URL pattern to block. If you use Chrome you can also use --blockDomainsExcept (that is more performant). Works in Chrome/Edge. For Firefox you can only block domains.', group: 'Browser' }) .option('browsertime.basicAuth', { diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 8b53b3c26..7827a5698 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -13,7 +13,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.3.5", - "browsertime": "15.3.0", + "browsertime": "15.4.0", "cli-color": "2.0.0", "coach-core": "7.1.0", "concurrent-queue": "7.0.2", @@ -911,12 +911,12 @@ "optional": true }, "node_modules/@sitespeed.io/chromedriver": { - "version": "99.0.4844-51", - "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-99.0.4844-51.tgz", - "integrity": "sha512-IRUKnrN/w2jfcFzhboarmSzqvlUxaK+ztfZRB7bZksWu6gdOP3O8Ci4cDuLUPIm1/vtIUFXn/7pXh4e/SY5Wcw==", + "version": "100.0.4896-20", + "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-100.0.4896-20.tgz", + "integrity": "sha512-+x4CiRRBbbSm/Bcl4KXj7Zg/TFy0x7bAQTrS7ZkqU9KmgqhMYvPXjToY+zOgjdYggfu7pbelaNIjmK7zHlWQxg==", "hasInstallScript": true, "dependencies": { - "node-downloader-helper": "1.0.19", + "node-downloader-helper": "2.1.0", "node-stream-zip": "1.15.0" } }, @@ -1461,13 +1461,13 @@ } }, "node_modules/browsertime": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.3.0.tgz", - "integrity": "sha512-ReAADBxx7lNeqoacRP70fitGmxV0eUCJqfHXO4VTceHSw51BCsPlNhgUyGqjDNbQu0p0mHmSEDe2yavXOqZv4A==", + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.4.0.tgz", + "integrity": "sha512-fJZrGTPp4X7p2AOPQhG1UkBNUeNPzG8R71DTNYG4vVsaaVyi7AtMrIGE/XRgTE7adzKW3uADI7pjD7ZwdB54/Q==", "dependencies": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", - "@sitespeed.io/chromedriver": "99.0.4844-51", + "@sitespeed.io/chromedriver": "100.0.4896-20", "@sitespeed.io/edgedriver": "99.0.1150-25", "@sitespeed.io/geckodriver": "0.30.0", "@sitespeed.io/throttle": "3.0.0", @@ -5031,14 +5031,14 @@ "optional": true }, "node_modules/node-downloader-helper": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/node-downloader-helper/-/node-downloader-helper-1.0.19.tgz", - "integrity": "sha512-Bwp8WWDDP5ftg+FmAKU08a9+oiUTPoYzMvXgUqZZPQ7VMo1qKBzW3XdTXHeYnqjGLfkTZ2GPibgAWpApfpeS2g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-downloader-helper/-/node-downloader-helper-2.1.0.tgz", + "integrity": "sha512-MIUI6kEpSzujmys7AkUK+GzfPywrIeNhQIPe1pQgRxM7RYi4/31KZgC7NQOIjXPVQSXM1mVHcY9psvSQVRt1Kg==", "bin": { "ndh": "bin/ndh" }, "engines": { - "node": ">=6.9" + "node": ">=14.18" } }, "node_modules/node-fetch": { @@ -8170,11 +8170,11 @@ } }, "@sitespeed.io/chromedriver": { - "version": "99.0.4844-51", - "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-99.0.4844-51.tgz", - "integrity": "sha512-IRUKnrN/w2jfcFzhboarmSzqvlUxaK+ztfZRB7bZksWu6gdOP3O8Ci4cDuLUPIm1/vtIUFXn/7pXh4e/SY5Wcw==", + "version": "100.0.4896-20", + "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-100.0.4896-20.tgz", + "integrity": "sha512-+x4CiRRBbbSm/Bcl4KXj7Zg/TFy0x7bAQTrS7ZkqU9KmgqhMYvPXjToY+zOgjdYggfu7pbelaNIjmK7zHlWQxg==", "requires": { - "node-downloader-helper": "1.0.19", + "node-downloader-helper": "2.1.0", "node-stream-zip": "1.15.0" } }, @@ -8616,13 +8616,13 @@ } }, "browsertime": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.3.0.tgz", - "integrity": "sha512-ReAADBxx7lNeqoacRP70fitGmxV0eUCJqfHXO4VTceHSw51BCsPlNhgUyGqjDNbQu0p0mHmSEDe2yavXOqZv4A==", + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.4.0.tgz", + "integrity": "sha512-fJZrGTPp4X7p2AOPQhG1UkBNUeNPzG8R71DTNYG4vVsaaVyi7AtMrIGE/XRgTE7adzKW3uADI7pjD7ZwdB54/Q==", "requires": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", - "@sitespeed.io/chromedriver": "99.0.4844-51", + "@sitespeed.io/chromedriver": "100.0.4896-20", "@sitespeed.io/edgedriver": "99.0.1150-25", "@sitespeed.io/geckodriver": "0.30.0", "@sitespeed.io/throttle": "3.0.0", @@ -11491,9 +11491,9 @@ "optional": true }, "node-downloader-helper": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/node-downloader-helper/-/node-downloader-helper-1.0.19.tgz", - "integrity": "sha512-Bwp8WWDDP5ftg+FmAKU08a9+oiUTPoYzMvXgUqZZPQ7VMo1qKBzW3XdTXHeYnqjGLfkTZ2GPibgAWpApfpeS2g==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-downloader-helper/-/node-downloader-helper-2.1.0.tgz", + "integrity": "sha512-MIUI6kEpSzujmys7AkUK+GzfPywrIeNhQIPe1pQgRxM7RYi4/31KZgC7NQOIjXPVQSXM1mVHcY9psvSQVRt1Kg==" }, "node-fetch": { "version": "2.6.1", diff --git a/package.json b/package.json index 1e30f3087..918f78147 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.3.5", - "browsertime": "15.3.0", + "browsertime": "15.4.0", "coach-core": "7.1.0", "cli-color": "2.0.0", "concurrent-queue": "7.0.2", From 5dcb79b55747679b6915415f99446e96ea53e22f Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 30 Mar 2022 17:45:31 +0200 Subject: [PATCH 062/105] docs: update how to block using pattern and correct browser support --- docs/documentation/sitespeed.io/thirdparty/index.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/documentation/sitespeed.io/thirdparty/index.md b/docs/documentation/sitespeed.io/thirdparty/index.md index d165842c9..6d480993d 100644 --- a/docs/documentation/sitespeed.io/thirdparty/index.md +++ b/docs/documentation/sitespeed.io/thirdparty/index.md @@ -67,7 +67,7 @@ You can also track CPU spent per tool/third party. It's turned off by default an ## Block all 3rd parties -We have two ways to block requests when you use sitespeed.io. Either you can use block `--block` that blocks a specific request (works in Chrome/Edge/Firefox) or you can use `--chrome.blockDomainsExcept` (Chrome/Edge) to block all domains except the ones you choose (you can use wildcard like *.sitespeed.io). You can use both multiple times to keep multiple domains/block multiple requests. +We have two ways to block requests when you use sitespeed.io. Either you can use block `--block` that blocks a specific request and request patterns (works in Chrome/Edge) or domain (works in Chrome/Edge/Firefox) or you can use `--chrome.blockDomainsExcept` (Chrome/Edge) to block all domains except the ones you choose (you can use wildcard like *.sitespeed.io). You can use both multiple times to keep multiple domains/block multiple requests. With the block parameter you block specific requests. Here's an example from Wikipedia that blocks the first JavaScript request: @@ -75,6 +75,11 @@ With the block parameter you block specific requests. Here's an example from Wik docker run --rm -v "$(pwd):/sitespeed.io" sitespeedio/sitespeed.io:{% include version/sitespeed.io.txt %} --block "https://en.wikipedia.org/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector" https://en.wikipedia.org/wiki/Barack_Obama ~~~ +Block all requests that ends with .js: + +~~~bash +docker run --rm -v "$(pwd):/sitespeed.io" sitespeedio/sitespeed.io:{% include version/sitespeed.io.txt %} https://www.sitespeed.io -n 1 -o --browsertime.block "*.js" +~~~ Here's an example from a user that use WebPageReplay and want to block all domains except one: From b7baf67aa231b3c50fd66b495e75183767ac703b Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 30 Mar 2022 22:17:00 +0200 Subject: [PATCH 063/105] fix correct from name --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e0189c8e2..50af0723a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM sitespeedio/webbrowsers:chrome-100.0-firefox-98.0-edge-99.0-b +FROM sitespeedio/webbrowsers:chrome-100.0-firefox-98.0-edge-99.0 ARG TARGETPLATFORM=linux/amd64 From e600f5e0b00fa9c2a795ba9dabfcfb60df97bce1 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Thu, 31 Mar 2022 08:04:52 +0200 Subject: [PATCH 064/105] changelog: new release --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74a123de5..4a115a8b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) -## UNRELEASED +## 23.7.0 - 2022-03-31 ### Added -* Updated to Chrome/Chromedriver 100 and Browsertime 15.4.0. +* Updated to Chrome/Chromedriver 100 and [Browsertime 15.4.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1540---2022-03-30). ## 23.6.1 - 2022-03-25 ### Fixed From 87aa8928acc1de8c6828ccbf38df50f888f76a55 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Thu, 31 Mar 2022 08:39:27 +0200 Subject: [PATCH 065/105] Use Axe-core 4.4.1 (#3615) --- npm-shrinkwrap.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 7827a5698..018fc7378 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -12,7 +12,7 @@ "@google-cloud/storage": "5.8.3", "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", - "axe-core": "4.3.5", + "axe-core": "4.4.1", "browsertime": "15.4.0", "cli-color": "2.0.0", "coach-core": "7.1.0", @@ -1333,9 +1333,9 @@ "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" }, "node_modules/axe-core": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz", - "integrity": "sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", "engines": { "node": ">=4" } @@ -8506,9 +8506,9 @@ "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" }, "axe-core": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz", - "integrity": "sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==" + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==" }, "babel-runtime": { "version": "6.26.0", diff --git a/package.json b/package.json index 918f78147..b0a8b499c 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "@google-cloud/storage": "5.8.3", "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", - "axe-core": "4.3.5", + "axe-core": "4.4.1", "browsertime": "15.4.0", "coach-core": "7.1.0", "cli-color": "2.0.0", From eeba08847ad0791d34d2455d1d0045fc752785ff Mon Sep 17 00:00:00 2001 From: soulgalore Date: Thu, 31 Mar 2022 08:43:34 +0200 Subject: [PATCH 066/105] changelog: include latest changes --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a115a8b3..c13300cf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ ## 23.7.0 - 2022-03-31 ### Added * Updated to Chrome/Chromedriver 100 and [Browsertime 15.4.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1540---2022-03-30). +* Updated the +1 container to use Lighthouse 9.5.0. +* Updated to [Axe-core 4.4.1](https://github.com/sitespeedio/sitespeed.io/pull/3615). ## 23.6.1 - 2022-03-25 ### Fixed From 16dbbda66bd92848482912be3f8f2eaebdd56304 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Thu, 31 Mar 2022 08:44:23 +0200 Subject: [PATCH 067/105] 23.7.0 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 018fc7378..3a4471961 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.6.1", + "version": "23.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.6.1", + "version": "23.7.0", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index b0a8b499c..2facde106 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.6.1", + "version": "23.7.0", "description": "Analyze the web performance of your site", "keywords": [ "performance", From 8004a59bcf57b16b4d9f2f257523a1943fbfc628 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Thu, 31 Mar 2022 08:46:08 +0200 Subject: [PATCH 068/105] new versions --- docs/_includes/version/sitespeed.io.txt | 2 +- .../sitespeed.io/configuration/config.md | 2 +- docs/feed/atom.xml | 91 ++++++++----------- docs/feed/browsertime.atom | 35 +++---- docs/feed/browsertime.rss | 29 +++--- docs/feed/rss.xml | 79 +++++++--------- docs/feed/sitespeed.io.atom | 58 +++++------- docs/feed/sitespeed.io.rss | 52 ++++------- 8 files changed, 152 insertions(+), 196 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index 336c821c4..b88575e38 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -23.6.1 \ No newline at end of file +23.7.0 \ No newline at end of file diff --git a/docs/documentation/sitespeed.io/configuration/config.md b/docs/documentation/sitespeed.io/configuration/config.md index 0bde5fd7b..df9e5aff8 100644 --- a/docs/documentation/sitespeed.io/configuration/config.md +++ b/docs/documentation/sitespeed.io/configuration/config.md @@ -44,7 +44,7 @@ Browser --axe.enable Run axe tests. Axe will run after all other metrics is collected and will add some extra time to each test. [boolean] -r, --browsertime.requestheader, --requestheader Request header that will be added to the request. Add multiple instances to add multiple request headers. Use the following format key:value. Only works in Chrome and Firefox. --browsertime.cookie, --cookie Cookie that will be added to the request. Add multiple instances to add multiple cookies. Use the following format cookieName=cookieValue. Only works in Chrome and Firefox. - --browsertime.block, --block Domain to block. Add multiple instances to add multiple domains that will be blocked. Only works in Chrome and Firefox. + --browsertime.block, --block Domain or URL or URL pattern to block. If you use Chrome you can also use --blockDomainsExcept (that is more performant). Works in Chrome/Edge. For Firefox you can only block domains. --browsertime.basicAuth, --basicAuth Use it if your server is behind Basic Auth. Format: username@password. Only works in Chrome and Firefox. --browsertime.headless, --headless Run the browser in headless mode. This is the browser internal headless mode, meaning you cannot collect Visual Metrics or in Chrome run any WebExtension (this means you cannot add cookies, requestheaders or use basic auth for headless Chrome). Only works in Chrome and Firefox. [boolean] [default: false] diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index 24bdf71d5..d3a2731f3 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-03-25T00:00:00.000Z + 2022-03-31T00:00:00.000Z https://github.com/jpmonette/feed Peter Hedenskog @@ -15,6 +15,45 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.7.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 + + 2022-03-31T00:00:00.000Z + Added + +
        +
      • Updated the +1 container to use Lighthouse 9.5.0.
      • +
      + +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 15.4.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.4.0 + + 2022-03-30T00:00:00.000Z + Added +
        +
      • Updated to Chrome and Chromedriver 100 #1743.
      • +
      +
        +
      • There's a new version of the visual metrics script contributed by Gregory Mierzwinski that removed the dependency of ImageMagick and instead needs the Python dependencies OpenCV-Python and Numpy. The long term goal is to use this as default but for now you can test it with --visualMetricsPortable.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      <![CDATA[sitespeed.io 23.6.1]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 @@ -246,41 +285,6 @@
      • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
      -]]>
      - - Sitespeed.io - https://www.sitespeed.io - -
      - - <![CDATA[sitespeed.io 23.0.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 - - 2022-02-21T00:00:00.000Z - Added -
        -
      • Use Browsertime 15.0.0.
      • -
      -
        -
      • Show alias name in the budget report page #3572.
      • -
      -

      Fixed

      -
        -
      • Fix broken JUnit output. Thank you rghetu for finding it #3569.
      • -
      -
        -
      • When comparing metrics side by side for different runs, mean/median and stddev was sometimes broken for some timing metrics. Fixed with #3573
      • -
      -

      Breaking changes

      -
        -
      • In this release we updated to Browsertime 15.0.0 that drops built in support for TSProxy. The reason to drop TSProxy is that it only works in Python 2 and the sunset for Python 2 was January 1, 2020. If you still need TSProxy you can set it up yourself.
      • -
      -
        -
      • Browsertime also drop support for getting visual metrics from the trace log. It was added to evaluate if it could be a compliment to the video visual metrics but it was not. Removing it also decreased the number of dependencies in Browsertime.
      • -
      -
        -
      • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
      • -
      ]]>
      Sitespeed.io @@ -379,21 +383,6 @@
      • There's a new setup how we build Docker releases and this release uses the new pipeline.
      -]]>
      - - Sitespeed.io - https://www.sitespeed.io - -
      - - <![CDATA[browsertime 14.20.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 - - 2022-02-07T00:00:00.000Z - Added -
        -
      • Docker container for both amd64 and arm64.
      • -
      ]]>
      Sitespeed.io diff --git a/docs/feed/browsertime.atom b/docs/feed/browsertime.atom index 595028596..b7f568d0c 100644 --- a/docs/feed/browsertime.atom +++ b/docs/feed/browsertime.atom @@ -2,7 +2,7 @@ browsertime-release-feed browsertime release feed - 2022-03-07T13:59:36.236Z + 2022-03-30T15:31:17.160Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,24 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[browsertime 15.4.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.4.0 + + 2022-03-30T00:00:00.000Z + Added +
        +
      • Updated to Chrome and Chromedriver 100 #1743.
      • +
      +
        +
      • There's a new version of the visual metrics script contributed by Gregory Mierzwinski that removed the dependency of ImageMagick and instead needs the Python dependencies OpenCV-Python and Numpy. The long term goal is to use this as default but for now you can test it with --visualMetricsPortable.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      <![CDATA[browsertime 15.3.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 @@ -175,21 +193,6 @@
      • There's a new setup how we build Docker releases and this release uses the new pipeline.
      -]]>
      - - Sitespeed.io - https://www.sitespeed.io - -
      - - <![CDATA[browsertime 14.20.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 - - 2022-02-07T00:00:00.000Z - Added -
        -
      • Docker container for both amd64 and arm64.
      • -
      ]]>
      Sitespeed.io diff --git a/docs/feed/browsertime.rss b/docs/feed/browsertime.rss index e76e1887d..64f72db68 100644 --- a/docs/feed/browsertime.rss +++ b/docs/feed/browsertime.rss @@ -4,7 +4,7 @@ browsertime release feed https://www.sitespeed.io New releases and changelog feed of browsertime - Mon, 07 Mar 2022 13:59:36 GMT + Wed, 30 Mar 2022 15:31:17 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,21 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[browsertime 15.4.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.4.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.4.0 + Wed, 30 Mar 2022 00:00:00 GMT + Added +
        +
      • Updated to Chrome and Chromedriver 100 #1743.
      • +
      +
        +
      • There's a new version of the visual metrics script contributed by Gregory Mierzwinski that removed the dependency of ImageMagick and instead needs the Python dependencies OpenCV-Python and Numpy. The long term goal is to use this as default but for now you can test it with --visualMetricsPortable.
      • +
      +]]>
      + +
      <![CDATA[browsertime 15.3.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 @@ -151,18 +166,6 @@
      • There's a new setup how we build Docker releases and this release uses the new pipeline.
      -]]> - -
      - - <![CDATA[browsertime 14.20.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 - Mon, 07 Feb 2022 00:00:00 GMT - Added -
        -
      • Docker container for both amd64 and arm64.
      • -
      ]]>
      diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index 7d3ade6f3..b121aca8c 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Fri, 25 Mar 2022 00:00:00 GMT + Thu, 31 Mar 2022 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -15,6 +15,39 @@ All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.7.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 + Thu, 31 Mar 2022 00:00:00 GMT + Added + +
        +
      • Updated the +1 container to use Lighthouse 9.5.0.
      • +
      + +]]>
      + +
      + + <![CDATA[browsertime 15.4.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.4.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.4.0 + Wed, 30 Mar 2022 00:00:00 GMT + Added +
        +
      • Updated to Chrome and Chromedriver 100 #1743.
      • +
      +
        +
      • There's a new version of the visual metrics script contributed by Gregory Mierzwinski that removed the dependency of ImageMagick and instead needs the Python dependencies OpenCV-Python and Numpy. The long term goal is to use this as default but for now you can test it with --visualMetricsPortable.
      • +
      +]]>
      + +
      <![CDATA[sitespeed.io 23.6.1]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 @@ -210,38 +243,6 @@
      • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
      -]]> - -
      - - <![CDATA[sitespeed.io 23.0.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 - Mon, 21 Feb 2022 00:00:00 GMT - Added -
        -
      • Use Browsertime 15.0.0.
      • -
      -
        -
      • Show alias name in the budget report page #3572.
      • -
      -

      Fixed

      -
        -
      • Fix broken JUnit output. Thank you rghetu for finding it #3569.
      • -
      -
        -
      • When comparing metrics side by side for different runs, mean/median and stddev was sometimes broken for some timing metrics. Fixed with #3573
      • -
      -

      Breaking changes

      -
        -
      • In this release we updated to Browsertime 15.0.0 that drops built in support for TSProxy. The reason to drop TSProxy is that it only works in Python 2 and the sunset for Python 2 was January 1, 2020. If you still need TSProxy you can set it up yourself.
      • -
      -
        -
      • Browsertime also drop support for getting visual metrics from the trace log. It was added to evaluate if it could be a compliment to the video visual metrics but it was not. Removing it also decreased the number of dependencies in Browsertime.
      • -
      -
        -
      • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
      • -
      ]]>
      @@ -325,18 +326,6 @@
      • There's a new setup how we build Docker releases and this release uses the new pipeline.
      -]]> - - - - <![CDATA[browsertime 14.20.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.0 - Mon, 07 Feb 2022 00:00:00 GMT - Added -
        -
      • Docker container for both amd64 and arm64.
      • -
      ]]>
      diff --git a/docs/feed/sitespeed.io.atom b/docs/feed/sitespeed.io.atom index 37c93a724..c7d0b41f2 100644 --- a/docs/feed/sitespeed.io.atom +++ b/docs/feed/sitespeed.io.atom @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-03-25T14:34:04.135Z + 2022-03-31T06:45:03.562Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,27 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 23.7.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 + + 2022-03-31T00:00:00.000Z + Added + +
        +
      • Updated the +1 container to use Lighthouse 9.5.0.
      • +
      + +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      <![CDATA[sitespeed.io 23.6.1]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 @@ -180,41 +201,6 @@
      • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
      -]]>
      - - Sitespeed.io - https://www.sitespeed.io - -
      - - <![CDATA[sitespeed.io 23.0.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 - - 2022-02-21T00:00:00.000Z - Added -
        -
      • Use Browsertime 15.0.0.
      • -
      -
        -
      • Show alias name in the budget report page #3572.
      • -
      -

      Fixed

      -
        -
      • Fix broken JUnit output. Thank you rghetu for finding it #3569.
      • -
      -
        -
      • When comparing metrics side by side for different runs, mean/median and stddev was sometimes broken for some timing metrics. Fixed with #3573
      • -
      -

      Breaking changes

      -
        -
      • In this release we updated to Browsertime 15.0.0 that drops built in support for TSProxy. The reason to drop TSProxy is that it only works in Python 2 and the sunset for Python 2 was January 1, 2020. If you still need TSProxy you can set it up yourself.
      • -
      -
        -
      • Browsertime also drop support for getting visual metrics from the trace log. It was added to evaluate if it could be a compliment to the video visual metrics but it was not. Removing it also decreased the number of dependencies in Browsertime.
      • -
      -
        -
      • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
      • -
      ]]>
      Sitespeed.io diff --git a/docs/feed/sitespeed.io.rss b/docs/feed/sitespeed.io.rss index b5bf00553..514a9f2f7 100644 --- a/docs/feed/sitespeed.io.rss +++ b/docs/feed/sitespeed.io.rss @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Fri, 25 Mar 2022 14:34:04 GMT + Thu, 31 Mar 2022 06:45:03 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,24 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[sitespeed.io 23.7.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 + Thu, 31 Mar 2022 00:00:00 GMT + Added + +
        +
      • Updated the +1 container to use Lighthouse 9.5.0.
      • +
      + +]]>
      + +
      <![CDATA[sitespeed.io 23.6.1]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.6.1 @@ -156,38 +174,6 @@
      • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
      -]]> - -
      - - <![CDATA[sitespeed.io 23.0.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.0 - Mon, 21 Feb 2022 00:00:00 GMT - Added -
        -
      • Use Browsertime 15.0.0.
      • -
      -
        -
      • Show alias name in the budget report page #3572.
      • -
      -

      Fixed

      -
        -
      • Fix broken JUnit output. Thank you rghetu for finding it #3569.
      • -
      -
        -
      • When comparing metrics side by side for different runs, mean/median and stddev was sometimes broken for some timing metrics. Fixed with #3573
      • -
      -

      Breaking changes

      -
        -
      • In this release we updated to Browsertime 15.0.0 that drops built in support for TSProxy. The reason to drop TSProxy is that it only works in Python 2 and the sunset for Python 2 was January 1, 2020. If you still need TSProxy you can set it up yourself.
      • -
      -
        -
      • Browsertime also drop support for getting visual metrics from the trace log. It was added to evaluate if it could be a compliment to the video visual metrics but it was not. Removing it also decreased the number of dependencies in Browsertime.
      • -
      -
        -
      • Linux/Mac OS will flush the DNS between runs, that means that you can have some changes in DNS lookup time when you upgrade to 23.0.0.
      • -
      ]]>
      From 0cc4aa9aa118b299bb07ac988087b6258a802362 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 5 Apr 2022 19:32:58 +0200 Subject: [PATCH 069/105] Make sure visual metrics exists for a run before it is used (#3619) --- lib/plugins/html/metricHelper.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/plugins/html/metricHelper.js b/lib/plugins/html/metricHelper.js index 2b19f2ab8..a68ef69e6 100644 --- a/lib/plugins/html/metricHelper.js +++ b/lib/plugins/html/metricHelper.js @@ -4,7 +4,7 @@ module.exports = { pickMedianRun(runs, pageInfo) { // Choose the median run. Early first version, in the future we can make // this configurable through the CLI - // If we have SpeedIndex use that else backup with RUM SpeedIndex + // If we have SpeedIndex use that else backup with loadEventEnd const speedIndexMedian = get( pageInfo, @@ -17,6 +17,8 @@ module.exports = { if (speedIndexMedian) { for (let run of runs) { if ( + // https://github.com/sitespeedio/sitespeed.io/issues/3618 + run.data.browsertime.run.visualMetrics && speedIndexMedian === run.data.browsertime.run.visualMetrics.SpeedIndex ) { return { From 47f11f86b16efb3a22e7b56a576c005be3aa7d94 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 5 Apr 2022 19:44:32 +0200 Subject: [PATCH 070/105] Fix JUnit/alias bug. (#3620) https://github.com/sitespeedio/sitespeed.io/issues/3617 --- lib/plugins/budget/junit.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/plugins/budget/junit.js b/lib/plugins/budget/junit.js index bcda3f912..c163e2fd2 100644 --- a/lib/plugins/budget/junit.js +++ b/lib/plugins/budget/junit.js @@ -11,24 +11,29 @@ exports.writeJunit = function (results, dir, options) { const urls = Object.keys(merge({}, results.failing, results.working)); for (const url of urls) { - const parsedUrl = urlParser.parse(url); - const fineUrl = + // The URL can be an alias + let name = url; + if (url.startsWith('http')) { + const parsedUrl = urlParser.parse(url); + name = url.startsWith('http') ? url : url; parsedUrl.hostname.replace(/\./g, '_') + - '.' + - parsedUrl.path.replace(/\./g, '_').replace(/\//g, '_'); + '.' + + parsedUrl.path.replace(/\./g, '_').replace(/\//g, '_'); + } + const suite = builder .testSuite() .name( options.budget.friendlyName ? options.budget.friendlyName - : 'sitespeed.io' + '.' + fineUrl + : 'sitespeed.io' + '.' + name ); if (results.failing[url]) { for (const result of results.failing[url]) { suite .testCase() - .className(fineUrl) + .className(name) .name(result.type + '.' + result.metric) .failure( result.metric + ' is ' + result.friendlyValue || @@ -46,7 +51,7 @@ exports.writeJunit = function (results, dir, options) { for (const result of results.working[url]) { suite .testCase() - .className(fineUrl) + .className(name) .name(result.type + '.' + result.metric) .standardOutput( result.metric + ' is ' + result.friendlyValue || From ea9e25331bb9b75538122af5df32164908dfbd1a Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 5 Apr 2022 19:58:43 +0200 Subject: [PATCH 071/105] bump edge and firefox --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 50af0723a..3fbe382be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM sitespeedio/webbrowsers:chrome-100.0-firefox-98.0-edge-99.0 +FROM sitespeedio/webbrowsers:chrome-100.0-firefox-99.0-edge-100.0 ARG TARGETPLATFORM=linux/amd64 From 118137adc47180f49a5cdae5287ee110979fee79 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 5 Apr 2022 19:59:04 +0200 Subject: [PATCH 072/105] new bt --- docs/_includes/version/browsertime.txt | 2 +- .../browsertime/configuration/config.md | 1 + npm-shrinkwrap.json | 30 +++++++++---------- package.json | 2 +- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/_includes/version/browsertime.txt b/docs/_includes/version/browsertime.txt index 92edc454c..0e94e314c 100644 --- a/docs/_includes/version/browsertime.txt +++ b/docs/_includes/version/browsertime.txt @@ -1 +1 @@ -15.4.0 \ No newline at end of file +16.0.0 \ No newline at end of file diff --git a/docs/documentation/browsertime/configuration/config.md b/docs/documentation/browsertime/configuration/config.md index 3300534b2..eae522362 100644 --- a/docs/documentation/browsertime/configuration/config.md +++ b/docs/documentation/browsertime/configuration/config.md @@ -193,6 +193,7 @@ Options: --userTimingWhitelist All userTimings are captured by default this option takes a regex that will whitelist which userTimings to capture in the results. --headless Run the browser in headless mode. Works for Firefox and Chrome. [boolean] [default: false] --gnirehtet Start gnirehtet and reverse tethering the traffic from your Android phone. [boolean] [default: false] + --flushDNS Flush DNS between runs, works on Mac OS and Linux. Your user needs sudo rights to be able to flush the DNS. [boolean] [default: false] --extension Path to a WebExtension to be installed in the browser. Note that --extension can be passed multiple times. --spa Convenient parameter to use if you test a SPA application: will automatically wait for X seconds after last network activity and use hash in file names. Read more: https://www.sitespeed.io/documentation/sitespeed.io/spa/ [boolean] [default: false] --browserRestartTries If the browser fails to start, you can retry to start it this amount of times. [number] [default: 3] diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 3a4471961..c48b7ae2e 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -13,7 +13,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.4.1", - "browsertime": "15.4.0", + "browsertime": "16.0.0", "cli-color": "2.0.0", "coach-core": "7.1.0", "concurrent-queue": "7.0.2", @@ -921,9 +921,9 @@ } }, "node_modules/@sitespeed.io/edgedriver": { - "version": "99.0.1150-25", - "resolved": "https://registry.npmjs.org/@sitespeed.io/edgedriver/-/edgedriver-99.0.1150-25.tgz", - "integrity": "sha512-HQH7RmaV495xl8ksxRPYrT67xUfNr76o4ZKyx+OU0NgF3TJyCrgvbJylV1iQR3mP42JVoC0GW5XIGEDzphqA+w==", + "version": "100.0.1185-29", + "resolved": "https://registry.npmjs.org/@sitespeed.io/edgedriver/-/edgedriver-100.0.1185-29.tgz", + "integrity": "sha512-vqOVE14qTgINA9hWDhVl4M7pKwMnP71FUofaIaHMx2H2x/VHhlJ/b4EqfIxSYghoFs/vZYDmMwawiQoNSAnPJg==", "hasInstallScript": true, "dependencies": { "node-downloader-helper": "1.0.18", @@ -1461,14 +1461,14 @@ } }, "node_modules/browsertime": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.4.0.tgz", - "integrity": "sha512-fJZrGTPp4X7p2AOPQhG1UkBNUeNPzG8R71DTNYG4vVsaaVyi7AtMrIGE/XRgTE7adzKW3uADI7pjD7ZwdB54/Q==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.0.0.tgz", + "integrity": "sha512-ivExloOBb3I4t1LbZLup95m+xvG4pdA7PAkbKq35fYpvVMDiVxupQviO7kYWTNOecuk/WoRT6qZeGzwBx2UaaQ==", "dependencies": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", "@sitespeed.io/chromedriver": "100.0.4896-20", - "@sitespeed.io/edgedriver": "99.0.1150-25", + "@sitespeed.io/edgedriver": "100.0.1185-29", "@sitespeed.io/geckodriver": "0.30.0", "@sitespeed.io/throttle": "3.0.0", "@sitespeed.io/tracium": "0.3.3", @@ -8179,9 +8179,9 @@ } }, "@sitespeed.io/edgedriver": { - "version": "99.0.1150-25", - "resolved": "https://registry.npmjs.org/@sitespeed.io/edgedriver/-/edgedriver-99.0.1150-25.tgz", - "integrity": "sha512-HQH7RmaV495xl8ksxRPYrT67xUfNr76o4ZKyx+OU0NgF3TJyCrgvbJylV1iQR3mP42JVoC0GW5XIGEDzphqA+w==", + "version": "100.0.1185-29", + "resolved": "https://registry.npmjs.org/@sitespeed.io/edgedriver/-/edgedriver-100.0.1185-29.tgz", + "integrity": "sha512-vqOVE14qTgINA9hWDhVl4M7pKwMnP71FUofaIaHMx2H2x/VHhlJ/b4EqfIxSYghoFs/vZYDmMwawiQoNSAnPJg==", "requires": { "node-downloader-helper": "1.0.18", "node-stream-zip": "1.15.0" @@ -8616,14 +8616,14 @@ } }, "browsertime": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-15.4.0.tgz", - "integrity": "sha512-fJZrGTPp4X7p2AOPQhG1UkBNUeNPzG8R71DTNYG4vVsaaVyi7AtMrIGE/XRgTE7adzKW3uADI7pjD7ZwdB54/Q==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.0.0.tgz", + "integrity": "sha512-ivExloOBb3I4t1LbZLup95m+xvG4pdA7PAkbKq35fYpvVMDiVxupQviO7kYWTNOecuk/WoRT6qZeGzwBx2UaaQ==", "requires": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", "@sitespeed.io/chromedriver": "100.0.4896-20", - "@sitespeed.io/edgedriver": "99.0.1150-25", + "@sitespeed.io/edgedriver": "100.0.1185-29", "@sitespeed.io/geckodriver": "0.30.0", "@sitespeed.io/throttle": "3.0.0", "@sitespeed.io/tracium": "0.3.3", diff --git a/package.json b/package.json index 2facde106..6376db4d8 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.4.1", - "browsertime": "15.4.0", + "browsertime": "16.0.0", "coach-core": "7.1.0", "cli-color": "2.0.0", "concurrent-queue": "7.0.2", From 6434411c733a9b38d87f157b19f67ad4ee9023ac Mon Sep 17 00:00:00 2001 From: soulgalore Date: Tue, 5 Apr 2022 19:59:24 +0200 Subject: [PATCH 073/105] new pagexray --- docs/_includes/version/pagexray.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_includes/version/pagexray.txt b/docs/_includes/version/pagexray.txt index fdc669880..cca25a93c 100644 --- a/docs/_includes/version/pagexray.txt +++ b/docs/_includes/version/pagexray.txt @@ -1 +1 @@ -4.4.0 +4.4.1 From 5580558d5d4e3c8982b7b5033018d28ed67de929 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 6 Apr 2022 08:50:27 +0200 Subject: [PATCH 074/105] changelog: updates --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c13300cf9..ace41b191 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) + +## 24.0.0 - 2022-04-06 + +### Changed +* Upgraded to [Browsertime 16.0.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1600---2022-04-05) that changed how the DNS is flushed. You need to add `--flushDNS` to your runs to flush the DNS. + +### Added +* Use Firefox 99 and Edge/Edgedriver 100 in the Dockker container. + +### Fixed +* Better catch if Visual Metrics fails [#3619](https://github.com/sitespeedio/sitespeed.io/pull/3619) +* Fixed JUnit/alias bug [#3620](https://github.com/sitespeedio/sitespeed.io/pull/3620) ## 23.7.0 - 2022-03-31 ### Added * Updated to Chrome/Chromedriver 100 and [Browsertime 15.4.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1540---2022-03-30). From 518122e8c665136bb83fd21267c367dcb1cb9e9e Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 6 Apr 2022 08:50:40 +0200 Subject: [PATCH 075/105] Add flush option --- lib/cli/cli.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/cli/cli.js b/lib/cli/cli.js index cb21a3a65..1cc75a124 100644 --- a/lib/cli/cli.js +++ b/lib/cli/cli.js @@ -991,6 +991,12 @@ module.exports.parseCommandLine = function parseCommandLine() { describe: 'Https proxy (host:port)', group: 'proxy' }) + .option('browsertime.flushDNS', { + alias: 'flushDNS', + describe: + 'Flush the DNS between runs (works on Mac OS and Linux). The user needs sudo rights to flush the DNS.', + group: 'Browser' + }) .option('browsertime.headless', { alias: 'headless', type: 'boolean', From e9fd8bc61676c79a120850de3dbc5ae6b62d2c24 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 6 Apr 2022 12:49:20 +0200 Subject: [PATCH 076/105] New browsertime fix release --- docs/_includes/version/browsertime.txt | 2 +- npm-shrinkwrap.json | 14 +++++++------- package.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/_includes/version/browsertime.txt b/docs/_includes/version/browsertime.txt index 0e94e314c..ab54c33c7 100644 --- a/docs/_includes/version/browsertime.txt +++ b/docs/_includes/version/browsertime.txt @@ -1 +1 @@ -16.0.0 \ No newline at end of file +16.0.1 \ No newline at end of file diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index c48b7ae2e..e12917f85 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -13,7 +13,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.4.1", - "browsertime": "16.0.0", + "browsertime": "16.0.1", "cli-color": "2.0.0", "coach-core": "7.1.0", "concurrent-queue": "7.0.2", @@ -1461,9 +1461,9 @@ } }, "node_modules/browsertime": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.0.0.tgz", - "integrity": "sha512-ivExloOBb3I4t1LbZLup95m+xvG4pdA7PAkbKq35fYpvVMDiVxupQviO7kYWTNOecuk/WoRT6qZeGzwBx2UaaQ==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.0.1.tgz", + "integrity": "sha512-Tj4o5m9PnXV2RHi0LbHnErbf3pIXmL+n+LNF1fcNqcmYjxJCuQJgSs+LyESuAjYRqiH+2zeGHOXWZDTYj66DEQ==", "dependencies": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", @@ -8616,9 +8616,9 @@ } }, "browsertime": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.0.0.tgz", - "integrity": "sha512-ivExloOBb3I4t1LbZLup95m+xvG4pdA7PAkbKq35fYpvVMDiVxupQviO7kYWTNOecuk/WoRT6qZeGzwBx2UaaQ==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.0.1.tgz", + "integrity": "sha512-Tj4o5m9PnXV2RHi0LbHnErbf3pIXmL+n+LNF1fcNqcmYjxJCuQJgSs+LyESuAjYRqiH+2zeGHOXWZDTYj66DEQ==", "requires": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", diff --git a/package.json b/package.json index 6376db4d8..3c2393e7d 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.4.1", - "browsertime": "16.0.0", + "browsertime": "16.0.1", "coach-core": "7.1.0", "cli-color": "2.0.0", "concurrent-queue": "7.0.2", From 224d44c2ef6145ca5a3c3a299304c0455c976116 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 6 Apr 2022 20:28:52 +0200 Subject: [PATCH 077/105] new release --- CHANGELOG.md | 2 +- docs/documentation/browsertime/index.md | 4 ++-- docs/documentation/sitespeed.io/index.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ace41b191..ce9c63754 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ## 24.0.0 - 2022-04-06 ### Changed -* Upgraded to [Browsertime 16.0.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1600---2022-04-05) that changed how the DNS is flushed. You need to add `--flushDNS` to your runs to flush the DNS. +* Upgraded to [Browsertime 16.0.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1600---2022-04-05) that changed how the DNS is flushed. You need to add `--flushDNS` to your conifguration to flush the DNS between runs. ### Added * Use Firefox 99 and Edge/Edgedriver 100 in the Dockker container. diff --git a/docs/documentation/browsertime/index.md b/docs/documentation/browsertime/index.md index a2e241090..d89f7f21b 100644 --- a/docs/documentation/browsertime/index.md +++ b/docs/documentation/browsertime/index.md @@ -1,6 +1,6 @@ --- layout: default -title: Documentation Browsertime 15 +title: Documentation Browsertime 16 description: Read about all you can do with Browsertime. keywords: tools, documentation, web performance nav: documentation @@ -9,7 +9,7 @@ image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png twitterdescription: Documentation for Browsertime. --- -# Documentation v15 +# Documentation v16 Browsertime logo diff --git a/docs/documentation/sitespeed.io/index.md b/docs/documentation/sitespeed.io/index.md index 4890b4f3a..ed988f6a4 100644 --- a/docs/documentation/sitespeed.io/index.md +++ b/docs/documentation/sitespeed.io/index.md @@ -1,6 +1,6 @@ --- layout: default -title: Documentation sitespeed.io 23.x +title: Documentation sitespeed.io 24.x description: Read about all you can do with sitespeed.io. keywords: tools, documentation, web performance nav: documentation @@ -9,7 +9,7 @@ image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png twitterdescription: Documentation for sitespeed.io. --- -# Documentation v23 +# Documentation v24 sitespeed.io logo From a9280d3c8e58d5862eb5c82332c2195a8070792e Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 6 Apr 2022 20:29:17 +0200 Subject: [PATCH 078/105] 24.0.0 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index e12917f85..05ab20134 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "23.7.0", + "version": "24.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "23.7.0", + "version": "24.0.0", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.8.3", diff --git a/package.json b/package.json index 3c2393e7d..76be22233 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "23.7.0", + "version": "24.0.0", "description": "Analyze the web performance of your site", "keywords": [ "performance", From e482ddf4e8966a6d5a59bcfef1a48cf5f0a7e8b5 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 6 Apr 2022 20:56:55 +0200 Subject: [PATCH 079/105] new versions --- docs/_includes/version/sitespeed.io.txt | 2 +- .../sitespeed.io/configuration/config.md | 1 + docs/feed/atom.xml | 147 ++++++++++-------- docs/feed/browsertime.atom | 76 +++++---- docs/feed/browsertime.rss | 64 ++++---- docs/feed/pagexray.atom | 32 ++-- docs/feed/pagexray.rss | 26 ++-- docs/feed/rss.xml | 123 ++++++++------- docs/feed/sitespeed.io.atom | 43 +++-- docs/feed/sitespeed.io.rss | 37 +++-- 10 files changed, 314 insertions(+), 237 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index b88575e38..942bb7eac 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -23.7.0 \ No newline at end of file +24.0.0 \ No newline at end of file diff --git a/docs/documentation/sitespeed.io/configuration/config.md b/docs/documentation/sitespeed.io/configuration/config.md index df9e5aff8..081d247d6 100644 --- a/docs/documentation/sitespeed.io/configuration/config.md +++ b/docs/documentation/sitespeed.io/configuration/config.md @@ -46,6 +46,7 @@ Browser --browsertime.cookie, --cookie Cookie that will be added to the request. Add multiple instances to add multiple cookies. Use the following format cookieName=cookieValue. Only works in Chrome and Firefox. --browsertime.block, --block Domain or URL or URL pattern to block. If you use Chrome you can also use --blockDomainsExcept (that is more performant). Works in Chrome/Edge. For Firefox you can only block domains. --browsertime.basicAuth, --basicAuth Use it if your server is behind Basic Auth. Format: username@password. Only works in Chrome and Firefox. + --browsertime.flushDNS, --flushDNS Flush the DNS between runs (works on Mac OS and Linux). The user needs sudo rights to flush the DNS. --browsertime.headless, --headless Run the browser in headless mode. This is the browser internal headless mode, meaning you cannot collect Visual Metrics or in Chrome run any WebExtension (this means you cannot add cookies, requestheaders or use basic auth for headless Chrome). Only works in Chrome and Firefox. [boolean] [default: false] video diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index d3a2731f3..e72ae11d0 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-03-31T00:00:00.000Z + 2022-04-06T00:00:00.000Z https://github.com/jpmonette/feed Peter Hedenskog @@ -15,6 +15,88 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 24.0.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 + + 2022-04-06T00:00:00.000Z + Added +
        +
      • Use Firefox 99 and Edge/Edgedriver 100 in the Dockker container.
      • +
      +

      Fixed

      +
        +
      • Better catch if Visual Metrics fails #3619
      • +
      +
        +
      • Fixed JUnit/alias bug #3620
      • +
      +

      Changed

      +
        +
      • Upgraded to Browsertime 16.0.0 that changed how the DNS is flushed. You need to add --flushDNS to your conifguration to flush the DNS between runs.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 16.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + + 2022-04-06T00:00:00.000Z + Fixed +
        +
      • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[browsertime 16.0.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.0 + + 2022-04-05T00:00:00.000Z + Added +
        +
      • Firefox 99 in the Docker container
      • +
      +
        +
      • Edge and Edgedriver 100
      • +
      +

      Fixed

      +
        +
      • Automatically save the original video if visual metrics fails #1755.
      • +
      +

      Changed

      +
        +
      • When I introduced flushing of the DNS per run I missed that it makes you need to run sudo to do it (Mac/Linux). That sucks so instead of being able to disable the flushing --disableDNSFlush you now enables it with --flushDNS #1752.
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      + + <![CDATA[pagexray 4.4.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.1 + + 2022-04-05T00:00:00.000Z + Fixed +
        +
      • Bumped minimist to 1.2.6
      • +
      +]]>
      + + Sitespeed.io + https://www.sitespeed.io + +
      <![CDATA[sitespeed.io 23.7.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 @@ -270,21 +352,6 @@
      • Collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser #1735.
      -]]>
    - - Sitespeed.io - https://www.sitespeed.io - - - - <![CDATA[sitespeed.io 23.0.1]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 - - 2022-02-21T00:00:00.000Z - Fixed -
      -
    • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
    • -
    ]]>
    Sitespeed.io @@ -350,39 +417,6 @@
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    -]]>
    - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 14.21.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 - - 2022-02-08T00:00:00.000Z - Added -
      -
    • Upgraded to Egdedriver 98
    • -
    -
      -
    • Upgraded to Edge 98 and Firefox 97 in the Docker container
    • -
    -]]>
    - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 14.20.3]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 - - 2022-02-07T00:00:00.000Z - Fixed -
      -
    • There's a new setup how we build Docker releases and this release uses the new pipeline.
    • -
    ]]>
    Sitespeed.io @@ -869,21 +903,6 @@
    • Removed cookie statistics field since it was broken. Report number of first and third party cookies instead.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[pagexray 2.6.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 - - 2020-11-13T00:00:00.000Z - Added -
      -
    • If an asset has the HTML/text content it will be added to the asset section #90.
    • -
    ]]>
    Sitespeed.io diff --git a/docs/feed/browsertime.atom b/docs/feed/browsertime.atom index b7f568d0c..ad5824ac8 100644 --- a/docs/feed/browsertime.atom +++ b/docs/feed/browsertime.atom @@ -2,7 +2,7 @@ browsertime-release-feed browsertime release feed - 2022-03-30T15:31:17.160Z + 2022-04-06T10:48:06.436Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,47 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[browsertime 16.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + + 2022-04-06T00:00:00.000Z + Fixed +
      +
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 16.0.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.0 + + 2022-04-05T00:00:00.000Z + Added +
      +
    • Firefox 99 in the Docker container
    • +
    +
      +
    • Edge and Edgedriver 100
    • +
    +

    Fixed

    +
      +
    • Automatically save the original video if visual metrics fails #1755.
    • +
    +

    Changed

    +
      +
    • When I introduced flushing of the DNS per run I missed that it makes you need to run sudo to do it (Mac/Linux). That sucks so instead of being able to disable the flushing --disableDNSFlush you now enables it with --flushDNS #1752.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[browsertime 15.4.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.4.0 @@ -160,39 +201,6 @@
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 14.21.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 - - 2022-02-08T00:00:00.000Z - Added -
      -
    • Upgraded to Egdedriver 98
    • -
    -
      -
    • Upgraded to Edge 98 and Firefox 97 in the Docker container
    • -
    -]]>
    - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 14.20.3]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 - - 2022-02-07T00:00:00.000Z - Fixed -
      -
    • There's a new setup how we build Docker releases and this release uses the new pipeline.
    • -
    ]]>
    Sitespeed.io diff --git a/docs/feed/browsertime.rss b/docs/feed/browsertime.rss index 64f72db68..33b14a7b6 100644 --- a/docs/feed/browsertime.rss +++ b/docs/feed/browsertime.rss @@ -4,7 +4,7 @@ browsertime release feed https://www.sitespeed.io New releases and changelog feed of browsertime - Wed, 30 Mar 2022 15:31:17 GMT + Wed, 06 Apr 2022 10:48:06 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,41 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[browsertime 16.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + Wed, 06 Apr 2022 00:00:00 GMT + Fixed +
      +
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 16.0.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.0 + Tue, 05 Apr 2022 00:00:00 GMT + Added +
      +
    • Firefox 99 in the Docker container
    • +
    +
      +
    • Edge and Edgedriver 100
    • +
    +

    Fixed

    +
      +
    • Automatically save the original video if visual metrics fails #1755.
    • +
    +

    Changed

    +
      +
    • When I introduced flushing of the DNS per run I missed that it makes you need to run sudo to do it (Mac/Linux). That sucks so instead of being able to disable the flushing --disableDNSFlush you now enables it with --flushDNS #1752.
    • +
    +]]>
    + +
    <![CDATA[browsertime 15.4.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.4.0 @@ -139,33 +174,6 @@
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    -]]> - -
    - - <![CDATA[browsertime 14.21.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 - Tue, 08 Feb 2022 00:00:00 GMT - Added -
      -
    • Upgraded to Egdedriver 98
    • -
    -
      -
    • Upgraded to Edge 98 and Firefox 97 in the Docker container
    • -
    -]]>
    - -
    - - <![CDATA[browsertime 14.20.3]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 - Mon, 07 Feb 2022 00:00:00 GMT - Fixed -
      -
    • There's a new setup how we build Docker releases and this release uses the new pipeline.
    • -
    ]]>
    diff --git a/docs/feed/pagexray.atom b/docs/feed/pagexray.atom index fce842acd..6df9a1bc7 100644 --- a/docs/feed/pagexray.atom +++ b/docs/feed/pagexray.atom @@ -2,7 +2,7 @@ pagexray-release-feed pagexray release feed - 2022-02-24T13:43:37.433Z + 2022-04-05T17:59:28.824Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,21 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[pagexray 4.4.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.1 + + 2022-04-05T00:00:00.000Z + Fixed +
      +
    • Bumped minimist to 1.2.6
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[pagexray 4.4.0]]> https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 @@ -156,21 +171,6 @@
    • Removed cookie statistics field since it was broken. Report number of first and third party cookies instead.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[pagexray 2.6.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 - - 2020-11-13T00:00:00.000Z - Added -
      -
    • If an asset has the HTML/text content it will be added to the asset section #90.
    • -
    ]]>
    Sitespeed.io diff --git a/docs/feed/pagexray.rss b/docs/feed/pagexray.rss index ab4b8e7c3..89c7df893 100644 --- a/docs/feed/pagexray.rss +++ b/docs/feed/pagexray.rss @@ -4,7 +4,7 @@ pagexray release feed https://www.sitespeed.io New releases and changelog feed of pagexray - Thu, 24 Feb 2022 13:43:37 GMT + Tue, 05 Apr 2022 17:59:28 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,18 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[pagexray 4.4.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.1 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.1 + Tue, 05 Apr 2022 00:00:00 GMT + Fixed +
      +
    • Bumped minimist to 1.2.6
    • +
    +]]>
    + +
    <![CDATA[pagexray 4.4.0]]> https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.0 @@ -132,18 +144,6 @@
    • Removed cookie statistics field since it was broken. Report number of first and third party cookies instead.
    -]]> - -
    - - <![CDATA[pagexray 2.6.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 - Fri, 13 Nov 2020 00:00:00 GMT - Added -
      -
    • If an asset has the HTML/text content it will be added to the asset section #90.
    • -
    ]]>
    diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index b121aca8c..f255cabaa 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Thu, 31 Mar 2022 00:00:00 GMT + Wed, 06 Apr 2022 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -15,6 +15,76 @@ All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 24.0.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 + Wed, 06 Apr 2022 00:00:00 GMT + Added +
      +
    • Use Firefox 99 and Edge/Edgedriver 100 in the Dockker container.
    • +
    +

    Fixed

    +
      +
    • Better catch if Visual Metrics fails #3619
    • +
    +
      +
    • Fixed JUnit/alias bug #3620
    • +
    +

    Changed

    +
      +
    • Upgraded to Browsertime 16.0.0 that changed how the DNS is flushed. You need to add --flushDNS to your conifguration to flush the DNS between runs.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 16.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + Wed, 06 Apr 2022 00:00:00 GMT + Fixed +
      +
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • +
    +]]>
    + +
    + + <![CDATA[browsertime 16.0.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.0 + Tue, 05 Apr 2022 00:00:00 GMT + Added +
      +
    • Firefox 99 in the Docker container
    • +
    +
      +
    • Edge and Edgedriver 100
    • +
    +

    Fixed

    +
      +
    • Automatically save the original video if visual metrics fails #1755.
    • +
    +

    Changed

    +
      +
    • When I introduced flushing of the DNS per run I missed that it makes you need to run sudo to do it (Mac/Linux). That sucks so instead of being able to disable the flushing --disableDNSFlush you now enables it with --flushDNS #1752.
    • +
    +]]>
    + +
    + + <![CDATA[pagexray 4.4.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.1 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.4.1 + Tue, 05 Apr 2022 00:00:00 GMT + Fixed +
      +
    • Bumped minimist to 1.2.6
    • +
    +]]>
    + +
    <![CDATA[sitespeed.io 23.7.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 @@ -234,18 +304,6 @@ ]]> - - <![CDATA[sitespeed.io 23.0.1]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 - Mon, 21 Feb 2022 00:00:00 GMT - Fixed -
      -
    • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
    • -
    -]]>
    - -
    <![CDATA[browsertime 15.0.1]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.0.1 @@ -299,33 +357,6 @@
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    -]]> - -
    - - <![CDATA[browsertime 14.21.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.0 - Tue, 08 Feb 2022 00:00:00 GMT - Added -
      -
    • Upgraded to Egdedriver 98
    • -
    -
      -
    • Upgraded to Edge 98 and Firefox 97 in the Docker container
    • -
    -]]>
    - -
    - - <![CDATA[browsertime 14.20.3]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.20.3 - Mon, 07 Feb 2022 00:00:00 GMT - Fixed -
      -
    • There's a new setup how we build Docker releases and this release uses the new pipeline.
    • -
    ]]>
    @@ -725,18 +756,6 @@
    • Removed cookie statistics field since it was broken. Report number of first and third party cookies instead.
    -]]> - -
    - - <![CDATA[pagexray 2.6.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#2.6.0 - Fri, 13 Nov 2020 00:00:00 GMT - Added -
      -
    • If an asset has the HTML/text content it will be added to the asset section #90.
    • -
    ]]>
    diff --git a/docs/feed/sitespeed.io.atom b/docs/feed/sitespeed.io.atom index c7d0b41f2..cd11571a6 100644 --- a/docs/feed/sitespeed.io.atom +++ b/docs/feed/sitespeed.io.atom @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-03-31T06:45:03.562Z + 2022-04-06T18:30:06.326Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,32 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 24.0.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 + + 2022-04-06T00:00:00.000Z + Added +
      +
    • Use Firefox 99 and Edge/Edgedriver 100 in the Dockker container.
    • +
    +

    Fixed

    +
      +
    • Better catch if Visual Metrics fails #3619
    • +
    +
      +
    • Fixed JUnit/alias bug #3620
    • +
    +

    Changed

    +
      +
    • Upgraded to Browsertime 16.0.0 that changed how the DNS is flushed. You need to add --flushDNS to your conifguration to flush the DNS between runs.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[sitespeed.io 23.7.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 @@ -186,21 +212,6 @@
    • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[sitespeed.io 23.0.1]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 - - 2022-02-21T00:00:00.000Z - Fixed -
      -
    • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
    • -
    ]]>
    Sitespeed.io diff --git a/docs/feed/sitespeed.io.rss b/docs/feed/sitespeed.io.rss index 514a9f2f7..d5d80d7d0 100644 --- a/docs/feed/sitespeed.io.rss +++ b/docs/feed/sitespeed.io.rss @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Thu, 31 Mar 2022 06:45:03 GMT + Wed, 06 Apr 2022 18:30:06 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,29 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[sitespeed.io 24.0.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 + Wed, 06 Apr 2022 00:00:00 GMT + Added +
      +
    • Use Firefox 99 and Edge/Edgedriver 100 in the Dockker container.
    • +
    +

    Fixed

    +
      +
    • Better catch if Visual Metrics fails #3619
    • +
    +
      +
    • Fixed JUnit/alias bug #3620
    • +
    +

    Changed

    +
      +
    • Upgraded to Browsertime 16.0.0 that changed how the DNS is flushed. You need to add --flushDNS to your conifguration to flush the DNS between runs.
    • +
    +]]>
    + +
    <![CDATA[sitespeed.io 23.7.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.7.0 @@ -162,18 +185,6 @@
    • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
    -]]> - -
    - - <![CDATA[sitespeed.io 23.0.1]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.0.1 - Mon, 21 Feb 2022 00:00:00 GMT - Fixed -
      -
    • Bumped to Browsertime 15.0.1 to make sure connectivity is set only once. In last release it was set in the beginning of the test and for eacch iteration. In practice that doesn't matter but it's very confusing if you check the logs.
    • -
    ]]>
    From 2abebd05ce012fbdfaba62e335c6612ddadb9091 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Sat, 9 Apr 2022 12:33:21 +0200 Subject: [PATCH 080/105] Another fix for failing visual elements (#3623) --- lib/plugins/html/templates/url/metrics/index.pug | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/plugins/html/templates/url/metrics/index.pug b/lib/plugins/html/templates/url/metrics/index.pug index 1a8b0ee02..e4f514a4c 100644 --- a/lib/plugins/html/templates/url/metrics/index.pug +++ b/lib/plugins/html/templates/url/metrics/index.pug @@ -289,7 +289,10 @@ if browsertime td #{element.name} if (element.filename) | (#{element.filename}) - td #{visualMetrics[element.name] ? h.time.ms(visualMetrics[element.name].toFixed(0)): ''} + if visualMetrics[element.name] + td #{visualMetrics[element.name] ? h.time.ms(visualMetrics[element.name].toFixed(0)): ''} + else + td td #{element.x} td #{element.y} td #{element.width} From abbf388e4d51b5c0bfc0b2e4637acddff749a7be Mon Sep 17 00:00:00 2001 From: soulgalore Date: Mon, 11 Apr 2022 08:41:09 +0200 Subject: [PATCH 081/105] Bump nodejs version --- npm-shrinkwrap.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 05ab20134..8f24648c5 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -75,7 +75,7 @@ "sass": "1.34.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.19.1" } }, "node_modules/@babel/helper-validator-identifier": { diff --git a/package.json b/package.json index 76be22233..bc7eb87f7 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "generate:assets": "mkdir -p assets/$npm_package_version && cp -R lib/plugins/html/assets/ assets/$npm_package_version/" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.19.1" }, "devDependencies": { "bluebird": "3.5.5", From 34784e419bf4661cd4786ae3a75e8ab67b136d2f Mon Sep 17 00:00:00 2001 From: soulgalore Date: Mon, 11 Apr 2022 08:53:29 +0200 Subject: [PATCH 082/105] Even more safe checks when visual elements is broken --- lib/plugins/html/templates/url/metrics/index.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/html/templates/url/metrics/index.pug b/lib/plugins/html/templates/url/metrics/index.pug index e4f514a4c..2ffcc9b1c 100644 --- a/lib/plugins/html/templates/url/metrics/index.pug +++ b/lib/plugins/html/templates/url/metrics/index.pug @@ -289,7 +289,7 @@ if browsertime td #{element.name} if (element.filename) | (#{element.filename}) - if visualMetrics[element.name] + if element && visualMetrics && visualMetrics[element.name] td #{visualMetrics[element.name] ? h.time.ms(visualMetrics[element.name].toFixed(0)): ''} else td From ae64cf8b9c9bba4666273aba191dca70ca05b9d2 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Mon, 11 Apr 2022 14:33:45 +0200 Subject: [PATCH 083/105] Make it possible to disable annotations for Graphite. (#3625) https://github.com/sitespeedio/sitespeed.io/issues/3624 --- lib/plugins/graphite/cli.js | 7 +++++++ lib/plugins/graphite/index.js | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/plugins/graphite/cli.js b/lib/plugins/graphite/cli.js index 734ed357b..84043b101 100644 --- a/lib/plugins/graphite/cli.js +++ b/lib/plugins/graphite/cli.js @@ -59,6 +59,13 @@ module.exports = { 'Include screenshot (from Browsertime/WebPageTest) in the annotation. You need to specify a --resultBaseURL for this to work.', group: 'Graphite' }, + sendAnnotation: { + default: true, + type: 'boolean', + describe: + 'Send annotations when a run is finished. You need to specify a --resultBaseURL for this to work. However if you for example use a Prometheus exporter, you may want to make sure annotations are not sent, then set it to false.', + group: 'Graphite' + }, annotationRetentionMinutes: { type: 'number', describe: diff --git a/lib/plugins/graphite/index.js b/lib/plugins/graphite/index.js index 2f4173e84..d87f5b0a1 100644 --- a/lib/plugins/graphite/index.js +++ b/lib/plugins/graphite/index.js @@ -60,7 +60,7 @@ module.exports = { this.messageTypesToFireAnnotations = []; this.receivedTypesThatFireAnnotations = {}; this.make = context.messageMaker('graphite').make; - this.sendAnnotation = true; + this.sendAnnotation = opts.sendAnnotation || true; this.alias = {}; this.wptExtras = {}; this.usingBrowsertime = false; From 9a54e351c666b2d9163fccd04146cfbcd9d796a5 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 13 Apr 2022 21:18:13 +0200 Subject: [PATCH 084/105] bump coach version --- docs/_includes/version/coach-core.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_includes/version/coach-core.txt b/docs/_includes/version/coach-core.txt index a3fcc7121..21c8c7b46 100644 --- a/docs/_includes/version/coach-core.txt +++ b/docs/_includes/version/coach-core.txt @@ -1 +1 @@ -7.1.0 +7.1.1 From 26504118525f8b4ac8d4579a556f22e77ef1b949 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 13 Apr 2022 21:19:25 +0200 Subject: [PATCH 085/105] Update feeds --- docs/feed/atom.xml | 82 +++++++++++++++++++-------------------- docs/feed/coach-core.atom | 32 +++++++-------- docs/feed/coach-core.rss | 26 ++++++------- docs/feed/rss.xml | 74 +++++++++++++++++------------------ 4 files changed, 107 insertions(+), 107 deletions(-) diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index e72ae11d0..5ecadf005 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-04-06T00:00:00.000Z + 2022-04-13T00:00:00.000Z https://github.com/jpmonette/feed Peter Hedenskog @@ -15,6 +15,21 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[coach-core 7.1.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.1 + + 2022-04-13T00:00:00.000Z + Fixed +
      +
    • Upgraded to PageXray 4.4.1 and Third Party Web 0.15.0.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[sitespeed.io 24.0.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 @@ -627,13 +642,13 @@
    - <![CDATA[pagexray 4.3.1]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 - + <![CDATA[coach-core 6.4.3]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.3 + 2021-07-21T00:00:00.000Z - Added + Fixed
      -
    • Added missing in_body_parser_blocking render blocking info for Chrome.
    • +
    • Updated to latest PageXray and Third patrty web 0.12.4.
    ]]>
    @@ -642,13 +657,13 @@ - <![CDATA[coach-core 6.4.3]]> - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.3 - + <![CDATA[pagexray 4.3.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 + 2021-07-21T00:00:00.000Z - Fixed + Added
      -
    • Updated to latest PageXray and Third patrty web 0.12.4.
    • +
    • Added missing in_body_parser_blocking render blocking info for Chrome.
    ]]>
    @@ -680,21 +695,6 @@
    • Use all headers for Wappalyzer (before only the main document was used) #60.
    -]]>
    - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[pagexray 4.3.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 - - 2021-06-02T00:00:00.000Z - Added -
      -
    • Include request method per asset #105.
    • -
    ]]>
    Sitespeed.io @@ -717,6 +717,21 @@
    • Only look for GET request for private and caching headers #55. See #53.
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[pagexray 4.3.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 + + 2021-06-02T00:00:00.000Z + Added +
      +
    • Include request method per asset #105.
    • +
    ]]>
    Sitespeed.io @@ -777,21 +792,6 @@
    • Better check for the new FLoC privacy advice.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[coach-core 6.3.0]]> - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 - - 2021-04-09T00:00:00.000Z - Added -
      -
    • New privacy advice that looks for header to disable of FLoC in Chrome.
    • -
    ]]>
    Sitespeed.io diff --git a/docs/feed/coach-core.atom b/docs/feed/coach-core.atom index 2c9dd6ccd..e25055334 100644 --- a/docs/feed/coach-core.atom +++ b/docs/feed/coach-core.atom @@ -2,7 +2,7 @@ coach-core-release-feed coach-core release feed - 2022-02-24T13:43:37.432Z + 2022-04-13T19:14:16.196Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,21 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[coach-core 7.1.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.1 + + 2022-04-13T00:00:00.000Z + Fixed +
      +
    • Upgraded to PageXray 4.4.1 and Third Party Web 0.15.0.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[coach-core 7.1.0]]> https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 @@ -208,21 +223,6 @@
    • Better check for the new FLoC privacy advice.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[coach-core 6.3.0]]> - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 - - 2021-04-09T00:00:00.000Z - Added -
      -
    • New privacy advice that looks for header to disable of FLoC in Chrome.
    • -
    ]]>
    Sitespeed.io diff --git a/docs/feed/coach-core.rss b/docs/feed/coach-core.rss index d98c8b99a..2ccc96aec 100644 --- a/docs/feed/coach-core.rss +++ b/docs/feed/coach-core.rss @@ -4,7 +4,7 @@ coach-core release feed https://www.sitespeed.io New releases and changelog feed of coach-core - Thu, 24 Feb 2022 13:43:37 GMT + Wed, 13 Apr 2022 19:14:16 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,18 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[coach-core 7.1.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.1 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.1 + Wed, 13 Apr 2022 00:00:00 GMT + Fixed +
      +
    • Upgraded to PageXray 4.4.1 and Third Party Web 0.15.0.
    • +
    +]]>
    + +
    <![CDATA[coach-core 7.1.0]]> https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.0 @@ -184,18 +196,6 @@
    • Better check for the new FLoC privacy advice.
    -]]> - -
    - - <![CDATA[coach-core 6.3.0]]> - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 - Fri, 09 Apr 2021 00:00:00 GMT - Added -
      -
    • New privacy advice that looks for header to disable of FLoC in Chrome.
    • -
    ]]>
    diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index f255cabaa..f83861ec6 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Wed, 06 Apr 2022 00:00:00 GMT + Wed, 13 Apr 2022 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -15,6 +15,18 @@ All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[coach-core 7.1.1]]> + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.1 + https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.1 + Wed, 13 Apr 2022 00:00:00 GMT + Fixed +
      +
    • Upgraded to PageXray 4.4.1 and Third Party Web 0.15.0.
    • +
    +]]>
    + +
    <![CDATA[sitespeed.io 24.0.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 @@ -532,18 +544,6 @@ ]]> - - <![CDATA[pagexray 4.3.1]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 - Wed, 21 Jul 2021 00:00:00 GMT - Added -
      -
    • Added missing in_body_parser_blocking render blocking info for Chrome.
    • -
    -]]>
    - -
    <![CDATA[coach-core 6.4.3]]> https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.3 @@ -556,6 +556,18 @@ ]]> + + <![CDATA[pagexray 4.3.1]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.1 + Wed, 21 Jul 2021 00:00:00 GMT + Added +
      +
    • Added missing in_body_parser_blocking render blocking info for Chrome.
    • +
    +]]>
    + +
    <![CDATA[coach-core 6.4.2]]> https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.2 @@ -580,18 +592,6 @@ ]]> - - <![CDATA[pagexray 4.3.0]]> - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 - https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 - Wed, 02 Jun 2021 00:00:00 GMT - Added -
      -
    • Include request method per asset #105.
    • -
    -]]>
    - -
    <![CDATA[coach-core 6.4.0]]> https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.4.0 @@ -611,6 +611,18 @@ ]]> + + <![CDATA[pagexray 4.3.0]]> + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 + https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.3.0 + Wed, 02 Jun 2021 00:00:00 GMT + Added +
      +
    • Include request method per asset #105.
    • +
    +]]>
    + +
    <![CDATA[pagexray 4.2.0]]> https://github.com/sitespeedio/pagexray/blob/main/CHANGELOG.md#4.2.0 @@ -656,18 +668,6 @@
    • Better check for the new FLoC privacy advice.
    -]]> - -
    - - <![CDATA[coach-core 6.3.0]]> - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 - https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#6.3.0 - Fri, 09 Apr 2021 00:00:00 GMT - Added -
      -
    • New privacy advice that looks for header to disable of FLoC in Chrome.
    • -
    ]]>
    From 906c548f8b5ed4e214b0234369dc8fa12f6d2656 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Wed, 13 Apr 2022 21:27:30 +0200 Subject: [PATCH 086/105] Update to latest coach core (#3629) --- npm-shrinkwrap.json | 62 +++++++++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 38 insertions(+), 26 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 8f24648c5..b3f39deca 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -15,7 +15,7 @@ "axe-core": "4.4.1", "browsertime": "16.0.1", "cli-color": "2.0.0", - "coach-core": "7.1.0", + "coach-core": "7.1.1", "concurrent-queue": "7.0.2", "dayjs": "1.10.4", "fast-crc32c": "2.0.0", @@ -1872,17 +1872,17 @@ } }, "node_modules/coach-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.1.0.tgz", - "integrity": "sha512-mxi/773IEU+FEyLHK6wyzJIh6aajKJcYB/kC+jmptgHbthNDmMjU37f0m3QGh6ybEJnPRrDgKlgBa3kHrZWfNA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.1.1.tgz", + "integrity": "sha512-TS+ZgrYNg55z18tT3Q21UanYBmEvWFH8aNBqAxSWrjReWI6BTfUANfdRv7q707fbGraQmzZDXPyh0PfG4kbj3g==", "dependencies": { "filter-files": "0.4.0", "json-stable-stringify": "1.0.1", "lodash.groupby": "4.6.0", "lodash.merge": "4.6.2", "lodash.sortby": "4.7.0", - "pagexray": "4.4.0", - "third-party-web": "0.13.0", + "pagexray": "4.4.1", + "third-party-web": "0.15.0", "wappalyzer-core": "6.6.0" }, "engines": { @@ -5283,11 +5283,11 @@ } }, "node_modules/pagexray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.0.tgz", - "integrity": "sha512-Ew6e/Zpi+pIsyll9JbsGSgMy1v4ndIFbpppnJf8Xmqi5lz1fMwVBb869ZFoUg6nAD0gZ+QWmctqGxGnsLkgzxg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.1.tgz", + "integrity": "sha512-vBl50PgflqBcb5w97vUGqYdA1o8TY5QOG7ec/sLkam5QngaVG0XlXwNP/Pm2kgCgu8I1pT+EAIqbcoDmDmsjeA==", "dependencies": { - "minimist": "1.2.5" + "minimist": "1.2.6" }, "bin": { "pagexray": "bin/index.js" @@ -5296,6 +5296,11 @@ "node": ">=8.9.0" } }, + "node_modules/pagexray/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -6799,9 +6804,9 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "node_modules/third-party-web": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.13.0.tgz", - "integrity": "sha512-JkGRUoRWCjv7OH+VwM4VSxvx+85WXRWkvhrrP+UuQR+NCfwClx4yUjjZrqJ2aLPdyF7PVRivr65+umMLkRSrig==" + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.15.0.tgz", + "integrity": "sha512-kv+TVeppmasvDBXHfKCuQ4HNXapsyEXAGVANguzVDJ98xXm88ggtb9B09rVWvwDqapU5VZ4Q4JkCu2viyD/k0w==" }, "node_modules/through": { "version": "2.3.8", @@ -8956,17 +8961,17 @@ } }, "coach-core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.1.0.tgz", - "integrity": "sha512-mxi/773IEU+FEyLHK6wyzJIh6aajKJcYB/kC+jmptgHbthNDmMjU37f0m3QGh6ybEJnPRrDgKlgBa3kHrZWfNA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/coach-core/-/coach-core-7.1.1.tgz", + "integrity": "sha512-TS+ZgrYNg55z18tT3Q21UanYBmEvWFH8aNBqAxSWrjReWI6BTfUANfdRv7q707fbGraQmzZDXPyh0PfG4kbj3g==", "requires": { "filter-files": "0.4.0", "json-stable-stringify": "1.0.1", "lodash.groupby": "4.6.0", "lodash.merge": "4.6.2", "lodash.sortby": "4.7.0", - "pagexray": "4.4.0", - "third-party-web": "0.13.0", + "pagexray": "4.4.1", + "third-party-web": "0.15.0", "wappalyzer-core": "6.6.0" } }, @@ -11668,11 +11673,18 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pagexray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.0.tgz", - "integrity": "sha512-Ew6e/Zpi+pIsyll9JbsGSgMy1v4ndIFbpppnJf8Xmqi5lz1fMwVBb869ZFoUg6nAD0gZ+QWmctqGxGnsLkgzxg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/pagexray/-/pagexray-4.4.1.tgz", + "integrity": "sha512-vBl50PgflqBcb5w97vUGqYdA1o8TY5QOG7ec/sLkam5QngaVG0XlXwNP/Pm2kgCgu8I1pT+EAIqbcoDmDmsjeA==", "requires": { - "minimist": "1.2.5" + "minimist": "1.2.6" + }, + "dependencies": { + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + } } }, "pako": { @@ -12923,9 +12935,9 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "third-party-web": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.13.0.tgz", - "integrity": "sha512-JkGRUoRWCjv7OH+VwM4VSxvx+85WXRWkvhrrP+UuQR+NCfwClx4yUjjZrqJ2aLPdyF7PVRivr65+umMLkRSrig==" + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.15.0.tgz", + "integrity": "sha512-kv+TVeppmasvDBXHfKCuQ4HNXapsyEXAGVANguzVDJ98xXm88ggtb9B09rVWvwDqapU5VZ4Q4JkCu2viyD/k0w==" }, "through": { "version": "2.3.8", diff --git a/package.json b/package.json index bc7eb87f7..8872c53f4 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "aws-sdk": "2.882.0", "axe-core": "4.4.1", "browsertime": "16.0.1", - "coach-core": "7.1.0", + "coach-core": "7.1.1", "cli-color": "2.0.0", "concurrent-queue": "7.0.2", "dayjs": "1.10.4", From 628c50859f1c6b802d6296e24f33d48ced401bbe Mon Sep 17 00:00:00 2001 From: soulgalore Date: Thu, 14 Apr 2022 11:11:49 +0200 Subject: [PATCH 087/105] new throttle --- docs/_includes/version/throttle.txt | 2 +- docs/feed/atom.xml | 21 ++++++++++++++++++++- docs/feed/rss.xml | 17 ++++++++++++++++- docs/feed/throttle.atom | 21 ++++++++++++++++++++- docs/feed/throttle.rss | 17 ++++++++++++++++- 5 files changed, 73 insertions(+), 5 deletions(-) diff --git a/docs/_includes/version/throttle.txt b/docs/_includes/version/throttle.txt index fd2a01863..fcdb2e109 100644 --- a/docs/_includes/version/throttle.txt +++ b/docs/_includes/version/throttle.txt @@ -1 +1 @@ -3.1.0 +4.0.0 diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index 5ecadf005..f7f2a67c4 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-04-13T00:00:00.000Z + 2022-04-14T00:00:00.000Z https://github.com/jpmonette/feed Peter Hedenskog @@ -15,6 +15,25 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[throttle 4.0.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#4.0.0 + + 2022-04-14T00:00:00.000Z + Fixed +
      +
    • Updated dev dependencies to latest versions #68
    • +
    +

    Changed

    +
      +
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[coach-core 7.1.1]]> https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.1 diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index f83861ec6..c2200fa54 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Wed, 13 Apr 2022 00:00:00 GMT + Thu, 14 Apr 2022 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -15,6 +15,21 @@ All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[throttle 4.0.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#4.0.0 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#4.0.0 + Thu, 14 Apr 2022 00:00:00 GMT + Fixed +
      +
    • Updated dev dependencies to latest versions #68
    • +
    +

    Changed

    +
      +
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67.
    • +
    +]]>
    +
    <![CDATA[coach-core 7.1.1]]> https://github.com/sitespeedio/coach-core/blob/main/CHANGELOG.md#7.1.1 diff --git a/docs/feed/throttle.atom b/docs/feed/throttle.atom index 76bd21095..a9deb8a20 100644 --- a/docs/feed/throttle.atom +++ b/docs/feed/throttle.atom @@ -2,7 +2,7 @@ throttle-release-feed throttle release feed - 2022-02-24T13:43:37.435Z + 2022-04-14T09:10:27.107Z https://github.com/jpmonette/feed Peter Hedenskog @@ -15,6 +15,25 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[throttle 4.0.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#4.0.0 + + 2022-04-14T00:00:00.000Z + Fixed +
      +
    • Updated dev dependencies to latest versions #68
    • +
    +

    Changed

    +
      +
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[throttle 3.1.0]]> https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 diff --git a/docs/feed/throttle.rss b/docs/feed/throttle.rss index a9f924055..7e705f0c1 100644 --- a/docs/feed/throttle.rss +++ b/docs/feed/throttle.rss @@ -4,13 +4,28 @@ throttle release feed https://www.sitespeed.io New releases and changelog feed of throttle - Thu, 24 Feb 2022 13:43:37 GMT + Thu, 14 Apr 2022 09:10:27 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[throttle 4.0.0]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#4.0.0 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#4.0.0 + Thu, 14 Apr 2022 00:00:00 GMT + Fixed +
      +
    • Updated dev dependencies to latest versions #68
    • +
    +

    Changed

    +
      +
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67.
    • +
    +]]>
    +
    <![CDATA[throttle 3.1.0]]> https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.0 From eb5467e85d32fddc13a4ba8436cb701c7fc12733 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Thu, 14 Apr 2022 11:29:09 +0200 Subject: [PATCH 088/105] Changing docs --- docs/documentation/throttle/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/documentation/throttle/index.md b/docs/documentation/throttle/index.md index bcfa01f62..1b24ec508 100644 --- a/docs/documentation/throttle/index.md +++ b/docs/documentation/throttle/index.md @@ -113,7 +113,7 @@ throttle --stop --localhost ```javascript -const throttle = require('@sitespeed.io/throttle'); +import throttle from '@sitespeed.io/throttle' // Returns a promise throttle.start({up: 360, down: 780, rtt: 200}).then(() => ... ``` @@ -121,7 +121,7 @@ throttle.start({up: 360, down: 780, rtt: 200}).then(() => ... or ```javascript -const throttle = require('@sitespeed.io/throttle'); +import throttle from '@sitespeed.io/throttle' // Returns a promise const options = {up: 360, down: 780, rtt: 200}; await throttle.start(options); From 4c90f59c738109504d8d76a3e4007ccbd98515aa Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Thu, 14 Apr 2022 18:24:12 +0200 Subject: [PATCH 089/105] Add TTFB to timing metrics tab (#3630) --- lib/plugins/html/templates/url/metrics/index.pug | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/plugins/html/templates/url/metrics/index.pug b/lib/plugins/html/templates/url/metrics/index.pug index 2ffcc9b1c..1171c6796 100644 --- a/lib/plugins/html/templates/url/metrics/index.pug +++ b/lib/plugins/html/templates/url/metrics/index.pug @@ -156,6 +156,10 @@ if browsertime table tr th(colspan='2') Extra timings + tr + td + a(href=baseHelpURL + 'ttfb') TTFB + td.number #{h.time.ms(timings.ttfb.toFixed(0))} if (timings.paintTiming && Object.keys(timings.paintTiming).length > 0) - const paintTimingHelper = { "first-contentful-paint": {"name": 'First Contentful Paint (FCP)', "friendly": "first-contentful-paint"}, "first-paint": {"name": 'First Paint', "friendly": "firstPaint" }}; each value, name in timings.paintTiming From 0653dafa5b072200caa204d81033ce5dd5644599 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Thu, 14 Apr 2022 18:24:27 +0200 Subject: [PATCH 090/105] Show which runs (#3631) --- lib/plugins/html/templates/url/metrics/index.pug | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/plugins/html/templates/url/metrics/index.pug b/lib/plugins/html/templates/url/metrics/index.pug index 1171c6796..121853e22 100644 --- a/lib/plugins/html/templates/url/metrics/index.pug +++ b/lib/plugins/html/templates/url/metrics/index.pug @@ -38,6 +38,9 @@ if browsertime a(href='#server-timings') Server timings |  |  + p + small #{ medianRun ? 'Data from run ' + medianRun.runIndex : ''} + - baseHelpURL = rootPath + 'help.html#'; - const defaultVisualMetrics = ['SpeedIndex','FirstVisualChange','LastVisualChange','VisualProgress', 'PerceptualSpeedIndexProgress', 'ContentfulSpeedIndexProgress', 'videoRecordingStart', 'PerceptualSpeedIndex', 'ContentfulSpeedIndex', 'LastMeaningfulPaint', 'LargestImage', 'Heading' ,'VisualReadiness','VisualComplete85', 'VisualComplete95','VisualComplete99']; From d738a897bc1e8c356f58d3f1dc20cefabed48a57 Mon Sep 17 00:00:00 2001 From: Vladimir Stepanov Date: Thu, 14 Apr 2022 19:25:23 +0300 Subject: [PATCH 091/105] #3626 Update Grafana auth settings to allow api token or basic auth (#3627) * Update Grafana auth settings to allow api token or basic auth Current auth. configuration for Grafana restricts to use API key only. This change will allow to use both auth. types: Bearer {API_KEY} or Basic {USER_PASSWORD_HASH} Co-authored-by: Vladimir Stepanov Co-authored-by: Peter Hedenskog --- lib/plugins/grafana/send-annotation.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/plugins/grafana/send-annotation.js b/lib/plugins/grafana/send-annotation.js index f8469881d..65e94427f 100644 --- a/lib/plugins/grafana/send-annotation.js +++ b/lib/plugins/grafana/send-annotation.js @@ -98,7 +98,14 @@ module.exports = { // If Grafana is behind auth, use it! if (options.grafana.auth) { log.debug('Using auth for Grafana'); - postOptions.headers.Authorization = 'Bearer ' + options.grafana.auth; + if ( + options.grafana.auth.startsWith('Bearer') || + options.grafana.auth.startsWith('Basic') + ) { + postOptions.headers.Authorization = options.grafana.auth; + } else { + postOptions.headers.Authorization = 'Bearer ' + options.grafana.auth; + } } log.verbose('Send annotation to Grafana: %j', postData); return new Promise((resolve, reject) => { From d34ddef3ee29e6cc45906f647629fdc1404019e3 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 16 Apr 2022 18:38:14 +0200 Subject: [PATCH 092/105] Add better Grafana auth docs --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce9c63754..e0fad1c23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) +## UNRELEASED +### Added +* Update Grafana auth settings to allow api token or basic auth, thank you [Vladimir Stepanov](https://github.com/vs-odessa) for PR [#3627](https://github.com/sitespeedio/sitespeed.io/pull/3627). ## 24.0.0 - 2022-04-06 From 3338c27a02deb7f22be0c2d14f2a4211f6a31b9a Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 16 Apr 2022 18:42:06 +0200 Subject: [PATCH 093/105] changelog: add lastest changes --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0fad1c23..d0dc9f701 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,10 @@ ## UNRELEASED ### Added * Update Grafana auth settings to allow api token or basic auth, thank you [Vladimir Stepanov](https://github.com/vs-odessa) for PR [#3627](https://github.com/sitespeedio/sitespeed.io/pull/3627). - +* Add TTFB to the metrics page [#3630](https://github.com/sitespeedio/sitespeed.io/pull/3630). +* Use latest Coach core with updated PageXray and Third party web [#3629](https://github.com/sitespeedio/sitespeed.io/pull/3629). +* Make it possible to disable annotations for Graphite. Set `--graphite.sendAnnotation false` to disable sending annotations [#3625](https://github.com/sitespeedio/sitespeed.io/pull/3625). +* Show which run that is used in the metrics tab [#3631](https://github.com/sitespeedio/sitespeed.io/pull/3631). ## 24.0.0 - 2022-04-06 ### Changed From 90683320f56cdfd59e585068f25c406a1f32a034 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Sat, 16 Apr 2022 18:42:34 +0200 Subject: [PATCH 094/105] Add better Bearer/Auth info --- lib/plugins/grafana/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/grafana/cli.js b/lib/plugins/grafana/cli.js index 5656ba117..7a7ea26c2 100644 --- a/lib/plugins/grafana/cli.js +++ b/lib/plugins/grafana/cli.js @@ -10,7 +10,7 @@ module.exports = { }, auth: { describe: - 'The Grafana auth/bearer value used when sending annotations to Grafana. See http://docs.grafana.org/http_api/auth/#authentication-api', + 'The Grafana auth/bearer value used when sending annotations to Grafana. If you do not set Bearer/Auth, Bearer is automatically set. See http://docs.grafana.org/http_api/auth/#authentication-api', group: 'Grafana' }, annotationTitle: { From 50f68aa611ad2a57b3c41ea4d677ef8caf93067f Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 19 Apr 2022 05:52:57 +0200 Subject: [PATCH 095/105] Fix Grafana auth (#3634) --- test/cliTests.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/cliTests.js b/test/cliTests.js index 58a1a4dee..8205e72e8 100644 --- a/test/cliTests.js +++ b/test/cliTests.js @@ -54,10 +54,6 @@ describe('cli', () => { ); expect(stdout).to.contain('--grafana.auth'); - expect(stdout).to.contain( - 'The Grafana auth/bearer value used when sending annotations to Grafana. See http://docs.grafana.org/http_api/auth/#authentication-api' - ); - expect(stdout).to.contain('--grafana.annotationTitle'); expect(stdout).to.contain( 'Add a title to the annotation sent for a run.' From a66f288e74b6cd74eb2f8bc3952db34d560e2c5b Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 19 Apr 2022 08:10:42 +0200 Subject: [PATCH 096/105] Bump actions (#3633) --- .github/workflows/building-docker-release.yml | 2 +- .github/workflows/crux-test.yml | 4 ++-- .github/workflows/docker-scan.yml | 2 +- .github/workflows/docker.yml | 2 +- .github/workflows/linux.yml | 4 ++-- .github/workflows/safari.yml | 4 ++-- .github/workflows/sitespeed-io-action-example.yml | 2 +- .github/workflows/unittests.yml | 4 ++-- .github/workflows/windows.yml | 4 ++-- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/building-docker-release.yml b/.github/workflows/building-docker-release.yml index 27304254e..c0ca43aa3 100644 --- a/.github/workflows/building-docker-release.yml +++ b/.github/workflows/building-docker-release.yml @@ -9,7 +9,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v1 diff --git a/.github/workflows/crux-test.yml b/.github/workflows/crux-test.yml index 36d4d6b7f..6f5d7d230 100644 --- a/.github/workflows/crux-test.yml +++ b/.github/workflows/crux-test.yml @@ -10,9 +10,9 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Use Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: '16.x' - name: Install sitespeed.io diff --git a/.github/workflows/docker-scan.yml b/.github/workflows/docker-scan.yml index 87d3e9a18..dc8231865 100644 --- a/.github/workflows/docker-scan.yml +++ b/.github/workflows/docker-scan.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-18.04 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build an image from Dockerfile run: | diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 47142f1b1..3f9ed91fb 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -10,7 +10,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Build Docker containers run: | docker buildx install diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index bdf523ee7..74b3b22ba 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -10,9 +10,9 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Use Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: '16.x' - name: Install sitespeed.io diff --git a/.github/workflows/safari.yml b/.github/workflows/safari.yml index 939633ecb..530114d0c 100644 --- a/.github/workflows/safari.yml +++ b/.github/workflows/safari.yml @@ -10,9 +10,9 @@ jobs: build: runs-on: macos-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Use Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: '16.x' - name: Install dependencies diff --git a/.github/workflows/sitespeed-io-action-example.yml b/.github/workflows/sitespeed-io-action-example.yml index 7f4ed5cab..7bd8c8d80 100644 --- a/.github/workflows/sitespeed-io-action-example.yml +++ b/.github/workflows/sitespeed-io-action-example.yml @@ -9,7 +9,7 @@ jobs: name: running sitespeed.io steps: - name: code checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Here we build our own container to make sure we test against our latest code # but YOU can just used the latest version by specifying # sitespeedio/sitespeed.io:VERSION diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index a3196ec09..cf5906ade 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -13,9 +13,9 @@ jobs: matrix: node-version: [14.x, 16.x] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Install dependencies and Chrome diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index d77734931..d06bb8c68 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -10,9 +10,9 @@ jobs: build: runs-on: windows-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Use Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: '16.x' - name: Install sitespeed.io From 5de4eabb1c1f0a158b2c7efed4a495019372eff5 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Wed, 20 Apr 2022 13:42:45 +0200 Subject: [PATCH 097/105] new browsertime --- docs/_includes/version/browsertime.txt | 2 +- docs/feed/atom.xml | 154 ++- docs/feed/browsertime.atom | 45 +- docs/feed/browsertime.rss | 39 +- docs/feed/rss.xml | 125 ++- npm-shrinkwrap.json | 1232 ++++++++++-------------- package.json | 2 +- 7 files changed, 683 insertions(+), 916 deletions(-) diff --git a/docs/_includes/version/browsertime.txt b/docs/_includes/version/browsertime.txt index ab54c33c7..11155dbee 100644 --- a/docs/_includes/version/browsertime.txt +++ b/docs/_includes/version/browsertime.txt @@ -1 +1 @@ -16.0.1 \ No newline at end of file +16.1.0 \ No newline at end of file diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index f7f2a67c4..c16b1ffb9 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-04-14T00:00:00.000Z + 2022-04-20T00:00:00.000Z https://github.com/jpmonette/feed Peter Hedenskog @@ -15,6 +15,46 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[browsertime 16.1.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.1.0 + + 2022-04-20T00:00:00.000Z + Added +
      +
    • Added blocking of Chrome and Edge phone home domains #1763.
    • +
    +

    Fixed

    +
      +
    • Handle negative x/y offsets when cropping images in the new portable visual metrocs script, thank you Gregory Mierzwinski for PR #1770.
    • +
    +
      +
    • Bumped Throttle dependency #1769.
    • +
    +
      +
    • Bumped chrome-har, chrome-remote-interface, dayjs and yargs dependencies #1771.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[throttle 3.1.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.1 + + 2022-04-19T00:00:00.000Z + Fixed +
      +
    • Updated minimist dependency.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[throttle 4.0.0]]> https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#4.0.0 @@ -26,7 +66,7 @@

    Changed

      -
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67.
    • +
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67. You can read Sindre Sorhus ESM package guide.
    ]]> @@ -43,6 +83,21 @@
    • Upgraded to PageXray 4.4.1 and Third Party Web 0.15.0.
    +]]> + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 16.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + + 2022-04-06T00:00:00.000Z + Fixed +
      +
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • +
    ]]>
    Sitespeed.io @@ -69,21 +124,6 @@
    • Upgraded to Browsertime 16.0.0 that changed how the DNS is flushed. You need to add --flushDNS to your conifguration to flush the DNS between runs.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 16.0.1]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 - - 2022-04-06T00:00:00.000Z - Fixed -
      -
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • -
    ]]>
    Sitespeed.io @@ -257,6 +297,21 @@
    • Added link to each run in the side by side metric page, making it easier to go to the correct run #3593.
    +]]> + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 15.3.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + + 2022-03-07T00:00:00.000Z + Added +
      +
    • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
    • +
    ]]>
    Sitespeed.io @@ -275,21 +330,6 @@ -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 15.3.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 - - 2022-03-07T00:00:00.000Z - Added -
      -
    • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
    • -
    ]]>
    Sitespeed.io @@ -334,28 +374,6 @@
    • Added more view ports for emulated mobile in Chrome #1736.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[sitespeed.io 23.1.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 - - 2022-02-24T00:00:00.000Z - Added -
      -
    • Updated Browsertime that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser.
    • -
    -
      -
    • Show Browsertime version in runtime settings #3575.
    • -
    -

    Fixed

    -
      -
    • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
    • -
    ]]>
    Sitespeed.io @@ -433,24 +451,6 @@
    • Removed support for using speedline and the CLI arg --chrome.visualMetricsUsingTrace #1727.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 14.21.1]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 - - 2022-02-09T00:00:00.000Z - Fixed -
      -
    • Always disable the new ChromeWhaxyNewUI splash screen in Chrome #1717.
    • -
    -
      -
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    • -
    ]]>
    Sitespeed.io @@ -963,16 +963,6 @@ https://www.sitespeed.io
    - - <![CDATA[throttle 2.0.1]]> - https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 - - 2020-08-22T00:00:00.000Z - - Sitespeed.io - https://www.sitespeed.io - - <![CDATA[chrome-har 0.11.11]]> https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.11 diff --git a/docs/feed/browsertime.atom b/docs/feed/browsertime.atom index ad5824ac8..8a32ebba9 100644 --- a/docs/feed/browsertime.atom +++ b/docs/feed/browsertime.atom @@ -2,7 +2,7 @@ browsertime-release-feed browsertime release feed - 2022-04-06T10:48:06.436Z + 2022-04-20T11:40:17.588Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,31 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[browsertime 16.1.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.1.0 + + 2022-04-20T00:00:00.000Z + Added +
      +
    • Added blocking of Chrome and Edge phone home domains #1763.
    • +
    +

    Fixed

    +
      +
    • Handle negative x/y offsets when cropping images in the new portable visual metrocs script, thank you Gregory Mierzwinski for PR #1770.
    • +
    +
      +
    • Bumped Throttle dependency #1769.
    • +
    +
      +
    • Bumped chrome-har, chrome-remote-interface, dayjs and yargs dependencies #1771.
    • +
    +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[browsertime 16.0.1]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 @@ -183,24 +208,6 @@
    • Removed support for using speedline and the CLI arg --chrome.visualMetricsUsingTrace #1727.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 14.21.1]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 - - 2022-02-09T00:00:00.000Z - Fixed -
      -
    • Always disable the new ChromeWhaxyNewUI splash screen in Chrome #1717.
    • -
    -
      -
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    • -
    ]]>
    Sitespeed.io diff --git a/docs/feed/browsertime.rss b/docs/feed/browsertime.rss index 33b14a7b6..e18260c4f 100644 --- a/docs/feed/browsertime.rss +++ b/docs/feed/browsertime.rss @@ -4,7 +4,7 @@ browsertime release feed https://www.sitespeed.io New releases and changelog feed of browsertime - Wed, 06 Apr 2022 10:48:06 GMT + Wed, 20 Apr 2022 11:40:17 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,28 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[browsertime 16.1.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.1.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.1.0 + Wed, 20 Apr 2022 00:00:00 GMT + Added +
      +
    • Added blocking of Chrome and Edge phone home domains #1763.
    • +
    +

    Fixed

    +
      +
    • Handle negative x/y offsets when cropping images in the new portable visual metrocs script, thank you Gregory Mierzwinski for PR #1770.
    • +
    +
      +
    • Bumped Throttle dependency #1769.
    • +
    +
      +
    • Bumped chrome-har, chrome-remote-interface, dayjs and yargs dependencies #1771.
    • +
    +]]>
    + +
    <![CDATA[browsertime 16.0.1]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 @@ -159,21 +181,6 @@
    • Removed support for using speedline and the CLI arg --chrome.visualMetricsUsingTrace #1727.
    -]]> - -
    - - <![CDATA[browsertime 14.21.1]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 - Wed, 09 Feb 2022 00:00:00 GMT - Fixed -
      -
    • Always disable the new ChromeWhaxyNewUI splash screen in Chrome #1717.
    • -
    -
      -
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    • -
    ]]>
    diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index c2200fa54..b458488d9 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Thu, 14 Apr 2022 00:00:00 GMT + Wed, 20 Apr 2022 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -15,6 +15,39 @@ All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[browsertime 16.1.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.1.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.1.0 + Wed, 20 Apr 2022 00:00:00 GMT + Added +
      +
    • Added blocking of Chrome and Edge phone home domains #1763.
    • +
    +

    Fixed

    +
      +
    • Handle negative x/y offsets when cropping images in the new portable visual metrocs script, thank you Gregory Mierzwinski for PR #1770.
    • +
    +
      +
    • Bumped Throttle dependency #1769.
    • +
    +
      +
    • Bumped chrome-har, chrome-remote-interface, dayjs and yargs dependencies #1771.
    • +
    +]]>
    + +
    + + <![CDATA[throttle 3.1.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.1 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.1 + Tue, 19 Apr 2022 00:00:00 GMT + Fixed +
      +
    • Updated minimist dependency.
    • +
    +]]>
    +
    <![CDATA[throttle 4.0.0]]> https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#4.0.0 @@ -26,7 +59,7 @@

    Changed

      -
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67.
    • +
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67. You can read Sindre Sorhus ESM package guide.
    ]]>
    @@ -42,6 +75,18 @@ ]]>
    + + <![CDATA[browsertime 16.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + Wed, 06 Apr 2022 00:00:00 GMT + Fixed +
      +
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • +
    +]]>
    + +
    <![CDATA[sitespeed.io 24.0.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 @@ -65,18 +110,6 @@ ]]> - - <![CDATA[browsertime 16.0.1]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 - Wed, 06 Apr 2022 00:00:00 GMT - Fixed -
      -
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • -
    -]]>
    - -
    <![CDATA[browsertime 16.0.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.0 @@ -223,6 +256,18 @@ ]]> + + <![CDATA[browsertime 15.3.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + Mon, 07 Mar 2022 00:00:00 GMT + Added +
      +
    • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
    • +
    +]]>
    + +
    <![CDATA[sitespeed.io 23.3.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 @@ -238,18 +283,6 @@ ]]> - - <![CDATA[browsertime 15.3.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 - Mon, 07 Mar 2022 00:00:00 GMT - Added -
      -
    • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
    • -
    -]]>
    - -
    <![CDATA[sitespeed.io 23.2.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 @@ -288,25 +321,6 @@ ]]> - - <![CDATA[sitespeed.io 23.1.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 - Thu, 24 Feb 2022 00:00:00 GMT - Added -
      -
    • Updated Browsertime that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser.
    • -
    -
      -
    • Show Browsertime version in runtime settings #3575.
    • -
    -

    Fixed

    -
      -
    • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
    • -
    -]]>
    - -
    <![CDATA[browsertime 15.1.1]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.1.1 @@ -369,21 +383,6 @@
    • Removed support for using speedline and the CLI arg --chrome.visualMetricsUsingTrace #1727.
    -]]> - -
    - - <![CDATA[browsertime 14.21.1]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#14.21.1 - Wed, 09 Feb 2022 00:00:00 GMT - Fixed -
      -
    • Always disable the new ChromeWhaxyNewUI splash screen in Chrome #1717.
    • -
    -
      -
    • Remove the Firefox persist log configuration that was needed for FF 94+ #1716.
    • -
    ]]>
    @@ -797,12 +796,6 @@ ]]>
    - - <![CDATA[throttle 2.0.1]]> - https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 - https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 - Sat, 22 Aug 2020 00:00:00 GMT - <![CDATA[chrome-har 0.11.11]]> https://github.com/sitespeedio/chrome-har/blob/main/CHANGELOG.md#0.11.11 diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index b3f39deca..4906c47db 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -13,7 +13,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.4.1", - "browsertime": "16.0.1", + "browsertime": "16.1.0", "cli-color": "2.0.0", "coach-core": "7.1.1", "concurrent-queue": "7.0.2", @@ -87,7 +87,6 @@ "version": "7.14.3", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.3.tgz", "integrity": "sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -217,22 +216,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@eslint/eslintrc/node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -250,12 +233,6 @@ } } }, - "node_modules/@eslint/eslintrc/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -269,12 +246,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/@eslint/eslintrc/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -970,11 +941,11 @@ } }, "node_modules/@sitespeed.io/throttle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sitespeed.io/throttle/-/throttle-3.0.0.tgz", - "integrity": "sha512-tTAnBaoMwtdECY6SYno/OSRnzZsazg63zesRNBxQXkpDG+1FU1FTXLJQx6/2SkKJo6WvrELp8XhoUIV9SQvlCg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sitespeed.io/throttle/-/throttle-3.1.1.tgz", + "integrity": "sha512-6KOsYUQgAur5636IiGYblcRGOiiBAEVao+imE+VkEeBBIGcYUwu4//oXkwdG2WjjE+2gS4AsMzfyHTlv6zXUfg==", "dependencies": { - "minimist": "1.2.5" + "minimist": "1.2.6" }, "bin": { "throttle": "bin/index.js" @@ -1060,6 +1031,28 @@ "@types/babel-types": "*" } }, + "node_modules/@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "dev": true + }, + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "dev": true + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1137,23 +1130,18 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dependencies": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "node_modules/ajv/node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ansi-colors": { @@ -1328,9 +1316,9 @@ } }, "node_modules/aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "node_modules/axe-core": { "version": "4.4.1", @@ -1461,21 +1449,21 @@ } }, "node_modules/browsertime": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.0.1.tgz", - "integrity": "sha512-Tj4o5m9PnXV2RHi0LbHnErbf3pIXmL+n+LNF1fcNqcmYjxJCuQJgSs+LyESuAjYRqiH+2zeGHOXWZDTYj66DEQ==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.1.0.tgz", + "integrity": "sha512-lDm+iRiKXG3xxz4rgGE8HJrM1HPwYoET2t/EAvTXMSll7Gp5fQ45mO17/NA8YfE+jqLdbF0zMofbxDtawUJ0Bg==", "dependencies": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", "@sitespeed.io/chromedriver": "100.0.4896-20", "@sitespeed.io/edgedriver": "100.0.1185-29", "@sitespeed.io/geckodriver": "0.30.0", - "@sitespeed.io/throttle": "3.0.0", + "@sitespeed.io/throttle": "3.1.1", "@sitespeed.io/tracium": "0.3.3", "btoa": "1.2.1", - "chrome-har": "0.12.0", - "chrome-remote-interface": "0.31.0", - "dayjs": "1.10.7", + "chrome-har": "0.13.0", + "chrome-remote-interface": "0.31.2", + "dayjs": "1.11.1", "execa": "5.1.1", "fast-stats": "0.0.6", "find-up": "5.0.0", @@ -1489,22 +1477,47 @@ "lodash.pick": "4.4.0", "lodash.set": "4.3.2", "selenium-webdriver": "4.1.1", - "yargs": "17.2.1" + "yargs": "17.4.1" }, "bin": { "browsertime": "bin/browsertime.js" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.19.1" }, "optionalDependencies": { "jimp": "0.16.1" } }, "node_modules/browsertime/node_modules/dayjs": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", - "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", + "integrity": "sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==" + }, + "node_modules/browsertime/node_modules/yargs": { + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", + "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/browsertime/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "engines": { + "node": ">=12" + } }, "node_modules/btoa": { "version": "1.2.1", @@ -1688,9 +1701,9 @@ } }, "node_modules/chrome-har": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/chrome-har/-/chrome-har-0.12.0.tgz", - "integrity": "sha512-VRQOsN9omU6q5/8h6eU9tkHPV2VvOCAh1JL4Hpk8ZIyrTLFWdK0A7UOsKNplvr+9Ls/8Wr71G20cuX2OsRPbwA==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/chrome-har/-/chrome-har-0.13.0.tgz", + "integrity": "sha512-wknoUfURyGp+sGvikTrOGpsL+bhzinqciItSGXwklIc9logrfrwZb6Ca/ZTho4twDKsy0f4dAVL79jHyvOG4Qw==", "dependencies": { "dayjs": "1.8.31", "debug": "4.1.1", @@ -1747,9 +1760,9 @@ } }, "node_modules/chrome-remote-interface": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.31.0.tgz", - "integrity": "sha512-DrD4ZACKAFT3lVldKVDRlYrI9bmZSk7kYcf+OKwFpBM9fZyCPvVKb+yGnmXBkHv7/BEkW8ouu+EHRugAOJ3pPg==", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.31.2.tgz", + "integrity": "sha512-vpdJoI9cDRNAfV5oB2ulwXDltvu3Ov9PTblnV48VXcF4zUx1p4xvCLssc5AZ/WLYp4003YxJqLEi8FagPw2vTQ==", "dependencies": { "commander": "2.11.x", "ws": "^7.2.0" @@ -1916,14 +1929,6 @@ "node": ">= 0.6" } }, - "node_modules/compressible/node_modules/mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2613,22 +2618,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/eslint/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2716,12 +2705,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -2755,12 +2738,6 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/eslint/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3010,9 +2987,9 @@ } }, "node_modules/fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-diff": { "version": "1.2.0", @@ -3399,9 +3376,9 @@ } }, "node_modules/getos/node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "node_modules/getpass": { "version": "0.1.7", @@ -3493,23 +3470,12 @@ "node": ">=10" } }, - "node_modules/google-auth-library/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/google-p12-pem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz", - "integrity": "sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz", + "integrity": "sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==", "dependencies": { - "node-forge": "^0.10.0" + "node-forge": "^1.3.1" }, "bin": { "gp12-pem": "build/src/bin/gp12-pem.js" @@ -3518,6 +3484,14 @@ "node": ">=10" } }, + "node_modules/google-p12-pem/node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, "node_modules/graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -3548,16 +3522,16 @@ } }, "node_modules/har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", "dependencies": { - "ajv": "^5.1.0", + "ajv": "^6.12.3", "har-schema": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/has": { @@ -4086,12 +4060,12 @@ "dev": true }, "node_modules/js2xmlparser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", - "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", "dev": true, "dependencies": { - "xmlcreate": "^2.0.3" + "xmlcreate": "^2.0.4" } }, "node_modules/jsbn": { @@ -4101,25 +4075,26 @@ "optional": true }, "node_modules/jsdoc": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz", - "integrity": "sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==", + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", + "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", "dev": true, "dependencies": { "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", "bluebird": "^3.7.2", "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.1", - "klaw": "^3.0.0", - "markdown-it": "^10.0.0", - "markdown-it-anchor": "^5.2.7", - "marked": "^2.0.3", + "js2xmlparser": "^4.0.2", + "klaw": "^4.0.1", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", "mkdirp": "^1.0.4", "requizzle": "^0.2.3", "strip-json-comments": "^3.1.0", "taffydb": "2.6.2", - "underscore": "~1.13.1" + "underscore": "~1.13.2" }, "bin": { "jsdoc": "jsdoc.js" @@ -4128,6 +4103,12 @@ "node": ">=8.15.0" } }, + "node_modules/jsdoc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/jsdoc/node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -4135,10 +4116,13 @@ "dev": true }, "node_modules/jsdoc/node_modules/entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/jsdoc/node_modules/escape-string-regexp": { "version": "2.0.0", @@ -4149,15 +4133,24 @@ "node": ">=8" } }, - "node_modules/jsdoc/node_modules/markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "node_modules/jsdoc/node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", + "uc.micro": "^1.0.1" + } + }, + "node_modules/jsdoc/node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" }, @@ -4165,18 +4158,6 @@ "markdown-it": "bin/markdown-it.js" } }, - "node_modules/jsdoc/node_modules/marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", - "dev": true, - "bin": { - "marked": "bin/marked" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/jsdoc/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4216,14 +4197,14 @@ "dev": true }, "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "node_modules/json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify": { "version": "1.0.1", @@ -4272,17 +4253,17 @@ } }, "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" } }, "node_modules/jstransformer": { @@ -4355,12 +4336,12 @@ } }, "node_modules/klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.9" + "engines": { + "node": ">=14.14.0" } }, "node_modules/levn": { @@ -4640,7 +4621,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -4719,11 +4699,12 @@ } }, "node_modules/markdown-it-anchor": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.2.tgz", + "integrity": "sha512-JNaekTlIwwyYGBN3zifZDxgz4bSL8sbEj58fdTZGmPSMMGXBZapFjcZk2I33Jy79c1fvCKHpF7MA/67FOTjvzA==", "dev": true, "peerDependencies": { + "@types/markdown-it": "*", "markdown-it": "*" } }, @@ -4815,19 +4796,19 @@ } }, "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "mime-db": "~1.33.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -4854,9 +4835,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minipass": { "version": "3.1.6", @@ -5042,11 +5023,22 @@ } }, "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-forge": { @@ -5122,18 +5114,10 @@ "node": ">=8" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, "node_modules/oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "engines": { "node": "*" } @@ -5296,11 +5280,6 @@ "node": ">=8.9.0" } }, - "node_modules/pagexray/node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -5365,13 +5344,12 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, "engines": { "node": "*" @@ -5536,17 +5514,6 @@ "with": "^7.0.0" } }, - "node_modules/pug-code-gen/node_modules/@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/pug-code-gen/node_modules/constantinople": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", @@ -5602,17 +5569,6 @@ "resolve": "^1.15.1" } }, - "node_modules/pug-filters/node_modules/@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/pug-filters/node_modules/constantinople": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", @@ -5622,28 +5578,11 @@ "@babel/types": "^7.6.1" } }, - "node_modules/pug-filters/node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "node_modules/pug-filters/node_modules/pug-error": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" }, - "node_modules/pug-filters/node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/pug-lexer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", @@ -5863,23 +5802,6 @@ "graceful-fs": "^4.1.2" } }, - "node_modules/read-package-json/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5988,34 +5910,34 @@ "dev": true }, "node_modules/request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dependencies": { "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "uuid": "^3.3.2" }, "engines": { - "node": ">= 4" + "node": ">= 6" } }, "node_modules/request/node_modules/tunnel-agent": { @@ -6059,7 +5981,6 @@ "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, "dependencies": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" @@ -6251,9 +6172,9 @@ } }, "node_modules/simplecrawler/node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "node_modules/simplecrawler/node_modules/iconv-lite": { "version": "0.5.2", @@ -6475,13 +6396,13 @@ } }, "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" @@ -6501,11 +6422,11 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -6740,11 +6661,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tape/node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "node_modules/tape/node_modules/resolve": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", @@ -6903,20 +6819,29 @@ "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=" }, "node_modules/tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dependencies": { - "punycode": "^1.4.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" }, "engines": { "node": ">=0.8" } }, "node_modules/tough-cookie/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "node_modules/treeify": { "version": "1.1.0", @@ -6985,9 +6910,9 @@ "integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg==" }, "node_modules/underscore": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", - "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==", "dev": true }, "node_modules/unique-string": { @@ -7013,7 +6938,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -7022,15 +6946,14 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, "engines": { "node": ">=6" } }, "node_modules/urijs": { - "version": "1.19.7", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.7.tgz", - "integrity": "sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA==" + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==" }, "node_modules/url": { "version": "0.10.3", @@ -7125,6 +7048,20 @@ } ] }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7153,19 +7090,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/windows-release/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/windows-release/node_modules/execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -7210,47 +7134,6 @@ "node": ">=8.12.0" } }, - "node_modules/windows-release/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/windows-release/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/windows-release/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/windows-release/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/with": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", @@ -7265,17 +7148,6 @@ "node": ">= 10.0.0" } }, - "node_modules/with/node_modules/@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -7453,9 +7325,9 @@ } }, "node_modules/xmlcreate": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", - "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", "dev": true }, "node_modules/xtend": { @@ -7526,8 +7398,7 @@ "@babel/parser": { "version": "7.14.3", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.3.tgz", - "integrity": "sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==", - "dev": true + "integrity": "sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==" }, "@babel/runtime": { "version": "7.15.4", @@ -7638,18 +7509,6 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -7659,12 +7518,6 @@ "ms": "2.1.2" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -7675,12 +7528,6 @@ "esprima": "^4.0.0" } }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -8222,11 +8069,11 @@ } }, "@sitespeed.io/throttle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sitespeed.io/throttle/-/throttle-3.0.0.tgz", - "integrity": "sha512-tTAnBaoMwtdECY6SYno/OSRnzZsazg63zesRNBxQXkpDG+1FU1FTXLJQx6/2SkKJo6WvrELp8XhoUIV9SQvlCg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sitespeed.io/throttle/-/throttle-3.1.1.tgz", + "integrity": "sha512-6KOsYUQgAur5636IiGYblcRGOiiBAEVao+imE+VkEeBBIGcYUwu4//oXkwdG2WjjE+2gS4AsMzfyHTlv6zXUfg==", "requires": { - "minimist": "1.2.5" + "minimist": "1.2.6" } }, "@sitespeed.io/tracium": { @@ -8295,6 +8142,28 @@ "@types/babel-types": "*" } }, + "@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "dev": true + }, + "@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dev": true, + "requires": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -8352,21 +8221,14 @@ } }, "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - }, - "dependencies": { - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - } + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ansi-colors": { @@ -8506,9 +8368,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "axe-core": { "version": "4.4.1", @@ -8621,21 +8483,21 @@ } }, "browsertime": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.0.1.tgz", - "integrity": "sha512-Tj4o5m9PnXV2RHi0LbHnErbf3pIXmL+n+LNF1fcNqcmYjxJCuQJgSs+LyESuAjYRqiH+2zeGHOXWZDTYj66DEQ==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-16.1.0.tgz", + "integrity": "sha512-lDm+iRiKXG3xxz4rgGE8HJrM1HPwYoET2t/EAvTXMSll7Gp5fQ45mO17/NA8YfE+jqLdbF0zMofbxDtawUJ0Bg==", "requires": { "@cypress/xvfb": "1.2.4", "@devicefarmer/adbkit": "2.11.3", "@sitespeed.io/chromedriver": "100.0.4896-20", "@sitespeed.io/edgedriver": "100.0.1185-29", "@sitespeed.io/geckodriver": "0.30.0", - "@sitespeed.io/throttle": "3.0.0", + "@sitespeed.io/throttle": "3.1.1", "@sitespeed.io/tracium": "0.3.3", "btoa": "1.2.1", - "chrome-har": "0.12.0", - "chrome-remote-interface": "0.31.0", - "dayjs": "1.10.7", + "chrome-har": "0.13.0", + "chrome-remote-interface": "0.31.2", + "dayjs": "1.11.1", "execa": "5.1.1", "fast-stats": "0.0.6", "find-up": "5.0.0", @@ -8650,13 +8512,32 @@ "lodash.pick": "4.4.0", "lodash.set": "4.3.2", "selenium-webdriver": "4.1.1", - "yargs": "17.2.1" + "yargs": "17.4.1" }, "dependencies": { "dayjs": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", - "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", + "integrity": "sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==" + }, + "yargs": { + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", + "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" } } }, @@ -8798,9 +8679,9 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "chrome-har": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/chrome-har/-/chrome-har-0.12.0.tgz", - "integrity": "sha512-VRQOsN9omU6q5/8h6eU9tkHPV2VvOCAh1JL4Hpk8ZIyrTLFWdK0A7UOsKNplvr+9Ls/8Wr71G20cuX2OsRPbwA==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/chrome-har/-/chrome-har-0.13.0.tgz", + "integrity": "sha512-wknoUfURyGp+sGvikTrOGpsL+bhzinqciItSGXwklIc9logrfrwZb6Ca/ZTho4twDKsy0f4dAVL79jHyvOG4Qw==", "requires": { "dayjs": "1.8.31", "debug": "4.1.1", @@ -8849,9 +8730,9 @@ } }, "chrome-remote-interface": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.31.0.tgz", - "integrity": "sha512-DrD4ZACKAFT3lVldKVDRlYrI9bmZSk7kYcf+OKwFpBM9fZyCPvVKb+yGnmXBkHv7/BEkW8ouu+EHRugAOJ3pPg==", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.31.2.tgz", + "integrity": "sha512-vpdJoI9cDRNAfV5oB2ulwXDltvu3Ov9PTblnV48VXcF4zUx1p4xvCLssc5AZ/WLYp4003YxJqLEi8FagPw2vTQ==", "requires": { "commander": "2.11.x", "ws": "^7.2.0" @@ -8994,13 +8875,6 @@ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "requires": { "mime-db": ">= 1.43.0 < 2" - }, - "dependencies": { - "mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" - } } }, "concat-map": { @@ -9529,18 +9403,6 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -9596,12 +9458,6 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -9628,12 +9484,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -9878,9 +9728,9 @@ } }, "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-diff": { "version": "1.2.0", @@ -10173,9 +10023,9 @@ }, "dependencies": { "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" } } }, @@ -10252,24 +10102,21 @@ "gtoken": "^5.0.4", "jws": "^4.0.0", "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - } } }, "google-p12-pem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz", - "integrity": "sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz", + "integrity": "sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==", "requires": { - "node-forge": "^0.10.0" + "node-forge": "^1.3.1" + }, + "dependencies": { + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + } } }, "graceful-fs": { @@ -10293,11 +10140,11 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "requires": { - "ajv": "^5.1.0", + "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, @@ -10706,12 +10553,12 @@ } }, "js2xmlparser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", - "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", "dev": true, "requires": { - "xmlcreate": "^2.0.3" + "xmlcreate": "^2.0.4" } }, "jsbn": { @@ -10721,27 +10568,34 @@ "optional": true }, "jsdoc": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz", - "integrity": "sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==", + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", + "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", "dev": true, "requires": { "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", "bluebird": "^3.7.2", "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.1", - "klaw": "^3.0.0", - "markdown-it": "^10.0.0", - "markdown-it-anchor": "^5.2.7", - "marked": "^2.0.3", + "js2xmlparser": "^4.0.2", + "klaw": "^4.0.1", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", "mkdirp": "^1.0.4", "requizzle": "^0.2.3", "strip-json-comments": "^3.1.0", "taffydb": "2.6.2", - "underscore": "~1.13.1" + "underscore": "~1.13.2" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -10749,9 +10603,9 @@ "dev": true }, "entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true }, "escape-string-regexp": { @@ -10760,25 +10614,28 @@ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true }, - "markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "dev": true, "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", + "uc.micro": "^1.0.1" + } + }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" } }, - "marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", - "dev": true - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -10808,14 +10665,14 @@ "dev": true }, "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify": { "version": "1.0.1", @@ -10858,13 +10715,13 @@ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" } }, @@ -10934,13 +10791,10 @@ } }, "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", + "dev": true }, "levn": { "version": "0.4.1", @@ -11183,7 +11037,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -11247,9 +11100,9 @@ } }, "markdown-it-anchor": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.2.tgz", + "integrity": "sha512-JNaekTlIwwyYGBN3zifZDxgz4bSL8sbEj58fdTZGmPSMMGXBZapFjcZk2I33Jy79c1fvCKHpF7MA/67FOTjvzA==", "dev": true, "requires": {} }, @@ -11322,16 +11175,16 @@ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" }, "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "~1.33.0" + "mime-db": "1.52.0" } }, "min-document": { @@ -11352,9 +11205,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { "version": "3.1.6", @@ -11501,9 +11354,12 @@ "integrity": "sha512-MIUI6kEpSzujmys7AkUK+GzfPywrIeNhQIPe1pQgRxM7RYi4/31KZgC7NQOIjXPVQSXM1mVHcY9psvSQVRt1Kg==" }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } }, "node-forge": { "version": "0.10.0", @@ -11557,19 +11413,12 @@ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { "path-key": "^3.0.0" - }, - "dependencies": { - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - } } }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", @@ -11678,13 +11527,6 @@ "integrity": "sha512-vBl50PgflqBcb5w97vUGqYdA1o8TY5QOG7ec/sLkam5QngaVG0XlXwNP/Pm2kgCgu8I1pT+EAIqbcoDmDmsjeA==", "requires": { "minimist": "1.2.6" - }, - "dependencies": { - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - } } }, "pako": { @@ -11742,13 +11584,12 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "performance-now": { @@ -11887,11 +11728,6 @@ "with": "^7.0.0" }, "dependencies": { - "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==" - }, "constantinople": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", @@ -11946,11 +11782,6 @@ "resolve": "^1.15.1" }, "dependencies": { - "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==" - }, "constantinople": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", @@ -11960,24 +11791,10 @@ "@babel/types": "^7.6.1" } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "pug-error": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } } } }, @@ -12181,22 +11998,6 @@ "json-parse-better-errors": "^1.0.1", "normalize-package-data": "^2.0.0", "slash": "^1.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } } }, "readable-stream": { @@ -12285,30 +12086,30 @@ "dev": true }, "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "uuid": "^3.3.2" }, "dependencies": { "tunnel-agent": { @@ -12344,7 +12145,6 @@ "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, "requires": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" @@ -12485,9 +12285,9 @@ }, "dependencies": { "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "iconv-lite": { "version": "0.5.2", @@ -12684,13 +12484,13 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "dependencies": { "ansi-regex": { @@ -12704,11 +12504,11 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -12882,11 +12682,6 @@ "has": "^1.0.3" } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "resolve": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", @@ -13024,20 +12819,26 @@ "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=" }, "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "punycode": "^1.4.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" }, "dependencies": { "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" } } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "treeify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", @@ -13090,9 +12891,9 @@ "integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg==" }, "underscore": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", - "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==", "dev": true }, "unique-string": { @@ -13112,7 +12913,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "requires": { "punycode": "^2.1.0" }, @@ -13120,15 +12920,14 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" } } }, "urijs": { - "version": "1.19.7", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.7.tgz", - "integrity": "sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA==" + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==" }, "url": { "version": "0.10.3", @@ -13206,6 +13005,20 @@ "resolved": "https://registry.npmjs.org/wappalyzer-core/-/wappalyzer-core-6.6.0.tgz", "integrity": "sha512-pdod7Zg1GwVJBSjMSmV8kiFfPhzUcRbjQeQo4Alcfu7p7epGYggP9xdBSY8o1PlJOvmW/FMQH5AEd7Scxb0wUA==" }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -13222,16 +13035,6 @@ "execa": "^4.0.2" }, "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -13260,32 +13063,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -13298,13 +13075,6 @@ "@babel/types": "^7.9.6", "assert-never": "^1.2.1", "babel-walk": "3.0.0-canary-5" - }, - "dependencies": { - "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==" - } } }, "word-wrap": { @@ -13438,9 +13208,9 @@ "optional": true }, "xmlcreate": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", - "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", "dev": true }, "xtend": { diff --git a/package.json b/package.json index 8872c53f4..a2b60b674 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "@tgwf/co2": "0.8.0", "aws-sdk": "2.882.0", "axe-core": "4.4.1", - "browsertime": "16.0.1", + "browsertime": "16.1.0", "coach-core": "7.1.1", "cli-color": "2.0.0", "concurrent-queue": "7.0.2", From c51ee332cf16b847b97e2e904b9a0e1fd24708e0 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Fri, 22 Apr 2022 08:03:43 +0200 Subject: [PATCH 098/105] Update dependencies (#3635) --- npm-shrinkwrap.json | 555 ++++++++++++++++++-------------------------- package.json | 8 +- 2 files changed, 224 insertions(+), 339 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 4906c47db..dcf7093eb 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -9,15 +9,15 @@ "version": "24.0.0", "license": "MIT", "dependencies": { - "@google-cloud/storage": "5.8.3", + "@google-cloud/storage": "5.19.3", "@tgwf/co2": "0.8.0", - "aws-sdk": "2.882.0", + "aws-sdk": "2.1118.0", "axe-core": "4.4.1", "browsertime": "16.1.0", "cli-color": "2.0.0", "coach-core": "7.1.1", "concurrent-queue": "7.0.2", - "dayjs": "1.10.4", + "dayjs": "1.11.1", "fast-crc32c": "2.0.0", "fast-stats": "0.0.6", "find-up": "5.0.0", @@ -49,7 +49,7 @@ "tape": "4.13.0", "text-table": "0.2.0", "uuid": "8.3.2", - "yargs": "17.2.1" + "yargs": "17.4.1" }, "bin": { "sitespeed.io": "bin/sitespeed.js", @@ -264,29 +264,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@google-cloud/common": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.6.0.tgz", - "integrity": "sha512-aHIFTqJZmeTNO9md8XxV+ywuvXF3xBm5WNmgWeeCK+XN5X+kGW0WEX94wGwj+/MdOnrVf4dL2RvSIt9J5yJG6Q==", - "dependencies": { - "@google-cloud/projectify": "^2.0.0", - "@google-cloud/promisify": "^2.0.0", - "arrify": "^2.0.1", - "duplexify": "^4.1.1", - "ent": "^2.2.0", - "extend": "^3.0.2", - "google-auth-library": "^7.0.2", - "retry-request": "^4.1.1", - "teeny-request": "^7.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@google-cloud/paginator": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.5.tgz", - "integrity": "sha512-N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz", + "integrity": "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==", "dependencies": { "arrify": "^2.0.0", "extend": "^3.0.2" @@ -296,46 +277,50 @@ } }, "node_modules/@google-cloud/projectify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.0.1.tgz", - "integrity": "sha512-ZDG38U/Yy6Zr21LaR3BTiiLtpJl6RkPS/JwoRT453G+6Q1DhlV0waNf8Lfu+YVYGIIxgKnLayJRfYlFJfiI8iQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz", + "integrity": "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==", "engines": { "node": ">=10" } }, "node_modules/@google-cloud/promisify": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.3.tgz", - "integrity": "sha512-d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz", + "integrity": "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==", "engines": { "node": ">=10" } }, "node_modules/@google-cloud/storage": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.8.3.tgz", - "integrity": "sha512-g++NTmpmwbZZEnBhJi3y1D3YyZ2Y+1xL5blp96eeJhffginMym5tRw/AGNZblDI35U2K1FTJEYqIZ31tbEzs8w==", + "version": "5.19.3", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.19.3.tgz", + "integrity": "sha512-l+8X0BoA7rg9jyZaS4p2DwMg1Ivju+VAL6PeQZE1u2q52LQ0KemrZmdQWhtrplHYo8UdYtqpbj4A6Fc5fKDZdg==", "dependencies": { - "@google-cloud/common": "^3.6.0", - "@google-cloud/paginator": "^3.0.0", + "@google-cloud/paginator": "^3.0.7", + "@google-cloud/projectify": "^2.0.0", "@google-cloud/promisify": "^2.0.0", + "abort-controller": "^3.0.0", "arrify": "^2.0.0", - "async-retry": "^1.3.1", + "async-retry": "^1.3.3", "compressible": "^2.0.12", - "date-and-time": "^0.14.2", + "configstore": "^5.0.0", + "date-and-time": "^2.0.0", "duplexify": "^4.0.0", + "ent": "^2.2.0", "extend": "^3.0.2", "gaxios": "^4.0.0", - "gcs-resumable-upload": "^3.1.3", "get-stream": "^6.0.0", + "google-auth-library": "^7.14.1", "hash-stream-validation": "^0.2.2", - "mime": "^2.2.0", + "mime": "^3.0.0", "mime-types": "^2.0.8", - "onetime": "^5.1.0", "p-limit": "^3.0.1", "pumpify": "^2.0.0", + "retry-request": "^4.2.2", "snakeize": "^0.1.0", - "stream-events": "^1.0.1", + "stream-events": "^1.0.4", + "teeny-request": "^7.1.3", "xdg-basedir": "^4.0.0" }, "engines": { @@ -1009,11 +994,11 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "engines": { - "node": ">= 6" + "node": ">= 10" } }, "node_modules/@types/babel-types": { @@ -1109,9 +1094,9 @@ } }, "node_modules/agent-base/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -1242,11 +1227,11 @@ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" }, "node_modules/async-retry": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz", - "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", "dependencies": { - "retry": "0.12.0" + "retry": "0.13.1" } }, "node_modules/asynckit": { @@ -1263,14 +1248,14 @@ } }, "node_modules/aws-sdk": { - "version": "2.882.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.882.0.tgz", - "integrity": "sha512-MC1tKQdvIBmSQmyFmS6McGGPrN6yvHmhP0SS0ovx+zF/BbvHPTpi5hIgqPSAkdb8/s0I16QtbwiLQgPT2pf1tA==", + "version": "2.1118.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1118.0.tgz", + "integrity": "sha512-R3g06c4RC0Gz/lwMA7wgC7+FwYf5vaO30sPIigoX5m6Tfb7tdzfCYD7pnpvkPRNUvWJ3f5kQk+pEeW25DstRrQ==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", "ieee754": "1.1.13", - "jmespath": "0.15.0", + "jmespath": "0.16.0", "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", @@ -1278,7 +1263,7 @@ "xml2js": "0.4.19" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 10.0.0" } }, "node_modules/aws-sdk/node_modules/uuid": { @@ -1390,9 +1375,9 @@ } }, "node_modules/bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", "engines": { "node": "*" } @@ -1489,36 +1474,6 @@ "jimp": "0.16.1" } }, - "node_modules/browsertime/node_modules/dayjs": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", - "integrity": "sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==" - }, - "node_modules/browsertime/node_modules/yargs": { - "version": "17.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", - "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/browsertime/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "engines": { - "node": ">=12" - } - }, "node_modules/btoa": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", @@ -2052,9 +2007,9 @@ } }, "node_modules/date-and-time": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-0.14.2.tgz", - "integrity": "sha512-EFTCh9zRSEpGPmJaexg7HTuzZHh6cnJj1ui7IGCFNXzd2QdpsNh05Db5TF3xzJm30YN+A8/6xHSuRcQqoc3kFA==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-2.3.1.tgz", + "integrity": "sha512-OaIRmSJXifwEN21rMVVDs0Kz8uhJ3wWPYd86atkRiqN54liaMQYEbbrgjZQea75YXOBWL4ZFb3rG/waenw1TEg==" }, "node_modules/date-format": { "version": "0.0.2", @@ -2062,9 +2017,9 @@ "integrity": "sha1-+v1Ej3IRXvHitzkVWukvK+bCjdE=" }, "node_modules/dayjs": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz", - "integrity": "sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", + "integrity": "sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==" }, "node_modules/dbug": { "version": "0.4.2", @@ -2243,9 +2198,9 @@ } }, "node_modules/duplexify": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz", - "integrity": "sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", "dependencies": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", @@ -3282,24 +3237,24 @@ "dev": true }, "node_modules/gaxios": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.2.0.tgz", - "integrity": "sha512-Ms7fNifGv0XVU+6eIyL9LB7RVESeML9+cMvkwGS70xyD6w2Z80wl6RiqiJ9k1KFlJCUTQqFFc8tXmPQfSKUe8g==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", + "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", "dependencies": { "abort-controller": "^3.0.0", "extend": "^3.0.2", "https-proxy-agent": "^5.0.0", "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" + "node-fetch": "^2.6.7" }, "engines": { "node": ">=10" } }, "node_modules/gcp-metadata": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz", - "integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", + "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", "dependencies": { "gaxios": "^4.0.0", "json-bigint": "^1.0.0" @@ -3308,26 +3263,6 @@ "node": ">=10" } }, - "node_modules/gcs-resumable-upload": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-3.1.3.tgz", - "integrity": "sha512-LjVrv6YVH0XqBr/iBW0JgRA1ndxhK6zfEFFJR4im51QVTj/4sInOXimY2evDZuSZ75D3bHxTaQAdXRukMc1y+w==", - "dependencies": { - "abort-controller": "^3.0.0", - "configstore": "^5.0.0", - "extend": "^3.0.2", - "gaxios": "^4.0.0", - "google-auth-library": "^7.0.0", - "pumpify": "^2.0.0", - "stream-events": "^1.0.4" - }, - "bin": { - "gcs-upload": "build/src/cli.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3452,9 +3387,9 @@ } }, "node_modules/google-auth-library": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.0.3.tgz", - "integrity": "sha512-6wJNYqY1QUr5I2lWaUkkzOT2b9OCNhNQrdFOt/bsBbGb7T7NCdEvrBsXraUm+KTUGk2xGlQ7m9RgUd4Llcw8NQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", + "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==", "dependencies": { "arrify": "^2.0.0", "base64-js": "^1.3.0", @@ -3501,12 +3436,12 @@ } }, "node_modules/gtoken": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.2.1.tgz", - "integrity": "sha512-OY0BfPKe3QnMsY9MzTHTSKn+Vl2l1CcLe6BwDEQj00mbbkl5nyQ/7EUREstg4fQNZ8iYE7br4JJ7TdKeDOPWmw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", + "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", "dependencies": { "gaxios": "^4.0.0", - "google-p12-pem": "^3.0.3", + "google-p12-pem": "^3.1.3", "jws": "^4.0.0" }, "engines": { @@ -3601,11 +3536,11 @@ "dev": true }, "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dependencies": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, @@ -3614,9 +3549,9 @@ } }, "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -3649,9 +3584,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dependencies": { "agent-base": "6", "debug": "4" @@ -3661,9 +3596,9 @@ } }, "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -4023,9 +3958,9 @@ "optional": true }, "node_modules/jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", "engines": { "node": ">= 0.6.0" } @@ -4785,14 +4720,14 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=10.0.0" } }, "node_modules/mime-db": { @@ -6007,28 +5942,29 @@ } }, "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "engines": { "node": ">= 4" } }, "node_modules/retry-request": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz", - "integrity": "sha512-QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", + "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", "dependencies": { - "debug": "^4.1.1" + "debug": "^4.1.1", + "extend": "^3.0.2" }, "engines": { "node": ">=8.10.0" } }, "node_modules/retry-request/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -6700,11 +6636,11 @@ } }, "node_modules/teeny-request": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.0.1.tgz", - "integrity": "sha512-sasJmQ37klOlplL4Ia/786M5YlOcoLGQyq2TE4WHSRupbAuDaQW0PfVxV4MtdBtRJ4ngzS+1qim8zP6Zp35qCw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.2.0.tgz", + "integrity": "sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==", "dependencies": { - "http-proxy-agent": "^4.0.0", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "node-fetch": "^2.6.1", "stream-events": "^1.0.5", @@ -7353,28 +7289,28 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", + "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" }, "engines": { "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yocto-queue": { @@ -7542,66 +7478,54 @@ } } }, - "@google-cloud/common": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.6.0.tgz", - "integrity": "sha512-aHIFTqJZmeTNO9md8XxV+ywuvXF3xBm5WNmgWeeCK+XN5X+kGW0WEX94wGwj+/MdOnrVf4dL2RvSIt9J5yJG6Q==", - "requires": { - "@google-cloud/projectify": "^2.0.0", - "@google-cloud/promisify": "^2.0.0", - "arrify": "^2.0.1", - "duplexify": "^4.1.1", - "ent": "^2.2.0", - "extend": "^3.0.2", - "google-auth-library": "^7.0.2", - "retry-request": "^4.1.1", - "teeny-request": "^7.0.0" - } - }, "@google-cloud/paginator": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.5.tgz", - "integrity": "sha512-N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz", + "integrity": "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==", "requires": { "arrify": "^2.0.0", "extend": "^3.0.2" } }, "@google-cloud/projectify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.0.1.tgz", - "integrity": "sha512-ZDG38U/Yy6Zr21LaR3BTiiLtpJl6RkPS/JwoRT453G+6Q1DhlV0waNf8Lfu+YVYGIIxgKnLayJRfYlFJfiI8iQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz", + "integrity": "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==" }, "@google-cloud/promisify": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.3.tgz", - "integrity": "sha512-d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz", + "integrity": "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==" }, "@google-cloud/storage": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.8.3.tgz", - "integrity": "sha512-g++NTmpmwbZZEnBhJi3y1D3YyZ2Y+1xL5blp96eeJhffginMym5tRw/AGNZblDI35U2K1FTJEYqIZ31tbEzs8w==", + "version": "5.19.3", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.19.3.tgz", + "integrity": "sha512-l+8X0BoA7rg9jyZaS4p2DwMg1Ivju+VAL6PeQZE1u2q52LQ0KemrZmdQWhtrplHYo8UdYtqpbj4A6Fc5fKDZdg==", "requires": { - "@google-cloud/common": "^3.6.0", - "@google-cloud/paginator": "^3.0.0", + "@google-cloud/paginator": "^3.0.7", + "@google-cloud/projectify": "^2.0.0", "@google-cloud/promisify": "^2.0.0", + "abort-controller": "^3.0.0", "arrify": "^2.0.0", - "async-retry": "^1.3.1", + "async-retry": "^1.3.3", "compressible": "^2.0.12", - "date-and-time": "^0.14.2", + "configstore": "^5.0.0", + "date-and-time": "^2.0.0", "duplexify": "^4.0.0", + "ent": "^2.2.0", "extend": "^3.0.2", "gaxios": "^4.0.0", - "gcs-resumable-upload": "^3.1.3", "get-stream": "^6.0.0", + "google-auth-library": "^7.14.1", "hash-stream-validation": "^0.2.2", - "mime": "^2.2.0", + "mime": "^3.0.0", "mime-types": "^2.0.8", - "onetime": "^5.1.0", "p-limit": "^3.0.1", "pumpify": "^2.0.0", + "retry-request": "^4.2.2", "snakeize": "^0.1.0", - "stream-events": "^1.0.1", + "stream-events": "^1.0.4", + "teeny-request": "^7.1.3", "xdg-basedir": "^4.0.0" }, "dependencies": { @@ -8123,9 +8047,9 @@ } }, "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" }, "@types/babel-types": { "version": "7.0.9", @@ -8206,9 +8130,9 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -8308,11 +8232,11 @@ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" }, "async-retry": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz", - "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", "requires": { - "retry": "0.12.0" + "retry": "0.13.1" } }, "asynckit": { @@ -8326,14 +8250,14 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "aws-sdk": { - "version": "2.882.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.882.0.tgz", - "integrity": "sha512-MC1tKQdvIBmSQmyFmS6McGGPrN6yvHmhP0SS0ovx+zF/BbvHPTpi5hIgqPSAkdb8/s0I16QtbwiLQgPT2pf1tA==", + "version": "2.1118.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1118.0.tgz", + "integrity": "sha512-R3g06c4RC0Gz/lwMA7wgC7+FwYf5vaO30sPIigoX5m6Tfb7tdzfCYD7pnpvkPRNUvWJ3f5kQk+pEeW25DstRrQ==", "requires": { "buffer": "4.9.2", "events": "1.1.1", "ieee754": "1.1.13", - "jmespath": "0.15.0", + "jmespath": "0.16.0", "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", @@ -8433,9 +8357,9 @@ } }, "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" }, "binary-extensions": { "version": "2.2.0", @@ -8513,32 +8437,6 @@ "lodash.set": "4.3.2", "selenium-webdriver": "4.1.1", "yargs": "17.4.1" - }, - "dependencies": { - "dayjs": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", - "integrity": "sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==" - }, - "yargs": { - "version": "17.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", - "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" - } } }, "btoa": { @@ -8985,9 +8883,9 @@ } }, "date-and-time": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-0.14.2.tgz", - "integrity": "sha512-EFTCh9zRSEpGPmJaexg7HTuzZHh6cnJj1ui7IGCFNXzd2QdpsNh05Db5TF3xzJm30YN+A8/6xHSuRcQqoc3kFA==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-2.3.1.tgz", + "integrity": "sha512-OaIRmSJXifwEN21rMVVDs0Kz8uhJ3wWPYd86atkRiqN54liaMQYEbbrgjZQea75YXOBWL4ZFb3rG/waenw1TEg==" }, "date-format": { "version": "0.0.2", @@ -8995,9 +8893,9 @@ "integrity": "sha1-+v1Ej3IRXvHitzkVWukvK+bCjdE=" }, "dayjs": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz", - "integrity": "sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", + "integrity": "sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==" }, "dbug": { "version": "0.4.2", @@ -9153,9 +9051,9 @@ } }, "duplexify": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz", - "integrity": "sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", "requires": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", @@ -9959,40 +9857,26 @@ "dev": true }, "gaxios": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.2.0.tgz", - "integrity": "sha512-Ms7fNifGv0XVU+6eIyL9LB7RVESeML9+cMvkwGS70xyD6w2Z80wl6RiqiJ9k1KFlJCUTQqFFc8tXmPQfSKUe8g==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", + "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", "requires": { "abort-controller": "^3.0.0", "extend": "^3.0.2", "https-proxy-agent": "^5.0.0", "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" + "node-fetch": "^2.6.7" } }, "gcp-metadata": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz", - "integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", + "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", "requires": { "gaxios": "^4.0.0", "json-bigint": "^1.0.0" } }, - "gcs-resumable-upload": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-3.1.3.tgz", - "integrity": "sha512-LjVrv6YVH0XqBr/iBW0JgRA1ndxhK6zfEFFJR4im51QVTj/4sInOXimY2evDZuSZ75D3bHxTaQAdXRukMc1y+w==", - "requires": { - "abort-controller": "^3.0.0", - "configstore": "^5.0.0", - "extend": "^3.0.2", - "gaxios": "^4.0.0", - "google-auth-library": "^7.0.0", - "pumpify": "^2.0.0", - "stream-events": "^1.0.4" - } - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -10089,9 +9973,9 @@ } }, "google-auth-library": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.0.3.tgz", - "integrity": "sha512-6wJNYqY1QUr5I2lWaUkkzOT2b9OCNhNQrdFOt/bsBbGb7T7NCdEvrBsXraUm+KTUGk2xGlQ7m9RgUd4Llcw8NQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", + "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==", "requires": { "arrify": "^2.0.0", "base64-js": "^1.3.0", @@ -10125,12 +10009,12 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "gtoken": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.2.1.tgz", - "integrity": "sha512-OY0BfPKe3QnMsY9MzTHTSKn+Vl2l1CcLe6BwDEQj00mbbkl5nyQ/7EUREstg4fQNZ8iYE7br4JJ7TdKeDOPWmw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", + "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", "requires": { "gaxios": "^4.0.0", - "google-p12-pem": "^3.0.3", + "google-p12-pem": "^3.1.3", "jws": "^4.0.0" } }, @@ -10202,19 +10086,19 @@ "dev": true }, "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "requires": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -10237,18 +10121,18 @@ } }, "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "requires": { "agent-base": "6", "debug": "4" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -10520,9 +10404,9 @@ } }, "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "jpeg-js": { "version": "0.4.2", @@ -11170,9 +11054,9 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" }, "mime-db": { "version": "1.52.0", @@ -12165,22 +12049,23 @@ } }, "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" }, "retry-request": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz", - "integrity": "sha512-QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", + "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", "requires": { - "debug": "^4.1.1" + "debug": "^4.1.1", + "extend": "^3.0.2" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -12713,11 +12598,11 @@ } }, "teeny-request": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.0.1.tgz", - "integrity": "sha512-sasJmQ37klOlplL4Ia/786M5YlOcoLGQyq2TE4WHSRupbAuDaQW0PfVxV4MtdBtRJ4ngzS+1qim8zP6Zp35qCw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.2.0.tgz", + "integrity": "sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==", "requires": { - "http-proxy-agent": "^4.0.0", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "node-fetch": "^2.6.1", "stream-events": "^1.0.5", @@ -13230,23 +13115,23 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", + "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" }, "yocto-queue": { "version": "0.1.0", diff --git a/package.json b/package.json index a2b60b674..6cfcfab4b 100644 --- a/package.json +++ b/package.json @@ -71,15 +71,15 @@ }, "main": "./lib/sitespeed.js", "dependencies": { - "@google-cloud/storage": "5.8.3", + "@google-cloud/storage": "5.19.3", "@tgwf/co2": "0.8.0", - "aws-sdk": "2.882.0", + "aws-sdk": "2.1118.0", "axe-core": "4.4.1", "browsertime": "16.1.0", "coach-core": "7.1.1", "cli-color": "2.0.0", "concurrent-queue": "7.0.2", - "dayjs": "1.10.4", + "dayjs": "1.11.1", "fast-crc32c": "2.0.0", "fast-stats": "0.0.6", "find-up": "5.0.0", @@ -111,6 +111,6 @@ "tape": "4.13.0", "text-table": "0.2.0", "uuid": "8.3.2", - "yargs": "17.2.1" + "yargs": "17.4.1" } } From 5cb50bb0faf408cd01701518c823b820f3ad5232 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 22 Apr 2022 08:27:07 +0200 Subject: [PATCH 099/105] changelog: new release --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0dc9f701..b108cc958 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,16 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) -## UNRELEASED +## 24.1.0 - 2022-04-22 ### Added * Update Grafana auth settings to allow api token or basic auth, thank you [Vladimir Stepanov](https://github.com/vs-odessa) for PR [#3627](https://github.com/sitespeedio/sitespeed.io/pull/3627). * Add TTFB to the metrics page [#3630](https://github.com/sitespeedio/sitespeed.io/pull/3630). * Use latest Coach core with updated PageXray and Third party web [#3629](https://github.com/sitespeedio/sitespeed.io/pull/3629). * Make it possible to disable annotations for Graphite. Set `--graphite.sendAnnotation false` to disable sending annotations [#3625](https://github.com/sitespeedio/sitespeed.io/pull/3625). * Show which run that is used in the metrics tab [#3631](https://github.com/sitespeedio/sitespeed.io/pull/3631). +* Updated to [Browsertime 16.1.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#1610---2022-04-20). +### Updated +* Update dependencies: google-cloud/storage, aws-sdk, dayjs, yargs [#3635](https://github.com/sitespeedio/sitespeed.io/pull/3635). + ## 24.0.0 - 2022-04-06 ### Changed From 214b7c6e7b5234466a8c463ca217208c35fa3750 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 22 Apr 2022 08:29:07 +0200 Subject: [PATCH 100/105] 24.1.0 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index dcf7093eb..ddc69f15f 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "sitespeed.io", - "version": "24.0.0", + "version": "24.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sitespeed.io", - "version": "24.0.0", + "version": "24.1.0", "license": "MIT", "dependencies": { "@google-cloud/storage": "5.19.3", diff --git a/package.json b/package.json index 6cfcfab4b..18e10fa28 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "sitespeed.io": "./bin/sitespeed.js", "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js" }, - "version": "24.0.0", + "version": "24.1.0", "description": "Analyze the web performance of your site", "keywords": [ "performance", From eceaa5c43f84005b452257bafd0d2e869f3f0dcd Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 22 Apr 2022 08:31:32 +0200 Subject: [PATCH 101/105] bump versions --- docs/_includes/version/sitespeed.io.txt | 2 +- .../sitespeed.io/configuration/config.md | 3 +- docs/feed/atom.xml | 92 ++++++++++++------- docs/feed/rss.xml | 77 +++++++++++----- docs/feed/sitespeed.io.atom | 54 ++++++----- docs/feed/sitespeed.io.rss | 48 ++++++---- docs/feed/throttle.atom | 29 +++--- docs/feed/throttle.rss | 21 +++-- 8 files changed, 205 insertions(+), 121 deletions(-) diff --git a/docs/_includes/version/sitespeed.io.txt b/docs/_includes/version/sitespeed.io.txt index 942bb7eac..cb4ead4a6 100644 --- a/docs/_includes/version/sitespeed.io.txt +++ b/docs/_includes/version/sitespeed.io.txt @@ -1 +1 @@ -24.0.0 \ No newline at end of file +24.1.0 \ No newline at end of file diff --git a/docs/documentation/sitespeed.io/configuration/config.md b/docs/documentation/sitespeed.io/configuration/config.md index 081d247d6..7b3406b39 100644 --- a/docs/documentation/sitespeed.io/configuration/config.md +++ b/docs/documentation/sitespeed.io/configuration/config.md @@ -134,7 +134,7 @@ Crawler Grafana --grafana.host The Grafana host used when sending annotations. --grafana.port The Grafana port used when sending annotations to Grafana. [default: 80] - --grafana.auth The Grafana auth/bearer value used when sending annotations to Grafana. See http://docs.grafana.org/http_api/auth/#authentication-api + --grafana.auth The Grafana auth/bearer value used when sending annotations to Grafana. If you do not set Bearer/Auth, Bearer is automatically set. See http://docs.grafana.org/http_api/auth/#authentication-api --grafana.annotationTitle Add a title to the annotation sent for a run. --grafana.annotationMessage Add an extra message that will be attached to the annotation sent for a run. The message is attached after the default message and can contain HTML. --grafana.annotationTag Add a extra tag to the annotation sent for a run. Repeat the --grafana.annotationTag option for multiple tags. Make sure they do not collide with the other tags. @@ -152,6 +152,7 @@ Graphite --graphite.annotationTitle Add a title to the annotation sent for a run. --graphite.annotationMessage Add an extra message that will be attached to the annotation sent for a run. The message is attached after the default message and can contain HTML. --graphite.annotationScreenshot Include screenshot (from Browsertime/WebPageTest) in the annotation. You need to specify a --resultBaseURL for this to work. [boolean] [default: false] + --graphite.sendAnnotation Send annotations when a run is finished. You need to specify a --resultBaseURL for this to work. However if you for example use a Prometheus exporter, you may want to make sure annotations are not sent, then set it to false. [boolean] [default: true] --graphite.annotationRetentionMinutes The retention in minutes, to make annotation match the retention in Graphite. [number] --graphite.statsd Uses the StatsD interface [boolean] [default: false] --graphite.annotationTag Add a extra tag to the annotation sent for a run. Repeat the --graphite.annotationTag option for multiple tags. Make sure they do not collide with the other tags. diff --git a/docs/feed/atom.xml b/docs/feed/atom.xml index c16b1ffb9..25913b029 100644 --- a/docs/feed/atom.xml +++ b/docs/feed/atom.xml @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-04-20T00:00:00.000Z + 2022-04-22T00:00:00.000Z https://github.com/jpmonette/feed Peter Hedenskog @@ -15,6 +15,36 @@ https://www.sitespeed.io/img/logos/sitespeed.io.png http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 24.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.1.0 + + 2022-04-22T00:00:00.000Z + Added + +
      +
    • Add TTFB to the metrics page #3630.
    • +
    +
      +
    • Use latest Coach core with updated PageXray and Third party web #3629.
    • +
    +
      +
    • Make it possible to disable annotations for Graphite. Set --graphite.sendAnnotation false to disable sending annotations #3625.
    • +
    +
      +
    • Show which run that is used in the metrics tab #3631.
    • +
    + +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[browsertime 16.1.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.1.0 @@ -83,21 +113,6 @@
    • Upgraded to PageXray 4.4.1 and Third Party Web 0.15.0.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 16.0.1]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 - - 2022-04-06T00:00:00.000Z - Fixed -
      -
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • -
    ]]>
    Sitespeed.io @@ -124,6 +139,21 @@
    • Upgraded to Browsertime 16.0.0 that changed how the DNS is flushed. You need to add --flushDNS to your conifguration to flush the DNS between runs.
    +]]> + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 16.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + + 2022-04-06T00:00:00.000Z + Fixed +
      +
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • +
    ]]>
    Sitespeed.io @@ -297,21 +327,6 @@
    • Added link to each run in the side by side metric page, making it easier to go to the correct run #3593.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[browsertime 15.3.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 - - 2022-03-07T00:00:00.000Z - Added -
      -
    • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
    • -
    ]]>
    Sitespeed.io @@ -330,6 +345,21 @@ +]]> + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[browsertime 15.3.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + + 2022-03-07T00:00:00.000Z + Added +
      +
    • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
    • +
    ]]>
    Sitespeed.io diff --git a/docs/feed/rss.xml b/docs/feed/rss.xml index b458488d9..d09f231c9 100644 --- a/docs/feed/rss.xml +++ b/docs/feed/rss.xml @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Wed, 20 Apr 2022 00:00:00 GMT + Fri, 22 Apr 2022 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -15,6 +15,33 @@ All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 24.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.1.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.1.0 + Fri, 22 Apr 2022 00:00:00 GMT + Added + +
      +
    • Add TTFB to the metrics page #3630.
    • +
    +
      +
    • Use latest Coach core with updated PageXray and Third party web #3629.
    • +
    +
      +
    • Make it possible to disable annotations for Graphite. Set --graphite.sendAnnotation false to disable sending annotations #3625.
    • +
    +
      +
    • Show which run that is used in the metrics tab #3631.
    • +
    + +]]>
    + +
    <![CDATA[browsertime 16.1.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.1.0 @@ -75,18 +102,6 @@ ]]> - - <![CDATA[browsertime 16.0.1]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 - Wed, 06 Apr 2022 00:00:00 GMT - Fixed -
      -
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • -
    -]]>
    - -
    <![CDATA[sitespeed.io 24.0.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 @@ -110,6 +125,18 @@ ]]> + + <![CDATA[browsertime 16.0.1]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.1 + Wed, 06 Apr 2022 00:00:00 GMT + Fixed +
      +
    • If visual metrics fails and you also use --visualElements, make sure that file is also stored so we can reporduce the issue #1757.
    • +
    +]]>
    + +
    <![CDATA[browsertime 16.0.0]]> https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#16.0.0 @@ -256,18 +283,6 @@ ]]> - - <![CDATA[browsertime 15.3.0]]> - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 - https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 - Mon, 07 Mar 2022 00:00:00 GMT - Added -
      -
    • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
    • -
    -]]>
    - -
    <![CDATA[sitespeed.io 23.3.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.3.0 @@ -283,6 +298,18 @@ ]]> + + <![CDATA[browsertime 15.3.0]]> + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#15.3.0 + Mon, 07 Mar 2022 00:00:00 GMT + Added +
      +
    • Chrome: If you set --user-data-dir you can clean the directory between each iteration using --chrome.cleanUserDataDir #1739
    • +
    +]]>
    + +
    <![CDATA[sitespeed.io 23.2.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.2.0 diff --git a/docs/feed/sitespeed.io.atom b/docs/feed/sitespeed.io.atom index cd11571a6..bc60b036e 100644 --- a/docs/feed/sitespeed.io.atom +++ b/docs/feed/sitespeed.io.atom @@ -2,7 +2,7 @@ sitespeed.io-release-feed sitespeed.io release feed - 2022-04-06T18:30:06.326Z + 2022-04-22T06:29:42.461Z https://github.com/jpmonette/feed Peter Hedenskog @@ -16,6 +16,36 @@ http://www.sitespeed.io/favicon.ico All rights reserved 2022, Peter Hedenskog and team + + <![CDATA[sitespeed.io 24.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.1.0 + + 2022-04-22T00:00:00.000Z + Added + +
      +
    • Add TTFB to the metrics page #3630.
    • +
    +
      +
    • Use latest Coach core with updated PageXray and Third party web #3629.
    • +
    +
      +
    • Make it possible to disable annotations for Graphite. Set --graphite.sendAnnotation false to disable sending annotations #3625.
    • +
    +
      +
    • Show which run that is used in the metrics tab #3631.
    • +
    + +]]>
    + + Sitespeed.io + https://www.sitespeed.io + +
    <![CDATA[sitespeed.io 24.0.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 @@ -190,28 +220,6 @@
    • Ignore sustainable.setup messages when storing analysistorer #3578.
    -]]> - - Sitespeed.io - https://www.sitespeed.io - -
    - - <![CDATA[sitespeed.io 23.1.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 - - 2022-02-24T00:00:00.000Z - Added -
      -
    • Updated Browsertime that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser.
    • -
    -
      -
    • Show Browsertime version in runtime settings #3575.
    • -
    -

    Fixed

    -
      -
    • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
    • -
    ]]>
    Sitespeed.io diff --git a/docs/feed/sitespeed.io.rss b/docs/feed/sitespeed.io.rss index d5d80d7d0..991241f7d 100644 --- a/docs/feed/sitespeed.io.rss +++ b/docs/feed/sitespeed.io.rss @@ -4,7 +4,7 @@ sitespeed.io release feed https://www.sitespeed.io New releases and changelog feed of sitespeed.io - Wed, 06 Apr 2022 18:30:06 GMT + Fri, 22 Apr 2022 06:29:42 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -16,6 +16,33 @@ All rights reserved 2022, Peter Hedenskog and team Web Performance + + <![CDATA[sitespeed.io 24.1.0]]> + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.1.0 + https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.1.0 + Fri, 22 Apr 2022 00:00:00 GMT + Added + +
      +
    • Add TTFB to the metrics page #3630.
    • +
    +
      +
    • Use latest Coach core with updated PageXray and Third party web #3629.
    • +
    +
      +
    • Make it possible to disable annotations for Graphite. Set --graphite.sendAnnotation false to disable sending annotations #3625.
    • +
    +
      +
    • Show which run that is used in the metrics tab #3631.
    • +
    + +]]>
    + +
    <![CDATA[sitespeed.io 24.0.0]]> https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#24.0.0 @@ -166,25 +193,6 @@
    • Ignore sustainable.setup messages when storing analysistorer #3578.
    -]]> - -
    - - <![CDATA[sitespeed.io 23.1.0]]> - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 - https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#23.1.0 - Thu, 24 Feb 2022 00:00:00 GMT - Added -
      -
    • Updated Browsertime that collect timings from main document. The result includes a field named mainDocumentTimings and contains blocked, dns, connect, send, wait, receive, ssl as long as you get a HAR file from the browser.
    • -
    -
      -
    • Show Browsertime version in runtime settings #3575.
    • -
    -

    Fixed

    -
      -
    • Updated Chromedriver dependency that fixes installation on Mac M1 and some send keys issues.
    • -
    ]]>
    diff --git a/docs/feed/throttle.atom b/docs/feed/throttle.atom index a9deb8a20..c91a5137f 100644 --- a/docs/feed/throttle.atom +++ b/docs/feed/throttle.atom @@ -2,7 +2,7 @@ throttle-release-feed throttle release feed - 2022-04-14T09:10:27.107Z + 2022-04-20T11:37:49.769Z https://github.com/jpmonette/feed Peter Hedenskog @@ -26,7 +26,22 @@

    Changed

      -
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67.
    • +
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67. You can read Sindre Sorhus ESM package guide.
    • +
    +]]> + + Sitespeed.io + https://www.sitespeed.io + +
    + + <![CDATA[throttle 3.1.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.1 + + 2022-04-19T00:00:00.000Z + Fixed +
      +
    • Updated minimist dependency.
    ]]>
    @@ -114,14 +129,4 @@ https://www.sitespeed.io
    - - <![CDATA[throttle 2.0.1]]> - https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 - - 2020-08-22T00:00:00.000Z - - Sitespeed.io - https://www.sitespeed.io - -
    \ No newline at end of file diff --git a/docs/feed/throttle.rss b/docs/feed/throttle.rss index 7e705f0c1..9a1205fb7 100644 --- a/docs/feed/throttle.rss +++ b/docs/feed/throttle.rss @@ -4,7 +4,7 @@ throttle release feed https://www.sitespeed.io New releases and changelog feed of throttle - Thu, 14 Apr 2022 09:10:27 GMT + Wed, 20 Apr 2022 11:37:49 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en @@ -22,7 +22,18 @@

    Changed

      -
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67.
    • +
    • Converting the project to ES6 module. If you run Throttle by command line it will work exactly as before except that we dropped support for NodeJS 10 #67. You can read Sindre Sorhus ESM package guide.
    • +
    +]]> +
    + + <![CDATA[throttle 3.1.1]]> + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.1 + https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#3.1.1 + Tue, 19 Apr 2022 00:00:00 GMT + Fixed +
      +
    • Updated minimist dependency.
    ]]>
    @@ -82,11 +93,5 @@ https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.2 Thu, 10 Sep 2020 00:00:00 GMT
    - - <![CDATA[throttle 2.0.1]]> - https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 - https://github.com/sitespeedio/throttle/blob/main/CHANGELOG.md#2.0.1 - Sat, 22 Aug 2020 00:00:00 GMT - \ No newline at end of file From ac68df6776b56aa46c4a6e49cba083106fc013f8 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Fri, 22 Apr 2022 09:49:52 +0200 Subject: [PATCH 102/105] Update to Ubuntu 22 (#3636) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3fbe382be..f1ae14dcc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM sitespeedio/webbrowsers:chrome-100.0-firefox-99.0-edge-100.0 +FROM sitespeedio/webbrowsers:chrome-100.0-firefox-99.0-edge-100.0-b ARG TARGETPLATFORM=linux/amd64 From d6f0dc1c4122582e5427ac34a0b5da1aa660c8a5 Mon Sep 17 00:00:00 2001 From: soulgalore Date: Fri, 22 Apr 2022 09:51:14 +0200 Subject: [PATCH 103/105] changelog: ubuntu 22.04 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b108cc958..fc91c9a3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org)) +## UNRELEASED + +### Added +* Updated base Docker image to use Ubuntu 22.04 [#3636](https://github.com/sitespeedio/sitespeed.io/pull/3636). + ## 24.1.0 - 2022-04-22 ### Added * Update Grafana auth settings to allow api token or basic auth, thank you [Vladimir Stepanov](https://github.com/vs-odessa) for PR [#3627](https://github.com/sitespeedio/sitespeed.io/pull/3627). From 8206cfd1cec9381df662fc87faf56da262903fa6 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Mon, 25 Apr 2022 22:18:29 +0200 Subject: [PATCH 104/105] Move tests to Ava (#3637) * Move tests to Ava --- npm-shrinkwrap.json | 2791 +++++++++++++++++++++++++++++------ package.json | 14 +- test/cliTests.js | 174 +-- test/cliUtilTests.js | 475 +++--- test/coachTests.js | 20 +- test/domainTests.js | 46 +- test/grafanaTests.js | 26 +- test/graphiteTests.js | 345 ++--- test/helpers/first.js | 11 - test/influxdbTests.js | 711 +++++---- test/mocha.opts | 3 - test/pathToFolderTests.js | 48 +- test/resultUrlTests.js | 258 ++-- test/slackTests.js | 288 +--- test/storageManagerTests.js | 96 +- 15 files changed, 3355 insertions(+), 1951 deletions(-) delete mode 100644 test/helpers/first.js delete mode 100644 test/mocha.opts diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index ddc69f15f..8e6d1b525 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -56,9 +56,7 @@ "sitespeed.io-wpr": "bin/browsertimeWebPageReplay.js" }, "devDependencies": { - "bluebird": "3.5.5", - "chai": "4.2.0", - "chai-as-promised": "7.1.1", + "ava": "4.0.1", "changelog-parser": "2.8.1", "clean-css-cli": "4.3.0", "eslint": "8.0.0", @@ -68,7 +66,6 @@ "jsdoc": "^3.6.7", "license-checker": "^16.0.0", "marked": "4.0.12", - "mocha": "^5.0.4", "prettier": "2.4.1", "pug-lint": "^2.6.0", "pug-lint-config-clock": "^2.0.0", @@ -866,6 +863,41 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "optional": true }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@sitespeed.io/chromedriver": { "version": "100.0.4896-20", "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-100.0.4896-20.tgz", @@ -1074,6 +1106,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/afterward": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/afterward/-/afterward-2.0.0.tgz", @@ -1114,6 +1155,22 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/aggregate-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.0.tgz", + "integrity": "sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==", + "dev": true, + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1181,6 +1238,36 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/arrgv": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", + "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", @@ -1212,15 +1299,6 @@ "node": ">=0.8" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/async": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", @@ -1247,6 +1325,204 @@ "node": ">= 4.0.0" } }, + "node_modules/ava": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ava/-/ava-4.0.1.tgz", + "integrity": "sha512-+12A/JDWyShBCZAKISEEPyM2dwkUrrAfPILqXi4LI4Aa58d92PzjY829hmuoSeACPNqrn2Wlbnja8c/n7bKV6Q==", + "dev": true, + "dependencies": { + "acorn": "^8.7.0", + "acorn-walk": "^8.2.0", + "ansi-styles": "^6.1.0", + "arrgv": "^1.0.2", + "arrify": "^3.0.0", + "callsites": "^4.0.0", + "cbor": "^8.1.0", + "chalk": "^5.0.0", + "chokidar": "^3.5.2", + "chunkd": "^2.0.1", + "ci-info": "^3.3.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-truncate": "^3.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.4", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.3", + "del": "^6.0.0", + "emittery": "^0.10.0", + "figures": "^4.0.0", + "globby": "^12.0.2", + "ignore-by-default": "^2.0.0", + "indent-string": "^5.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "matcher": "^5.0.0", + "mem": "^9.0.1", + "ms": "^2.1.3", + "p-event": "^5.0.1", + "p-map": "^5.3.0", + "picomatch": "^2.3.0", + "pkg-conf": "^4.0.0", + "plur": "^5.1.0", + "pretty-ms": "^7.0.1", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.5", + "strip-ansi": "^7.0.1", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "write-file-atomic": "^3.0.3", + "yargs": "^17.3.1" + }, + "bin": { + "ava": "entrypoints/cli.mjs" + }, + "engines": { + "node": ">=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=17" + }, + "peerDependencies": { + "@ava/typescript": "*" + }, + "peerDependenciesMeta": { + "@ava/typescript": { + "optional": true + } + } + }, + "node_modules/ava/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ava/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ava/node_modules/ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ava/node_modules/arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ava/node_modules/callsites": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.0.0.tgz", + "integrity": "sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ava/node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ava/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/ava/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/ava/node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "node_modules/ava/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/ava/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ava/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/aws-sdk": { "version": "2.1118.0", "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1118.0.tgz", @@ -1400,10 +1676,10 @@ "file-uri-to-path": "1.0.0" } }, - "node_modules/bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", "dev": true }, "node_modules/bmp-js": { @@ -1552,33 +1828,16 @@ "node": ">= 10" } }, - "node_modules/chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "dev": true, "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "nofilter": "^3.1.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" + "node": ">=12.19" } }, "node_modules/chalk": { @@ -1617,34 +1876,31 @@ "is-regex": "^1.0.3" } }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.1" + "fsevents": "~2.3.2" } }, "node_modules/chownr": { @@ -1731,6 +1987,24 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" }, + "node_modules/chunkd": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz", + "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, + "node_modules/ci-parallel-vars": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz", + "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==", + "dev": true + }, "node_modules/clean-css-cli": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.3.0.tgz", @@ -1769,6 +2043,42 @@ "node": ">=0.10.0" } }, + "node_modules/clean-stack": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.1.0.tgz", + "integrity": "sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/cli-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.0.tgz", @@ -1810,6 +2120,66 @@ "ext": "^1.1.2" } }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -1857,6 +2227,18 @@ "node": ">=14.0.0" } }, + "node_modules/code-excerpt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz", + "integrity": "sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==", + "dev": true, + "dependencies": { + "convert-to-spaces": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/combined-stream": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", @@ -1873,6 +2255,12 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -1889,6 +2277,40 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "node_modules/concordance/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/concurrent-queue": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/concurrent-queue/-/concurrent-queue-7.0.2.tgz", @@ -1947,6 +2369,15 @@ "babylon": "^6.18.0" } }, + "node_modules/convert-to-spaces": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", + "integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", @@ -1987,6 +2418,18 @@ "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", "dev": true }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", @@ -2016,6 +2459,18 @@ "resolved": "https://registry.npmjs.org/date-format/-/date-format-0.0.2.tgz", "integrity": "sha1-+v1Ej3IRXvHitzkVWukvK+bCjdE=" }, + "node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/dayjs": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", @@ -2043,18 +2498,6 @@ "node": "*" } }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", @@ -2134,6 +2577,121 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/del/node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/del/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -2152,6 +2710,18 @@ "wrappy": "1" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -2221,6 +2791,12 @@ "node": ">= 6" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -2238,6 +2814,24 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -2823,9 +3417,9 @@ } }, "node_modules/esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2952,6 +3546,22 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -2976,6 +3586,15 @@ "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/feed": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", @@ -2988,6 +3607,34 @@ "node": ">=0.4.0" } }, + "node_modules/figures": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", + "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -3182,11 +3829,6 @@ "node": ">=10" } }, - "node_modules/fs-extra/node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, "node_modules/fs-extra/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -3271,15 +3913,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/get-port": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", @@ -3386,6 +4019,47 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/google-auth-library": { "version": "7.14.1", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", @@ -3428,12 +4102,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "engines": { - "node": ">=0.4.0" - } + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/gtoken": { "version": "5.3.2", @@ -3520,15 +4191,6 @@ "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz", "integrity": "sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ==" }, - "node_modules/he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true, - "bin": { - "he": "bin/he" - } - }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -3638,6 +4300,15 @@ "node": ">= 4" } }, + "node_modules/ignore-by-default": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.0.0.tgz", + "integrity": "sha512-+mQSgMRiFD3L3AOxLYOCxjIq4OnAmo5CIuC+lj5ehCJcPtV++QacEV7FdpzvYxH6DaOySWzQU6RR0lPLy37ckA==", + "dev": true, + "engines": { + "node": ">=10 <11 || >=12 <13 || >=14" + } + }, "node_modules/image-q": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", @@ -3676,6 +4347,18 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3711,6 +4394,15 @@ "node": ">=4.0.0" } }, + "node_modules/irregular-plurals": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.3.0.tgz", + "integrity": "sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-arguments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", @@ -3795,6 +4487,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", + "dev": true + }, "node_modules/is-expression": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", @@ -3869,6 +4567,33 @@ "node": ">=8" } }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -3923,6 +4648,18 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, + "node_modules/is-unicode-supported": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz", + "integrity": "sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3971,6 +4708,15 @@ "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==", "optional": true }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/js-stringify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", @@ -4472,6 +5218,33 @@ "node": ">=4" } }, + "node_modules/load-json-file": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz", + "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/locate-path": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.1.0.tgz", + "integrity": "sha512-HNx5uOnYeK4SxEoid5qnhRfprlJeGMzFRKPLCf/15N3/B4AiofNwC/yq7VBKdVk9dx7m+PiYCJOGg55JYTAqoQ==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -4604,6 +5377,18 @@ "semver": "bin/semver.js" } }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/markdown": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz", @@ -4666,11 +5451,66 @@ "node": ">= 12" } }, + "node_modules/matcher": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-5.0.0.tgz", + "integrity": "sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" }, + "node_modules/mem": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/mem/-/mem-9.0.2.tgz", + "integrity": "sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, "node_modules/memoizee": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", @@ -4719,6 +5559,28 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", @@ -4749,6 +5611,18 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -4808,122 +5682,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "dependencies": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/mocha/node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/mocha/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/mocha/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5005,6 +5763,15 @@ "url": "https://github.com/sponsors/antelle" } }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "engines": { + "node": ">=12.19" + } + }, "node_modules/nopt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz", @@ -5179,6 +5946,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^5.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-limit": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", @@ -5193,6 +5984,75 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.3.0.tgz", + "integrity": "sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==", + "dev": true, + "dependencies": { + "aggregate-error": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.0.2.tgz", + "integrity": "sha512-sEmji9Yaq+Tw+STwsGAE56hf7gMy9p0tQfJojIAamB7WHJYJKf1qlsg9jqBWG8q9VCxKPhZaP/AcXwEoBcYQhQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -5260,6 +6120,24 @@ "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==", "optional": true }, + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -5281,13 +6159,13 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { - "node": "*" + "node": ">=8" } }, "node_modules/performance-now": { @@ -5302,9 +6180,9 @@ "optional": true }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -5325,6 +6203,53 @@ "pixelmatch": "bin/pixelmatch" } }, + "node_modules/pkg-conf": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-4.0.0.tgz", + "integrity": "sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==", + "dev": true, + "dependencies": { + "find-up": "^6.0.0", + "load-json-file": "^7.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/plur": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", + "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", + "dev": true, + "dependencies": { + "irregular-plurals": "^3.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pngjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", @@ -5367,6 +6292,21 @@ "node": ">=6.0.0" } }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -5705,6 +6645,26 @@ "node": ">=0.4.x" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/read-installed": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", @@ -5764,9 +6724,9 @@ } }, "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { "picomatch": "^2.2.1" @@ -5924,6 +6884,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -5982,6 +6963,16 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -6001,6 +6992,29 @@ "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.1.1.tgz", "integrity": "sha512-6yWEYSdhK3bAEcYY0In3wgSBK70BiQoJArzdjZKCP/35b3gKIYu5Lc0qQqsoxjoLVebVoJiKK4VWGc5+oxvWBQ==" }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -6053,6 +7067,33 @@ "semver": "bin/semver" } }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", @@ -6132,6 +7173,46 @@ "node": ">=0.10.0" } }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", @@ -6302,6 +7383,27 @@ "node": "*" } }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/stream-events": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", @@ -6504,6 +7606,65 @@ "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" }, + "node_modules/supertap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-2.0.0.tgz", + "integrity": "sha512-jRzcXlCeDYvKoZGA5oRhYyR3jUIYu0enkSxtmAgHRlD7HwrovTpH4bDSi0py9FtuA8si9cW/fKommJHuaoDHJA==", + "dev": true, + "dependencies": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/supertap/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supertap/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supertap/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/supertap/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -6650,6 +7811,15 @@ "node": ">=10" } }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -6665,6 +7835,15 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", @@ -6811,15 +7990,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -6989,6 +8159,15 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -7945,6 +9124,32 @@ } } }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, "@sitespeed.io/chromedriver": { "version": "100.0.4896-20", "resolved": "https://registry.npmjs.org/@sitespeed.io/chromedriver/-/chromedriver-100.0.4896-20.tgz", @@ -8113,6 +9318,12 @@ "dev": true, "requires": {} }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, "afterward": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/afterward/-/afterward-2.0.0.tgz", @@ -8144,6 +9355,16 @@ } } }, + "aggregate-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.0.tgz", + "integrity": "sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==", + "dev": true, + "requires": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -8195,6 +9416,24 @@ "sprintf-js": "~1.0.2" } }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true + }, + "arrgv": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", + "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==", + "dev": true + }, "arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", @@ -8220,12 +9459,6 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, "async": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", @@ -8249,6 +9482,141 @@ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, + "ava": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ava/-/ava-4.0.1.tgz", + "integrity": "sha512-+12A/JDWyShBCZAKISEEPyM2dwkUrrAfPILqXi4LI4Aa58d92PzjY829hmuoSeACPNqrn2Wlbnja8c/n7bKV6Q==", + "dev": true, + "requires": { + "acorn": "^8.7.0", + "acorn-walk": "^8.2.0", + "ansi-styles": "^6.1.0", + "arrgv": "^1.0.2", + "arrify": "^3.0.0", + "callsites": "^4.0.0", + "cbor": "^8.1.0", + "chalk": "^5.0.0", + "chokidar": "^3.5.2", + "chunkd": "^2.0.1", + "ci-info": "^3.3.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-truncate": "^3.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.4", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.3", + "del": "^6.0.0", + "emittery": "^0.10.0", + "figures": "^4.0.0", + "globby": "^12.0.2", + "ignore-by-default": "^2.0.0", + "indent-string": "^5.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "matcher": "^5.0.0", + "mem": "^9.0.1", + "ms": "^2.1.3", + "p-event": "^5.0.1", + "p-map": "^5.3.0", + "picomatch": "^2.3.0", + "pkg-conf": "^4.0.0", + "plur": "^5.1.0", + "pretty-ms": "^7.0.1", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.5", + "strip-ansi": "^7.0.1", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "write-file-atomic": "^3.0.3", + "yargs": "^17.3.1" + }, + "dependencies": { + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true + }, + "arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "dev": true + }, + "callsites": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.0.0.tgz", + "integrity": "sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==", + "dev": true + }, + "chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, "aws-sdk": { "version": "2.1118.0", "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1118.0.tgz", @@ -8376,10 +9744,10 @@ "file-uri-to-path": "1.0.0" } }, - "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", "dev": true }, "bmp-js": { @@ -8496,27 +9864,13 @@ "lodash": "^4.17.15" } }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "requires": { - "check-error": "^1.0.2" + "nofilter": "^3.1.0" } }, "chalk": { @@ -8549,26 +9903,20 @@ "is-regex": "^1.0.3" } }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" } }, "chownr": { @@ -8643,6 +9991,24 @@ } } }, + "chunkd": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz", + "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==", + "dev": true + }, + "ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, + "ci-parallel-vars": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz", + "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==", + "dev": true + }, "clean-css-cli": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.3.0.tgz", @@ -8671,6 +10037,29 @@ } } }, + "clean-stack": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.1.0.tgz", + "integrity": "sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==", + "dev": true, + "requires": { + "escape-string-regexp": "5.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + } + } + }, + "clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", + "dev": true + }, "cli-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.0.tgz", @@ -8714,6 +10103,44 @@ } } }, + "cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "requires": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -8754,6 +10181,15 @@ "wappalyzer-core": "6.6.0" } }, + "code-excerpt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz", + "integrity": "sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==", + "dev": true, + "requires": { + "convert-to-spaces": "^1.0.1" + } + }, "combined-stream": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", @@ -8767,6 +10203,12 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -8780,6 +10222,33 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "requires": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "concurrent-queue": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/concurrent-queue/-/concurrent-queue-7.0.2.tgz", @@ -8834,6 +10303,12 @@ "babylon": "^6.18.0" } }, + "convert-to-spaces": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", + "integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=", + "dev": true + }, "core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", @@ -8866,6 +10341,15 @@ "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", "dev": true }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", @@ -8892,6 +10376,15 @@ "resolved": "https://registry.npmjs.org/date-format/-/date-format-0.0.2.tgz", "integrity": "sha1-+v1Ej3IRXvHitzkVWukvK+bCjdE=" }, + "date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "requires": { + "time-zone": "^1.0.0" + } + }, "dayjs": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", @@ -8916,15 +10409,6 @@ "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", "dev": true }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, "deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", @@ -8999,6 +10483,87 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "dependencies": { + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -9014,6 +10579,15 @@ "wrappy": "1" } }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -9073,6 +10647,12 @@ } } }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -9090,6 +10670,18 @@ "safe-buffer": "^5.0.1" } }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -9522,9 +11114,9 @@ "dev": true }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "event-emitter": { @@ -9636,6 +11228,19 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -9657,6 +11262,15 @@ "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "feed": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", @@ -9666,6 +11280,24 @@ "xml-js": "^1.6.11" } }, + "figures": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", + "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + } + } + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -9813,11 +11445,6 @@ "universalify": "^2.0.0" }, "dependencies": { - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -9882,12 +11509,6 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, "get-port": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", @@ -9972,6 +11593,34 @@ "type-fest": "^0.20.2" } }, + "globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "requires": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, "google-auth-library": { "version": "7.14.1", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", @@ -10004,9 +11653,9 @@ } }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "gtoken": { "version": "5.3.2", @@ -10073,12 +11722,6 @@ "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz", "integrity": "sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ==" }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -10160,6 +11803,12 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "ignore-by-default": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.0.0.tgz", + "integrity": "sha512-+mQSgMRiFD3L3AOxLYOCxjIq4OnAmo5CIuC+lj5ehCJcPtV++QacEV7FdpzvYxH6DaOySWzQU6RR0lPLy37ckA==", + "dev": true + }, "image-q": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", @@ -10186,6 +11835,12 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -10218,6 +11873,12 @@ "utcstring": "~0.1.0" } }, + "irregular-plurals": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.3.0.tgz", + "integrity": "sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==", + "dev": true + }, "is-arguments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", @@ -10274,6 +11935,12 @@ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.2.3.tgz", "integrity": "sha1-DBbs98rGahrib9ewyAfXUzZoPe0=" }, + "is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", + "dev": true + }, "is-expression": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", @@ -10329,6 +11996,24 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -10367,6 +12052,12 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, + "is-unicode-supported": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz", + "integrity": "sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -10414,6 +12105,12 @@ "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==", "optional": true }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true + }, "js-stringify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", @@ -10837,6 +12534,21 @@ } } }, + "load-json-file": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz", + "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==", + "dev": true + }, + "locate-path": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.1.0.tgz", + "integrity": "sha512-HNx5uOnYeK4SxEoid5qnhRfprlJeGMzFRKPLCf/15N3/B4AiofNwC/yq7VBKdVk9dx7m+PiYCJOGg55JYTAqoQ==", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + } + }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -10953,6 +12665,15 @@ } } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, "markdown": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz", @@ -10996,11 +12717,47 @@ "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", "dev": true }, + "matcher": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-5.0.0.tgz", + "integrity": "sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + } + } + }, + "md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "requires": { + "blueimp-md5": "^2.10.0" + } + }, "mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" }, + "mem": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/mem/-/mem-9.0.2.tgz", + "integrity": "sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^4.0.0" + } + }, "memoizee": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", @@ -11053,6 +12810,22 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, "mime": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", @@ -11071,6 +12844,12 @@ "mime-db": "1.52.0" } }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -11118,98 +12897,6 @@ "minimist": "^1.2.5" } }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -11264,6 +12951,12 @@ "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==" }, + "nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true + }, "nopt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz", @@ -11392,6 +13085,21 @@ "windows-release": "^4.0.0" } }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "dev": true, + "requires": { + "p-timeout": "^5.0.2" + } + }, "p-limit": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", @@ -11400,6 +13108,47 @@ "p-try": "^2.0.0" } }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + }, + "dependencies": { + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } + } + }, + "p-map": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.3.0.tgz", + "integrity": "sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==", + "dev": true, + "requires": { + "aggregate-error": "^4.0.0" + } + }, + "p-timeout": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.0.2.tgz", + "integrity": "sha512-sEmji9Yaq+Tw+STwsGAE56hf7gMy9p0tQfJojIAamB7WHJYJKf1qlsg9jqBWG8q9VCxKPhZaP/AcXwEoBcYQhQ==", + "dev": true + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -11455,6 +13204,18 @@ "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==", "optional": true }, + "parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -11470,10 +13231,10 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, "performance-now": { @@ -11488,9 +13249,9 @@ "optional": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pixelmatch": { @@ -11502,6 +13263,37 @@ "pngjs": "^3.0.0" } }, + "pkg-conf": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-4.0.0.tgz", + "integrity": "sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==", + "dev": true, + "requires": { + "find-up": "^6.0.0", + "load-json-file": "^7.0.0" + }, + "dependencies": { + "find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + } + } + } + }, + "plur": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", + "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", + "dev": true, + "requires": { + "irregular-plurals": "^3.3.0" + } + }, "pngjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", @@ -11529,6 +13321,15 @@ "fast-diff": "^1.1.2" } }, + "pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -11856,6 +13657,12 @@ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "read-installed": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", @@ -11911,9 +13718,9 @@ } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -12034,6 +13841,23 @@ "path-parse": "^1.0.6" } }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -12077,6 +13901,12 @@ } } }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -12090,6 +13920,15 @@ "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.1.1.tgz", "integrity": "sha512-6yWEYSdhK3bAEcYY0In3wgSBK70BiQoJArzdjZKCP/35b3gKIYu5Lc0qQqsoxjoLVebVoJiKK4VWGc5+oxvWBQ==" }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -12130,6 +13969,23 @@ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "requires": { + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true + } + } + }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", @@ -12190,6 +14046,30 @@ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + } + } + }, "slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", @@ -12342,6 +14222,23 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, "stream-events": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", @@ -12495,6 +14392,52 @@ "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" }, + "supertap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-2.0.0.tgz", + "integrity": "sha512-jRzcXlCeDYvKoZGA5oRhYyR3jUIYu0enkSxtmAgHRlD7HwrovTpH4bDSi0py9FtuA8si9cW/fKommJHuaoDHJA==", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -12609,6 +14552,12 @@ "uuid": "^8.0.0" } }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -12624,6 +14573,12 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", + "dev": true + }, "timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", @@ -12750,12 +14705,6 @@ "prelude-ls": "^1.2.1" } }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -12895,6 +14844,12 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, + "well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true + }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", diff --git a/package.json b/package.json index 18e10fa28..f8f65626f 100644 --- a/package.json +++ b/package.json @@ -37,12 +37,19 @@ "bugs": { "url": "https://github.com/sitespeedio/sitespeed.io/issues" }, + "ava": { + "files": [ + "test/**/*", + "!test/prepostscripts", + "!test/runWithoutCli.js" + ] + }, "scripts": { "lint": "eslint . && npm run pug-lint", "lint:fix": "eslint . --fix", "eslint-check": "eslint --print-config .eslintrc.json | eslint-config-prettier-check", "pug-lint": "pug-lint lib/plugins/html/templates", - "test": "mocha", + "test": "ava", "check-licenses": "tools/check-licenses.js", "build:css": "sass lib/plugins/html/src/sass/main.scss > lib/plugins/html/assets/css/index.css && cleancss -o lib/plugins/html/assets/css/index.min.css lib/plugins/html/assets/css/index.css && rm lib/plugins/html/assets/css/index.css", "generate:assets": "mkdir -p assets/$npm_package_version && cp -R lib/plugins/html/assets/ assets/$npm_package_version/" @@ -51,9 +58,7 @@ "node": ">=14.19.1" }, "devDependencies": { - "bluebird": "3.5.5", - "chai": "4.2.0", - "chai-as-promised": "7.1.1", + "ava": "4.0.1", "changelog-parser": "2.8.1", "clean-css-cli": "4.3.0", "eslint": "8.0.0", @@ -63,7 +68,6 @@ "jsdoc": "^3.6.7", "license-checker": "^16.0.0", "marked": "4.0.12", - "mocha": "^5.0.4", "sass": "1.34.0", "prettier": "2.4.1", "pug-lint": "^2.6.0", diff --git a/test/cliTests.js b/test/cliTests.js index 8205e72e8..cf393aeb8 100644 --- a/test/cliTests.js +++ b/test/cliTests.js @@ -1,6 +1,6 @@ 'use strict'; -const expect = require('chai').expect; +const test = require('ava'); const path = require('path'); const util = require('util'); const execFile = util.promisify(require('child_process').execFile); @@ -10,155 +10,25 @@ function runSitespeed(options = []) { return execFile('node', [cli].concat(options)); } -describe('cli', () => { - context('no arguments', () => { - it('should report error', async () => { - let stderr; - let exitCode = 0; - try { - await runSitespeed(); - } catch (err) { - stderr = err.stderr; - exitCode = err.code; - } - expect(stderr).not.to.be.undefined; - expect(exitCode).not.to.equal(0); - expect(stderr).to.include('sitespeed.js [options] /'); - expect(stderr).to.include('One or multiple URLs or scripts'); - }); - }); - - describe('--help summary', async () => { - let stdout; - - before(async () => { - const run = await runSitespeed(['--help']); - stdout = run.stdout; - }); - - it('should include banner in stdout with --help and not hard exit', async () => { - expect(stdout).not.to.be.undefined; - expect(stdout).to.include('sitespeed.js [options] /'); - expect(stdout).to.not.include('One or multiple URLs or scripts'); - }); - - it('should contain grafana options', () => { - expect(stdout).to.contain('--grafana.host'); - expect(stdout).to.contain( - 'The Grafana host used when sending annotations' - ); - - expect(stdout).to.contain('--grafana.port'); - expect(stdout).to.contain( - 'The Grafana port used when sending annotations to Grafana' - ); - - expect(stdout).to.contain('--grafana.auth'); - expect(stdout).to.contain('--grafana.annotationTitle'); - expect(stdout).to.contain( - 'Add a title to the annotation sent for a run.' - ); - - expect(stdout).to.contain('--grafana.annotationMessage'); - expect(stdout).to.contain( - 'Add an extra message that will be attached to the annotation sent for a run. The message is attached after the default message and can contain HTML.' - ); - - expect(stdout).to.contain('--grafana.annotationTag'); - expect(stdout).to.contain( - 'Add a extra tag to the annotation sent for a run. Repeat the --grafana.annotationTag option for multiple tags. Make sure they do not collide with the other tags.' - ); - - expect(stdout).to.contain('--grafana.annotationScreenshot'); - expect(stdout).to.contain( - 'Include screenshot (from Browsertime/WebPageTest) in the annotation. You need to specify a --resultBaseURL for this to work.' - ); - }); - - it('should contain graphite options', () => { - expect(stdout).to.contain('--graphite.host'); - expect(stdout).to.contain( - 'The Graphite host used to store captured metrics.' - ); - - expect(stdout).to.contain('--graphite.port'); - expect(stdout).to.contain( - 'The Graphite port used to store captured metrics.' - ); - - expect(stdout).to.contain('--graphite.auth'); - expect(stdout).to.contain( - 'The Graphite user and password used for authentication. Format: user:password' - ); - - expect(stdout).to.contain('--graphite.httpPort'); - expect(stdout).to.contain( - 'The Graphite port used to access the user interface and send annotations event' - ); - - expect(stdout).to.contain('--graphite.webHost'); - expect(stdout).to.contain( - 'The graphite-web host. If not specified graphite.host will be used.' - ); - - expect(stdout).to.contain('--graphite.namespace'); - expect(stdout).to.contain( - 'The namespace key added to all captured metrics.' - ); - - expect(stdout).to.contain('--graphite.includeQueryParams'); - expect(stdout).to.contain( - 'Whether to include query parameters from the URL in the Graphite keys or not' - ); - - expect(stdout).to.contain('--graphite.arrayTags'); - expect(stdout).to.contain( - 'Send the tags as Array or a String. In Graphite 1.0 the tags is a array. Before a String' - ); - - expect(stdout).to.contain('--graphite.annotationTitle'); - expect(stdout).to.contain( - 'Add a title to the annotation sent for a run.' - ); - - expect(stdout).to.contain('--graphite.annotationMessage'); - expect(stdout).to.contain( - 'Add an extra message that will be attached to the annotation sent for a run. The message is attached after the default message and can contain HTML.' - ); - - expect(stdout).to.contain('--graphite.annotationScreenshot'); - expect(stdout).to.contain( - 'Include screenshot (from Browsertime/WebPageTest) in the annotation. You need to specify a --resultBaseURL for this to work.' - ); - - expect(stdout).to.contain('--graphite.statsd'); - expect(stdout).to.contain('Uses the StatsD interface'); - - expect(stdout).to.contain('--graphite.annotationTag'); - expect(stdout).to.contain( - 'Add a extra tag to the annotation sent for a run. Repeat the --graphite.annotationTag option for multiple tags. Make sure they do not collide with the other tags.' - ); - - expect(stdout).to.contain('--graphite.bulkSize'); - expect(stdout).to.contain( - 'Break up number of metrics to send with each request.' - ); - - expect(stdout).to.contain('--graphite.perIteration'); - expect(stdout).to.contain( - '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.' - ); - }); - - it('should contain influxdb options', () => { - expect(stdout).to.contain('--influxdb.protocol'); - expect(stdout).to.contain('--influxdb.host'); - expect(stdout).to.contain('--influxdb.port'); - expect(stdout).to.contain('--influxdb.username'); - expect(stdout).to.contain('--influxdb.database'); - expect(stdout).to.contain('--influxdb.includeQueryParams'); - expect(stdout).to.contain('--influxdb.groupSeparator'); - expect(stdout).to.contain('--influxdb.annotationScreenshot'); - }); - }); +test(`Test cli without any arguments`, async t => { + let stderr; + let exitCode = 0; + try { + await runSitespeed(); + } catch (err) { + stderr = err.stderr; + exitCode = err.code; + } + t.not(stderr, undefined, 'Should output in standard error'); + t.not(exitCode, 0, 'Should exit with error code'); + t.true(stderr.includes('sitespeed.js [options] /')); +}); + +test(`CLI should support --help`, async t => { + const run = await runSitespeed(['--help']); + t.not(run.stdout, undefined, 'Should output in standard output'); + t.true( + run.stdout.includes('--browsertime'), + 'Should include Browsertime help' + ); }); diff --git a/test/cliUtilTests.js b/test/cliUtilTests.js index c87a34059..c1a6f0432 100644 --- a/test/cliUtilTests.js +++ b/test/cliUtilTests.js @@ -1,248 +1,237 @@ 'use strict'; -const cliUtil = require('../lib/cli/util'), - expect = require('chai').expect; +const cliUtil = require('../lib/cli/util'); +const test = require('ava'); -describe('cliUtil', function () { - describe('getURLs', function () { - it('should extract urls', function () { - let urls = cliUtil.getURLs(['test/fixtures/sitespeed-urls.txt']); - expect(urls[0] === 'https://www.sitespeed.io'); - expect(urls[3] === 'https://www.sitespeed.io/documentation/faq'); +test(`getURLs should extract urls`, t => { + let urls = cliUtil.getURLs(['test/fixtures/sitespeed-urls.txt']); + t.is(urls[0], 'https://www.sitespeed.io'); + t.is(urls[3], 'https://www.sitespeed.io/faq'); - urls = cliUtil.getURLs(['test/fixtures/sitespeed-urls-aliases.txt']); - expect(urls[0] === 'https://www.sitespeed.io'); - expect(urls[3] === 'https://www.sitespeed.io/documentation/faq'); - }); - }); - - describe('getAliases', function () { - it('should extract aliases', function () { - let aliases = cliUtil.getAliases(['test/fixtures/sitespeed-urls.txt']); - expect(aliases['https://www.sitespeed.io']).to.be.undefined; - expect( - aliases[ - 'https://www.sitespeed.io/documentation/sitespeed.io/webpagetest/' - ] - ).to.be.undefined; - - aliases = cliUtil.getAliases([ - 'test/fixtures/sitespeed-urls-aliases.txt' - ]); - expect(aliases['https://www.sitespeed.io'].urlAlias).to.equal( - 'Home_Page' - ); - expect( - aliases[ - 'https://www.sitespeed.io/documentation/sitespeed.io/webpagetest/' - ] - ).to.be.undefined; - }); - }); - - describe('pluginDefaults', () => { - it('should yield an empty object for invalid values', () => { - expect(cliUtil.pluginDefaults()).to.eql({}); - expect(cliUtil.pluginDefaults(null)).to.eql({}); - expect(cliUtil.pluginDefaults(1)).to.eql({}); - expect(cliUtil.pluginDefaults(true)).to.eql({}); - expect(cliUtil.pluginDefaults(false)).to.eql({}); - expect(cliUtil.pluginDefaults('trust me!')).to.eql({}); - }); - - it('should yield a map of defaults based on config names and its defaults', () => { - const cliOptions = { - propName: { - default: 'value' - } - }; - expect(cliUtil.pluginDefaults(cliOptions).propName).to.eql('value'); - }); - - it('should not include options without an explicit default set', () => { - const cliOptions = { - propName: { - default: 'value' - }, - - otherProp: { - description: 'No default set' - } - }; - - expect(cliUtil.pluginDefaults(cliOptions).otherProp).to.be.undefined; - }); - }); - - describe('registerPluginOptions', () => { - const mockYargs = () => ({ - calls: [], - option() { - this.calls.push(Array.from(arguments)); - } - }); - - it('should not setup options with invalid values', () => { - const plugin = { - name() { - return 'test'; - } - }; - - const codeUnderTest = () => - cliUtil.registerPluginOptions(mockYargs(), plugin); - - // Undefined cliOptions - expect(codeUnderTest).to.throw( - `Invalid CLI options defined for plugin: undefined` - ); - - plugin.cliOptions = null; - expect(codeUnderTest).to.throw( - `Invalid CLI options defined for plugin: null` - ); - - plugin.cliOptions = true; - expect(codeUnderTest).to.throw( - `Invalid CLI options defined for plugin: true` - ); - - plugin.cliOptions = false; - expect(codeUnderTest).to.throw( - `Invalid CLI options defined for plugin: false` - ); - - plugin.cliOptions = 1; - expect(codeUnderTest).to.throw( - `Invalid CLI options defined for plugin: 1` - ); - - plugin.cliOptions = - 'trust me! I am a valid options definition :puss_in_boots_eyes:'; - expect(codeUnderTest).to.throw( - `Invalid CLI options defined for plugin: trust me! I am a valid options definition :puss_in_boots_eyes:` - ); - }); - - it('must have an explicit name defined in the plugin', () => { - function codeUnderTest() { - cliUtil.registerPluginOptions(mockYargs(), { - processMessage() { - // Apparently a safe plugin definition - return undefined; - } - }); - } - - expect(codeUnderTest).to.throw( - `Missing name() method for plugin registering CLI options` - ); - }); - - it('should call yargs.options() when cliOptions is defined as method', () => { - const fakeYargs = mockYargs(); - const plugin = { - name() { - return 'test'; - }, - cliOptions() { - return { - prop1: { - default: 80 - }, - - 'nested.config': { - description: 'Any help text' - } - }; - } - }; - cliUtil.registerPluginOptions(fakeYargs, plugin); - - expect(fakeYargs.calls).to.be.an('array').with.lengthOf(2); - - const expectedProp1 = ['test.prop1', { default: 80 }]; - expect(fakeYargs.calls.find(call => call[0] === 'test.prop1')).to.eql( - expectedProp1 - ); - - const expectedNested = [ - 'test.nested.config', - { description: 'Any help text' } - ]; - expect( - fakeYargs.calls.find(call => call[0] === 'test.nested.config') - ).to.eql(expectedNested); - }); - - it('should call yargs.options() when cliOptions is defined as computed property', () => { - const fakeYargs = mockYargs(); - const plugin = { - name() { - return 'test'; - }, - get cliOptions() { - return { - prop1: { - default: 80 - }, - - 'nested.config': { - description: 'Any help text' - } - }; - } - }; - cliUtil.registerPluginOptions(fakeYargs, plugin); - - expect(fakeYargs.calls).to.be.an('array').with.lengthOf(2); - - const expectedProp1 = ['test.prop1', { default: 80 }]; - expect(fakeYargs.calls.find(call => call[0] === 'test.prop1')).to.eql( - expectedProp1 - ); - - const expectedNested = [ - 'test.nested.config', - { description: 'Any help text' } - ]; - expect( - fakeYargs.calls.find(call => call[0] === 'test.nested.config') - ).to.eql(expectedNested); - }); - - it('should call yargs.options() when cliOptions is defined as regular property', () => { - const fakeYargs = mockYargs(); - const plugin = { - name() { - return 'test'; - }, - cliOptions: { - prop1: { - default: 80 - }, - - 'nested.config': { - description: 'Any help text' - } - } - }; - cliUtil.registerPluginOptions(fakeYargs, plugin); - - expect(fakeYargs.calls).to.be.an('array').with.lengthOf(2); - - const expectedProp1 = ['test.prop1', { default: 80 }]; - expect(fakeYargs.calls.find(call => call[0] === 'test.prop1')).to.eql( - expectedProp1 - ); - - const expectedNested = [ - 'test.nested.config', - { description: 'Any help text' } - ]; - expect( - fakeYargs.calls.find(call => call[0] === 'test.nested.config') - ).to.eql(expectedNested); - }); - }); + urls = cliUtil.getURLs(['test/fixtures/sitespeed-urls-aliases.txt']); + t.is(urls[0], 'https://www.sitespeed.io'); + t.is(urls[3], 'https://www.sitespeed.io/faq'); +}); + +test(`getAliases should extract aliases`, t => { + let aliases = cliUtil.getAliases(['test/fixtures/sitespeed-urls.txt']); + t.is(aliases['https://www.sitespeed.io'], undefined); + t.is( + aliases['https://www.sitespeed.io/documentation/sitespeed.io/webpagetest/'], + undefined + ); + + aliases = cliUtil.getAliases(['test/fixtures/sitespeed-urls-aliases.txt']); + + t.is(aliases['https://www.sitespeed.io'].urlAlias, 'Home_Page'); + t.is( + aliases['https://www.sitespeed.io/documentation/sitespeed.io/webpagetest/'], + undefined + ); +}); + +test(`pluginDefaults should yield an empty object for invalid values`, t => { + t.deepEqual(cliUtil.pluginDefaults(), {}); + t.deepEqual(cliUtil.pluginDefaults(null), {}); + t.deepEqual(cliUtil.pluginDefaults(1), {}); + t.deepEqual(cliUtil.pluginDefaults(true), {}); +}); + +test(`pluginDefaults should yield a map of defaults based on config names and its defaults`, t => { + const cliOptions = { + propName: { + default: 'value' + } + }; + + t.is(cliUtil.pluginDefaults(cliOptions).propName, 'value'); +}); + +test(`pluginDefaults should not include options without an explicit default set`, t => { + const cliOptions = { + propName: { + default: 'value' + }, + + otherProp: { + description: 'No default set' + } + }; + + t.is(cliUtil.pluginDefaults(cliOptions).otherProp, undefined); +}); + +test(`registerPluginOptions should not setup options with invalid values`, t => { + const mockYargs = () => ({ + calls: [], + option() { + this.calls.push(Array.from(arguments)); + } + }); + + const plugin = { + name() { + return 'test'; + } + }; + + const codeUnderTest = () => + cliUtil.registerPluginOptions(mockYargs(), plugin); + + t.throws(codeUnderTest); + + plugin.cliOptions = null; + t.throws(codeUnderTest); + + plugin.cliOptions = true; + t.throws(codeUnderTest); +}); + +test(`registerPluginOptions must have an explicit name defined in the plugin`, t => { + const mockYargs = () => ({ + calls: [], + option() { + this.calls.push(Array.from(arguments)); + } + }); + + function codeUnderTest() { + cliUtil.registerPluginOptions(mockYargs(), { + processMessage() { + // Apparently a safe plugin definition + return undefined; + } + }); + } + + t.throws(codeUnderTest); +}); + +test(`registerPluginOptions should call yargs.options() when cliOptions is defined as method`, t => { + const mockYargs = () => ({ + calls: [], + option() { + this.calls.push(Array.from(arguments)); + } + }); + + const fakeYargs = mockYargs(); + const plugin = { + name() { + return 'test'; + }, + cliOptions() { + return { + prop1: { + default: 80 + }, + + 'nested.config': { + description: 'Any help text' + } + }; + } + }; + cliUtil.registerPluginOptions(fakeYargs, plugin); + const expectedProp1 = ['test.prop1', { default: 80 }]; + + t.deepEqual( + fakeYargs.calls.find(call => call[0] === 'test.prop1'), + expectedProp1 + ); + + const expectedNested = [ + 'test.nested.config', + { description: 'Any help text' } + ]; + t.deepEqual( + fakeYargs.calls.find(call => call[0] === 'test.nested.config'), + expectedNested + ); +}); + +test(`registerPluginOptions should call yargs.options() when cliOptions is defined as computed property`, t => { + const mockYargs = () => ({ + calls: [], + option() { + this.calls.push(Array.from(arguments)); + } + }); + const fakeYargs = mockYargs(); + const plugin = { + name() { + return 'test'; + }, + get cliOptions() { + return { + prop1: { + default: 80 + }, + + 'nested.config': { + description: 'Any help text' + } + }; + } + }; + + cliUtil.registerPluginOptions(fakeYargs, plugin); + + const expectedProp1 = ['test.prop1', { default: 80 }]; + + t.deepEqual( + fakeYargs.calls.find(call => call[0] === 'test.prop1'), + expectedProp1 + ); + + const expectedNested = [ + 'test.nested.config', + { description: 'Any help text' } + ]; + t.deepEqual( + fakeYargs.calls.find(call => call[0] === 'test.nested.config'), + expectedNested + ); +}); + +test(`registerPluginOptions should call yargs.options() when cliOptions is defined as regular property`, t => { + const mockYargs = () => ({ + calls: [], + option() { + this.calls.push(Array.from(arguments)); + } + }); + const fakeYargs = mockYargs(); + const plugin = { + name() { + return 'test'; + }, + cliOptions: { + prop1: { + default: 80 + }, + + 'nested.config': { + description: 'Any help text' + } + } + }; + + cliUtil.registerPluginOptions(fakeYargs, plugin); + + const expectedProp1 = ['test.prop1', { default: 80 }]; + + t.deepEqual( + fakeYargs.calls.find(call => call[0] === 'test.prop1'), + expectedProp1 + ); + + const expectedNested = [ + 'test.nested.config', + { description: 'Any help text' } + ]; + t.deepEqual( + fakeYargs.calls.find(call => call[0] === 'test.nested.config'), + expectedNested + ); }); diff --git a/test/coachTests.js b/test/coachTests.js index 0a552f354..4c7fe1ec2 100644 --- a/test/coachTests.js +++ b/test/coachTests.js @@ -1,19 +1,15 @@ 'use strict'; -const aggregator = require('../lib/plugins/coach/aggregator'), - fs = require('fs'), - path = require('path'), - expect = require('chai').expect; +const test = require('ava'); +const aggregator = require('../lib/plugins/coach/aggregator'); +const fs = require('fs'); +const path = require('path'); const coachRunPath = path.resolve(__dirname, 'fixtures', 'coach.run-0.json'); const coachRun = JSON.parse(fs.readFileSync(coachRunPath, 'utf8')); -describe('coach', function () { - describe('aggregator', function () { - it('should summarize data', function () { - aggregator.addToAggregate(coachRun, 'www.sitespeed.io'); - - expect(aggregator.summarize()).to.not.be.empty; - }); - }); +test(`Should summarize Coach data`, t => { + aggregator.addToAggregate(coachRun, 'www.sitespeed.io'); + const data = aggregator.summarize(); + t.not(data, undefined); }); diff --git a/test/domainTests.js b/test/domainTests.js index abe8d2f21..88e8afa5c 100644 --- a/test/domainTests.js +++ b/test/domainTests.js @@ -1,36 +1,20 @@ 'use strict'; -let aggregator = require('../lib/plugins/domains/aggregator'), - fs = require('fs'), - path = require('path'), - Promise = require('bluebird'), - expect = require('chai').expect; +const test = require('ava'); +const aggregator = require('../lib/plugins/domains/aggregator'); +const fs = require('fs'); +const path = require('path'); -Promise.promisifyAll(fs); +const har = JSON.parse( + fs.readFileSync( + path.resolve(__dirname, 'fixtures', 'www-theverge-com.har'), + 'utf8' + ) +); -describe('domains', function () { - describe('aggregator', function () { - let har; - - beforeEach(function () { - return fs - .readFileAsync( - path.resolve(__dirname, 'fixtures', 'www-theverge-com.har'), - 'utf8' - ) - .then(JSON.parse) - .tap(data => { - har = data; - }); - }); - - describe('#addToAggregate', function () { - it('should add har to aggregate', function () { - aggregator.addToAggregate(har, 'http://www.vox.com'); - const summary = aggregator.summarize(); - const voxDomain = summary.groups.total['cdn1.vox-cdn.com']; - expect(voxDomain).to.have.nested.property('connect.max', 11); - }); - }); - }); +test(`Should summarize data per domain`, t => { + aggregator.addToAggregate(har, 'http://www.vox.com'); + const summary = aggregator.summarize(); + const voxDomain = summary.groups.total['cdn1.vox-cdn.com']; + t.is(voxDomain.connect.max, 11); }); diff --git a/test/grafanaTests.js b/test/grafanaTests.js index 7a9371ea5..e0cbbbba3 100644 --- a/test/grafanaTests.js +++ b/test/grafanaTests.js @@ -1,19 +1,13 @@ -const expect = require('chai').expect; +const test = require('ava'); -describe('grafana', () => { - function plugin() { - return require('../lib/plugins/grafana'); - } +function plugin() { + return require('../lib/plugins/grafana'); +} - describe('plugin', () => { - it('should have a .config property with default host port value', () => { - // Regression: ensure the original interface is not broken - expect(plugin().config).to.have.property('port', 80); - }); - - it('should include missing annotationScreenshot default value', () => { - // Regression. All defaults should be exposed - expect(plugin().config).to.have.property('annotationScreenshot', false); - }); - }); +test(`Grafana plugin should have a .config property with default host port value`, t => { + t.is(plugin().config.port, 80); +}); + +test(`Grafana plugin should include missing annotationScreenshot default value`, t => { + t.is(plugin().config.annotationScreenshot, false); }); diff --git a/test/graphiteTests.js b/test/graphiteTests.js index 795e4a9e4..1e8aff5da 100644 --- a/test/graphiteTests.js +++ b/test/graphiteTests.js @@ -1,260 +1,101 @@ 'use strict'; -const DataGenerator = require('../lib/plugins/graphite/data-generator'), - expect = require('chai').expect, - dayjs = require('dayjs'); +const DataGenerator = require('../lib/plugins/graphite/data-generator'); +const test = require('ava'); +const dayjs = require('dayjs'); -describe('graphite', function () { - describe('dataGenerator', function () { - it('should generate data for gpsi.pageSummary', function () { - const message = { - type: 'gpsi.pageSummary', - timestamp: '2016-01-08T12:59:06+01:00', - source: 'gpsi', - data: { - median: '13', - mean: '14.42', - min: '13', - p10: '13', - p70: '16', - p80: '16', - p90: '16', - p99: '16', - max: '16' - }, - url: 'http://sub.domain.com/foo/bar' - }; +test(`Test dataGenerator`, t => { + const message = { + type: 'gpsi.pageSummary', + timestamp: '2016-01-08T12:59:06+01:00', + source: 'gpsi', + data: { + median: '13', + mean: '14.42', + min: '13', + p10: '13', + p70: '16', + p80: '16', + p90: '16', + p99: '16', + max: '16' + }, + url: 'http://sub.domain.com/foo/bar' + }; - let generator = new DataGenerator('ns', false, { - _: ['filename'], - browser: 'chrome', - browsertime: { - connectivity: { - profile: 'cable' - } - } - }); - - const data = generator.dataFromMessage(message, dayjs()); - expect(data).to.match(/ns.pageSummary.sub_domain_com/); - expect(data).to.match(/bar.gpsi.desktop.median/); - expect(data).to.match(/foo_bar/); - }); - - it('should generate data for domains.summary', function () { - const message = { - type: 'domains.summary', - timestamp: '2016-01-08T12:59:06+01:00', - source: 'domains', - data: { - 'www.sitespeed.io': { - dns: { - median: '0', - mean: '13', - min: '0', - p10: '0', - p90: '40', - p99: '40', - max: '40' - } - } - }, - group: 'sub_domain_com' - }; - - let generator = new DataGenerator('ns', false, { - _: ['sub_domain_com'], - browser: 'chrome', - browsertime: { - connectivity: { - profile: 'cable' - } - } - }); - const data = generator.dataFromMessage(message, dayjs()); - - expect(data).to.match( - /ns.summary.sub_domain_com.chrome.cable.domains.www.sitespeed.io.dns.median [\d]{1,} [\d]*/ - ); - }); - - it('should generate data in statsD format', function () { - const message = { - type: 'domains.summary', - timestamp: '2016-01-08T12:59:06+01:00', - source: 'domains', - data: { - 'www.sitespeed.io': { - dns: { - median: '0', - mean: '13', - min: '0', - p10: '0', - p90: '40', - p99: '40', - max: '40' - } - } - }, - group: 'sub_domain_com' - }; - - let generator = new DataGenerator('ns', false, { - _: ['sub_domain_com'], - browser: 'chrome', - browsertime: { - connectivity: { - profile: 'cable' - } - }, - graphite: { statsd: true } - }); - const data = generator.dataFromMessage(message, dayjs()); - - data.forEach(function (line) { - expect(line).to.match( - /ns.summary.sub_domain_com.chrome.cable.domains.www.sitespeed.io.dns.(median|mean|min|p10|p90|p99|max):[\d]{1,}\|ms$/ - ); - }); - }); - }); - - describe('index', function () { - const messageMaker = require('../lib/support/messageMaker'); - const filterRegistry = require('../lib/support/filterRegistry'); - const intel = require('intel'); - const statsHelpers = require('../lib/support/statsHelpers'); - const context = { messageMaker, filterRegistry, intel, statsHelpers }; - let plugin; - let options; - - beforeEach(function () { - plugin = require('../lib/plugins/graphite'); - options = { - graphite: { - host: '127.0.0.1' - } - }; - }); - - it('Should use graphite interface by default', function () { - plugin.open(context, options); - - expect(plugin.sender.facility).to.match(/graphite/i); - }); - - it('Should use statsd interface', function () { - Object.assign(options.graphite, { - statsd: true - }); - - plugin.open(context, options); - expect(plugin.sender.facility).to.match(/statsd/i); - }); - - it('Should use graphite interface by default', function () { - plugin.open(context, options); - - expect(plugin.sender.facility).to.match(/graphite/i); - }); - }); - - describe('helpers/is-statsd', function () { - const isStatsD = require('../lib/plugins/graphite/helpers/is-statsd'); - - it('Should be set to statsd', function () { - expect(isStatsD({ statsd: true })).to.be.true; - }); - it('Should not be set to statsd', function () { - ['true', 1, null, false, undefined].forEach( - value => expect(isStatsD({ statsd: value })).to.be.false - ); - }); - }); - - describe('helpers/format-entry', function () { - const formatEntry = require('../lib/plugins/graphite/helpers/format-entry'); - - it('Should retrieve the format of statsd', function () { - expect(formatEntry('statsd')).to.equal('%s:%s|ms'); - }); - - it('Should retrieve the default format of graphite', function () { - ['StatsD', 'stats', 'graphite', null, false, undefined].forEach(value => - expect(formatEntry(value)).to.equal('%s %s %s') - ); - }); - }); - - describe('GraphiteSender', function () { - const GraphiteSender = require('../lib/plugins/graphite/graphite-sender'); - const net = require('net'); - const { connect } = net; - - afterEach(function () { - net.connect = connect; - }); - - function mock(fn) { - net.connect = (host, port, callback) => { - setTimeout(callback, 0); - return { write: fn, end: () => null, on: () => null }; - }; + let generator = new DataGenerator('ns', false, { + _: ['filename'], + browser: 'chrome', + browsertime: { + connectivity: { + profile: 'cable' + } } - - it('Should send data to graphite via net', function (done) { - mock(() => done()); - - const sender = new GraphiteSender('127.0.0.1', '2003'); - sender.send('some.data'); - }); - - it('Should send data to graphite in bulks', function (done) { - let sent = 0; - mock(() => { - ++sent === 2 && done(); - }); - - const sender = new GraphiteSender('127.0.0.1', '2003', 2); - sender.send('some.data.1\nmore.data.2\nmore.data.3\nmore.data.4'); - }); }); - describe('StatsDSender', function () { - const StatsDSender = require('../lib/plugins/graphite/statsd-sender'); - const dgram = require('dgram'); - const { createSocket } = dgram; - - afterEach(function () { - dgram.createSocket = createSocket; - }); - - function mock(fn) { - dgram.createSocket = () => ({ send: fn }); - } - - it('Should send data to statsd via dgram', function () { - let sent = false; - mock(() => { - sent = true; - }); - - const sender = new StatsDSender('127.0.0.1', '8125'); - sender.send('some.data'); - - expect(sent).to.be.true; - }); - - it('Should send data to statsd in bulks', function () { - let sent = 0; - mock(() => { - sent++; - }); - - const sender = new StatsDSender('127.0.0.1', '8125', 2); - sender.send('some.data.1\nmore.data.2\nmore.data.3\nmore.data.4'); - - expect(sent).to.equal(2); - }); - }); + const data = generator.dataFromMessage(message, dayjs()); + t.true( + data[0].startsWith( + 'ns.pageSummary.sub_domain_com._foo_bar.gpsi.desktop.median 13' + ) + ); +}); + +test(`Test generate data in statsD format`, t => { + const message = { + type: 'domains.summary', + timestamp: '2016-01-08T12:59:06+01:00', + source: 'domains', + data: { + 'www.sitespeed.io': { + dns: { + median: '0', + mean: '13', + min: '0', + p10: '0', + p90: '40', + p99: '40', + max: '40' + } + } + }, + group: 'sub_domain_com' + }; + + let generator = new DataGenerator('ns', false, { + _: ['sub_domain_com'], + browser: 'chrome', + browsertime: { + connectivity: { + profile: 'cable' + } + }, + graphite: { statsd: true } + }); + const data = generator.dataFromMessage(message, dayjs()); + + const statsDFormat = new RegExp( + /ns.summary.sub_domain_com.chrome.cable.domains.www.sitespeed.io.dns.(median|mean|min|p10|p90|p99|max):[\d]{1,}\|ms$/ + ); + for (let line of data) { + t.true(statsDFormat.test(line)); + } +}); + +test(`Use graphite interface by default`, t => { + const plugin = require('../lib/plugins/graphite'); + const options = { + graphite: { + host: '127.0.0.1' + } + }; + const messageMaker = require('../lib/support/messageMaker'); + const filterRegistry = require('../lib/support/filterRegistry'); + const intel = require('intel'); + const statsHelpers = require('../lib/support/statsHelpers'); + const context = { messageMaker, filterRegistry, intel, statsHelpers }; + + plugin.open(context, options); + console.log(plugin.sender.facility); + t.is(plugin.sender.facility, 'Graphite'); }); diff --git a/test/helpers/first.js b/test/helpers/first.js deleted file mode 100644 index 70586e287..000000000 --- a/test/helpers/first.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -const Bluebird = require('bluebird'), - chai = require('chai'), - chaiAsPromised = require('chai-as-promised'); - -chai.use(chaiAsPromised); - -chai.should(); - -Bluebird.longStackTraces(); diff --git a/test/influxdbTests.js b/test/influxdbTests.js index 075e2f12e..59eeadd04 100644 --- a/test/influxdbTests.js +++ b/test/influxdbTests.js @@ -1,367 +1,360 @@ 'use strict'; -const DataGenerator = require('../lib/plugins/influxdb/data-generator'), - dayjs = require('dayjs'), - expect = require('chai').expect; +const DataGenerator = require('../lib/plugins/influxdb/data-generator'); +const dayjs = require('dayjs'); +const test = require('ava'); -describe('influxdb', function () { - describe('dataGenerator', function () { - it('should generate data for coach.summary', function () { - const message = { - uuid: '33774328-e781-4152-babe-a367cee27153', - type: 'coach.summary', - timestamp: '2017-04-04T09:55:59+02:00', - source: 'coach', - data: { - score: { - median: '96', - mean: '96', - min: '96', - p90: '96', - max: '96' - }, - accessibility: { - score: { - median: '95', - mean: '95', - min: '95', - p90: '95', - max: '95' - }, - altImages: { - median: '80', - mean: '80', - min: '80', - p90: '80', - max: '80' - }, - headings: { - median: '90', - mean: '90', - min: '90', - p90: '90', - max: '90' - }, - labelOnInput: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - landmarks: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - neverSuppressZoom: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - sections: { - median: '0', - mean: '0', - min: '0', - p90: '0', - max: '0' - }, - table: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - } - }, - bestpractice: { - score: { - median: '85', - mean: '85', - min: '85', - p90: '85', - max: '85' - }, - charset: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - doctype: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - https: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - httpsH2: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - language: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - metaDescription: { - median: '50', - mean: '50', - min: '50', - p90: '50', - max: '50' - }, - optimizely: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - pageTitle: { - median: '50', - mean: '50', - min: '50', - p90: '50', - max: '50' - }, - spdy: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - url: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - } - }, - performance: { - score: { - median: '98', - mean: '98', - min: '98', - p90: '98', - max: '98' - }, - avoidScalingImages: { - median: '50', - mean: '50', - min: '50', - p90: '50', - max: '50' - }, - cssPrint: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - fastRender: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - inlineCss: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - jquery: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - spof: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - thirdPartyAsyncJs: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - assetsRedirects: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - cacheHeaders: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - cacheHeadersLong: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - compressAssets: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - connectionKeepAlive: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - cssSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - documentRedirect: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - favicon: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - fewFonts: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - fewRequestsPerDomain: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - headerSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - imageSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - javascriptSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - mimeTypes: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - optimalCssSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - pageSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - privateAssets: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - responseOk: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - } - } +test(`Test influxdb dataGenerator`, t => { + const message = { + uuid: '33774328-e781-4152-babe-a367cee27153', + type: 'coach.summary', + timestamp: '2017-04-04T09:55:59+02:00', + source: 'coach', + data: { + score: { + median: '96', + mean: '96', + min: '96', + p90: '96', + max: '96' + }, + accessibility: { + score: { + median: '95', + mean: '95', + min: '95', + p90: '95', + max: '95' }, - group: 'www.sitespeed.io' - }; - - let generator = new DataGenerator(false, { - _: ['filename'], - browser: 'chrome', - connectivity: 'cable', - influxdb: { - tags: 'tool=sitespeed.io' + altImages: { + median: '80', + mean: '80', + min: '80', + p90: '80', + max: '80' + }, + headings: { + median: '90', + mean: '90', + min: '90', + p90: '90', + max: '90' + }, + labelOnInput: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + landmarks: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + neverSuppressZoom: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + sections: { + median: '0', + mean: '0', + min: '0', + p90: '0', + max: '0' + }, + table: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' } - }); + }, + bestpractice: { + score: { + median: '85', + mean: '85', + min: '85', + p90: '85', + max: '85' + }, + charset: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + doctype: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + https: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + httpsH2: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + language: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + metaDescription: { + median: '50', + mean: '50', + min: '50', + p90: '50', + max: '50' + }, + optimizely: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + pageTitle: { + median: '50', + mean: '50', + min: '50', + p90: '50', + max: '50' + }, + spdy: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + url: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + } + }, + performance: { + score: { + median: '98', + mean: '98', + min: '98', + p90: '98', + max: '98' + }, + avoidScalingImages: { + median: '50', + mean: '50', + min: '50', + p90: '50', + max: '50' + }, + cssPrint: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + fastRender: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + inlineCss: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + jquery: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + spof: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + thirdPartyAsyncJs: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + assetsRedirects: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + cacheHeaders: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + cacheHeadersLong: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + compressAssets: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + connectionKeepAlive: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + cssSize: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + documentRedirect: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + favicon: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + fewFonts: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + fewRequestsPerDomain: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + headerSize: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + imageSize: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + javascriptSize: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + mimeTypes: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + optimalCssSize: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + pageSize: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + privateAssets: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + }, + responseOk: { + median: '100', + mean: '100', + min: '100', + p90: '100', + max: '100' + } + } + }, + group: 'www.sitespeed.io' + }; - const data = generator.dataFromMessage(message, dayjs()); - - expect(data).to.not.be.empty; - - const seriesName = data[0].seriesName; - const numberOfTags = Object.keys(data[0].tags).length; - expect(seriesName).to.match(/score/); - expect(numberOfTags).to.equal(7); - }); + let generator = new DataGenerator(false, { + _: ['filename'], + browser: 'chrome', + connectivity: 'cable', + influxdb: { + tags: 'tool=sitespeed.io' + } }); + + const data = generator.dataFromMessage(message, dayjs()); + const seriesName = data[0].seriesName; + const numberOfTags = Object.keys(data[0].tags).length; + t.is(seriesName, 'score'); + t.is(numberOfTags, 7); }); diff --git a/test/mocha.opts b/test/mocha.opts deleted file mode 100644 index d336425f4..000000000 --- a/test/mocha.opts +++ /dev/null @@ -1,3 +0,0 @@ ---require ./test/helpers/first ---reporter spec ---timeout 60s \ No newline at end of file diff --git a/test/pathToFolderTests.js b/test/pathToFolderTests.js index 85d241efe..6634e729e 100644 --- a/test/pathToFolderTests.js +++ b/test/pathToFolderTests.js @@ -1,26 +1,32 @@ 'use strict'; const pathFromRootToPageDir = require('../lib/core/resultsStorage/pathToFolder'); -const expect = require('chai').expect; +const test = require('ava'); -describe('pathFromRootToPageDir', function () { - it('should create path from site root', function () { - const path = pathFromRootToPageDir('http://www.foo.bar', {}); - expect(path).to.equal('pages/www_foo_bar/'); - }); - - it('should create path from url', function () { - const path = pathFromRootToPageDir('http://www.foo.bar/x/y/z.html', {}); - expect(path).to.equal('pages/www_foo_bar/x/y/z.html/'); - }); - - it('should create path from url with sanitized characters', function () { - const path = pathFromRootToPageDir('http://www.foo.bar/x/y/z:200.html', {}); - expect(path).to.equal('pages/www_foo_bar/x/y/z-200.html/'); - }); - - it('should create path from url with query string', function () { - const path = pathFromRootToPageDir('http://www.foo.bar/x/y/z?foo=bar', {}); - expect(path).to.equal('pages/www_foo_bar/x/y/z/query-115ffe20/'); - }); +test(`Test pathFromRootToPageDir should create path from site root`, t => { + const path = pathFromRootToPageDir('http://www.foo.bar', {}); + t.is(path, 'pages/www_foo_bar/', 'should create path from site root'); +}); + +test(`Test pathFromRootToPageDir should create path from url`, t => { + const path = pathFromRootToPageDir('http://www.foo.bar/x/y/z.html', {}); + t.is(path, 'pages/www_foo_bar/x/y/z.html/', 'should create path from url'); +}); + +test(`Test pathFromRootToPageDir should create path from url with sanitized characters`, t => { + const path = pathFromRootToPageDir('http://www.foo.bar/x/y/z:200.html', {}); + t.is( + path, + 'pages/www_foo_bar/x/y/z-200.html/', + 'should create path from url with sanitized characters' + ); +}); + +test(`Test pathFromRootToPageDir should create path from url with query string`, t => { + const path = pathFromRootToPageDir('http://www.foo.bar/x/y/z?foo=bar', {}); + t.is( + path, + 'pages/www_foo_bar/x/y/z/query-115ffe20/', + 'should create path from url with query string' + ); }); diff --git a/test/resultUrlTests.js b/test/resultUrlTests.js index f763dbf7e..c30f544be 100644 --- a/test/resultUrlTests.js +++ b/test/resultUrlTests.js @@ -2,7 +2,7 @@ const resultsStorage = require('../lib/core/resultsStorage'); const dayjs = require('dayjs'); -const expect = require('chai').expect; +const test = require('ava'); const timestamp = dayjs(); const timestampString = timestamp.format('YYYY-MM-DD-HH-mm-ss'); @@ -12,119 +12,145 @@ function createResultUrls(url, outputFolder, resultBaseURL) { .resultUrls; } -describe('resultUrls', function () { - describe('#hasBaseUrl', function () { - it('should be false if base url is missing', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - undefined, - undefined - ); - expect(resultUrls.hasBaseUrl()).to.be.false; - }); - - it('should be true if base url is present', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - undefined, - 'http://results.com' - ); - expect(resultUrls.hasBaseUrl()).to.be.true; - }); - }); - - describe('#reportSummaryUrl', function () { - it('should create url with default output folder', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - undefined, - 'http://results.com' - ); - expect(resultUrls.reportSummaryUrl()).to.equal( - `http://results.com/www.foo.bar/${timestampString}` - ); - }); - it('should create url with absolute output folder', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - '/root/leaf', - 'http://results.com' - ); - expect(resultUrls.reportSummaryUrl()).to.equal('http://results.com/leaf'); - }); - it('should create url with relative output folder', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - '../leaf', - 'http://results.com' - ); - expect(resultUrls.reportSummaryUrl()).to.equal('http://results.com/leaf'); - }); - }); - describe('#absoluteSummaryPageUrl', function () { - it('should create url with default output folder', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - undefined, - 'http://results.com' - ); - expect( - resultUrls.absoluteSummaryPageUrl('http://www.foo.bar/xyz') - ).to.equal( - `http://results.com/www.foo.bar/${timestampString}/pages/www_foo_bar/xyz/` - ); - }); - it('should create url with absolute output folder', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - '/root/leaf', - 'http://results.com' - ); - expect( - resultUrls.absoluteSummaryPageUrl('http://www.foo.bar/xyz') - ).to.equal('http://results.com/leaf/pages/www_foo_bar/xyz/'); - }); - it('should create url with relative output folder', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - '../leaf', - 'http://results.com' - ); - expect( - resultUrls.absoluteSummaryPageUrl('http://www.foo.bar/xyz') - ).to.equal('http://results.com/leaf/pages/www_foo_bar/xyz/'); - }); - }); - describe('#relativeSummaryPageUrl', function () { - it('should create url with default output folder', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - undefined, - 'http://results.com' - ); - expect( - resultUrls.relativeSummaryPageUrl('http://www.foo.bar/xyz') - ).to.equal('pages/www_foo_bar/xyz/'); - }); - it('should create url with absolute output folder', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - '/root/leaf', - 'http://results.com' - ); - expect( - resultUrls.relativeSummaryPageUrl('http://www.foo.bar/xyz') - ).to.equal('pages/www_foo_bar/xyz/'); - }); - it('should create url with relative output folder', function () { - const resultUrls = createResultUrls( - 'http://www.foo.bar', - '../leaf', - 'http://results.com' - ); - expect( - resultUrls.relativeSummaryPageUrl('http://www.foo.bar/xyz') - ).to.equal('pages/www_foo_bar/xyz/'); - }); - }); +test(`Test hasBaseUrl should be false if base url is missing`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + undefined, + undefined + ); + t.is( + resultUrls.hasBaseUrl(), + false, + 'hasBaseUrl should be false if base url is missing' + ); +}); + +test(`Test hasBaseUrl should be true if base url is present`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + undefined, + 'http://results.com' + ); + t.is( + resultUrls.hasBaseUrl(), + true, + 'hasBaseUrl should be true if base url is present' + ); +}); + +test(`Test reportSummaryUrl should create url with default output folder`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + undefined, + 'http://results.com' + ); + t.is( + resultUrls.reportSummaryUrl(), + `http://results.com/www.foo.bar/${timestampString}`, + 'reportSummaryUrl should create url with default output folder' + ); +}); + +test(`Test should create url with absolute output folder`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + '/root/leaf', + 'http://results.com' + ); + t.is( + resultUrls.reportSummaryUrl(), + `http://results.com/leaf`, + 'reportSummaryUrl should create url with absolute output folder' + ); +}); + +test(`Test should create url with relative output folder`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + '../leaf', + 'http://results.com' + ); + t.is( + resultUrls.reportSummaryUrl(), + `http://results.com/leaf`, + 'reportSummaryUrl should create url with relative output folder' + ); +}); + +test(`Test absoluteSummaryPageUrl should create url with default output folder`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + undefined, + 'http://results.com' + ); + t.is( + resultUrls.absoluteSummaryPageUrl('http://www.foo.bar/xyz'), + `http://results.com/www.foo.bar/${timestampString}/pages/www_foo_bar/xyz/`, + 'should create url with default output folderfolder' + ); +}); + +test(`Test absoluteSummaryPageUrl should create url with absolute output folder`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + '/root/leaf', + 'http://results.com' + ); + t.is( + resultUrls.absoluteSummaryPageUrl('http://www.foo.bar/xyz'), + `http://results.com/leaf/pages/www_foo_bar/xyz/`, + 'should create url with absolute output folder' + ); +}); + +test(`Test absoluteSummaryPageUrl should create url with relative output folder`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + '../leaf', + 'http://results.com' + ); + t.is( + resultUrls.absoluteSummaryPageUrl('http://www.foo.bar/xyz'), + `http://results.com/leaf/pages/www_foo_bar/xyz/`, + 'should create url with absolute relative folder' + ); +}); + +test(`Test relativeSummaryPageUrl should create url with default output folder`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + undefined, + 'http://results.com' + ); + t.is( + resultUrls.relativeSummaryPageUrl('http://www.foo.bar/xyz'), + `pages/www_foo_bar/xyz/`, + 'should create url with default output folder' + ); +}); + +test(`Test relativeSummaryPageUrl should create url with absolute output folder`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + '/root/leaf', + 'http://results.com' + ); + t.is( + resultUrls.relativeSummaryPageUrl('http://www.foo.bar/xyz'), + `pages/www_foo_bar/xyz/`, + 'should create url with absolute output folder' + ); +}); + +test(`Test relativeSummaryPageUrl should create url with relative output folder`, t => { + const resultUrls = createResultUrls( + 'http://www.foo.bar', + '../leaf', + 'http://results.com' + ); + t.is( + resultUrls.relativeSummaryPageUrl('http://www.foo.bar/xyz'), + `pages/www_foo_bar/xyz/`, + 'should create url with relative output folder' + ); }); diff --git a/test/slackTests.js b/test/slackTests.js index 8a83b2140..80a4fdaaa 100644 --- a/test/slackTests.js +++ b/test/slackTests.js @@ -1,7 +1,7 @@ 'use strict'; -const expect = require('chai').expect; const path = require('path'); const fs = require('fs'); +const test = require('ava'); const resultUrls = require('../lib/core/resultsStorage/resultUrls'); const messageMaker = require('../lib/support/messageMaker'); @@ -27,266 +27,32 @@ const defaultContextFactory = (context = {}) => { ); }; -describe('slack', () => { - describe('summary', () => { - const getSummary = require('../lib/plugins/slack/summary'); - - it('should not hard crash without a name', () => { - const dataCollector = new DataCollector(defaultContextFactory()); - const options = { - browsertime: { - browser: 'mosaic', - iterations: 5 - } - }; - const codeUnderTest = () => - getSummary(dataCollector, [], resultUrls(), undefined, options); - expect(codeUnderTest).to.not.throw(); - - const summary = codeUnderTest(); - expect(summary.summaryText).to.have.string( - '0 pages analysed for Unknown (5 runs, Mosaic/desktop/unknown)' - ); - }); - - it('should not hard crash with undefined browsertime options', () => { - const dataCollector = new DataCollector(defaultContextFactory()); - const options = { - browsertime: undefined - }; - const codeUnderTest = () => - getSummary(dataCollector, [], resultUrls(), '', options); - expect(codeUnderTest).to.not.throw(); - - const summary = codeUnderTest(); - expect(summary.summaryText).to.have.string( - '0 pages analysed for (0 runs, Unknown/desktop/unknown)' - ); - }); - }); - - describe('attachments', () => { - const getAttachments = require('../lib/plugins/slack/attachements'); - - it('should always return a list', () => { - expect(getAttachments()).to.be.an('array').that.is.empty; - }); - }); - - describe('DataCollector', () => { - it('should have an empty list of pages', () => { - const context = defaultContextFactory(); - const collector = new DataCollector(context); - expect(collector.getURLs()).to.be.an('array').that.is.empty; - }); - - it('add data should add new page URL', () => { - const context = defaultContextFactory(); - const collector = new DataCollector(context); - - collector.addDataForUrl( - 'https://fake-site.sitespeed.io', - 'coach.run', - { coach: { pageSummary: coachRun } }, - undefined - ); - - expect(collector.getURLs()).to.eql(['https://fake-site.sitespeed.io']); - }); - }); - - describe('index.open', () => { - const plugin = require('../lib/plugins/slack'); - - it('without any valid option', () => { - const undefinedOptions = () => { - plugin.open(defaultContextFactory(), undefined); - }; - expect(undefinedOptions).to.throw( - /^Required option\(s\) .+(hookUrl|userName).+ need to be specified in namespace "slack"$/ - ); - - const emptyOptions = () => { - plugin.open(defaultContextFactory(), {}); - }; - expect(emptyOptions).to.throw( - /^Required option\(s\) .+(hookUrl|userName).+ need to be specified in namespace "slack"$/ - ); - - const undefinedSlackOptions = () => { - plugin.open(defaultContextFactory(), { slack: undefined }); - }; - expect(undefinedSlackOptions).to.throw( - /^Required option\(s\) .+(hookUrl|userName).+ need to be specified in namespace "slack"$/ - ); - - const emptySlackOptions = () => { - plugin.open(defaultContextFactory(), { slack: {} }); - }; - expect(emptySlackOptions).to.throw( - /^Required option\(s\) .+(hookUrl|userName).+ need to be specified in namespace "slack"$/ - ); - }); - - it('should require userName with hookUrl option', () => { - const codeUnderTest = () => { - plugin.open(defaultContextFactory(), { - hookUrl: 'https://fake-slack.sitespeed.io/hook' - }); - }; - expect(codeUnderTest).to.throw( - /^Required option\(s\) .+(hookUrl|userName).+ need to be specified in namespace "slack"$/ - ); - }); - - it('should require hookUrl with userName option', () => { - const codeUnderTest = () => { - plugin.open(defaultContextFactory(), { - userName: 'Sitespeed.io' - }); - }; - expect(codeUnderTest).to.throw( - /^Required option\(s\) .+(hookUrl|userName).+ need to be specified in namespace "slack"$/ - ); - }); - - it('should set plugin state for all valid options', () => { - const options = Object.assign({}, plugin.config, { - hookUrl: 'https://fake-slack.sitespeed.io/hook' - }); - const context = defaultContextFactory(); - plugin.open(context, { - slack: options - }); - expect(plugin.options.slack).to.equal(options); - expect(plugin.context).to.equal(context); - }); - }); - - describe('index.processMessage', () => { - const Slack = require('node-slack'); - const realSend = Slack.prototype.send; - - function mockSend() { - function mock() { - mock.called = true; - mock.callArgs = Array.from(arguments); - } - mock.called = false; - mock.callArgs = []; - Slack.prototype.send = mock; - return mock; +test(`should not hard crash without a name`, t => { + const getSummary = require('../lib/plugins/slack/summary'); + const dataCollector = new DataCollector(defaultContextFactory()); + const options = { + browsertime: { + browser: 'mosaic', + iterations: 5 } + }; + const codeUnderTest = () => + getSummary(dataCollector, [], resultUrls(), undefined, options); - function pluginFactory(context, extraOptions = {}) { - const plugin = require('../lib/plugins/slack'); - - const slackOptions = Object.assign({}, plugin.config, { - hookUrl: 'https://fake-slack.sitespeed.io/hook' - }); - const options = Object.assign( - { - slack: slackOptions, - browsertime: { - iterations: 1, - browser: 'Chrome' - } - }, - extraOptions - ); - plugin.open(context, options); - plugin.processMessage({ - type: 'coach.pageSummary', - url: 'http://fake-page.sitespeed.io/coach-run', - data: coachRun, - runIndex: undefined - }); - return plugin; - } - - afterEach(() => { - Slack.prototype.send = realSend; - }); - - it('should send message for html.finished message without baseUrl', () => { - const context = defaultContextFactory({ - name: 'Simple test' - }); - const plugin = pluginFactory(context); - const mock = mockSend(); - plugin.processMessage({ type: 'html.finished' }); - - expect(mock.called).to.be.true; - const params = mock.callArgs[0]; - expect(params.text).to.equal( - '1 page analysed for Simple test (1 run, Chrome/desktop/unknown)\n*Site summary*\n\n' - ); - }); - - it('results URL should be part of the the report if baseUrl is provided', () => { - const context = defaultContextFactory({ - name: 'Simple test' - }); - context.resultUrls = resultUrls( - 'https://results.sitespeed.io/absolute/path', - {} - ); - const plugin = pluginFactory(context); - const mock = mockSend(); - plugin.processMessage({ type: 'html.finished' }); - - expect(mock.called).to.be.true; - const params = mock.callArgs[0]; - expect(params.text).to.equal( - '1 page analysed for Simple test (1 run, Chrome/desktop/unknown)\n*Site summary* ' + - '()\n\n' - ); - }); - - it('should not send message for html.finished with s3 configured', () => { - const context = defaultContextFactory({ - name: 'S3 configured' - }); - const plugin = pluginFactory(context, { - s3: { bucketname: 'sitespeed_data_bucket' } - }); - - const mock = mockSend(); - expect(Slack.prototype.send).to.equal(mock); - - plugin.processMessage({ type: 'html.finished' }); - expect(mock.called).to.be.false; - - plugin.processMessage({ type: 's3.finished' }); - expect(mock.called).to.be.true; - expect(mock.callArgs[0].text).to.equal( - '1 page analysed for S3 configured (1 run, Chrome/desktop/unknown)\n*Site summary*\n\n' - ); - }); - - it('should not send message for html.finished with gcs configured', () => { - const context = defaultContextFactory({ - name: 'GCS' - }); - const plugin = pluginFactory(context, { - gcs: { - bucketname: 'sitespeed_data_bucket', - projectId: 123456789, - key: 'sitespeed-1234567890' - } - }); - - const mock = mockSend(); - expect(Slack.prototype.send).to.equal(mock); - - plugin.processMessage({ type: 'html.finished' }); - expect(mock.called).to.be.false; - - plugin.processMessage({ type: 'gcs.finished' }); - expect(mock.called).to.be.true; - expect(mock.callArgs[0].text).to.equal( - '1 page analysed for GCS (1 run, Chrome/desktop/unknown)\n*Site summary*\n\n' - ); - }); - }); + const summary = codeUnderTest(); + t.not(summary.summaryText, undefined); +}); + +test(`DataCollector add data should add new page URL `, t => { + const context = defaultContextFactory(); + const collector = new DataCollector(context); + + collector.addDataForUrl( + 'https://fake-site.sitespeed.io', + 'coach.run', + { coach: { pageSummary: coachRun } }, + undefined + ); + + t.deepEqual(collector.getURLs(), ['https://fake-site.sitespeed.io']); }); diff --git a/test/storageManagerTests.js b/test/storageManagerTests.js index 76c684535..506e6d45f 100644 --- a/test/storageManagerTests.js +++ b/test/storageManagerTests.js @@ -3,7 +3,7 @@ const resultsStorage = require('../lib/core/resultsStorage'); const dayjs = require('dayjs'); const path = require('path'); -const expect = require('chai').expect; +const test = require('ava'); const timestamp = dayjs(); const timestampString = timestamp.format('YYYY-MM-DD-HH-mm-ss'); @@ -12,54 +12,48 @@ function createManager(url, outputFolder) { return resultsStorage(url, timestamp, { outputFolder }).storageManager; } -describe('storageManager', function () { - describe('#rootPathFromUrl', function () { - it('should create path from url', function () { - const storageManager = createManager('http://www.foo.bar'); - const path = storageManager.rootPathFromUrl( - 'http://www.foo.bar/x/y/z.html' - ); - expect(path).to.equal('../../../../../'); - }); - - it('should create path from url with query string', function () { - const storageManager = createManager('http://www.foo.bar'); - const path = storageManager.rootPathFromUrl( - 'http://www.foo.bar/x/y/z?foo=bar' - ); - expect(path).to.equal('../../../../../../'); - }); - }); - - describe('#getBaseDir', function () { - it('should create base dir with default output folder', function () { - const storageManager = createManager('http://www.foo.bar'); - expect(storageManager.getBaseDir()).to.equal( - path.resolve('sitespeed-result', 'www.foo.bar', timestampString) - ); - }); - it('should create base dir with custom output folder', function () { - const storageManager = createManager( - 'http://www.foo.bar', - '/tmp/sitespeed.io/foo' - ); - expect(storageManager.getBaseDir()).to.equal('/tmp/sitespeed.io/foo'); - }); - }); - - describe('#getStoragePrefix', function () { - it('should create prefix with default output folder', function () { - const storageManager = createManager('http://www.foo.bar'); - expect(storageManager.getStoragePrefix()).to.equal( - path.join('www.foo.bar', timestampString) - ); - }); - it('should create prefix with custom output folder', function () { - const storageManager = createManager( - 'http://www.foo.bar', - '/tmp/sitespeed.io/foo' - ); - expect(storageManager.getStoragePrefix()).to.equal('foo'); - }); - }); +test(`Create path from url`, t => { + const storageManager = createManager('http://www.foo.bar'); + const path = storageManager.rootPathFromUrl('http://www.foo.bar/x/y/z.html'); + t.is(path, '../../../../../'); +}); + +test(`Create path from url with query string`, t => { + const storageManager = createManager('http://www.foo.bar'); + const path = storageManager.rootPathFromUrl( + 'http://www.foo.bar/x/y/z?foo=bar' + ); + t.is(path, '../../../../../../'); +}); + +test(`Create base dir with default output folder`, t => { + const storageManager = createManager('http://www.foo.bar'); + t.is( + storageManager.getBaseDir(), + path.resolve('sitespeed-result', 'www.foo.bar', timestampString) + ); +}); + +test(`Create base dir with custom output folder`, t => { + const storageManager = createManager( + 'http://www.foo.bar', + '/tmp/sitespeed.io/foo' + ); + t.is(storageManager.getBaseDir(), '/tmp/sitespeed.io/foo'); +}); + +test(`Create prefix with default output folder`, t => { + const storageManager = createManager('http://www.foo.bar'); + t.is( + storageManager.getStoragePrefix(), + path.join('www.foo.bar', timestampString) + ); +}); + +test(`Create prefix with custom output folder`, t => { + const storageManager = createManager( + 'http://www.foo.bar', + '/tmp/sitespeed.io/foo' + ); + t.is(storageManager.getStoragePrefix(), 'foo'); }); From 4e323784fd77901b3d468e48df9a3b39578b4dff Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Tue, 26 Apr 2022 06:11:19 +0200 Subject: [PATCH 105/105] Run GitHub Action tests against local HTTP server (#3638) --- .eslintignore | 1 + .github/workflows/docker.yml | 16 ++-- .github/workflows/linux.yml | 22 +++-- .github/workflows/safari.yml | 6 +- .github/workflows/windows.yml | 2 +- npm-shrinkwrap.json | 121 ++++++++++---------------- package.json | 3 +- test/data/html/css/main.css | 3 + test/data/html/dimple/index.html | 15 ++++ test/data/html/img/pirate.png | Bin 0 -> 18643 bytes test/data/html/js/jquery-2.1.4.min.js | 4 + test/data/html/search/index.html | 9 ++ test/data/html/simple/index.html | 10 +++ test/prepostscripts/multi.js | 6 +- test/prepostscripts/preSample.js | 2 +- test/runWithoutCli.js | 2 +- 16 files changed, 122 insertions(+), 100 deletions(-) create mode 100644 test/data/html/css/main.css create mode 100644 test/data/html/dimple/index.html create mode 100644 test/data/html/img/pirate.png create mode 100644 test/data/html/js/jquery-2.1.4.min.js create mode 100644 test/data/html/search/index.html create mode 100644 test/data/html/simple/index.html diff --git a/.eslintignore b/.eslintignore index 10a3ed22e..d87e9d24e 100644 --- a/.eslintignore +++ b/.eslintignore @@ -4,3 +4,4 @@ assets/* sitespeed-result/* lib/plugins/yslow/scripts/* lib/plugins/html/assets/js/* +test/data/* diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 3f9ed91fb..db4a7a42c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -16,15 +16,19 @@ jobs: docker buildx install docker buildx build --load --platform linux/amd64 -t sitespeedio/sitespeed.io . docker buildx build --load --platform linux/amd64 -t sitespeedio/sitespeed.io:slim --file Dockerfile-slim . + - name: Install local HTTP server + run: npm install serve -g + - name: Start local HTTP server + run: (serve test/data/html/ -l 3001&) - name: Run test on default container for Chrome - run: docker run --rm sitespeedio/sitespeed.io https://www.sitespeed.io -n 1 -b chrome + run: docker run --rm --network=host sitespeedio/sitespeed.io http://127.0.0.1:3001 -n 1 -b chrome - name: Run test on default container for Firefox - run: docker run --rm sitespeedio/sitespeed.io https://www.sitespeed.io -n 1 -b firefox + run: docker run --rm --network=host sitespeedio/sitespeed.io http://127.0.0.1:3001 -n 1 -b firefox - name: Run test on default container for Edge - run: docker run --rm sitespeedio/sitespeed.io https://www.sitespeed.io -n 1 -b edge + run: docker run --rm --network=host sitespeedio/sitespeed.io http://127.0.0.1:3001 -n 1 -b edge - name: Run test on slim container - run: docker run --rm sitespeedio/sitespeed.io:slim https://www.sitespeed.io -n 1 --browsertime.firefox.preference "devtools.netmonitor.persistlog:true" + run: docker run --rm --network=host sitespeedio/sitespeed.io:slim http://127.0.0.1:3001 -n 1 --browsertime.firefox.preference "devtools.netmonitor.persistlog:true" - name: Test WebPageReplay with Chrome - run: docker run --cap-add=NET_ADMIN --rm -e REPLAY=true -e LATENCY=100 sitespeedio/sitespeed.io https://www.sitespeed.io -n 3 -b chrome + run: docker run --cap-add=NET_ADMIN --rm -e REPLAY=true -e LATENCY=100 sitespeedio/sitespeed.io https://www.sitespeed.io -n 3 -b chrome - name: Test WebPageReplay with Firefox - run: docker run --cap-add=NET_ADMIN --rm -e REPLAY=true -e LATENCY=100 sitespeedio/sitespeed.io https://www.sitespeed.io -n 3 -b firefox --browsertime.firefox.acceptInsecureCerts true \ No newline at end of file + run: docker run --cap-add=NET_ADMIN --rm --network=host -e REPLAY=true -e LATENCY=100 sitespeedio/sitespeed.io https://www.sitespeed.io -n 3 -b firefox --browsertime.firefox.acceptInsecureCerts true \ No newline at end of file diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 74b3b22ba..d6fbd8586 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -34,25 +34,29 @@ jobs: run: | google-chrome --version firefox --version + - name: Install local HTTP server + run: npm install serve -g + - name: Start local HTTP server + run: (serve test/data/html/ -l 3001&) - name: Test old budget - run: bin/sitespeed.js -b firefox -n 2 --budget.configPath test/oldBudget.json --summary --xvfb https://www.sitespeed.io/ + run: bin/sitespeed.js -b firefox -n 2 --budget.configPath test/oldBudget.json --summary --xvfb http://127.0.0.1:3001/simple/ - name: Test new budget file - run: bin/sitespeed.js --useHash -n 1 --budget.configPath test/budget.json --xvfb https://www.sitespeed.io/#heybaberia + run: bin/sitespeed.js --useHash -n 1 --budget.configPath test/budget.json --xvfb http://127.0.0.1:3001/simple/#heybaberia - name: Use AXE - run: bin/sitespeed.js --useAlias start --mobile -n 1 --utc --axe.enable --xvfb https://www.sitespeed.io/ + run: bin/sitespeed.js --useAlias start --mobile -n 1 --utc --axe.enable --xvfb http://127.0.0.1:3001/simple/ - name: Use Fireefox with --mobile - run: bin/sitespeed.js -b firefox --metrics.list --mobile -n 1 https://www.sitespeed.io/ --sustainable.enable --xvfb + run: bin/sitespeed.js -b firefox --metrics.list --mobile -n 1 http://127.0.0.1:3001/simple/ --sustainable.enable --xvfb - name: Test --multi - run: bin/sitespeed.js --multi -b chrome -n 1 test/prepostscripts/preSample.js https://www.sitespeed.io/documentation/ test/prepostscripts/postSample.js --xvfb + run: bin/sitespeed.js --multi -b chrome -n 1 test/prepostscripts/preSample.js http://127.0.0.1:3001/simple/ test/prepostscripts/postSample.js --xvfb - name: Test --multi and --tcpdump - run: bin/sitespeed.js --multi -n 1 https://www.sitespeed.io/ https://www.sitespeed.io/documentation/ --tcpdump --xvfb + run: bin/sitespeed.js --multi -n 1 http://127.0.0.1:3001/simple/ http://127.0.0.1:3001/dimple/ --tcpdump --xvfb - name: Test --multi with one file run: bin/sitespeed.js --multi -n 3 test/prepostscripts/multi.js --xvfb - name: Test setting HTML output pageSummaries - run: bin/sitespeed.js https://www.sitespeed.io/ https://www.google.com -v -n 1 --html.pageSummaryMetrics transferSize.css --html.pageSummaryMetrics requests.httpErrors --html.pageSummaryMetrics score.performance --xvfb + run: bin/sitespeed.js http://127.0.0.1:3001/simple/ http://127.0.0.1:3001/dimple/ -v -n 1 --html.pageSummaryMetrics transferSize.css --html.pageSummaryMetrics requests.httpErrors --html.pageSummaryMetrics score.performance --xvfb - name: Test setting HTML output summary boxes - run: bin/sitespeed.js https://www.sitespeed.io/ -v -n 1 --html.summaryBoxes score.performance --html.summaryBoxes timings.firstPaint --xvfb + run: bin/sitespeed.js http://127.0.0.1:3001/simple/ -v -n 1 --html.summaryBoxes score.performance --html.summaryBoxes timings.firstPaint --xvfb - name: Run test with Graphite - run: bin/sitespeed.js https://www.sitespeed.io/ -n 1 --graphite.host 127.0.0.1 --xvfb + run: bin/sitespeed.js http://127.0.0.1:3001/simple/ -n 1 --graphite.host 127.0.0.1 --xvfb - name: Run test without a CLI run: xvfb-run node test/runWithoutCli.js \ No newline at end of file diff --git a/.github/workflows/safari.yml b/.github/workflows/safari.yml index 530114d0c..19da04678 100644 --- a/.github/workflows/safari.yml +++ b/.github/workflows/safari.yml @@ -19,5 +19,9 @@ jobs: run: | sudo safaridriver --enable npm ci + - name: Install local HTTP server + run: npm install serve -g + - name: Start local HTTP server + run: (serve test/data/html/ -l 3001&) - name: Run test - run: bin/sitespeed.js -b safari https://www.sitespeed.io/ + run: bin/sitespeed.js -b safari http://127.0.0.1:3001/ diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index d06bb8c68..17adb2c47 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -24,6 +24,6 @@ jobs: - name: Install dependencies run: choco install microsoft-edge --force - name: Run Edge test - run: node bin/sitespeed.js -b edge https://www.sitespeed.io/ + run: node bin/sitespeed.js -b edge https://www.sitespeed.io/ shell: cmd diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 8e6d1b525..9fcf021b3 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -2239,6 +2239,22 @@ "node": ">=10" } }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/combined-stream": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", @@ -3207,24 +3223,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/eslint/node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -3278,15 +3276,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4162,6 +4151,15 @@ "node": ">=0.10.0" } }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", @@ -8310,22 +8308,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -10190,6 +10172,19 @@ "convert-to-spaces": "^1.0.1" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "combined-stream": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", @@ -10918,21 +10913,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -10968,12 +10948,6 @@ } } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -11697,6 +11671,12 @@ "ansi-regex": "^2.0.0" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", @@ -14946,19 +14926,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", diff --git a/package.json b/package.json index f8f65626f..e278a2f74 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,8 @@ "files": [ "test/**/*", "!test/prepostscripts", - "!test/runWithoutCli.js" + "!test/runWithoutCli.js", + "!test/data" ] }, "scripts": { diff --git a/test/data/html/css/main.css b/test/data/html/css/main.css new file mode 100644 index 000000000..8552cc7a0 --- /dev/null +++ b/test/data/html/css/main.css @@ -0,0 +1,3 @@ +body{ + color: #B24926; +} diff --git a/test/data/html/dimple/index.html b/test/data/html/dimple/index.html new file mode 100644 index 000000000..07acbc3e0 --- /dev/null +++ b/test/data/html/dimple/index.html @@ -0,0 +1,15 @@ + + + + This is a test site + + + +

    Hello!

    +

    This is a paragraph, we load one CSS, one JavaScript and one image.

    +

    Simple

    +

    Search

    + + + + diff --git a/test/data/html/img/pirate.png b/test/data/html/img/pirate.png new file mode 100644 index 0000000000000000000000000000000000000000..268465a07d43835c702ccbf1ded17b5b976e04cd GIT binary patch literal 18643 zcmW)mWl+>#7sr3Q%fiwv-Hm{B$5N64(w)+s(ku;%w17%WgVLeY5&{C!2+~M*O0)a? z=ecjroipdWIWuSGd++C)sH3HVk3)?E006$4s*)}Mfd9LKjbV`g0!zr({}O<;j;6jc z`v2$Z>S}9iYkq!ybab?l!#qoUvXJd~hfG3UH?;vkzQ>F9D6_}?S116OipysDuOH;6tEC6P zx91%IK$S^NNnSq?bhu#R!^(vR==7JpzqfjAo7Dn=G|PWqk_krnwH4=*s7B$TpAzZu zk*DP->(8R@UlKbg)UcIf_B=W>Zkr}5AAz_vjT*cs)BAcepGNEmJASl%-_8+|z}4%ktNcA1 z^9^s?^{}7RRScDAiF!={gaUSKQP{xCWtZrs@cfAxNm5UzqEaXE1D;Chuy(|?U4d)-x%kUPj>d*`)egE) zNQG#Rzi#ypOveny#)Sl1uk4>LkW$gnBir&{<+x-t2C!q2ckYa^PIcStNt@bAH^|SP zJgmTolV_{}0$bp`UQ4VlMJmO6HnO0ncQg{I?7!gn$E<|{4?#SGtIzN9>)vr8dE4yX ztXMv_*G3(+LOyhPlb&upv$(0AH-lZpTHl1>9V1G9XLuZ?&4=KzI1#U6@F9Nd#b~F^ zth^-+t#XlxTWeAJc7|MR?~@Do{7U9UkNc3~nOxhQL5_19^U4yG#L5UW^q%9Ui6VUO z>#gaZ4za(O3_9bPAS^dJs)BP@G9f(bVM8fc!Mr4OA86%qqo_xl=n1!{{p@!to^|K1 z#wt@f4q|_W=SOOasty$LMBTUC?UVia1N*B7JJ!b`H6ljM@_SGI6ld^NZsrxH*`s(K!Z z+14`O@-{aGjk8Gb;|JE3SGMch^OP247HLH{Twc)(l4CDt6eG)GKHm7tMdqLt*o;?( z#zi=H^$}B`Zv6{?)Ut*b;R)K_@&1HU`rVQKSgDE-@&})jbH(QnsP$)#B!O4~jDGUew7KMhzPZt@-Ae0QDda#Usux z1^tF!08Z-cvxWUD&OauCqAY)*Ya@CpQb~qV@Xk-bEWrjJMc9)hNwOig^0R#pF8t1w zv&A7$ax+^n=!S;Q6NvZ9+M)wJv)Yj0iwLK926j)vTnzGF!C(v>8j%y%8jNVVBThAu z>fT9imVNdN+j*JR(jaXnC3^pK6m5H=nMKoL!!Ny5fA(nA8m}eHizk%GjI^6vt(=Zt zgl%fOVZ04QRJGZWCr)zH?VbkFq#&`&*TCwnCnc+Dh$*;f47Aub* zem-ByAxu_TkieRsiF=y?v^+~zengMvDaub-eSX8@K6$D3Hs5PU5x9DfxGjulP4*J} z$*CanAvN&aYyY1+6bQ5RfUoKcCxX=e@?yoq697)m71UE>4Zz(5I+V=B2%bnZnH)x8Ab1GyctQ4k zf{b@Z;<VsekmP;^*L5vN zUl?T+RXKVBduZELK1??cCggNc?b3AAa9mQ``>OBikzNa<&{wThxU$!K0=$&JxsG^2 zZ6>VZZgTU_P8*Ec(nsnrv|-LZ4vNUU+TFw)bJqnO z=0kaYmYlJrj5eCb^Tq_#vI0`sa~x(x$^_LEL$%BTq{+b#^a;4_eo(~lZ-4J7B7n%GtFT@Z@1>d4TTK`M z|BF%a2>&z_sq?oGHA7kw&TM}90-DMDQNA3bxFx8(RGchR$B!G3`&CG99isD^o(~=Re>eV z(vM4?p0J+H^PcB}p-1=%c|w4!Mi9C=IlUJ`x+#m@B*`ZH|LBEt85MGxbbcgB04Z$}a_DCX7VfvK3hh5Tl*h4l! zFRfiuC4G(;t1C8Tt25MqWr}Y7!xJ9$E@MmC=k)XnC7~lbpg(AquOLe+Y>NqS2O_i@ z3tHYUOQ09-%eB`3izqo%bsIB}>BANyR;U7Mwz-h>bswkg?RgjhNH|~ptr@_e`W`75*O~KD1PxE0jVc)L6U{~KxF!TdGIgRp}1maI;Lr_o6c-npeO~#$G;>Eo+11F}K9${mYdu?o2i1HhKFs@1J8^f%gYr&bN!; z#VV_1>KHTU&@4!M@Y*6G6>_~NbkzqpG*{=5B--uA|-=eoPPjK#K;8989^_Y<$a+; zr=*b*=WKG(w)^N*9aU^3lmtP7v%tmkT?u2V!f<0OCjxC#f3(V$3!!TA0C`Q(8t?pjfgh{oUEB8$}-lhGcIj#B(-t2Ss`j9vv8u9Ak z4?;=kaOFiO%*E34F}cOVGD884Sd|WW{&}qQtXdESqTxVbukSW*UZPijZM6lrx>YFL zdQs1Q#2DwDaT#;*%&Ouo$r&Mq_a(sqI|Oxq=V8?so`@|)w26@rX>WEckx`b|7?3(r z=zYc#!hm#4XWEk(GeUYj8Y~d%GkA(xAmwIqU+>wRC=-^#*U6gSZYP~_|Gn*Iqo_Oi(Ni1(*Q~}SOH^`E*0(|d!|U0Ym7B>#Eh(3%KDD#%QY1&H~PJ+q9zG47?PTo0sW25{)!ht z{LG17kP0ttQ*>x>{hljCZ|pkI|Ibcw$~4W|MQ5-0_YfTUrvy%w@V;9S6L~Yl!RGd* zQKUDXap$pPr;tt0y);qs*PDw(hR*B7^wR?*1ebjGy)>a`94HI#>X)NWlWQjTC%c@MrR(exy+@I84e}xvPl5X$S!ch25aZo7@ICU3v45AsH??vs@;AR!g|I&8W|}+TI{mu-*PA2`0ZY}(cO73 zDWUH4P2FfkRhW5Lu6IN+xBsohXyym74Jf*q^{|GZT4v=5SR)I>9z~^;goO8_Hj7L@ zEFCD4S#63M*eHlA6D7KB(=G)W-keX{baJX;Itk9zV%8<$72o&A>!`Y@kQOC+lqtYc zI9f95UBzk1S2P5$Z}LkHW)vspYM=IO-4c|%pie5i_p5g*eV~Ok%W7V3INZ#Z_}?za ztevR-Ha&F$Gz8%ItPLU`?B4$IOw?wn+kJw4?CiS193s(uFG=NK%9jJ;b;&p(0J8DE7Q8ELS>_*vnRhwiK4_T&EOCZ$z)KsB#&eZw5ehw86n5{PcCfI%k}azU~2Whd$4+Z~XfG~bPR$5v>?7s6q8 zO2)u=l-0+)@qMc`g8T^PglW$>>_f?O7eJ3?kt6238X|64c0c0$NPbL2k&9ijt{7wo z{3u4cb(LX2&w95kQfUwu!LTZ>^UN>9>qV}_7bljBK%TqQ!otVMQvBSk?so{)tqZ)h zj}fk@G=DwE>*B@^tIxZQ3Rb-vUjh>>_RJB~pr>IULB>Tw(IxX3N>R~66+l^?;Z zFijHts>mwJOe9^lHb3Aybs5#%**RSVK{^(sX1pSFIjG286bCu8O5Hl2N4!R72pRu++CM~OgbO$E-r8>G^r}Zi zgOrr$7e;Q^L8_*7l>p!M^?-yczRoPX0?Z`Om>YCcV8x_$DLP@AN27j{mc?F<6=)yV zphrse?Fpkb`5J~-)E|?`MD=ozFM?sYnF?V>bmd=M15f3eMIjJLU} z@FrG3eAtd?fQ-)B3H8n%C_P4DBF7`-Md~t@u@MrWn3%>0yeLtSMU6=)RWDF_!K5jM zIPs0Oc7+s4mM$X4e&6hfPxB*SZo2F*>sR{eruI3(34y-CQSGzq{aK=^4(~yLW~o(n zn3Fy`qZGDZL>k3DBi5RrDZGD54{7TJ!DZve+{PeEm#ns@HB9*T0ZZ5(gvk$&X?=x872SmX*IiqgYOqgcY>Hw32FbWgy z@Px}U>m{j&~aT>9c9^Tiw-puZf2v@5m-@RAA@y+-Xo%C2SRp^z*$t@PsjL0Vx zt;iw7;tEigO2m=v0|eDvJ7*(!e``hEVIg}FQ{8kkTJk;HpAg13(|Z)g5RYU$!n9tZ zz1a9#UBLU}-&G>xxWK6|`?KOPOcRn;L?ySM9fYh9#wMomNJ&*G&;dg(WmlnJ9xEbP z-LzukW#?*99YN`BMzB$GZ?+e@r&!c;ik5UD4%e96hOQ|{?@r8|DHMBY^25(nnB7#(E*c8Bf)kA$|A@UJD&6P!_c9u*s)N+!{Jt- z>8A52{JWj2jyPQ_wIxjh!y)u`jwbIYI%IsV_YuQljtO@rNrY7 z$A+RQbGW6oTShg1R<5ZBN?({8jA9FYI~5_;{omIhOlaEiKM1lYJ>@t4&b?Cy9w`Nq z##t>{>6DlX7rweFD@^`APgA(J^0;&AzMHQDYGp|3g>2Go%~Bc#L;8;^T_aD!ZocN~ z-G3W8yvU9ML|$;>eT4Qs-ye&}!k7sVS#>7|z_XrPZA;bcQbNH3#mz4!rU=eYl|4z{>m{5gO3wx@bgx96_N5@YtE@Eic zElC!H`wq>^9Hl=Q55;`5h{-LpGe5@{LLD~es}`CcgB}~T{uEXw^}N+Mp9`(TsGFV{;HCA8zWMH<;hRecUuoBrCZb`QtXyRAVuXOXBl% zSUy76{GO)Pn|XX=dg7qBh{gJk<;w97Vs}mWX$==3*msS!DZ2b{GIXEzuS(Ay?l+Wg zxHH8oDaB9{ePR`j%igXIIN8$jOWtViFZaIG<|A-i>_qWmav-jL$es&xFiKwPbDU(p zkZtBxJxBd>#0%f-L90ID;INLuu|BzTml0yA@%K7&@%r)V)cLKZGj{!+i2nY{@UI>F zm}UY^*oz*jiqGf*=9G{~?DFoMpEB+R<0Oc)9S0an$^CwSk<4Qi&N4uddn96TEh;Nf z$*04eH2RfR3*g_i4T)A`nw>IhcZ5t@Q56yi)iy{HT6nNC4t&VMungLA8&SgjHOvUC&gLab3h z!X`KR+XBV+Jk-R@*t%aK0nf}kV-to1$ct1!)}~P9T!`PGf-yAcA!Z$ix%J)T@q2yM z%@8oZHh3tat(={KP%*}3V7=@UzS=tXclM&rBaJNexg!})tPgCU*@!aSaaziXlXvI( z8iH+#?Cx~rz5dqjGP?Ky@^889>0A*KWsOSRv*$Fr+Y*#)AA1nSrTlvesH6$ajZOvYL3rgV=yTOfbiS75qhBgn~$j) zB#xWHSc5@e(17FnMMC+LJ>(LXQOwURoQDVS7E1H2?B|gj!?ra}?#IH4N<78GuX~wb zASSTE>vqlpg)14Pl*RO=EBQQyQAZ1uI>8Rsbx8WDdK;{X%exBMB&>i;9v&^$59OeI z#8R>%RWBi+JIgT#5ZL#qQ}v~QY`1%@$1f$N;sP_C70G+`UOvOa@KcU$LXvnBtgAi3J2V00E1H}AvFVUVI&W#7 zhtY9{bp@UKaTakxD#X?=~L&jj8vSZd-HkXM&U5Ys@(`DvI=sh+M&A`(FA5Kp>-?N0jT+oS7Vk4rP5c+Vy39{T86xjP^?Q zF_7GhHlWlg4a$>Cjo_Z(o~6u+!Q2Br{qv3`lKh_c+HGUQ^Y8%U%>|EKZylra8jM<+ z;N3u${JO`Cy9%>={!Yq@5GvB>O3-?SmfxT!;InAGr@5YbyW+QbDFU}-_5ZMS00#La z2ZIvBC%1H_!cv9eBYK6Cja&Zh;Ki~26&pBIMJmKbMM&xv6dgugb%fh=A2Q!5`QE(R zLo{$*48By{GeaNOgDbfQomV}$1M&VNLA+H3?kQs4p3sbRxD7}UeDBB4`fq)U=-cja z;K~-F8x==%%5MwKJTRuLEG=&j{*`BETj`H`lBc(T#;Ae)hJ5(47=$#cfM8-S1HJQZ z&dRg<;=K4v^!P5!W{1NN&)z_aXdy1D0B4sKjtZ8#*6w)xK+%1{;8eED1AOFpW)`Rl z(IyIGUE3Pl^X%A3tO1*6 zuZq})iWP&F=Q#WL>e{qWn>cu40kh3iNkfTknYS)+yOJl19_ zAxo+y!Gd*QYvv)VkANo%8Sp?d{_!P%V$X8G_-r6G@fS%9&mKDHre9m0MjvcZL|lwp zfi4XhqwFn2I9Q{-7&X~O*j>82R6r|-JrSs|E4k<3CWKIsHV8l{e*eOpb5`YG?RGy~ z1oLI;#D;X`KMYt!bV4DEm`s76JHZLx1m9L9c=2Mhy8=o6fB0U}lf@xlCCOn#N2FO< zMcgTCTZ-w){Q&9;jEnWX$^f|fcNas-#jd9b{GWy-EeF;J!_JJ z|M2O%+?UF)0Y8hNM<^4l3ZB8Qx~YGQT@N zC)@$|q>^xng5RE)QFtI-?t?Lw(P$N*BcYi@2v_Lk3yRC=7Hai_KY#G(w+wksZ(c9g zEM#VUm3kYu=#hfx`6n&|zzZm<&S;nyJSNG&y7viTeSLgad_aSP39MiD+mT8Pu_2O4 z=!55Mx7RPO=SodEK95dinNyOdUK_FV?U)G-`80?}J55vylKN?J#fnFf7Ny?Uw@h;% zt;w3yCgL|(AtxdAXDo;XQH&;co!*;(ONq{lT3V&I28)1%u}A47 z0Qe?%Bw-?QuD8rs%+au$lqxaT6R#G1^)8FhM1d{cbmco*x~fw87c37c?HA^5WO3^^ z&bDq!$PRS7Wh7!BV=0_lExc8w@v=3G;z*4Z3{-|7=7hUQL2@Fnz!}0tz&%xI%Vcw) zDzu=>OFJ@d{(&1G`9k<$aFF|n1(5w`MKL_~ii!BuLmLKv6fXSIczuBT)e5JPS*}D; z*1OHS?GTY1;%}nZO6gu6_g&q~aqA(>P6d=0O^fmj#hNZ&c!`2Bk3s^*{CIL6TzySH z9Ui&$Y_zg7BL}Dz4!K(x;yU>C)gx2tyIbvALkpFOW9)SF8KsYP_}w1835tH9&QO!} zI2zvzNmZM@3OuUM;@^i>FL6CcWGmH*@@t>XX0GF{kP}(Qa~hD>Y4BpNFN0tr6uHko zzfU`9Ssi+;1kcM3pHRQFu#YRtkKSQ+KFu&zKn$9u~Xc zSPphNhmNf7APkf5d6#MOe+G?iQ0P?x_nE@*@7y3|<1H$3Q$cxHwa!(y*yj9Elf0wC zx=HcJqo5cS;PKvMC0z9J!_me0^~Qj3fYuEe)ae?cz&*&xlGE_Rg0ue|Nr>gf*L*Fc`xP|~bd7_va4%U6|D-(iClxnl&F`i5VD@)~34;3MsUKw= z7HlJQ3*>Juh$eQ-g~F6UyvX}(aFLHj(ed8hH}DL+|4F6rOc@{4?qzg&CAgfN#aRCR z2?6|>$$3GXvzPkf968a^5&1*_RtfUQp^lP-$~#etRKt7bx6DM&(!$*f`GTK#Qg38q zG#Zf1m`PeFHIN!|CCFtyS(A(=M(Qxg8oEOBZAC^OU~#eC$FY67&5*IIf$LN&!4~)E zzZF`DxV;Yg_%nz{P`(@#YQ<2vS6;evWQn6r?#i%_Ne(cw;2&9Fa1BiGf9x5^GW%;E z->=g;xdY+gU-Eby{T0ifd~tF&t%O*SdMHQeAUvkH4P~D!RsnU-j6YG?D+=-44dJ@& zH7u|19>}Eh!s+AJe_zXTh;MVH^od{Y*Z?cgr18YnZ>ljRm>OKHb}vody>m#2yGR+_ z+a&L}ENs(xiPW?lcywI zDK7Z5=QV9GmoYKo{tOm=A^Wz1R@EAtkY>U>!n$ov;Ygf-3KLpIB}#H1AR^tG^O6yZe(vKt+++f_m5#YD1sY|kk|s`${O*XKNdYwG9M^ZriixGtK#f?rI<-xhGePD%iAgTu?AB2Ia{JhF2^`9i8T5<`*m z9{swqdpg0_wp63ap3&Y3yEY~)N<6y^m*8NU!peOHG0-0_RNX;-iLy($WR1r~a2M6( zlL^afOI7l)Eb2HC${IfKhB{+-Ae~e2g!I3!L=$I~g*=w$vz))C5(l>m*(+m9QLesG z0n43t&tbQA%Ah_8^h1dq@9VOt;-A)K!3XlSMW(lH%zrXzy-+Cv#T<~jQc$%i%(>*o zP2qIy0&tbin>ja~EdVj*H*2)^T0tUqnR zFlgtKm7z1jp_ItR8O{$5eqG4+h}$SXY4XCZclso0KIkvePt9S&iHLmioUc2-Lk}Fa z2d%;bi=V3Q1b=MbWB7@7-imO=)gH#;X@xA!Jbg$JP24h`Xl*7dPcvBb#0Zm;h3Qoe zeU)E*j}uVFvP6MjD3G3~4q}>AidYp)^V)Xq4^=P&tfBS^4wxS}}3A z?Q!n%L_iB2iz2AGXbaT642G~&U#m)7huuBi<`Fj^{(JWX!Tkvr4|``xHw>Jn*Vi4p ze)I3Sb;eEFp7BK~&`X)|yWq#K-M)MMiHWo~SF(%fj>jFD?fnZ}z(!FJBnWow)(9Q8 zcwcb0H|qqxuH!WQz}=loMLw(+BT6}st>LzW&G!l-M5 zZ;V8D-bd%vfNEN(r&`ZOVrb4#TwZujhX-3-d3OmktFgPtQX3_8!=oP=A}q+{dl0Ku zjq}a=QOpWpVnt-hGp+AsS&(HTec+5-Q#EMc(2WMcO@sL9_-2P()!w5H1u2*F76pis zdjZ1ayN!$cS9mJGibC_?E*}Ccok#I*Y#Ft9X|Z&JjwS`Xjg@vUaPP&8yB=Jd?llgYE9-w0)c! zYTujid$uoku>7bj(IwSd^lZp_S9q+FwhIt(74le8I2*@5 z4Nomvm)kahcYNSFdc57;wQ@>OTwli$t!V7BE9v9Xbz)cWQm!TG59_tF#KCf9@taXm ztwM|lIoS`0Mv1ZS*e5$It~_sM9Fx74GoHH#r}>~_^{%Qv2E~s8<$|_g(o3nv;&j;` zk9h?|Wk&%oX8Y!@E-YY8Un8EJm4GUKOQZOd3^J%5$i~&_zn%UWMf{DN9*q1N{7|ad zI?wsoS8|-9{Ua32!pBsEt&Xqtq7cYid2~(lU*wvgKm4Hm&1rIyia{qa^mguKssuT}jn?s1`tjoH{ zcMxdp_w@YhbcO*fK@IJr;n5 z63AFzk2h;#>S4NH<_lW$GQNjPA=E{)N;X|oeb#{QB_LX?4njC5Fbl)$k-!Z zA~2+`S)^nvdcSG?(OP$*2*a=+P=E$*fsGV2W@B`~hHu*Ct+7_sD$zOBAI9n7nEai` zU~B7i3=7{mT_jT_b&acdNfc9b+iwj_i}Zy-KA_?;70sp6HbxI`?UI$lw3fFT!Ao7` zyIBTJL={1^(m)n;Jj}FZ0harA0Lel)BdS*@mt#753Txs7;>CgwB)374)=pk}bS;%< zc7X2nU!UMJn_l%tOJM6Y$oM^)$V9gW0>707NXxntC6Rw$tYEEu#Z@izt8L4*49W32 zZ(j^rW=p&W#Qi!c@O`l0q-9TXT4Z{skMd3i0qhd$`S$A-=j>^X5QGap<#wefx#l(W z1%U~X&7Llqd~RGAm#a~qI9>2xw7*1W z16G3eiIIp*b=8$yQACclzWw_aZkb6C7}EbuvZ^jr({`=!jdNYDjnAB>{`FCsTFF1a;{#K#1om^QxQ52BWN}UagA{5 ztWnpKD;Qbf?_P8K?)_-K@qLI4t_g1M76h0PzF$xNLtTZmH`t+nIgZ%!DdPY0X$v8` zbP>&ET^#k?-Pe<^Thj|mjD110C|T+d3zDG`@HFBpE&!T(tQ z*OV;`E@Bw8X`)Jf|N8CuxEKlLUo1pE4%yF~bBG03MR{?n@AkscKzV}hGAR;-yO!Vbvm|6J3*e@e@--A$?#hpS>14&DW$u`qWN zKx{-<`CL!2`oAvbfvv$LV{Kj>d+9d>F^0~r-Npf4<_p@P_fo1>T*{$t00YtaKcE%7 zZj1|8+e|F4r9I_%_7}HcOjAz5_BWj9QJs#qoRtt3dZ~G*p41}_F#5P5*1r9ERuwu* zgFJk;V89L}u$*iRgM!HV)obh>Dlhg6^YGSSEyI!@SXm)A2+9uqYok0y|4j?^yx=&l zY7*h@VUR!^(d%^y3|5F+Qav?n{$-diop@qm!*G1ZNH59{UkQ4H_+B9ix9K7r!bCtY z*H|Zr@7%YyYv=~O+otiC#j&sp`pp@h$|6Q~<)B4%?c~P9dX?o%I06V`*po0MRNMxU zU){lp$ImT;w?X&G3&S#WtFsffp-)hKDyfh}yaLPz<5sQ_Zbyh&3wCBj0=9asKx5x$t|B z`*P&IB*~QfWW}uRh_SxnfV+#_GF-2dw}ng z0v;B1vxnMw>o?Hp)@k_{WSwsQcnDU)Wva{d4ue7R8;8OrHAHR-odigHzMOS6QP3JQ zE!;Fxw*0|v?|QF)OY_I>8o`->cz{D$h=%=*9`DVWc=Rb%G&y~pcgqj z!H>40!E_n#Xu_%|9c&&}_<}>cKQE?$HG)klI$=zrdgpy%BmA+(!H6L)V9$!w_o*`t zFb_No_R+415x}NXpt*Rd3J>7$F-1lxExc%Y-iSw@qv-6o-70x1K30;{N@X?7iT8%f zSFj-(#J{ZmI%f=HEVV1;>-!WcdT0mCX}{{z=SX!=)q%lhlEafkdK6B;EOU$c3$4^u zBCe(xsf1%Xjv(bh@<4e@IC9=nsh(Ju5lm9T@Sq95eIq2g?+ekaf&U^k5^Y%}?B34W z-9Fh!9q2mOfUJ6g$lkOkNJS+W?k!l4F`7P>cMA3R=Nc5(xmcGSLXD@E(R@}5;TAaT ztOI8Ti?(cQfR`-(lq0eN z5-KZ1U?}2N{O6DWgEcP@6X3hTd*js#iaSU9JDd8UV2r2qF{xuA`0s9(5?5V7$*~V| zav3P_*$F>#Yr1$g>6AbfcGd&|yuaB}4tU?mZHVJZ@iN-5q2E)psW-M>bDsE zl;+~2zz}d&lbvSx%d?FOtta%(m7?Pi)|MXOFuH{!Pyy;)GOoD@F44t`-@5G-N_x$b z0lTzhfLEchN8sXF`xFav?8dxdGA}@PzoU&l12Ok4?68UTXvp}J%auR&I&U~x*VI2B z6QVIlw1Y|6M3r3x@a?bXnYsnZ|1dJczH!r0#6X3A->wQom3_=HKH2OmxJ%cCZzb5io9>j^Rmm zJN4_I+N{=khBr0W-?ZiEG=H!<`yLp@75{i!GDY-8*p{2-z(L6E%kc~6N$J3Am4APG zVE7fICIZK41^ztVl8*v@EvV;Y3G<6zG!@hE6vpT!SQ7C1~mp4C@zEX7z@R28klIFeuPJ2i60); zyA~AwdCIgn*#$7ME}AzD&`Zh@;hYJ&z#KahmO9>`rpHSjG;5;}%Pier8*j`F37*2x znZZ82wQ?lIyReoDN-ZDtM~3atvQL^~m08cG#m7u~%A@7Ye#*(FSz(ug5L!-%{hW|c zK3VkpZq0fn@z1C}#ebeY;|+uxUiaUJa(HjC%UU3!Lssl*!sIiez=K(CxO$<8raK1mhSZ8w z>C17%6KA$?=O}O5MM$J$=kUXt!d;1bHN9J2KVUdm1%{i+12l%R*+P3M?@_T2x7dBO z^ri$(gxu9@1=8@T&F-;QZ3p0cZ44MF$_9X2V^2O=;#BIp)&ALmRR?++QQC=2D@WAA zj6D2rx*h41(%MfvgfdmN7z}aVv1rg2)#WFqF4m;_N2j1wc37ezJ6G zVKl^A^{mC|7m`HVnPcATj^Pq{BwU<5WMi1pp_}cR(mgic6ybn3uGVUwz}w_mVGokT zsscf8y?B0?BTkb{$G?%x5PhZK$i)?~SpTTww%4u86*$r`>KBugQrU!D07c8zr$>w) zarY^Q?3!9bdppB?b}-u`Z(l3elW8Ensl!Wy-AOKgEXc|3OT^?o)-+{fRwe!~ z?53Qmy1zOhh3PL6;YqK<>RX#MLJkxU=SPk%!gF(P&a*0KBIfr^&&_BHzjRNms@*@| za!*8_R*1#DNcCQ+b-{YL($o=~{QDv0kjC^*CH#XD&TB~Ip2-CR4YXuUl%{ZsMa1=c zZu4kVVD@{*mfsR54A+xCuS&q~yDwKKzqRh~WTC#=QJ;;1rrXk2H~xFgnvq6cD#Vv` zEZEQk!brF8^YU)0i!(bH9uM07So|*(J$u1+(;&%G%KYpUy+2t}B$4df5Ey2v+8VjJ z{`p^Nf2WKnvGOkLu^Bp~@ViGL!_$B15yTI;x1GWP%$V*i79Xr>R_x2z3(eZmR5tUuu>n!|? zwf6)ERCoVs>%YC%q5n?Glu9vm^#*?CU2r!^3UGaT+j|qObrdcR)U^u^&nEd$2CyoW zEJYOYE6`Z@@AX2gje67`3RxaY2!N{Y)dF2=(^;m-J7&EIW$U3%rBuVD+Xr0KLo|>| z(Q8xv#$;<}#d^w$IHyGgwM6OQ_5yl$a6qUH209FkbYc}?)K?p|3 z`Pi$WyTg|ON%+A>XQF`4zR=MlE#ubTXUi8jj3NwgI)5M5!e)Ld#*b8G^9PiGpS}AJ zvB|USrn%xS6UGKGpCXU{G+|QHRU)-NL1>AVZ1Zp_gYSVMi$pk^-`0PGiRaz<&pD~t zUv4#6hudqLf9Iv@Qy(HEU&jSlcGFxR!Bf6J{#(#l)+dyx=WGV!`qMC`UHXled4{g! z!iFO@;^g$OMd;K2`taKQIgV7y{Hj!Vq8}$Y^@1S>=hC2po`7lz?jb#o4q)c@Cm1i9 zoaRSy=tkC0?G@g-yTxSPj3mO{Czkgx=Vq~P#)mNEtJov4lts;G3Vq$y%`nBqRYuxZ z?BrNTS-;r;lHq=p+Q(WL`|MAZ$ckTl_T3*d=aA<{rf5T}?mtnrKU&LlAMzAUc#AH< z9eks)*C*7hSCw>PFh)Y{1_(c4;5~L7(^#}wS}gfcMITe)B&S%E)Kj~BjK;4wRr+55 zq6l60p5{}74X2MVfNhM`!!OM*It&1>>h~VvcjRZJHQfNMG0JVOoeFf_&9rwAzk41i zE%CLkZ2u&%vFO0?AONWP4a`TT0qpU;OQ!+oVTH9de8bqe4nH8Q;r^jnb0Vmdis+p+ z%WHkC?2yc78KBeF{o~8fvBN-#-q9krp4?16CD-Z!G=lA)2;#EaB-nZ%>B+{gc2NSgi=^g*C~;LwMx@{x}2BKQ(}@jtr5;d5q2# z4nS2>pS8F21OTlUXj1M9bzcKi*xh3QUvAa|c``W{>6ip|Oaui087i6^QUiR)00%_? z2<4eky=%1UUs%wgg93Q>2T&vfLE0-pH5{^%@H-1Q!~htJ{W|+L1Q_8N!{#Y$4BsHq ze+Y%s1mQXMtXIDDPu3651K37z@f$M8Gm(0?>u7#{*4@tEUSf?gR1X5=1~I`4Fl2?U zzbT;IQTOBb7ywhN`7`16Gn~crAz}ZqnFI(SLncbwy;_69Lfg+=tv41|(uLW3S)= zn_Jt1@$k4(3;~d=)gY{`hu@L_;{Gn6y$`wDeje{u8VIg&NL-__9u!v8RiyV!7;6+c z>Vm+yXAsCo-BInTJk%8|keXugd-=tBbGW9Mfo(YvKPUh|+OrtItpDuz*Pq`4u0Gs% z$_sGZ*~8=gQXm@pI0nb}MgTesNZh{|c*F&jzU%`O%W#Q4KpEZ|2m1EOgEGI-niAZ< z8rv8GK%W7;4nf}w0lu{sVGW);8{7y1cJC@cBLJki{o7^>>|O+HtOXb{JuoG84!q;Q zs1b-O2f*oX3n&F!pq&w=4ghK>FclIt7t6343RN1YeT*>l2{Q%CoNB9tOeqsP~ z;t=381ibG6)qiRoJ&Lxm9)B1PO)q5fkwi2XGJuLU7NYHP0HsR*A^_ZgMkeMkJeYp) z*pDD)jpcK%3D+TD*s<@4_0FI||8i0xwlN4e29L)4GY7Q$APeWO3(DhT2e_`Za;^Wk zN-I$10J8r~e+6y&#m`{z3flwnR5_sIs$&d={>oGx+eG%a+F!I__97heAp|fNNdqWQ z-1b&GAY0hp{8j(E7d?sD4~dKUZIVYeS4jjaM(_P?I3SuAy?<=!KR!w- zfvhbcy5)K&DR>e#Zz1GDdeegjEBWy%#i7~>C}UP)JB$?<_KiOUQ+;MfQ4F9kiuECc zxSh0on@??W28GSr5VG@Od91!*BO!Rl!ln9_wLI(^oxnJ)^;6Qr+i#(~?sZz}KQy;Y z0P=cKNKlA`gdV|vzbHiWHzE=tHpjpuBKqX{hZ$PFJVr=F5LchV8eIoGKel!4?@)Gd zhVG<9vc3qJLqq?@Oag?9IG}KAFYo*VFF$4dz2jkhoBql)U&W10r4_|woow&xB)>Vc2J8q0)m$xTA)fL0J_Gt}3G=Pi{5fW#kU0&9%cg0VPA9{HlLPSpgssn`_#@&JCX~Dt>+WyUqpbFwj!J z{nvd@M}#OBbAdHCNVUH-UL7!vKMzG6D)CkQ^?mW}4YNHquqSWzOS4z)uTD^1Ck+BC zrkl3I%vg05)&28t9iRq?bEj}FBdG99g0=LY=zxBvaX9YC1OP-)Bm6Tf=&NVpKTi4D z0eS4VfHwcG_TOOy6e8kMkl&PC-@!~ID*Q*|@5XjF`sLT=-{1fDSOH}=16Oj{y>c&K zt+~^D5gp-^Wv{Tg2m({5{5t#7`QPsXu-E}b7Do^>7rK`2&{l1Y!ZSpR;&Vg)c+J~w z3w&0Fak|kZ|Bw~`ul^U|4>&smW^=3&S^fk85I$P${;8KO%X0>e0=@EQCv5o|$&s)4 zi}u#cpoyggnjR>+{!;#EQG@WwS4O_-^J+v*;#bL@X&l>q!E|F>C5eK_dTsQKg)v`H z9*vtBZ7dUh<2bAQhn4p8AB@AgIFpTX+Ve8LAlK?^5J%vkJJ3+#uE95T#&p- zW2*JFz?lG2`D+;2=Q{Jh*x;}J!;QQq7&OXx3#7k*%HOhpY1POMxk)fUrsj0pWWNAg z^8!NaQ(tYiK{C&==QvdT3tICU#*TXZ=o!eo<|^ZWuK~1PKW}41dP_p4%~keEejU(&L|CtJza!08`ZCr%|91#*en714+A@Pe#yanP@WJ13*6{qB z72j##)iVJNn0Z+-l|Sgp>qgGEQSJ)}A75E>sjX69Ko^7l(_5v!D}uk`g87->nt&?+ zN7mx&bBL}~NBKodu#66M9BZ5CAT7UgB8OH h(+!zLKY5G)@;`RP;lt>zbHxAv002ovPDHLkV1m&KAB6w_ literal 0 HcmV?d00001 diff --git a/test/data/html/js/jquery-2.1.4.min.js b/test/data/html/js/jquery-2.1.4.min.js new file mode 100644 index 000000000..49990d6e1 --- /dev/null +++ b/test/data/html/js/jquery-2.1.4.min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){ +return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*\s*$/g,ia={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("