From f8f9fd57740f964df6ee31fd6514a179fce453e4 Mon Sep 17 00:00:00 2001
From: Aras Abbasi
Date: Tue, 31 Oct 2023 19:04:54 +0100
Subject: [PATCH 01/27] chore: fix the ci (#5020)
* chore: drop node 19, add node 20 and 21 to workflows
* update karma deps
* use 'moz:debuggerAdress'
* .
* debug
* .
* patch webdriverio
* fix lint
* improve ci
---
.github/workflows/browser-test.yml | 11 +-
.github/workflows/delete-runs.yml | 1 +
.github/workflows/mocha.yml | 88 +-
.github/workflows/nightly-site-deploy.yml | 2 +-
karma.conf.js | 20 +-
package-lock.json | 1835 ++++++++++++---------
package.json | 9 +-
7 files changed, 1157 insertions(+), 809 deletions(-)
diff --git a/.github/workflows/browser-test.yml b/.github/workflows/browser-test.yml
index 460684ce06..a037f6cc56 100644
--- a/.github/workflows/browser-test.yml
+++ b/.github/workflows/browser-test.yml
@@ -12,19 +12,18 @@ jobs:
runs-on: ubuntu-latest
if: contains(github.event.pull_request.labels.*.name, 'run-browser-test')
steps:
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
- node-version: 16
- - uses: actions/checkout@v3
+ node-version: lts/*
+ - uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
+ persist-credentials: false
- name: 'Cache node_modules'
uses: actions/cache@v3
with:
path: '~/.npm'
- key: "ubuntu-latest-node-full-v16-${{ hashFiles('**/package-lock.json') }}"
- restore-keys: |
- ubuntu-latest-node-full-v16-
+ key: "ubuntu-latest-node-full-lts-${{ hashFiles('**/package-lock.json') }}"
- name: Install Dependencies
run: npm ci
- name: Run Browser Tests
diff --git a/.github/workflows/delete-runs.yml b/.github/workflows/delete-runs.yml
index ac0d26ebca..326f8424b7 100644
--- a/.github/workflows/delete-runs.yml
+++ b/.github/workflows/delete-runs.yml
@@ -4,6 +4,7 @@ on:
inputs:
days:
description: 'Number of days'
+ type: number
required: true
default: 180
diff --git a/.github/workflows/mocha.yml b/.github/workflows/mocha.yml
index 4acb0f9d8f..a71d47804e 100644
--- a/.github/workflows/mocha.yml
+++ b/.github/workflows/mocha.yml
@@ -22,8 +22,10 @@ jobs:
- name: Check event pull_request
if: github.event_name == 'pull_request'
run: 'echo pull_request: run workflow'
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
if: github.event_name == 'push'
+ with:
+ persist-credentials: false
- name: Check event push
id: findPr
if: github.event_name == 'push'
@@ -45,10 +47,12 @@ jobs:
- 14
- 16
- 18
- - 19
+ - 20
steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-node@v3
+ - uses: actions/checkout@v4
+ with:
+ persist-credentials: false
+ - uses: actions/setup-node@v4
with:
node-version: '${{ matrix.node }}'
- run: npm install --production
@@ -59,17 +63,17 @@ jobs:
runs-on: ubuntu-latest
needs: smoke
steps:
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
- node-version: 16
- - uses: actions/checkout@v3
+ node-version: lts/*
+ - uses: actions/checkout@v4
+ with:
+ persist-credentials: false
- name: 'Cache node_modules'
uses: actions/cache@v3
with:
path: '~/.npm'
- key: "ubuntu-latest-node-v16-${{ hashFiles('**/package-lock.json') }}"
- restore-keys: |
- ubuntu-latest-node-v16-
+ key: "ubuntu-latest-node-lts-${{ hashFiles('**/package-lock.json') }}"
- name: Install Dependencies
run: npm ci --ignore-scripts
- name: 'Check lint'
@@ -90,17 +94,19 @@ jobs:
- 14
- 16
- 18
- - 19
+ - 20
include:
- os: ubuntu-latest
node: 16
env:
COVERAGE: 1
steps:
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
node-version: '${{ matrix.node }}'
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
+ with:
+ persist-credentials: false
- name: Get npm cache directory in Windows
id: npm-cache
if: ${{ matrix.os == 'windows-2019' }}
@@ -111,8 +117,6 @@ jobs:
with:
path: ${{ matrix.os == 'ubuntu-latest' && '~/.npm' || steps.npm-cache.outputs.dir }}
key: "${{ matrix.os }}-node-v${{ matrix.node }}-${{ hashFiles('**/package-lock.json') }}"
- restore-keys: |
- ${{ matrix.os }}-node-v${{ matrix.node }}-
- name: Install Dependencies
run: npm ci --ignore-scripts
- name: Install Annotation Support
@@ -133,27 +137,64 @@ jobs:
with:
github-token: '${{ secrets.GITHUB_TOKEN }}'
- test-browser:
- name: 'Browser Tests'
+ test-browser-local:
+ name: Browser Test [ChromeHeadless]
needs: smoke
runs-on: ubuntu-latest
timeout-minutes: 20
# Don't run forked 'pull_request' without saucelabs token
if: github.event_name == 'push' || !github.event.pull_request.head.repo.fork
steps:
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
+ with:
+ node-version: lts/*
+ - uses: actions/checkout@v4
+ with:
+ persist-credentials: false
+ - name: 'Cache node_modules'
+ uses: actions/cache@v3
+ with:
+ path: '~/.npm'
+ # this key is different than above, since we are running scripts
+ # (builds, postinstall lifecycle hooks, etc.)
+ key: "ubuntu-latest-node-full-lts-${{ hashFiles('**/package-lock.json') }}"
+ - name: Install Dependencies
+ run: npm ci
+ - name: Run Browser Tests
+ run: npm start test.browser
+ env:
+ BROWSER: ChromeHeadless
+
+ test-browser-saucelabs:
+ name: Browser Tests on SauceLabs [${{ matrix.browser }}]
+ needs:
+ - smoke
+ - test-browser-local
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
+ strategy:
+ matrix:
+ browser:
+ - firefox@latest
+ - chrome@latest
+ - MicrosoftEdge@latest
+ - safari@latest
+ # Don't run forked 'pull_request' without saucelabs token
+ if: github.event_name == 'push' || !github.event.pull_request.head.repo.fork
+ steps:
+ - uses: actions/setup-node@v4
+ with:
+ node-version: lts/*
+ - uses: actions/checkout@v4
with:
- node-version: 16
- - uses: actions/checkout@v3
+ persist-credentials: false
- name: 'Cache node_modules'
uses: actions/cache@v3
with:
path: '~/.npm'
# this key is different than above, since we are running scripts
# (builds, postinstall lifecycle hooks, etc.)
- key: "ubuntu-latest-node-full-v16-${{ hashFiles('**/package-lock.json') }}"
- restore-keys: |
- ubuntu-latest-node-full-v16-
+ key: "ubuntu-latest-node-full-lts-${{ hashFiles('**/package-lock.json') }}"
- name: Install Dependencies
run: npm ci
- name: Run Browser Tests
@@ -161,3 +202,4 @@ jobs:
env:
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
+ BROWSER: ${{ matrix.browser }}
diff --git a/.github/workflows/nightly-site-deploy.yml b/.github/workflows/nightly-site-deploy.yml
index ee426ace2b..bd1ac0e3af 100644
--- a/.github/workflows/nightly-site-deploy.yml
+++ b/.github/workflows/nightly-site-deploy.yml
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Webhook Action
- uses: joelwmale/webhook-action@1.0.0
+ uses: joelwmale/webhook-action@2.3.2
env:
data: ''
WEBHOOK_URL: ${{ secrets.NETLIFY_NIGHTLY_DEPLOY_URL }}
diff --git a/karma.conf.js b/karma.conf.js
index dbe3d53617..728632151b 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -28,6 +28,7 @@ const rollupPlugin = require('./scripts/karma-rollup-plugin');
const BASE_BUNDLE_DIR_PATH = path.join(__dirname, '.karma');
const env = process.env;
const hostname = os.hostname();
+const BROWSER = env.BROWSER;
const SAUCE_BROWSER_PLATFORM_MAP = {
'chrome@latest': 'Windows 10',
@@ -90,8 +91,7 @@ module.exports = config => {
const buildId = `github-${env.GITHUB_RUN_ID}_${env.GITHUB_RUN_NUMBER}`;
bundleDirPath = path.join(BASE_BUNDLE_DIR_PATH, buildId);
sauceConfig = {
- build: buildId,
- geckodriverVersion: '0.30.0' // temporary workaround for firefox
+ build: buildId
};
} else {
console.error(`Local environment (${hostname}) detected`);
@@ -121,6 +121,13 @@ module.exports = config => {
files: [...cfg.files, {pattern: './mocha.js.map', included: false}]
};
+ if (BROWSER) {
+ cfg = {
+ ...cfg,
+ browsers: [BROWSER]
+ };
+ }
+
config.set(cfg);
};
@@ -172,7 +179,7 @@ const addSauceTests = (cfg, sauceLabs) => {
const customLaunchers = sauceBrowsers.reduce((acc, sauceBrowser) => {
const platformName = SAUCE_BROWSER_PLATFORM_MAP[sauceBrowser];
const [browserName, browserVersion] = sauceBrowser.split('@');
- return {
+ const result = {
...acc,
[sauceBrowser]: {
base: 'SauceLabs',
@@ -182,9 +189,13 @@ const addSauceTests = (cfg, sauceLabs) => {
'sauce:options': sauceLabs
}
};
+ if (browserName === 'firefox') {
+ result[sauceBrowser]['sauce:options']['moz:debuggerAddress'] = true;
+ }
+ return result;
}, {});
- return {
+ const result = {
...cfg,
reporters: [...cfg.reporters, 'saucelabs'],
browsers: [...cfg.browsers, ...sauceBrowsers],
@@ -198,6 +209,7 @@ const addSauceTests = (cfg, sauceLabs) => {
captureTimeout: 120000,
browserNoActivityTimeout: 20000
};
+ return result;
}
return {...cfg};
};
diff --git a/package-lock.json b/package-lock.json
index 730f5dcbe5..5faf1fbb33 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -46,7 +46,7 @@
"@rollup/plugin-node-resolve": "^13.1.3",
"assetgraph-builder": "^9.0.0",
"autoprefixer": "^9.8.6",
- "canvas": "^2.9.0",
+ "canvas": "^2.11.2",
"chai": "^4.3.4",
"coffeescript": "^2.6.1",
"coveralls": "^3.1.1",
@@ -65,8 +65,8 @@
"hyperlink": "^5.0.4",
"jsdoc": "^3.6.7",
"jsdoc-ts-utils": "^2.0.1",
- "karma": "^6.3.11",
- "karma-chrome-launcher": "^3.1.0",
+ "karma": "^6.4.2",
+ "karma-chrome-launcher": "^3.2.0",
"karma-mocha": "^2.0.1",
"karma-mocha-reporter": "^2.2.5",
"karma-sauce-launcher": "^4.3.6",
@@ -109,10 +109,6 @@
},
"engines": {
"node": ">= 14.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/mochajs"
}
},
"node_modules/@11ty/dependency-tree": {
@@ -1444,6 +1440,12 @@
"node": ">=10.13.0"
}
},
+ "node_modules/@types/aria-query": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.3.tgz",
+ "integrity": "sha512-0Z6Tr7wjKJIk4OUEjVUQMtyunLDy339vcMaj38Kpj6jM2OE1p3S4kXExKZ7a3uXQAPCoy3sbrP1wibDKaf39oA==",
+ "dev": true
+ },
"node_modules/@types/cacheable-request": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
@@ -1506,6 +1508,22 @@
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
"dev": true
},
+ "node_modules/@types/glob": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==",
+ "dev": true,
+ "dependencies": {
+ "@types/minimatch": "^5.1.2",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/glob/node_modules/@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
+ "dev": true
+ },
"node_modules/@types/http-cache-semantics": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
@@ -1594,25 +1612,6 @@
"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
"dev": true
},
- "node_modules/@types/puppeteer": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-7.0.4.tgz",
- "integrity": "sha512-ja78vquZc8y+GM2al07GZqWDKQskQXygCDiu0e3uO0DMRKqE0MjrFBFmTulfPYzLB6WnL7Kl2tFPy0WXSpPomg==",
- "deprecated": "This is a stub types definition. puppeteer provides its own type definitions, so you do not need this installed.",
- "dev": true,
- "dependencies": {
- "puppeteer": "*"
- }
- },
- "node_modules/@types/puppeteer-core": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@types/puppeteer-core/-/puppeteer-core-5.4.0.tgz",
- "integrity": "sha512-yqRPuv4EFcSkTyin6Yy17pN6Qz2vwVwTCJIDYMXbE3j8vTPhv0nCQlZOl5xfi0WHUkqvQsjAR8hAfjeMCoetwg==",
- "dev": true,
- "dependencies": {
- "@types/puppeteer": "*"
- }
- },
"node_modules/@types/q": {
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz",
@@ -1637,6 +1636,12 @@
"@types/node": "*"
}
},
+ "node_modules/@types/ua-parser-js": {
+ "version": "0.7.38",
+ "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.38.tgz",
+ "integrity": "sha512-59CA5oavBEWSNLtS/BChj9xntiWMsIf9IytjxmBo9OuZEYuRzRf3K1ARzFPlXTOz5Zm2wXI38AP9RlLqDYMToQ==",
+ "dev": true
+ },
"node_modules/@types/unist": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
@@ -1650,9 +1655,9 @@
"dev": true
},
"node_modules/@types/yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.2.tgz",
+ "integrity": "sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==",
"dev": true,
"optional": true,
"dependencies": {
@@ -1660,107 +1665,260 @@
}
},
"node_modules/@wdio/config": {
- "version": "6.12.1",
- "resolved": "https://registry.npmjs.org/@wdio/config/-/config-6.12.1.tgz",
- "integrity": "sha512-V5hTIW5FNlZ1W33smHF4Rd5BKjGW2KeYhyXDQfXHjqLCeRiirZ9fABCo9plaVQDnwWSUMWYaAaIAifV82/oJCQ==",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.33.0.tgz",
+ "integrity": "sha512-SaCZNKrDtBghf7ujyaxTiU4pBW+1Kms32shSoXpJ/wFop6/MiA7nb19qpUPoJtEDw5/NOKevUKz8nBMBXphiew==",
"dev": true,
"dependencies": {
- "@wdio/logger": "6.10.10",
+ "@types/glob": "^8.1.0",
+ "@wdio/logger": "7.26.0",
+ "@wdio/types": "7.33.0",
+ "@wdio/utils": "7.33.0",
"deepmerge": "^4.0.0",
- "glob": "^7.1.2"
+ "glob": "^8.0.3"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=12.0.0"
}
},
- "node_modules/@wdio/config/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/@wdio/logger": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.26.0.tgz",
+ "integrity": "sha512-kQj9s5JudAG9qB+zAAcYGPHVfATl2oqKgqj47yjehOQ1zzG33xmtL1ArFbQKWhDG32y1A8sN6b0pIqBEIwgg8Q==",
"dev": true,
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "chalk": "^4.0.0",
+ "loglevel": "^1.6.0",
+ "loglevel-plugin-prefix": "^0.8.4",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
}
},
- "node_modules/@wdio/config/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "node_modules/@wdio/protocols": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.27.0.tgz",
+ "integrity": "sha512-hT/U22R5i3HhwPjkaKAG0yd59eaOaZB0eibRj2+esCImkb5Y6rg8FirrlYRxIGFVBl0+xZV0jKHzR5+o097nvg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@wdio/repl": {
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.33.0.tgz",
+ "integrity": "sha512-17KM9NCg+UVpZNbS8koT/917vklF5M8IQnw0kGwmJEo444ifTMxmLwQymbS2ovQKAKAQxlfdM7bpqMeI15kzsQ==",
"dev": true,
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "@wdio/utils": "7.33.0"
},
"engines": {
- "node": "*"
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@wdio/types": {
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.33.0.tgz",
+ "integrity": "sha512-tNcuN5Kl+i5CffaeTYV1omzAo4rVjiI1m9raIA8ph6iVteWdCzYv2/ImpGgFiBPb7Mf6VokU3+q9Slh5Jitaww==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "^18.0.0",
+ "got": "^11.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "typescript": "^4.6.2"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@wdio/types/node_modules/@sindresorhus/is": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
}
},
- "node_modules/@wdio/config/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/@wdio/types/node_modules/@szmarczak/http-timer": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
"dev": true,
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "defer-to-connect": "^2.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=10"
}
},
- "node_modules/@wdio/logger": {
- "version": "6.10.10",
- "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-6.10.10.tgz",
- "integrity": "sha512-2nh0hJz9HeZE0VIEMI+oPgjr/Q37ohrR9iqsl7f7GW5ik+PnKYCT9Eab5mR1GNMG60askwbskgGC1S9ygtvrSw==",
+ "node_modules/@wdio/types/node_modules/cacheable-request": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
"dev": true,
"dependencies": {
- "chalk": "^4.0.0",
- "loglevel": "^1.6.0",
- "loglevel-plugin-prefix": "^0.8.4",
- "strip-ansi": "^6.0.0"
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^4.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^6.0.1",
+ "responselike": "^2.0.0"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=8"
}
},
- "node_modules/@wdio/protocols": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-6.12.0.tgz",
- "integrity": "sha512-UhTBZxClCsM3VjaiDp4DoSCnsa7D1QNmI2kqEBfIpyNkT3GcZhJb7L+nL0fTkzCwi7+/uLastb3/aOwH99gt0A==",
+ "node_modules/@wdio/types/node_modules/decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"dev": true,
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
"engines": {
- "node": ">=10.0.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@wdio/repl": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-6.11.0.tgz",
- "integrity": "sha512-FxrFKiTkFyELNGGVEH1uijyvNY7lUpmff6x+FGskFGZB4uSRs0rxkOMaEjxnxw7QP1zgQKr2xC7GyO03gIGRGg==",
+ "node_modules/@wdio/types/node_modules/defer-to-connect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@wdio/types/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
"dependencies": {
- "@wdio/utils": "6.11.0"
+ "pump": "^3.0.0"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wdio/types/node_modules/got": {
+ "version": "11.8.6",
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
+ "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
+ "dev": true,
+ "dependencies": {
+ "@sindresorhus/is": "^4.0.0",
+ "@szmarczak/http-timer": "^4.0.5",
+ "@types/cacheable-request": "^6.0.1",
+ "@types/responselike": "^1.0.0",
+ "cacheable-lookup": "^5.0.3",
+ "cacheable-request": "^7.0.2",
+ "decompress-response": "^6.0.0",
+ "http2-wrapper": "^1.0.0-beta.5.2",
+ "lowercase-keys": "^2.0.0",
+ "p-cancelable": "^2.0.0",
+ "responselike": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
+ }
+ },
+ "node_modules/@wdio/types/node_modules/http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+ "dev": true
+ },
+ "node_modules/@wdio/types/node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "node_modules/@wdio/types/node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/@wdio/types/node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wdio/types/node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wdio/types/node_modules/p-cancelable": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wdio/types/node_modules/responselike": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
+ "dev": true,
+ "dependencies": {
+ "lowercase-keys": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@wdio/utils": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-6.11.0.tgz",
- "integrity": "sha512-vf0sOQzd28WbI26d6/ORrQ4XKWTzSlWLm9W/K/eJO0NASKPEzR+E+Q2kaa+MJ4FKXUpjbt+Lxfo+C26TzBk7tg==",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.33.0.tgz",
+ "integrity": "sha512-4kQQ86EvEN6fBY5+u7M08cT6LfJtpk1rHd203xyxmbmV9lpNv/OCl4CsC+SD0jGT0aZZqYSIJ/Pil07pAh5K0g==",
"dev": true,
"dependencies": {
- "@wdio/logger": "6.10.10"
+ "@wdio/logger": "7.26.0",
+ "@wdio/types": "7.33.0",
+ "p-iteration": "^1.1.8"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=12.0.0"
}
},
"node_modules/@webassemblyjs/ast": {
@@ -2429,6 +2587,15 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
+ "node_modules/aria-query": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
+ "dev": true,
+ "dependencies": {
+ "dequal": "^2.0.3"
+ }
+ },
"node_modules/array-buffer-byte-length": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
@@ -3029,27 +3196,6 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"dev": true
},
- "node_modules/at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "dev": true,
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "dev": true,
- "bin": {
- "atob": "bin/atob.js"
- },
- "engines": {
- "node": ">= 4.5.0"
- }
- },
"node_modules/autolinker": {
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz",
@@ -4376,9 +4522,9 @@
]
},
"node_modules/canvas": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.0.tgz",
- "integrity": "sha512-bdTjFexjKJEwtIo0oRx8eD4G2yWoUOXP9lj279jmQ2zMnTQhT8C3512OKz3s+ZOaQlLbE7TuVvRDYDB3Llyy5g==",
+ "version": "2.11.2",
+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz",
+ "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@@ -4620,26 +4766,21 @@
}
},
"node_modules/chrome-launcher": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz",
- "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==",
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
+ "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
"dev": true,
"dependencies": {
"@types/node": "*",
- "escape-string-regexp": "^1.0.5",
+ "escape-string-regexp": "^4.0.0",
"is-wsl": "^2.2.0",
- "lighthouse-logger": "^1.0.0",
- "mkdirp": "^0.5.3",
- "rimraf": "^3.0.2"
- }
- },
- "node_modules/chrome-launcher/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
+ "lighthouse-logger": "^1.0.0"
+ },
+ "bin": {
+ "print-chrome-path": "bin/print-chrome-path.js"
+ },
"engines": {
- "node": ">=0.8.0"
+ "node": ">=12.13.0"
}
},
"node_modules/chrome-launcher/node_modules/is-wsl": {
@@ -4663,24 +4804,6 @@
"node": ">=6.0"
}
},
- "node_modules/chromium-bidi": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.5.tgz",
- "integrity": "sha512-rkav9YzRfAshSTG3wNXF7P7yNiI29QAo1xBXElPoCoSQR5n20q3cOyVhDv6S7+GlF/CJ/emUxlQiR0xOPurkGg==",
- "dev": true,
- "dependencies": {
- "mitt": "3.0.0"
- },
- "peerDependencies": {
- "devtools-protocol": "*"
- }
- },
- "node_modules/chromium-bidi/node_modules/mitt": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
- "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==",
- "dev": true
- },
"node_modules/ci-info": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
@@ -6239,48 +6362,238 @@
}
},
"node_modules/devtools": {
- "version": "6.12.1",
- "resolved": "https://registry.npmjs.org/devtools/-/devtools-6.12.1.tgz",
- "integrity": "sha512-JyG46suEiZmld7/UVeogkCWM0zYGt+2ML/TI+SkEp+bTv9cs46cDb0pKF3glYZJA7wVVL2gC07Ic0iCxyJEnCQ==",
- "dev": true,
- "dependencies": {
- "@wdio/config": "6.12.1",
- "@wdio/logger": "6.10.10",
- "@wdio/protocols": "6.12.0",
- "@wdio/utils": "6.11.0",
- "chrome-launcher": "^0.13.1",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.33.0.tgz",
+ "integrity": "sha512-9sxWcdZLOUtgvw4kotL8HqvIFkO/yuHUecgqCYXnqIzwdWSoxWCeKAyZhOJNMeFtzjEnHGvIrUIquEuifk2STg==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "^18.0.0",
+ "@types/ua-parser-js": "^0.7.33",
+ "@wdio/config": "7.33.0",
+ "@wdio/logger": "7.26.0",
+ "@wdio/protocols": "7.27.0",
+ "@wdio/types": "7.33.0",
+ "@wdio/utils": "7.33.0",
+ "chrome-launcher": "^0.15.0",
"edge-paths": "^2.1.0",
- "puppeteer-core": "^5.1.0",
- "ua-parser-js": "^0.7.21",
- "uuid": "^8.0.0"
+ "puppeteer-core": "13.1.3",
+ "query-selector-shadow-dom": "^1.0.0",
+ "ua-parser-js": "^1.0.1",
+ "uuid": "^9.0.0"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=12.0.0"
}
},
"node_modules/devtools-protocol": {
- "version": "0.0.818844",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz",
- "integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==",
+ "version": "0.0.1203626",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1203626.tgz",
+ "integrity": "sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g==",
"dev": true
},
- "node_modules/devtools/node_modules/ua-parser-js": {
- "version": "0.7.34",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.34.tgz",
- "integrity": "sha512-cJMeh/eOILyGu0ejgTKB95yKT3zOenSe9UGE3vj6WfiOwgGYnmATUsnDixMFvdU+rNMvWih83hrUP8VwhF9yXQ==",
+ "node_modules/devtools/node_modules/debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/ua-parser-js"
- },
- {
- "type": "paypal",
- "url": "https://paypal.me/faisalman"
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
}
+ }
+ },
+ "node_modules/devtools/node_modules/devtools-protocol": {
+ "version": "0.0.948846",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.948846.tgz",
+ "integrity": "sha512-5fGyt9xmMqUl2VI7+rnUkKCiAQIpLns8sfQtTENy5L70ktbNw0Z3TFJ1JoFNYdx/jffz4YXU45VF75wKZD7sZQ==",
+ "dev": true
+ },
+ "node_modules/devtools/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devtools/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==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/devtools/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devtools/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/devtools/node_modules/node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/devtools/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/devtools/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devtools/node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devtools/node_modules/puppeteer-core": {
+ "version": "13.1.3",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.1.3.tgz",
+ "integrity": "sha512-96pzvVBzq5lUGt3L/QrIH3mxn3NfZylHeusNhq06xBAHPI0Upc0SC/9u7tXjL0oRnmcExeVRJivr1lj7Ah/yDQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "4.3.2",
+ "devtools-protocol": "0.0.948846",
+ "extract-zip": "2.0.1",
+ "https-proxy-agent": "5.0.0",
+ "node-fetch": "2.6.7",
+ "pkg-dir": "4.2.0",
+ "progress": "2.0.3",
+ "proxy-from-env": "1.1.0",
+ "rimraf": "3.0.2",
+ "tar-fs": "2.1.1",
+ "unbzip2-stream": "1.4.3",
+ "ws": "8.2.3"
+ },
+ "engines": {
+ "node": ">=10.18.1"
+ }
+ },
+ "node_modules/devtools/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true
+ },
+ "node_modules/devtools/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "dev": true,
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
],
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/devtools/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true
+ },
+ "node_modules/devtools/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/devtools/node_modules/ws": {
+ "version": "8.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
+ "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "dev": true,
"engines": {
- "node": "*"
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
"node_modules/di": {
@@ -8703,18 +9016,6 @@
"node": ">=8.0.0"
}
},
- "node_modules/get-port": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
- "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/get-proxy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
@@ -11071,9 +11372,9 @@
"dev": true
},
"node_modules/karma": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz",
- "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==",
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz",
+ "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==",
"dev": true,
"dependencies": {
"@colors/colors": "1.5.0",
@@ -11109,9 +11410,9 @@
}
},
"node_modules/karma-chrome-launcher": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz",
- "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz",
+ "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==",
"dev": true,
"dependencies": {
"which": "^1.2.1"
@@ -11424,6 +11725,18 @@
"node": ">=6"
}
},
+ "node_modules/ky": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/ky/-/ky-0.30.0.tgz",
+ "integrity": "sha512-X/u76z4JtDVq10u1JA5UQfatPxgPaVDMYTrgHyiTpGN2z4TMEJkIHsoSBBSg9SWZEIXTKsi9kHgiQ9o3Y/4yog==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/ky?sponsor=1"
+ }
+ },
"node_modules/latest-version": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
@@ -11483,9 +11796,9 @@
}
},
"node_modules/lighthouse-logger": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz",
- "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
+ "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
"dev": true,
"dependencies": {
"debug": "^2.6.9",
@@ -15049,6 +15362,15 @@
"node": ">=4"
}
},
+ "node_modules/p-iteration": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/p-iteration/-/p-iteration-1.1.8.tgz",
+ "integrity": "sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -15462,31 +15784,6 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
- "node_modules/path-scurry": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz",
- "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^7.14.1",
- "minipass": "^4.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/path-to-regexp": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
@@ -16827,51 +17124,34 @@
"node": ">=8"
}
},
- "node_modules/puppeteer": {
- "version": "19.7.5",
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.7.5.tgz",
- "integrity": "sha512-UqD8K+yaZa6/hwzP54AATCiHrEYGGxzQcse9cZzrtsVGd8wT0llCdYhsBp8n+zvnb1ofY0YFgI3TYZ/MiX5uXQ==",
+ "node_modules/puppeteer-core": {
+ "version": "13.7.0",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz",
+ "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==",
"dev": true,
- "hasInstallScript": true,
"dependencies": {
- "cosmiconfig": "8.1.0",
+ "cross-fetch": "3.1.5",
+ "debug": "4.3.4",
+ "devtools-protocol": "0.0.981744",
+ "extract-zip": "2.0.1",
"https-proxy-agent": "5.0.1",
+ "pkg-dir": "4.2.0",
"progress": "2.0.3",
"proxy-from-env": "1.1.0",
- "puppeteer-core": "19.7.5"
- }
- },
- "node_modules/puppeteer-core": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-5.5.0.tgz",
- "integrity": "sha512-tlA+1n+ziW/Db03hVV+bAecDKse8ihFRXYiEypBe9IlLRvOCzYFG6qrCMBYK34HO/Q/Ecjc+tvkHRAfLVH+NgQ==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.0",
- "devtools-protocol": "0.0.818844",
- "extract-zip": "^2.0.0",
- "https-proxy-agent": "^4.0.0",
- "node-fetch": "^2.6.1",
- "pkg-dir": "^4.2.0",
- "progress": "^2.0.1",
- "proxy-from-env": "^1.0.0",
- "rimraf": "^3.0.2",
- "tar-fs": "^2.0.0",
- "unbzip2-stream": "^1.3.3",
- "ws": "^7.2.3"
+ "rimraf": "3.0.2",
+ "tar-fs": "2.1.1",
+ "unbzip2-stream": "1.4.3",
+ "ws": "8.5.0"
},
"engines": {
"node": ">=10.18.1"
}
},
- "node_modules/puppeteer-core/node_modules/agent-base": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
- "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
- "dev": true,
- "engines": {
- "node": ">= 6.0.0"
- }
+ "node_modules/puppeteer-core/node_modules/devtools-protocol": {
+ "version": "0.0.981744",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
+ "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==",
+ "dev": true
},
"node_modules/puppeteer-core/node_modules/find-up": {
"version": "4.1.0",
@@ -16886,19 +17166,6 @@
"node": ">=8"
}
},
- "node_modules/puppeteer-core/node_modules/https-proxy-agent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
- "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
- "dev": true,
- "dependencies": {
- "agent-base": "5",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
"node_modules/puppeteer-core/node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -16950,122 +17217,17 @@
"node": ">=8"
}
},
- "node_modules/puppeteer/node_modules/cosmiconfig": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.0.tgz",
- "integrity": "sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==",
- "dev": true,
- "dependencies": {
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/puppeteer/node_modules/devtools-protocol": {
- "version": "0.0.1094867",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1094867.tgz",
- "integrity": "sha512-pmMDBKiRVjh0uKK6CT1WqZmM3hBVSgD+N2MrgyV1uNizAZMw4tx6i/RTc+/uCsKSCmg0xXx7arCP/OFcIwTsiQ==",
- "dev": true
- },
- "node_modules/puppeteer/node_modules/glob": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz",
- "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "minimatch": "^7.4.1",
- "minipass": "^4.2.4",
- "path-scurry": "^1.6.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/puppeteer/node_modules/minimatch": {
- "version": "7.4.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
- "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/puppeteer/node_modules/puppeteer-core": {
- "version": "19.7.5",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.7.5.tgz",
- "integrity": "sha512-EJuNha+SxPfaYFbkoWU80H3Wb1SiQH5fFyb2xdbWda0ziax5mhV63UMlqNfPeTDIWarwtR4OIcq/9VqY8HPOsg==",
- "dev": true,
- "dependencies": {
- "chromium-bidi": "0.4.5",
- "cross-fetch": "3.1.5",
- "debug": "4.3.4",
- "devtools-protocol": "0.0.1094867",
- "extract-zip": "2.0.1",
- "https-proxy-agent": "5.0.1",
- "proxy-from-env": "1.1.0",
- "rimraf": "4.4.0",
- "tar-fs": "2.1.1",
- "unbzip2-stream": "1.4.3",
- "ws": "8.12.1"
- },
- "engines": {
- "node": ">=14.14.0"
- },
- "peerDependencies": {
- "typescript": ">= 4.7.4"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/puppeteer/node_modules/rimraf": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz",
- "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==",
- "dev": true,
- "dependencies": {
- "glob": "^9.2.0"
- },
- "bin": {
- "rimraf": "dist/cjs/src/bin.js"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/puppeteer/node_modules/ws": {
- "version": "8.12.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz",
- "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==",
+ "node_modules/puppeteer-core/node_modules/ws": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
+ "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
"dev": true,
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
+ "utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
@@ -17110,6 +17272,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/query-selector-shadow-dom": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.1.tgz",
+ "integrity": "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==",
+ "dev": true
+ },
"node_modules/query-string": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
@@ -18090,9 +18258,9 @@
"dev": true
},
"node_modules/rgb2hex": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.2.3.tgz",
- "integrity": "sha512-clEe0m1xv+Tva1B/TOepuIcvLAxP0U+sCDfgt1SX1HmI2Ahr5/Cd/nzJM1e78NKVtWdoo0s33YehpFA8UfIShQ==",
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.2.5.tgz",
+ "integrity": "sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==",
"dev": true
},
"node_modules/rimraf": {
@@ -21778,20 +21946,23 @@
}
},
"node_modules/webdriver": {
- "version": "6.12.1",
- "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-6.12.1.tgz",
- "integrity": "sha512-3rZgAj9o2XHp16FDTzvUYaHelPMSPbO1TpLIMUT06DfdZjNYIzZiItpIb/NbQDTPmNhzd9cuGmdI56WFBGY2BA==",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.33.0.tgz",
+ "integrity": "sha512-cyMRAVUHgQhEBHojOeNet2e8GkfyvvjpioNCPcF6qUtT+URdagr8Mh0t4Fs+Jr0tpuMqFnw70xZexAcV/6I/jg==",
"dev": true,
"dependencies": {
- "@wdio/config": "6.12.1",
- "@wdio/logger": "6.10.10",
- "@wdio/protocols": "6.12.0",
- "@wdio/utils": "6.11.0",
+ "@types/node": "^18.0.0",
+ "@wdio/config": "7.33.0",
+ "@wdio/logger": "7.26.0",
+ "@wdio/protocols": "7.27.0",
+ "@wdio/types": "7.33.0",
+ "@wdio/utils": "7.33.0",
"got": "^11.0.2",
+ "ky": "0.30.0",
"lodash.merge": "^4.6.1"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=12.0.0"
}
},
"node_modules/webdriver/node_modules/@sindresorhus/is": {
@@ -21819,9 +21990,9 @@
}
},
"node_modules/webdriver/node_modules/cacheable-request": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
- "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
"dev": true,
"dependencies": {
"clone-response": "^1.0.2",
@@ -21913,9 +22084,9 @@
"dev": true
},
"node_modules/webdriver/node_modules/keyv": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz",
- "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==",
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"dependencies": {
"json-buffer": "3.0.1"
@@ -21964,74 +22135,70 @@
}
},
"node_modules/webdriverio": {
- "version": "6.12.1",
- "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-6.12.1.tgz",
- "integrity": "sha512-Nx7ge0vTWHVIRUbZCT+IuMwB5Q0Q5nLlYdgnmmJviUKLuc3XtaEBkYPTbhHWHgSBXsPZMIc023vZKNkn+6iyeQ==",
- "dev": true,
- "dependencies": {
- "@types/puppeteer-core": "^5.4.0",
- "@wdio/config": "6.12.1",
- "@wdio/logger": "6.10.10",
- "@wdio/repl": "6.11.0",
- "@wdio/utils": "6.11.0",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.33.0.tgz",
+ "integrity": "sha512-9MRPYkOEdsvsBpDJRSMAR+dLID6I65vKjpzNTTFJSjRLSHF6MByOH3mV2trlpIyV+TIp87GysYUVf3Cmufg9eg==",
+ "dev": true,
+ "dependencies": {
+ "@types/aria-query": "^5.0.0",
+ "@types/node": "^18.0.0",
+ "@wdio/config": "7.33.0",
+ "@wdio/logger": "7.26.0",
+ "@wdio/protocols": "7.27.0",
+ "@wdio/repl": "7.33.0",
+ "@wdio/types": "7.33.0",
+ "@wdio/utils": "7.33.0",
"archiver": "^5.0.0",
- "atob": "^2.1.2",
+ "aria-query": "^5.2.1",
"css-shorthand-properties": "^1.1.1",
"css-value": "^0.0.1",
- "devtools": "6.12.1",
- "fs-extra": "^9.0.1",
- "get-port": "^5.1.1",
+ "devtools": "7.33.0",
+ "devtools-protocol": "^0.0.1203626",
+ "fs-extra": "^11.1.1",
"grapheme-splitter": "^1.0.2",
"lodash.clonedeep": "^4.5.0",
"lodash.isobject": "^3.0.2",
"lodash.isplainobject": "^4.0.6",
"lodash.zip": "^4.2.0",
- "minimatch": "^3.0.4",
- "puppeteer-core": "^5.1.0",
+ "minimatch": "^6.0.4",
+ "puppeteer-core": "^13.1.3",
+ "query-selector-shadow-dom": "^1.0.0",
"resq": "^1.9.1",
- "rgb2hex": "0.2.3",
+ "rgb2hex": "0.2.5",
"serialize-error": "^8.0.0",
- "webdriver": "6.12.1"
+ "webdriver": "7.33.0"
},
"engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/webdriverio/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "node": ">=12.0.0"
}
},
"node_modules/webdriverio/node_modules/fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+ "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
"dev": true,
"dependencies": {
- "at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14.14"
}
},
"node_modules/webdriverio/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz",
+ "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==",
"dev": true,
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": "*"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/webdriverio/node_modules/serialize-error": {
@@ -23897,6 +24064,12 @@
"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
"dev": true
},
+ "@types/aria-query": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.3.tgz",
+ "integrity": "sha512-0Z6Tr7wjKJIk4OUEjVUQMtyunLDy339vcMaj38Kpj6jM2OE1p3S4kXExKZ7a3uXQAPCoy3sbrP1wibDKaf39oA==",
+ "dev": true
+ },
"@types/cacheable-request": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
@@ -23959,6 +24132,24 @@
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
"dev": true
},
+ "@types/glob": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==",
+ "dev": true,
+ "requires": {
+ "@types/minimatch": "^5.1.2",
+ "@types/node": "*"
+ },
+ "dependencies": {
+ "@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
+ "dev": true
+ }
+ }
+ },
"@types/http-cache-semantics": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
@@ -24047,24 +24238,6 @@
"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
"dev": true
},
- "@types/puppeteer": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-7.0.4.tgz",
- "integrity": "sha512-ja78vquZc8y+GM2al07GZqWDKQskQXygCDiu0e3uO0DMRKqE0MjrFBFmTulfPYzLB6WnL7Kl2tFPy0WXSpPomg==",
- "dev": true,
- "requires": {
- "puppeteer": "*"
- }
- },
- "@types/puppeteer-core": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@types/puppeteer-core/-/puppeteer-core-5.4.0.tgz",
- "integrity": "sha512-yqRPuv4EFcSkTyin6Yy17pN6Qz2vwVwTCJIDYMXbE3j8vTPhv0nCQlZOl5xfi0WHUkqvQsjAR8hAfjeMCoetwg==",
- "dev": true,
- "requires": {
- "@types/puppeteer": "*"
- }
- },
"@types/q": {
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz",
@@ -24089,6 +24262,12 @@
"@types/node": "*"
}
},
+ "@types/ua-parser-js": {
+ "version": "0.7.38",
+ "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.38.tgz",
+ "integrity": "sha512-59CA5oavBEWSNLtS/BChj9xntiWMsIf9IytjxmBo9OuZEYuRzRf3K1ARzFPlXTOz5Zm2wXI38AP9RlLqDYMToQ==",
+ "dev": true
+ },
"@types/unist": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
@@ -24102,9 +24281,9 @@
"dev": true
},
"@types/yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.2.tgz",
+ "integrity": "sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==",
"dev": true,
"optional": true,
"requires": {
@@ -24112,55 +24291,23 @@
}
},
"@wdio/config": {
- "version": "6.12.1",
- "resolved": "https://registry.npmjs.org/@wdio/config/-/config-6.12.1.tgz",
- "integrity": "sha512-V5hTIW5FNlZ1W33smHF4Rd5BKjGW2KeYhyXDQfXHjqLCeRiirZ9fABCo9plaVQDnwWSUMWYaAaIAifV82/oJCQ==",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.33.0.tgz",
+ "integrity": "sha512-SaCZNKrDtBghf7ujyaxTiU4pBW+1Kms32shSoXpJ/wFop6/MiA7nb19qpUPoJtEDw5/NOKevUKz8nBMBXphiew==",
"dev": true,
"requires": {
- "@wdio/logger": "6.10.10",
+ "@types/glob": "^8.1.0",
+ "@wdio/logger": "7.26.0",
+ "@wdio/types": "7.33.0",
+ "@wdio/utils": "7.33.0",
"deepmerge": "^4.0.0",
- "glob": "^7.1.2"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- }
+ "glob": "^8.0.3"
}
},
"@wdio/logger": {
- "version": "6.10.10",
- "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-6.10.10.tgz",
- "integrity": "sha512-2nh0hJz9HeZE0VIEMI+oPgjr/Q37ohrR9iqsl7f7GW5ik+PnKYCT9Eab5mR1GNMG60askwbskgGC1S9ygtvrSw==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.26.0.tgz",
+ "integrity": "sha512-kQj9s5JudAG9qB+zAAcYGPHVfATl2oqKgqj47yjehOQ1zzG33xmtL1ArFbQKWhDG32y1A8sN6b0pIqBEIwgg8Q==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
@@ -24170,27 +24317,162 @@
}
},
"@wdio/protocols": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-6.12.0.tgz",
- "integrity": "sha512-UhTBZxClCsM3VjaiDp4DoSCnsa7D1QNmI2kqEBfIpyNkT3GcZhJb7L+nL0fTkzCwi7+/uLastb3/aOwH99gt0A==",
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.27.0.tgz",
+ "integrity": "sha512-hT/U22R5i3HhwPjkaKAG0yd59eaOaZB0eibRj2+esCImkb5Y6rg8FirrlYRxIGFVBl0+xZV0jKHzR5+o097nvg==",
"dev": true
},
"@wdio/repl": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-6.11.0.tgz",
- "integrity": "sha512-FxrFKiTkFyELNGGVEH1uijyvNY7lUpmff6x+FGskFGZB4uSRs0rxkOMaEjxnxw7QP1zgQKr2xC7GyO03gIGRGg==",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.33.0.tgz",
+ "integrity": "sha512-17KM9NCg+UVpZNbS8koT/917vklF5M8IQnw0kGwmJEo444ifTMxmLwQymbS2ovQKAKAQxlfdM7bpqMeI15kzsQ==",
"dev": true,
"requires": {
- "@wdio/utils": "6.11.0"
+ "@wdio/utils": "7.33.0"
+ }
+ },
+ "@wdio/types": {
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.33.0.tgz",
+ "integrity": "sha512-tNcuN5Kl+i5CffaeTYV1omzAo4rVjiI1m9raIA8ph6iVteWdCzYv2/ImpGgFiBPb7Mf6VokU3+q9Slh5Jitaww==",
+ "dev": true,
+ "requires": {
+ "@types/node": "^18.0.0",
+ "got": "^11.8.1"
+ },
+ "dependencies": {
+ "@sindresorhus/is": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
+ "dev": true
+ },
+ "@szmarczak/http-timer": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
+ "dev": true,
+ "requires": {
+ "defer-to-connect": "^2.0.0"
+ }
+ },
+ "cacheable-request": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
+ "dev": true,
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^4.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^6.0.1",
+ "responselike": "^2.0.0"
+ }
+ },
+ "decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^3.1.0"
+ }
+ },
+ "defer-to-connect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "got": {
+ "version": "11.8.6",
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
+ "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^4.0.0",
+ "@szmarczak/http-timer": "^4.0.5",
+ "@types/cacheable-request": "^6.0.1",
+ "@types/responselike": "^1.0.0",
+ "cacheable-lookup": "^5.0.3",
+ "cacheable-request": "^7.0.2",
+ "decompress-response": "^6.0.0",
+ "http2-wrapper": "^1.0.0-beta.5.2",
+ "lowercase-keys": "^2.0.0",
+ "p-cancelable": "^2.0.0",
+ "responselike": "^2.0.0"
+ }
+ },
+ "http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+ "dev": true
+ },
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true
+ },
+ "mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "dev": true
+ },
+ "p-cancelable": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
+ "dev": true
+ },
+ "responselike": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
+ "dev": true,
+ "requires": {
+ "lowercase-keys": "^2.0.0"
+ }
+ }
}
},
"@wdio/utils": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-6.11.0.tgz",
- "integrity": "sha512-vf0sOQzd28WbI26d6/ORrQ4XKWTzSlWLm9W/K/eJO0NASKPEzR+E+Q2kaa+MJ4FKXUpjbt+Lxfo+C26TzBk7tg==",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.33.0.tgz",
+ "integrity": "sha512-4kQQ86EvEN6fBY5+u7M08cT6LfJtpk1rHd203xyxmbmV9lpNv/OCl4CsC+SD0jGT0aZZqYSIJ/Pil07pAh5K0g==",
"dev": true,
"requires": {
- "@wdio/logger": "6.10.10"
+ "@wdio/logger": "7.26.0",
+ "@wdio/types": "7.33.0",
+ "p-iteration": "^1.1.8"
}
},
"@webassemblyjs/ast": {
@@ -24731,6 +25013,15 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
+ "aria-query": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
+ "dev": true,
+ "requires": {
+ "dequal": "^2.0.3"
+ }
+ },
"array-buffer-byte-length": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
@@ -25228,18 +25519,6 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"dev": true
},
- "at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "dev": true
- },
- "atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "dev": true
- },
"autolinker": {
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz",
@@ -26320,9 +26599,9 @@
"dev": true
},
"canvas": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.0.tgz",
- "integrity": "sha512-bdTjFexjKJEwtIo0oRx8eD4G2yWoUOXP9lj279jmQ2zMnTQhT8C3512OKz3s+ZOaQlLbE7TuVvRDYDB3Llyy5g==",
+ "version": "2.11.2",
+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz",
+ "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==",
"dev": true,
"requires": {
"@mapbox/node-pre-gyp": "^1.0.0",
@@ -26527,25 +26806,17 @@
"dev": true
},
"chrome-launcher": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz",
- "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==",
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
+ "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
"dev": true,
"requires": {
"@types/node": "*",
- "escape-string-regexp": "^1.0.5",
+ "escape-string-regexp": "^4.0.0",
"is-wsl": "^2.2.0",
- "lighthouse-logger": "^1.0.0",
- "mkdirp": "^0.5.3",
- "rimraf": "^3.0.2"
+ "lighthouse-logger": "^1.0.0"
},
"dependencies": {
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
"is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
@@ -26563,23 +26834,6 @@
"integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
"dev": true
},
- "chromium-bidi": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.5.tgz",
- "integrity": "sha512-rkav9YzRfAshSTG3wNXF7P7yNiI29QAo1xBXElPoCoSQR5n20q3cOyVhDv6S7+GlF/CJ/emUxlQiR0xOPurkGg==",
- "dev": true,
- "requires": {
- "mitt": "3.0.0"
- },
- "dependencies": {
- "mitt": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
- "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==",
- "dev": true
- }
- }
- },
"ci-info": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
@@ -27832,34 +28086,173 @@
"dev": true
},
"devtools": {
- "version": "6.12.1",
- "resolved": "https://registry.npmjs.org/devtools/-/devtools-6.12.1.tgz",
- "integrity": "sha512-JyG46suEiZmld7/UVeogkCWM0zYGt+2ML/TI+SkEp+bTv9cs46cDb0pKF3glYZJA7wVVL2gC07Ic0iCxyJEnCQ==",
- "dev": true,
- "requires": {
- "@wdio/config": "6.12.1",
- "@wdio/logger": "6.10.10",
- "@wdio/protocols": "6.12.0",
- "@wdio/utils": "6.11.0",
- "chrome-launcher": "^0.13.1",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.33.0.tgz",
+ "integrity": "sha512-9sxWcdZLOUtgvw4kotL8HqvIFkO/yuHUecgqCYXnqIzwdWSoxWCeKAyZhOJNMeFtzjEnHGvIrUIquEuifk2STg==",
+ "dev": true,
+ "requires": {
+ "@types/node": "^18.0.0",
+ "@types/ua-parser-js": "^0.7.33",
+ "@wdio/config": "7.33.0",
+ "@wdio/logger": "7.26.0",
+ "@wdio/protocols": "7.27.0",
+ "@wdio/types": "7.33.0",
+ "@wdio/utils": "7.33.0",
+ "chrome-launcher": "^0.15.0",
"edge-paths": "^2.1.0",
- "puppeteer-core": "^5.1.0",
- "ua-parser-js": "^0.7.21",
- "uuid": "^8.0.0"
+ "puppeteer-core": "13.1.3",
+ "query-selector-shadow-dom": "^1.0.0",
+ "ua-parser-js": "^1.0.1",
+ "uuid": "^9.0.0"
},
"dependencies": {
- "ua-parser-js": {
- "version": "0.7.34",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.34.tgz",
- "integrity": "sha512-cJMeh/eOILyGu0ejgTKB95yKT3zOenSe9UGE3vj6WfiOwgGYnmATUsnDixMFvdU+rNMvWih83hrUP8VwhF9yXQ==",
+ "debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "devtools-protocol": {
+ "version": "0.0.948846",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.948846.tgz",
+ "integrity": "sha512-5fGyt9xmMqUl2VI7+rnUkKCiAQIpLns8sfQtTENy5L70ktbNw0Z3TFJ1JoFNYdx/jffz4YXU45VF75wKZD7sZQ==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "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-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dev": true,
+ "requires": {
+ "whatwg-url": "^5.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "puppeteer-core": {
+ "version": "13.1.3",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.1.3.tgz",
+ "integrity": "sha512-96pzvVBzq5lUGt3L/QrIH3mxn3NfZylHeusNhq06xBAHPI0Upc0SC/9u7tXjL0oRnmcExeVRJivr1lj7Ah/yDQ==",
+ "dev": true,
+ "requires": {
+ "debug": "4.3.2",
+ "devtools-protocol": "0.0.948846",
+ "extract-zip": "2.0.1",
+ "https-proxy-agent": "5.0.0",
+ "node-fetch": "2.6.7",
+ "pkg-dir": "4.2.0",
+ "progress": "2.0.3",
+ "proxy-from-env": "1.1.0",
+ "rimraf": "3.0.2",
+ "tar-fs": "2.1.1",
+ "unbzip2-stream": "1.4.3",
+ "ws": "8.2.3"
+ }
+ },
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true
+ },
+ "uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "dev": true
+ },
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "ws": {
+ "version": "8.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
+ "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "dev": true,
+ "requires": {}
}
}
},
"devtools-protocol": {
- "version": "0.0.818844",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz",
- "integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==",
+ "version": "0.0.1203626",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1203626.tgz",
+ "integrity": "sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g==",
"dev": true
},
"di": {
@@ -29735,12 +30128,6 @@
"integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true
},
- "get-port": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
- "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
- "dev": true
- },
"get-proxy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
@@ -31520,9 +31907,9 @@
"dev": true
},
"karma": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz",
- "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==",
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz",
+ "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==",
"dev": true,
"requires": {
"@colors/colors": "1.5.0",
@@ -31641,9 +32028,9 @@
}
},
"karma-chrome-launcher": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz",
- "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz",
+ "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==",
"dev": true,
"requires": {
"which": "^1.2.1"
@@ -31770,7 +32157,7 @@
"requires": {
"global-agent": "^2.1.12",
"saucelabs": "^4.6.3",
- "webdriverio": "^6.7.0"
+ "webdriverio": "^7.19.5"
}
},
"keyv": {
@@ -31803,6 +32190,12 @@
"integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
"dev": true
},
+ "ky": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/ky/-/ky-0.30.0.tgz",
+ "integrity": "sha512-X/u76z4JtDVq10u1JA5UQfatPxgPaVDMYTrgHyiTpGN2z4TMEJkIHsoSBBSg9SWZEIXTKsi9kHgiQ9o3Y/4yog==",
+ "dev": true
+ },
"latest-version": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
@@ -31847,9 +32240,9 @@
}
},
"lighthouse-logger": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz",
- "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
+ "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
"dev": true,
"requires": {
"debug": "^2.6.9",
@@ -34584,6 +34977,12 @@
"integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==",
"dev": true
},
+ "p-iteration": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/p-iteration/-/p-iteration-1.1.8.tgz",
+ "integrity": "sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ==",
+ "dev": true
+ },
"p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -34907,24 +35306,6 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
- "path-scurry": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz",
- "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==",
- "dev": true,
- "requires": {
- "lru-cache": "^7.14.1",
- "minipass": "^4.0.2"
- },
- "dependencies": {
- "lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
- "dev": true
- }
- }
- },
"path-to-regexp": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
@@ -35916,119 +36297,30 @@
"escape-goat": "^2.0.0"
}
},
- "puppeteer": {
- "version": "19.7.5",
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.7.5.tgz",
- "integrity": "sha512-UqD8K+yaZa6/hwzP54AATCiHrEYGGxzQcse9cZzrtsVGd8wT0llCdYhsBp8n+zvnb1ofY0YFgI3TYZ/MiX5uXQ==",
+ "puppeteer-core": {
+ "version": "13.7.0",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz",
+ "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==",
"dev": true,
"requires": {
- "cosmiconfig": "8.1.0",
+ "cross-fetch": "3.1.5",
+ "debug": "4.3.4",
+ "devtools-protocol": "0.0.981744",
+ "extract-zip": "2.0.1",
"https-proxy-agent": "5.0.1",
+ "pkg-dir": "4.2.0",
"progress": "2.0.3",
"proxy-from-env": "1.1.0",
- "puppeteer-core": "19.7.5"
+ "rimraf": "3.0.2",
+ "tar-fs": "2.1.1",
+ "unbzip2-stream": "1.4.3",
+ "ws": "8.5.0"
},
"dependencies": {
- "cosmiconfig": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.0.tgz",
- "integrity": "sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==",
- "dev": true,
- "requires": {
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0"
- }
- },
"devtools-protocol": {
- "version": "0.0.1094867",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1094867.tgz",
- "integrity": "sha512-pmMDBKiRVjh0uKK6CT1WqZmM3hBVSgD+N2MrgyV1uNizAZMw4tx6i/RTc+/uCsKSCmg0xXx7arCP/OFcIwTsiQ==",
- "dev": true
- },
- "glob": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz",
- "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "minimatch": "^7.4.1",
- "minipass": "^4.2.4",
- "path-scurry": "^1.6.1"
- }
- },
- "minimatch": {
- "version": "7.4.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
- "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "puppeteer-core": {
- "version": "19.7.5",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.7.5.tgz",
- "integrity": "sha512-EJuNha+SxPfaYFbkoWU80H3Wb1SiQH5fFyb2xdbWda0ziax5mhV63UMlqNfPeTDIWarwtR4OIcq/9VqY8HPOsg==",
- "dev": true,
- "requires": {
- "chromium-bidi": "0.4.5",
- "cross-fetch": "3.1.5",
- "debug": "4.3.4",
- "devtools-protocol": "0.0.1094867",
- "extract-zip": "2.0.1",
- "https-proxy-agent": "5.0.1",
- "proxy-from-env": "1.1.0",
- "rimraf": "4.4.0",
- "tar-fs": "2.1.1",
- "unbzip2-stream": "1.4.3",
- "ws": "8.12.1"
- }
- },
- "rimraf": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz",
- "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==",
- "dev": true,
- "requires": {
- "glob": "^9.2.0"
- }
- },
- "ws": {
- "version": "8.12.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz",
- "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==",
- "dev": true,
- "requires": {}
- }
- }
- },
- "puppeteer-core": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-5.5.0.tgz",
- "integrity": "sha512-tlA+1n+ziW/Db03hVV+bAecDKse8ihFRXYiEypBe9IlLRvOCzYFG6qrCMBYK34HO/Q/Ecjc+tvkHRAfLVH+NgQ==",
- "dev": true,
- "requires": {
- "debug": "^4.1.0",
- "devtools-protocol": "0.0.818844",
- "extract-zip": "^2.0.0",
- "https-proxy-agent": "^4.0.0",
- "node-fetch": "^2.6.1",
- "pkg-dir": "^4.2.0",
- "progress": "^2.0.1",
- "proxy-from-env": "^1.0.0",
- "rimraf": "^3.0.2",
- "tar-fs": "^2.0.0",
- "unbzip2-stream": "^1.3.3",
- "ws": "^7.2.3"
- },
- "dependencies": {
- "agent-base": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
- "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
+ "version": "0.0.981744",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
+ "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==",
"dev": true
},
"find-up": {
@@ -36041,16 +36333,6 @@
"path-exists": "^4.0.0"
}
},
- "https-proxy-agent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
- "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
- "dev": true,
- "requires": {
- "agent-base": "5",
- "debug": "4"
- }
- },
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -36086,6 +36368,13 @@
"requires": {
"find-up": "^4.0.0"
}
+ },
+ "ws": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
+ "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+ "dev": true,
+ "requires": {}
}
}
},
@@ -36110,6 +36399,12 @@
"side-channel": "^1.0.4"
}
},
+ "query-selector-shadow-dom": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.1.tgz",
+ "integrity": "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==",
+ "dev": true
+ },
"query-string": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
@@ -36889,9 +37184,9 @@
"dev": true
},
"rgb2hex": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.2.3.tgz",
- "integrity": "sha512-clEe0m1xv+Tva1B/TOepuIcvLAxP0U+sCDfgt1SX1HmI2Ahr5/Cd/nzJM1e78NKVtWdoo0s33YehpFA8UfIShQ==",
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.2.5.tgz",
+ "integrity": "sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==",
"dev": true
},
"rimraf": {
@@ -39773,16 +40068,19 @@
}
},
"webdriver": {
- "version": "6.12.1",
- "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-6.12.1.tgz",
- "integrity": "sha512-3rZgAj9o2XHp16FDTzvUYaHelPMSPbO1TpLIMUT06DfdZjNYIzZiItpIb/NbQDTPmNhzd9cuGmdI56WFBGY2BA==",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.33.0.tgz",
+ "integrity": "sha512-cyMRAVUHgQhEBHojOeNet2e8GkfyvvjpioNCPcF6qUtT+URdagr8Mh0t4Fs+Jr0tpuMqFnw70xZexAcV/6I/jg==",
"dev": true,
"requires": {
- "@wdio/config": "6.12.1",
- "@wdio/logger": "6.10.10",
- "@wdio/protocols": "6.12.0",
- "@wdio/utils": "6.11.0",
+ "@types/node": "^18.0.0",
+ "@wdio/config": "7.33.0",
+ "@wdio/logger": "7.26.0",
+ "@wdio/protocols": "7.27.0",
+ "@wdio/types": "7.33.0",
+ "@wdio/utils": "7.33.0",
"got": "^11.0.2",
+ "ky": "0.30.0",
"lodash.merge": "^4.6.1"
},
"dependencies": {
@@ -39802,9 +40100,9 @@
}
},
"cacheable-request": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
- "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
"dev": true,
"requires": {
"clone-response": "^1.0.2",
@@ -39872,9 +40170,9 @@
"dev": true
},
"keyv": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz",
- "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==",
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"requires": {
"json-buffer": "3.0.1"
@@ -39910,65 +40208,58 @@
}
},
"webdriverio": {
- "version": "6.12.1",
- "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-6.12.1.tgz",
- "integrity": "sha512-Nx7ge0vTWHVIRUbZCT+IuMwB5Q0Q5nLlYdgnmmJviUKLuc3XtaEBkYPTbhHWHgSBXsPZMIc023vZKNkn+6iyeQ==",
- "dev": true,
- "requires": {
- "@types/puppeteer-core": "^5.4.0",
- "@wdio/config": "6.12.1",
- "@wdio/logger": "6.10.10",
- "@wdio/repl": "6.11.0",
- "@wdio/utils": "6.11.0",
+ "version": "7.33.0",
+ "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.33.0.tgz",
+ "integrity": "sha512-9MRPYkOEdsvsBpDJRSMAR+dLID6I65vKjpzNTTFJSjRLSHF6MByOH3mV2trlpIyV+TIp87GysYUVf3Cmufg9eg==",
+ "dev": true,
+ "requires": {
+ "@types/aria-query": "^5.0.0",
+ "@types/node": "^18.0.0",
+ "@wdio/config": "7.33.0",
+ "@wdio/logger": "7.26.0",
+ "@wdio/protocols": "7.27.0",
+ "@wdio/repl": "7.33.0",
+ "@wdio/types": "7.33.0",
+ "@wdio/utils": "7.33.0",
"archiver": "^5.0.0",
- "atob": "^2.1.2",
+ "aria-query": "^5.2.1",
"css-shorthand-properties": "^1.1.1",
"css-value": "^0.0.1",
- "devtools": "6.12.1",
- "fs-extra": "^9.0.1",
- "get-port": "^5.1.1",
+ "devtools": "7.33.0",
+ "devtools-protocol": "^0.0.1203626",
+ "fs-extra": "^11.1.1",
"grapheme-splitter": "^1.0.2",
"lodash.clonedeep": "^4.5.0",
"lodash.isobject": "^3.0.2",
"lodash.isplainobject": "^4.0.6",
"lodash.zip": "^4.2.0",
- "minimatch": "^3.0.4",
- "puppeteer-core": "^5.1.0",
+ "minimatch": "^6.0.4",
+ "puppeteer-core": "^13.1.3",
+ "query-selector-shadow-dom": "^1.0.0",
"resq": "^1.9.1",
- "rgb2hex": "0.2.3",
+ "rgb2hex": "0.2.5",
"serialize-error": "^8.0.0",
- "webdriver": "6.12.1"
+ "webdriver": "7.33.0"
},
"dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
"fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+ "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
"dev": true,
"requires": {
- "at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
}
},
"minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz",
+ "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==",
"dev": true,
"requires": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "^2.0.1"
}
},
"serialize-error": {
diff --git a/package.json b/package.json
index 3c19d70709..6f96a3411f 100644
--- a/package.json
+++ b/package.json
@@ -83,7 +83,7 @@
"@rollup/plugin-node-resolve": "^13.1.3",
"assetgraph-builder": "^9.0.0",
"autoprefixer": "^9.8.6",
- "canvas": "^2.9.0",
+ "canvas": "^2.11.2",
"chai": "^4.3.4",
"coffeescript": "^2.6.1",
"coveralls": "^3.1.1",
@@ -102,8 +102,8 @@
"hyperlink": "^5.0.4",
"jsdoc": "^3.6.7",
"jsdoc-ts-utils": "^2.0.1",
- "karma": "^6.3.11",
- "karma-chrome-launcher": "^3.1.0",
+ "karma": "^6.4.2",
+ "karma-chrome-launcher": "^3.2.0",
"karma-mocha": "^2.0.1",
"karma-mocha-reporter": "^2.2.5",
"karma-sauce-launcher": "^4.3.6",
@@ -174,6 +174,9 @@
"singleQuote": true,
"trailingComma": "none"
},
+ "overrides": {
+ "webdriverio": "^7.33.0"
+ },
"husky": {
"hooks": {
"pre-commit": "lint-staged"
From 1c9623112647e8d56655fb231af7cb0bfdf9d6d8 Mon Sep 17 00:00:00 2001
From: Aras Abbasi
Date: Wed, 1 Nov 2023 14:34:41 +0100
Subject: [PATCH 02/27] update can-i-use (#5021)
---
package-lock.json | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 5faf1fbb33..1aebeae03d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4506,9 +4506,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001466",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz",
- "integrity": "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==",
+ "version": "1.0.30001559",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz",
+ "integrity": "sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==",
"dev": true,
"funding": [
{
@@ -4518,6 +4518,10 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
]
},
@@ -26593,9 +26597,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001466",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz",
- "integrity": "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==",
+ "version": "1.0.30001559",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz",
+ "integrity": "sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==",
"dev": true
},
"canvas": {
@@ -32157,7 +32161,7 @@
"requires": {
"global-agent": "^2.1.12",
"saucelabs": "^4.6.3",
- "webdriverio": "^7.19.5"
+ "webdriverio": "^7.33.0"
}
},
"keyv": {
From ee2b70e8e82b0b67347d41028fa45521d43633d9 Mon Sep 17 00:00:00 2001
From: Aras Abbasi
Date: Wed, 1 Nov 2023 17:18:16 +0100
Subject: [PATCH 03/27] chore: remove uuid dev dependency (#5022)
---
package-lock.json | 1 -
package.json | 1 -
scripts/karma-rollup-plugin.js | 4 ++--
3 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 1aebeae03d..8f1ed39671 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -103,7 +103,6 @@
"unexpected-sinon": "^10.11.2",
"update-notifier": "^4.1.0",
"uslug": "^1.0.4",
- "uuid": "^8.3.0",
"webpack": "^5.67.0",
"webpack-cli": "^4.9.1"
},
diff --git a/package.json b/package.json
index 6f96a3411f..14c013a9db 100644
--- a/package.json
+++ b/package.json
@@ -140,7 +140,6 @@
"unexpected-sinon": "^10.11.2",
"update-notifier": "^4.1.0",
"uslug": "^1.0.4",
- "uuid": "^8.3.0",
"webpack": "^5.67.0",
"webpack-cli": "^4.9.1"
},
diff --git a/scripts/karma-rollup-plugin.js b/scripts/karma-rollup-plugin.js
index a51eb22656..bd009f2aed 100644
--- a/scripts/karma-rollup-plugin.js
+++ b/scripts/karma-rollup-plugin.js
@@ -32,7 +32,7 @@
const os = require('os');
const fs = require('fs');
const path = require('path');
-const uuid = require('uuid');
+const {randomUUID} = require('crypto');
const rollup = require('rollup');
const minimatch = require('minimatch');
const loadConfigFile = require('rollup/dist/loadConfigFile.js');
@@ -57,7 +57,7 @@ function framework(fileConfigs, pluginConfig, basePath, preprocessors) {
)
);
- const bundleFilename = `${uuid.v4()}.rollup.js`;
+ const bundleFilename = `${randomUUID()}.rollup.js`;
let bundleLocation = path.resolve(
pluginConfig.bundleDirPath ? pluginConfig.bundleDirPath : os.tmpdir(),
bundleFilename
From 45e97af81f87c7ac71433b4558e58ad474ffeba8 Mon Sep 17 00:00:00 2001
From: Aras Abbasi
Date: Mon, 6 Nov 2023 09:45:08 +0100
Subject: [PATCH 04/27] chore: remove nanoid as dependency (#5024)
* chore: remove nanoid
* add comment
---
lib/utils.js | 15 ++++++++++++---
package-lock.json | 17 -----------------
package.json | 1 -
test/unit/utils.spec.js | 3 +++
4 files changed, 15 insertions(+), 21 deletions(-)
diff --git a/lib/utils.js b/lib/utils.js
index 7e1d566819..fc7271d019 100644
--- a/lib/utils.js
+++ b/lib/utils.js
@@ -8,8 +8,6 @@
/**
* Module dependencies.
*/
-
-const {nanoid} = require('nanoid/non-secure');
var path = require('path');
var util = require('util');
var he = require('he');
@@ -615,11 +613,22 @@ exports.constants = exports.defineConstants({
MOCHA_ID_PROP_NAME
});
+const uniqueIDBase =
+ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_';
+
/**
* Creates a new unique identifier
+ * Does not create cryptographically safe ids.
+ * Trivial copy of nanoid/non-secure
* @returns {string} Unique identifier
*/
-exports.uniqueID = () => nanoid();
+exports.uniqueID = () => {
+ let id = '';
+ for (let i = 0; i < 21; i++) {
+ id += uniqueIDBase[(Math.random() * 64) | 0];
+ }
+ return id;
+};
exports.assignNewMochaID = obj => {
const id = exports.uniqueID();
diff --git a/package-lock.json b/package-lock.json
index 8f1ed39671..542c4097aa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,7 +22,6 @@
"log-symbols": "4.1.0",
"minimatch": "5.0.1",
"ms": "2.1.3",
- "nanoid": "3.3.3",
"serialize-javascript": "6.0.0",
"strip-json-comments": "3.1.1",
"supports-color": "8.1.1",
@@ -14069,17 +14068,6 @@
"integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
"dev": true
},
- "node_modules/nanoid": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
- "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -33952,11 +33940,6 @@
"integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
"dev": true
},
- "nanoid": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
- "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w=="
- },
"natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
diff --git a/package.json b/package.json
index 14c013a9db..8925811032 100644
--- a/package.json
+++ b/package.json
@@ -63,7 +63,6 @@
"log-symbols": "4.1.0",
"minimatch": "5.0.1",
"ms": "2.1.3",
- "nanoid": "3.3.3",
"serialize-javascript": "6.0.0",
"strip-json-comments": "3.1.1",
"supports-color": "8.1.1",
diff --git a/test/unit/utils.spec.js b/test/unit/utils.spec.js
index adb36c4cd6..46f27b57ad 100644
--- a/test/unit/utils.spec.js
+++ b/test/unit/utils.spec.js
@@ -760,5 +760,8 @@ describe('lib/utils', function () {
it('should return a non-empty string', function () {
expect(utils.uniqueID(), 'to be a string').and('not to be empty');
});
+ it('should have length of 21', function () {
+ expect(utils.uniqueID().length, 'to equal', 21);
+ });
});
});
From 48002bc60144c25060bf91359620c4a0284e8284 Mon Sep 17 00:00:00 2001
From: Aras Abbasi
Date: Wed, 8 Nov 2023 19:02:04 +0100
Subject: [PATCH 05/27] chore: remove touch as dev dependency (#5023)
* chore: remove touch as dev dependency
* Update test/integration/helpers.js
---
package-lock.json | 48 -------------------------------------
package.json | 1 -
test/integration/helpers.js | 10 ++++++--
3 files changed, 8 insertions(+), 51 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 542c4097aa..a5c10334ed 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -94,7 +94,6 @@
"sinon": "^9.0.3",
"strip-ansi": "^6.0.0",
"svgo": "^1.3.2",
- "touch": "^3.1.0",
"unexpected": "^11.14.0",
"unexpected-eventemitter": "^2.2.0",
"unexpected-map": "^2.0.0",
@@ -20914,33 +20913,6 @@
"integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==",
"dev": true
},
- "node_modules/touch": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
- "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
- "dev": true,
- "dependencies": {
- "nopt": "~1.0.10"
- },
- "bin": {
- "nodetouch": "bin/nodetouch.js"
- }
- },
- "node_modules/touch/node_modules/nopt": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
- "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
- "dev": true,
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "*"
- }
- },
"node_modules/tough-cookie": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
@@ -39255,26 +39227,6 @@
"integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==",
"dev": true
},
- "touch": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
- "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
- "dev": true,
- "requires": {
- "nopt": "~1.0.10"
- },
- "dependencies": {
- "nopt": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
- "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
- "dev": true,
- "requires": {
- "abbrev": "1"
- }
- }
- }
- },
"tough-cookie": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
diff --git a/package.json b/package.json
index 8925811032..6da18b5cb8 100644
--- a/package.json
+++ b/package.json
@@ -131,7 +131,6 @@
"sinon": "^9.0.3",
"strip-ansi": "^6.0.0",
"svgo": "^1.3.2",
- "touch": "^3.1.0",
"unexpected": "^11.14.0",
"unexpected-eventemitter": "^2.2.0",
"unexpected-map": "^2.0.0",
diff --git a/test/integration/helpers.js b/test/integration/helpers.js
index 3668089e2c..61c6ec01ca 100644
--- a/test/integration/helpers.js
+++ b/test/integration/helpers.js
@@ -7,7 +7,6 @@ const {format} = require('util');
const path = require('path');
const Base = require('../../lib/reporters/base');
const debug = require('debug')('mocha:test:integration:helpers');
-const touch = require('touch');
/**
* Path to `mocha` executable
@@ -479,6 +478,8 @@ async function runMochaWatchJSONAsync(args, opts, change) {
);
}
+const touchRef = new Date();
+
/**
* Synchronously touch a file. Creates
* the file and all its parent directories if necessary.
@@ -487,7 +488,12 @@ async function runMochaWatchJSONAsync(args, opts, change) {
*/
function touchFile(filepath) {
fs.ensureDirSync(path.dirname(filepath));
- touch.sync(filepath);
+ try {
+ fs.utimesSync(filepath, touchRef, touchRef);
+ } catch (e) {
+ const fd = fs.openSync(filepath, 'a');
+ fs.closeSync(fd);
+ }
}
/**
From b41e98533aa0fb87d7ba61163254881607a8a8c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Josh=20Goldberg=20=E2=9C=A8?=
Date: Sat, 18 Nov 2023 17:23:53 -0500
Subject: [PATCH 06/27] chore: remove stale workflow (#5029)
---
.github/workflows/stale.yml | 25 -------------------------
1 file changed, 25 deletions(-)
delete mode 100644 .github/workflows/stale.yml
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
deleted file mode 100644
index 301433f03e..0000000000
--- a/.github/workflows/stale.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-name: 'Stale/close issues and PRs'
-on:
- workflow_dispatch:
- schedule:
- - cron: '30 0 * * 1,3,5'
-
-jobs:
- stale:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/stale@v6
- with:
- days-before-stale: 120
- days-before-close: 14
- stale-issue-message: >
- This issue hasn't had any recent activity, and I'm labeling it `stale`.
- Remove the label or comment or this issue will be closed in 14 days.
- Thanks for contributing to Mocha!
- stale-pr-message: >
- This PR hasn't had any recent activity, and I'm labeling it `stale`.
- Remove the label or comment or this PR will be closed in 14 days.
- Thanks for contributing to Mocha!
- exempt-issue-labels: browser,chore,confirmed-bug,developer-experience,documentation,faq,feature,future,good-first-issue,help wanted,nice-to-have,qa,reporter,unconfirmed-bug,usability
- exempt-pr-labels: browser,chore,confirmed-bug,developer-experience,documentation,faq,feature,future,needs-review,nice-to-have,qa,reporter,semver-major,semver-minor,semver-patch,usability
- operations-per-run: 200
From 4b60c1ad07a3baaedab86c3787d8baad29538b8f Mon Sep 17 00:00:00 2001
From: Spencer <16455389+Spencer-Doak@users.noreply.github.com>
Date: Sat, 2 Dec 2023 21:00:06 +0000
Subject: [PATCH 07/27] docs: fix fragment ID for yargs.js `extends` docs
(#4918)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Josh Goldberg ✨
---
docs/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/index.md b/docs/index.md
index 2d9177d79e..d6ee5a9c1c 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -2415,7 +2415,7 @@ or the [source](https://github.com/mochajs/mocha/blob/master/lib/mocha.js).
[unexpected]: https://unexpected.js.org/
[vscode-mocha-sidebar]: https://marketplace.visualstudio.com/items?itemName=maty.vscode-mocha-sidebar
[wallaby.js]: https://wallabyjs.com/
-[yargs-configobject-extends]: http://yargs.js.org/docs/#api-configobject-extends-keyword
+[yargs-configobject-extends]: http://yargs.js.org/docs/#api-reference-configobject-extends-keyword
[zsh-globbing]: http://zsh.sourceforge.net/Doc/Release/Expansion.html#Recursive-Globbing
[root hook plugins]: #root-hook-plugins
[global setup fixtures]: #global-setup-fixtures
From 060f77dc2f97daac996fce926e7527e438c17e85 Mon Sep 17 00:00:00 2001
From: nikolas
Date: Sat, 2 Dec 2023 16:04:04 -0500
Subject: [PATCH 08/27] docs: use mocha.js instead of mocha in the example run
(#4927)
It looks like `mocha/bin/mocha` isn't there anymore.
---
docs/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/index.md b/docs/index.md
index d6ee5a9c1c..cf6896a0bf 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -89,7 +89,7 @@ describe('Array', function () {
Back in the terminal:
```bash
-$ ./node_modules/mocha/bin/mocha
+$ ./node_modules/mocha/bin/mocha.js
Array
#indexOf()
From eca4fec9eee1332a0474b80aa1740822438955f3 Mon Sep 17 00:00:00 2001
From: Feng Yu
Date: Sat, 2 Dec 2023 13:07:43 -0800
Subject: [PATCH 09/27] docs: fix return jsdoc type of `titlePath` (#4886)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Josh Goldberg ✨
---
lib/runnable.js | 2 +-
lib/suite.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/runnable.js b/lib/runnable.js
index fef4941024..5e0970b159 100644
--- a/lib/runnable.js
+++ b/lib/runnable.js
@@ -211,7 +211,7 @@ Runnable.prototype.fullTitle = function () {
*
* @memberof Mocha.Runnable
* @public
- * @return {string}
+ * @return {string[]}
*/
Runnable.prototype.titlePath = function () {
return this.parent.titlePath().concat([this.title]);
diff --git a/lib/suite.js b/lib/suite.js
index 43cb7556e1..64d7183fdf 100644
--- a/lib/suite.js
+++ b/lib/suite.js
@@ -387,7 +387,7 @@ Suite.prototype.fullTitle = function () {
*
* @memberof Suite
* @public
- * @return {string}
+ * @return {string[]}
*/
Suite.prototype.titlePath = function () {
var result = [];
From 9f9917822fa1d3fe2ec2867809cbbf86f4165f0c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Josh=20Goldberg=20=E2=9C=A8?=
Date: Tue, 26 Dec 2023 23:25:05 -0500
Subject: [PATCH 10/27] docs: overhaul contributing and maintenance docs for
end-of-year 2023 (#5038)
* docs: overhaul contributing and maintenance docs for end-of-year 2023
* Missed a note: re-requesting review
* Switch from rebasing to squashing
* Update Gitter to Discord
* Add 'I want to provide a PR' optional checkboxes
* Updated issue templates
* Shorter name for Docs
---
.github/CODE_OF_CONDUCT.md | 75 +++--
.github/CONTRIBUTING.md | 151 +++++----
.github/DEVELOPMENT.md | 20 ++
.github/ISSUE_TEMPLATE/01-bug.yml | 46 +++
.github/ISSUE_TEMPLATE/02-documentation.yml | 26 ++
.github/ISSUE_TEMPLATE/03-feature-request.yml | 38 +++
.../ISSUE_TEMPLATE/04-repository-tooling.yml | 30 ++
.github/ISSUE_TEMPLATE/bug_report.md | 68 ----
.github/ISSUE_TEMPLATE/config.yml | 14 +
.github/ISSUE_TEMPLATE/feature_request.md | 18 --
.github/ISSUE_TEMPLATE/support-question.md | 15 -
.github/PULL_REQUEST_TEMPLATE.md | 45 +--
MAINTAINERS.md | 292 +++++++++++-------
README.md | 20 +-
docs/API.md | 2 +-
docs/images/join-chat.svg | 2 +-
docs/index.md | 8 +-
lib/cli/cli.js | 4 +-
package.json | 2 +-
19 files changed, 514 insertions(+), 362 deletions(-)
create mode 100644 .github/DEVELOPMENT.md
create mode 100644 .github/ISSUE_TEMPLATE/01-bug.yml
create mode 100644 .github/ISSUE_TEMPLATE/02-documentation.yml
create mode 100644 .github/ISSUE_TEMPLATE/03-feature-request.yml
create mode 100644 .github/ISSUE_TEMPLATE/04-repository-tooling.yml
delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
create mode 100644 .github/ISSUE_TEMPLATE/config.yml
delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md
delete mode 100644 .github/ISSUE_TEMPLATE/support-question.md
diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index 1d08ae277e..93aef1d0cf 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -3,35 +3,36 @@
## Be friendly and patient
We understand that everyone has different levels of experience or knowledge in many diverse fields, be it technical or
-non-technical in nature. We also have areas of knowledge we are eager to expand; we want to be a community where people
-can not only contribute, but feel comfortable to ask questions as well and learn along the way. If someone says something
-wrong, or says something accidentally offensive, respond with patience and try to keep it polite and civil. Remember that
-we all were newbies at one point.
+non-technical in nature.
+We also have areas of knowledge we are eager to expand; we want to be a community where people can not only contribute, but feel comfortable to ask questions as well and learn along the way.
+If someone says something wrong, or says something accidentally offensive, respond with patience and try to keep it polite and civil.
+Remember that we all were newbies at one point.
## Be welcoming
-We strive to be a community that welcomes and supports people of all backgrounds and identities. This includes, but is not
-limited to, members of any race, ethnicity, culture, national origin, color, immigration status, social and economic class,
-educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief,
-religion, and mental and physical ability.
+We strive to be a community that welcomes and supports people of all backgrounds and identities.
+This includes, but is not limited to, members of any race, ethnicity, culture, national origin, color, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability.
## Be considerate
-Your work will be used by other people, and you in turn will depend on the work of others. Any decision you make will affect
-users and colleagues, and you should take those consequences into account when making decisions. Remember that we’re a world-wide
-community, so you might not be communicating in someone else’s primary language.
+Your work will be used by other people, and you in turn will depend on the work of others.
+Any decision you make will affect users and colleagues, and you should take those consequences into account when making decisions.
+Remember that we’re a world-wide community, so you might not be communicating in someone else’s primary language.
## Be respectful
-Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all
-experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important
-to remember that a community where people feel uncomfortable or threatened is not a productive one. Members of the JS Foundation
-community should be respectful when dealing with other members as well as with people outside the JS Foundation community.
+Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners.
+We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack.
+It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one.
+Members of the OpenJS Foundation community should be respectful when dealing with other members as well as with people outside the OpenJS Foundation community.
## Be careful in the words that you choose
-We are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put
-down other participants. Harassment and other exclusionary behavior aren’t acceptable. This includes, but is not limited to:
+We are a community of professionals, and we conduct ourselves professionally.
+Be kind to others.
+Do not insult or put down other participants.
+Harassment and other exclusionary behavior aren’t acceptable.
+This includes, but is not limited to:
- Violent threats or language directed against another person.
- Discriminatory jokes and language.
@@ -40,31 +41,34 @@ down other participants. Harassment and other exclusionary behavior aren’t acc
- Personal insults, especially those using racist or sexist terms.
- Unwelcome sexual attention.
- Advocating for, or encouraging, any of the above behavior.
-- Repeated harassment of others. In general, if someone asks you to stop, then stop.
+- Repeated harassment of others.
+ In general, if someone asks you to stop, then stop.
## When we disagree, try to understand why
-Disagreements, both social and technical, happen all the time and JS Foundation projects are no exception. It is important
-that we resolve disagreements and differing views constructively. Remember that we’re different. The strength of the JS
-Foundation comes from its varied community, people from a wide range of backgrounds. Different people have different
-perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. Don’t
-forget that it is human to err and blaming each other doesn’t get us anywhere. Instead, focus on helping to resolve issues
-and learning from mistakes.
+Disagreements, both social and technical, happen all the time and OpenJS Foundation projects are no exception.
+It is important that we resolve disagreements and differing views constructively.
+Remember that we’re different.
+The strength of the OpenJS Foundation comes from its varied community, people from a wide range of backgrounds.
+Different people have different perspectives on issues.
+Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong.
+Don’t forget that it is human to err and blaming each other doesn’t get us anywhere.
+Instead, focus on helping to resolve issues and learning from mistakes.
Original text courtesy of the Speak Up! project and Django Project.
## QUESTIONS?
-If you have questions, please see the FAQ. If that doesn’t answer your questions, feel free to email report@lists.openjsf.org.
+If you have questions, please see the FAQ.
+If that doesn’t answer your questions, feel free to email report@lists.openjsf.org.
# OpenJS Foundation Code of Conduct
-The OpenJS Foundation and its member projects use the Contributor
-Covenant v1.4.1 as its Code of Conduct. Refer to the following
-for the full text:
+The OpenJS Foundation and its member projects use the Contributor Covenant v1.4.1 as its Code of Conduct.
+Refer to the following for the full text:
-- [english](https://www.contributor-covenant.org/version/1/4/code-of-conduct)
-- [translations](https://www.contributor-covenant.org/translations)
+- [Contributor Covenant v1.4.1 in english](https://www.contributor-covenant.org/version/1/4/code-of-conduct)
+- [Contributor Covenant v1.4.1 translations](https://www.contributor-covenant.org/translations)
Refer to the section on reporting and escalation in this document for the specific emails that can be used to report and escalate issues.
@@ -72,7 +76,9 @@ Refer to the section on reporting and escalation in this document for the specif
### Project Spaces
-For reporting issues in spaces related to a member project please use the email provided by the project for reporting. Projects handle CoC issues related to the spaces that they maintain. Projects maintainers commit to:
+For reporting issues in spaces related to a member project please use the email provided by the project for reporting.
+Projects handle CoC issues related to the spaces that they maintain.
+Projects maintainers commit to:
- maintain the confidentiality with regard to the reporter of an incident
- to participate in the path for escalation as outlined in
@@ -80,7 +86,8 @@ For reporting issues in spaces related to a member project please use the email
### Foundation Spaces
-For reporting issues in spaces managed by the OpenJS Foundation, for example, repositories within the OpenJS organization, use the email `report@lists.openjsf.org`. The Cross Project Council (CPC) is responsible for managing these reports and commits to:
+For reporting issues in spaces managed by the OpenJS Foundation, for example, repositories within the OpenJS organization, use the email `report@lists.openjsf.org`.
+The Cross Project Council (CPC) is responsible for managing these reports and commits to:
- maintain the confidentiality with regard to the reporter of an incident
- to participate in the path for escalation as outlined in
@@ -88,7 +95,9 @@ For reporting issues in spaces managed by the OpenJS Foundation, for example, re
## Escalation
-The OpenJS Foundation maintains a Code of Conduct Panel (CoCP). This is a foundation-wide team established to manage escalation when a reporter believes that a report to a member project or the CPC has not been properly handled. In order to escalate to the CoCP send an email to `"coc-escalation@lists.openjsf.org`.
+The OpenJS Foundation maintains a Code of Conduct Panel (CoCP).
+This is a foundation-wide team established to manage escalation when a reporter believes that a report to a member project or the CPC has not been properly handled.
+In order to escalate to the CoCP send an email to `"coc-escalation@lists.openjsf.org`.
For more information, refer to the full
[Code of Conduct governance document](https://github.com/openjs-foundation/cross-project-council/blob/master/FOUNDATION_CODE_OF_CONDUCT_REQUIREMENTS.md).
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index ced4935a1f..01a3e10139 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -2,96 +2,135 @@
> Please read these guidelines before submitting an issue, filing a feature request, or contributing code.
-## :question: Got a Question?
+## ❓ Got a Question?
-If you have a question about using Mocha, please use the [mailing list](https://groups.google.com/group/mochajs), [StackOverflow](https://stackoverflow.com), or ask the friendly people in our [chat room](https://gitter.im/mochajs/mocha).
+If you have a question about using Mocha, please use the [mailing list](https://groups.google.com/group/mochajs), [StackOverflow](https://stackoverflow.com), or ask the friendly people in [our Discord](https://discord.gg/KeDn2uXhER).
-## :bug: I Found a Bug
+## ✏️ Filing Issues
-Sorry! It happens to the best of us. If you've found a bug in Mocha, **please [search](https://github.com/mochajs/mocha/issues/) to see if it's already been reported**. Otherwise, create a [new issue](https://github.com/mochajs/mocha/issues/new). If you can fix the bug yourself, feel free to create a [pull request](#propose-a-change) thereafter.
+Before adding anything to the issue tracker, **please [search issues](https://github.com/mochajs/mocha/issues) to see if it's already been reported**.
+Make sure to check closed and/or older issues as well.
-Please include _as much detail as possible_ to help us reproduce and diagnose the bug. Most importantly:
+With the exception of minor documentation typos, all changes to Mocha should be discussed in the issue tracker first.
+This includes bugs, feature requests, and improvements to documentation.
-- Let us know _how_ you're running Mocha (options, flags, environment, browser or Node.js, etc.)
-- Include your test code or file(s). If large, please provide a link to a repository or [gist](https://gist.github.com).
-- Please show code in JavaScript only (any version)
+### 🐛 I Found a Bug
-If we need more information from you, we'll let you know. If you don't within a reasonable time frame (TBD), your issue will be automatically closed for inactivity.
+Sorry!
+It happens to the best of us.
-## :exclamation: Propose a Change
+Please [file an issue using the bug report template](https://github.com/mochajs/mocha/issues/new?assignees=&labels=type%3A+bug&projects=&template=01-bug.yml&title=%F0%9F%90%9B+Bug%3A+%3Cshort+description+of+the+bug%3E) with _as much detail as possible_ to help us reproduce and diagnose the bug.
+Most importantly:
-Before you get your hands dirty, please [search](https://github.com/mochajs/mocha/issues/) for a related issue, or [create a new one](https://github.com/mochajs/mocha/issues/new). If you wish to contribute a new feature, this is doubly important! Let's discuss your proposed changes first; we don't want you to waste time implementing a change that is at odds with the project's direction. That said, we'll happily consider any contribution, no matter how great or small.
+- Let us know _how_ you're running Mocha (options, flags, environment, browser or Node.js, etc.).
+- Include your test code or file(s).
+ If large, please provide a link to a repository or [gist](https://gist.github.com).
-_This paragraph would contain information about Mocha's roadmap, but it doesn't yet exist._ :poop:
+If we need more information from you, we'll let you know.
+If you don't within a few weeks, your issue will be closed for inactivity.
-It's also important to understand some overarching goals of Mocha, detailed below.
+### ❗️ Propose a Change
-### :soccer: About Project Goals
+Please [file an issue using the feature request template](https://github.com/mochajs/mocha/issues/new?assignees=&labels=type%3A+feature&projects=&template=03-feature-request.yml&title=%F0%9F%9A%80+Feature%3A+%3Cshort+description+of+the+feature%3E).
+Most importantly:
-Mocha is a test framework. Developers use it against anything from legacy spaghetti in IE11 to stage-0 TC39 features in Electron. Mocha is committed to providing support for maintained (LTS) versions of Node.js and popular browsers (of which IE11 is still one, as of December 2018).
+- Let us know _what_ the proposed change is, in as much detail as you can
+- Explain _why_ you want the change
+- Include your test code or file(s).
+ If large, please provide a link to a repository or [gist](https://gist.github.com).
-Mocha adheres strictly to [semantic versioning](https://semver.org). We are _extremely cautious_ with changes that have the potential to break; given the size of Mocha's user base, it's _highly unlikely_ a breaking change will slide by.
+We'll discuss your proposed changes and how they relate to the overarching goals of Mocha, detailed below in [⚽️ About Project Goals](#⚽️-about-project-goals).
-Mocha's usage far outweighs its resources. If a proposed feature would incur a maintenance penalty, it could be a hard sell.
+## ⚽️ About Project Goals
+
+Mocha is a test framework.
+Developers use it against anything from legacy spaghetti in barely-supported browsers to stage-0 TC39 features in Electron.
+Mocha is committed to providing support for maintained (LTS) versions of Node.js and popular browsers.
+
+Mocha adheres strictly to [semantic versioning](https://semver.org).
+We are _extremely cautious_ with changes that have the potential to break; given the size of Mocha's user base, it's _highly unlikely_ a breaking change will slide by.
+
+Mocha's usage far outweighs its resources.
+If a proposed feature would incur a maintenance penalty, it could be a hard sell.
We ask you please keep these goals in mind when making or proposing changes.
-### :shoe: Contributing Code: Step-by-Step
+## 😇 I Just Want To Help
+
+_Excellent._ Here's how:
+
+- **Handy with JavaScript?** Please check out the issues labeled [`help wanted`](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) or [`good-first-issue`](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Agood-first-issue).
+ Try `npx good-first-issue mocha`!
+- **Can you write ~~good~~ well?** The [documentation](https://mochajs.org) almost always needs some love.
+ See the [doc-related issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3Adocumentation).
+- **Design your thing?** [Our site](https://mochajs.org) needs your magic touch.
+- **Familiar with Mocha's codebase?** We could use your help triaging issues and/or reviewing pull requests.
+ Please contact an [org member](https://github.com/orgs/mochajs/people), and we'll chat.
+- **Want to build our community?** Mocha has a _lot_ of users.
+ We could use your help bringing everyone together in peace and harmony.
+ Please contact an [org member](https://github.com/orgs/mochajs/people).
+- **Do you write unit tests for _fun_?** A PR which increases coverage is unlikely to be turned down.
+- **Are you experienced?** 🎸 If you're a seasoned Mocha user, why not help answer some questions in [our Discord's `#help` channel](https://discord.gg/KeDn2uXhER)?
+
+## 👞 Contributing Code: Step-by-Step
-Follow these steps to get going. If you are having trouble, don't be afraid to [ask for help](#got-a-question).
+First follow the steps in [DEVELOPMENT.md](./DEVELOPMENT.md) to get Mocha's repository installed locally.
+Then:
-> PRO TIP: After `npm install`, run `npm start` to see a list of commands which can be run with `npm start ` (powered by [nps](https://npm.im/nps)).
+### 🎋 Initial Creation
-1. [Install Node.js 14 LTS or newer with npm@7+](https://nodejs.org/en/download/).
- - If you're new to installing Node, a tool like [nvm](https://github.com/creationix/nvm#install-script) can help you manage multiple version installations.
- - You will need [Google Chrome](https://www.google.com/chrome/) to run browser-based tests locally.
-1. Follow [Github's documentation](https://help.github.com/articles/fork-a-repo/) on setting up Git, forking and cloning.
-1. Create a new branch in your working copy. Give your branch a descriptive name, such as `issue/12345`: `git checkout -b issue/12345`.
-1. Execute `npm install` to install the development dependencies.
- - Do not use `yarn install`.
- - Some optional dependencies may fail; you can safely ignore these unless you are trying to build the documentation.
- - If you're sick of seeing the failures, run `npm install --ignore-scripts`.
+1. Create a new branch in your working copy.
+ Give your branch a descriptive name, such as `issue/12345`: `git checkout -b issue/12345`.
1. Make your changes and add them via `git add`.
- Your changes will likely be somewhere in `lib/`, `bin/` or `browser-entry.js` (if your changes are browser-specific).
- - Unit and/or integration **tests are required** for any code change. These live in `test/`.
+ - Unit and/or integration **tests are required** for any code change.
+ These live in `test/`.
- **Do not modify** the root `mocha.js` file directly; it is automatically generated.
- - Keep your PR focused. Don't fix two things at once; don't upgrade dependencies unless necessary.
+ - Keep your PR focused.
+ Don't fix two things at once; don't upgrade dependencies unless necessary.
1. Before committing, run `npm start test`.
- This will run both Node.js-based and browser-based tests.
- - Ultimately, your pull request will be built on our continuous integration servers ([GitHub Actions](https://github.com/mochajs/mocha/actions?query=workflow%3A%22Tests%22)). The first step to ensuring these checks pass is to test on your own machine.
- - A coverage check will be sent to [Coveralls](https://coveralls.io/github/mochajs/mocha). **A drop in code coverage % is considered a failed check**.
+ - Ultimately, your pull request will be built on our continuous integration servers ([GitHub Actions](https://github.com/mochajs/mocha/actions?query=workflow%3A%22Tests%22)).
+ The first step to ensuring these checks pass is to test on your own machine.
+ - A coverage check will be sent to [Coveralls](https://coveralls.io/github/mochajs/mocha).
+ **A drop in code coverage % is considered a failed check**.
1. Commit your changes.
- Use a brief message on the first line, referencing a relevant issue (e.g. `closes #12345`).
- Add detail in subsequent lines.
- - A pre-commit hook will run which automatically formats your staged changes (and fixes any problems it can) with ESLint and Prettier. If ESLint fails to fix an issue, your commit will fail and you will need to manually correct the problem.
+ - A pre-commit hook will run which automatically formats your staged changes (and fixes any problems it can) with ESLint and Prettier.
+ If ESLint fails to fix an issue, your commit will fail and you will need to manually correct the problem.
1. (Optional) Ensure you are up-to-date with Mocha's `master` branch:
- You can add an "upstream" remote repo using `git remote add upstream https://github.com/mochajs/mocha.git && git fetch upstream`.
- Navigate to your `master` branch using `git checkout master`.
- Pull changes from `upstream` using `git pull upstream master`.
- - If any changes were pulled in, rebase your branch onto `master` by switching back to your branch (`git checkout `) then rebasing using `git rebase master`.
+ - If any changes were pulled in, update your branch from `master` by switching back to your branch (`git checkout `) then merging using `git merge master`.
1. Push your changes to your fork; `git push origin`.
-1. In your browser, navigate to [mochajs/mocha](https://github.com/mochajs/mocha). You should see a notification about your recent changes in your fork's branch, with a (green?) button to create a pull request. Click it.
-1. Describe your changes in detail here, following the template. Once you're satisfied, submit the form.
-1. If you have not signed our [Contributor License Agreement](https://js.foundation/cla), a friendly robot will prompt you to do so. A [CLA](https://cla.js.foundation/mochajs/mocha) (electronic) signature is **required** for all contributions of code to Mocha.
-1. Continuous integration checks will run against your changes. The result of these checks will be displayed on your PR.
- - If the checks fail, you must address those before the PR is accepted.
- - GitHub will indicate if there's a conflict. If this happens, you will need to [rebase](https://help.github.com/articles/about-git-rebase/) your branch onto the `master` branch of the source repository. **Do not `git merge`**.
- - (Optional) [Squash](https://help.github.com/articles/about-pull-request-merges/#squash-and-merge-your-pull-request-commits) your changesets. If you have multiple changesets in your PR, they will be squashed upon PR acceptance by the Mocha team.
-1. Be patient while your PR is reviewed. This can take a while. We may request changes, but don't be afraid to question them.
-1. Your PR might become conflicted with the code in `master`. If this is the case, you will need to [update your PR](#up-to-date) and resolve your conflicts.
-1. You don't need to make a new PR to any needed changes. Instead, commit on top of your changes, and push these to your fork's branch. The PR will be updated, and CI will re-run.
+1. In your browser, navigate to [mochajs/mocha](https://github.com/mochajs/mocha).
+ You should see a notification about your recent changes in your fork's branch, with a (green?) button to create a pull request.
+ Click it.
+1. Describe your changes in detail here, following the template.
+ Once you're satisfied, submit the form.
-Join us in the [contributors' chat](https://gitter.im/mochajs/contributors)!
+At that point, hooray! 🎉
+You should see a pull request on github.com/mochajs/mocha/pulls.
-## :angel: I Just Want To Help
+### 🏭 PR Process
-_Excellent._ Here's how:
+Now that the pull request exists, some tasks will be run on it:
-- **Handy with JavaScript?** Please check out the issues labeled [`help wanted`](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) or [`good-first-issue`](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Agood-first-issue). Try `npx good-first-issue mocha`!
-- **Can you write ~~good~~ well?** The [documentation](https://mochajs.org) almost always needs some love. See the [doc-related issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3Adocumentation).
-- **Design your thing?** [Our site](https://mochajs.org) needs your magic touch.
-- **Familiar with Mocha's codebase?** We could use your help triaging issues and/or reviewing pull requests. Please contact an [org member](https://github.com/orgs/mochajs/people), and we'll chat.
-- **Want to build our community?** Mocha has a _lot_ of users. We could use your help bringing everyone together in peace and harmony. Please contact an [org member](https://github.com/orgs/mochajs/people).
-- **You can sell dirt to worms?** Let's raise Mocha's profile in the JavaScript and OSS communities. Please contact an [org member](https://github.com/orgs/mochajs/people)!
-- **Wait--you write unit tests for _fun_?** A PR which increases coverage is unlikely to be turned down.
-- **Are you experienced?** :guitar: If you're a seasoned Mocha user, why not help answer some questions in the [main chat room](https://gitter.im/mochajs/mocha)?
+1. If you have not signed our [Contributor License Agreement](https://js.foundation/cla), a friendly robot will prompt you to do so.
+ A [CLA](https://cla.js.foundation/mochajs/mocha) (electronic) signature is **required** for all contributions of code to Mocha.
+1. Continuous integration checks will run against your changes.
+ The result of these checks will be displayed on your PR.
+ - If the checks fail, you must address those before the PR is accepted.
+1. Be patient while your PR is reviewed.
+ This can take a while.
+ We may request changes, but don't be afraid to question them.
+1. Your PR might become conflicted with the code in `master`.
+ If this is the case, you will need to [update your PR](#up-to-date) and resolve your conflicts.
+1. You don't need to make a new PR to any needed changes.
+ Instead, commit on top of your changes, and push these to your fork's branch.
+ The PR will be updated, and CI will re-run.
+1. Once you've addressed all the feedback you can, [re-request review on GitHub](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews#re-requesting-a-review).
+
+Join us in [our Discord](https://discord.gg/KeDn2uXhER)!
diff --git a/.github/DEVELOPMENT.md b/.github/DEVELOPMENT.md
new file mode 100644
index 0000000000..5e4bf73496
--- /dev/null
+++ b/.github/DEVELOPMENT.md
@@ -0,0 +1,20 @@
+# Development
+
+Follow these steps to get going in local development.
+If you are having trouble, don't be afraid to [ask for help](./CONTRIBUTING.md#❓-got-a-question).
+
+## Prerequisites
+
+- [Install Node.js 14 LTS or newer with npm@7+](https://nodejs.org/en/download).
+ - If you're new to installing Node, a tool like [nvm](https://github.com/nvm-sh/nvm#install-script) can help you manage multiple version installations.
+- You will need [Google Chrome](https://www.google.com/chrome) to run browser-based tests locally.
+
+## Setup
+
+1. Follow [Github's documentation](https://help.github.com/articles/fork-a-repo) on setting up Git, forking, and cloning.
+1. Execute `npm install` to install the development dependencies.
+ - Do not use `yarn install` or `pnpm install`.
+ - Some optional dependencies may fail; you can safely ignore these unless you are trying to build the documentation.
+ - If you're sick of seeing the failures, run `npm install --ignore-scripts`.
+
+> PRO TIP: After `npm install`, run `npm start` to see a list of commands which can be run with `npm start ` (powered by [nps](https://npm.im/nps)).
diff --git a/.github/ISSUE_TEMPLATE/01-bug.yml b/.github/ISSUE_TEMPLATE/01-bug.yml
new file mode 100644
index 0000000000..2e4e83b673
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/01-bug.yml
@@ -0,0 +1,46 @@
+body:
+ - attributes:
+ description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you!
+ label: Bug Report Checklist
+ options:
+ - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
+ required: true
+ - label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue.
+ required: true
+ - label: I have 'smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, my usage of Mocha, or Mocha itself.
+ required: true
+ - label: I want to provide a PR to resolve this
+ type: checkboxes
+ - attributes:
+ description: What did you expect to happen?
+ label: Expected
+ type: textarea
+ validations:
+ required: true
+ - attributes:
+ description: What happened instead?
+ label: Actual
+ type: textarea
+ validations:
+ required: true
+ - attributes:
+ description: Detail the steps necessary to reproduce the problem. To get the fastest support, create an [MCVE](https://stackoverflow.com/help/mcve) and upload it to GitHub.
+ label: Minimal, Reproducible Example
+ type: textarea
+ validations:
+ required: true
+ - attributes:
+ description: What do `mocha --version`, `node_modules/.bin/mocha --version`, and `node --version` output? What name and version of browser/environment, shell, and any other related modules such as transpilers are you using?.
+ label: Versions
+ type: textarea
+ validations:
+ required: true
+ - attributes:
+ description: Any additional info you'd like to provide.
+ label: Additional Info
+ type: textarea
+description: Report a bug trying to run the code
+labels:
+ - "type: bug"
+name: 🐛 Bug
+title: "🐛 Bug: "
diff --git a/.github/ISSUE_TEMPLATE/02-documentation.yml b/.github/ISSUE_TEMPLATE/02-documentation.yml
new file mode 100644
index 0000000000..9f70afc940
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/02-documentation.yml
@@ -0,0 +1,26 @@
+body:
+ - attributes:
+ description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you!
+ label: Documentation Request Checklist
+ options:
+ - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
+ required: true
+ - label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue.
+ required: true
+ - label: I want to provide a PR to resolve this
+ type: checkboxes
+ - attributes:
+ description: What would you like to report?
+ label: Overview
+ type: textarea
+ validations:
+ required: true
+ - attributes:
+ description: Any additional info you'd like to provide.
+ label: Additional Info
+ type: textarea
+description: Report a typo or missing area of documentation
+labels:
+ - "area: documentation"
+name: 📝 Docs
+title: "📝 Docs: "
diff --git a/.github/ISSUE_TEMPLATE/03-feature-request.yml b/.github/ISSUE_TEMPLATE/03-feature-request.yml
new file mode 100644
index 0000000000..1179b25018
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/03-feature-request.yml
@@ -0,0 +1,38 @@
+body:
+ - attributes:
+ description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you!
+ label: Feature Request Checklist
+ options:
+ - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
+ required: true
+ - label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue.
+ required: true
+ - label: I want to provide a PR to resolve this
+ type: checkboxes
+ - attributes:
+ description: What is the feature gap or problem you'd like to address?
+ label: Overview
+ type: textarea
+ validations:
+ required: true
+ - attributes:
+ description: How would you like to solve this need?
+ label: Suggested Solution
+ type: textarea
+ validations:
+ required: true
+ - attributes:
+ description: What other features or solutions have you also considered?
+ label: Alternatives
+ type: textarea
+ validations:
+ required: true
+ - attributes:
+ description: Any additional info you'd like to provide.
+ label: Additional Info
+ type: textarea
+description: Request that a new feature be added or an existing feature improved
+labels:
+ - "type: feature"
+name: 🚀 Feature
+title: "🚀 Feature: "
diff --git a/.github/ISSUE_TEMPLATE/04-repository-tooling.yml b/.github/ISSUE_TEMPLATE/04-repository-tooling.yml
new file mode 100644
index 0000000000..6b37f93225
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/04-repository-tooling.yml
@@ -0,0 +1,30 @@
+body:
+ - attributes:
+ description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you!
+ label: Tooling Suggestion Checklist
+ options:
+ - label: I have tried restarting my IDE and the issue persists.
+ required: true
+ - label: I have pulled the latest `master` branch of the repository.
+ required: true
+ - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
+ required: true
+ - label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue.
+ required: true
+ - label: I want to provide a PR to resolve this
+ type: checkboxes
+ - attributes:
+ description: What did you expect to be able to do?
+ label: Overview
+ type: textarea
+ validations:
+ required: true
+ - attributes:
+ description: Any additional info you'd like to provide.
+ label: Additional Info
+ type: textarea
+description: Report a bug or request an enhancement in the Mocha repository's internal tooling
+labels:
+ - "area: repository-tooling"
+name: 🛠 Repository Tooling
+title: "🛠 Repository Tooling: "
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 046f15e854..0000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,68 +0,0 @@
----
-name: Bug report
-about: To report a part of mocha not working as expected
-title: ''
-labels: 'unconfirmed-bug'
----
-
-
-
-### Prerequisites
-
-
-
-- [ ] Checked that your issue hasn't already been filed by cross-referencing [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20)
-- [ ] Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
-- [ ] 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
-- [ ] Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: `node_modules/.bin/mocha --version`(Local) and `mocha --version`(Global). We recommend that you _not_ install Mocha globally.
-
-### Description
-
-
-
-### Steps to Reproduce
-
-
-
-**Expected behavior:** [What you expect to happen]
-
-**Actual behavior:** [What actually happens]
-
-
-**Reproduces how often:** [What percentage of the time does it reproduce?]
-
-### Versions
-
-
-
-- The output of `mocha --version` and `node_modules/.bin/mocha --version`:
-- The output of `node --version`:
-- Your operating system
- - name and version:
- - architecture (32 or 64-bit):
-- Your shell (e.g., bash, zsh, PowerShell, cmd):
-- Your browser and version (if running browser tests):
-- Any third-party Mocha-related modules (and their versions):
-- Any code transpiler (e.g., TypeScript, CoffeeScript, Babel) being used (and its version):
-
-### Additional Information
-
-
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000..dbdd514b0c
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,14 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Documentation Website
+ about: Please read our documentation website before filing new issues.
+ url: https://mochajs.org
+ - name: Documentation Website > APIs
+ about: If you're using Mocha's API, see also the website's API docs.
+ url: https://mochajs.org/api
+ - name: Discord
+ about: Our Discord is the right place for quick informal questions.
+ url: https://discord.gg/KeDn2uXhER
+ - name: StackOverflow
+ about: For more questions, see the `mocha` tag on StackOverflow.
+ url: https://stackoverflow.com/questions/tagged/mocha
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 8a8343e96f..0000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for Mocha
-title: ''
-labels: 'feature'
----
-
-**Is your feature request related to a problem or a nice-to-have?? Please describe.**
-A clear and concise description of what the problem is. E.g. I'm always frustrated when [...]
-
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/support-question.md b/.github/ISSUE_TEMPLATE/support-question.md
deleted file mode 100644
index 93f367cee5..0000000000
--- a/.github/ISSUE_TEMPLATE/support-question.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-name: Support Question
-about: If you have a question, please check out our Gitter or StackOverflow!
-title: ''
-labels: 'question'
----
-
-
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 37271e9cb0..9f8ff8ca6a 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,40 +1,13 @@
-### Requirements
+
-* Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
-* All new code requires tests to ensure against regressions.
+## PR Checklist
-### Description of the Change
+- [ ] Addresses an existing open issue: fixes #000
+- [ ] That issue was marked as [`status: accepting prs`](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22)
+- [ ] Steps in [CONTRIBUTING.md](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) were taken
-
-
-### Alternate Designs
-
-
-
-### Why should this be in core?
-
-
-
-### Benefits
-
-
-
-### Possible Drawbacks
-
-
-
-### Applicable issues
-
-
+
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
index a029bc536f..6accddc8ab 100644
--- a/MAINTAINERS.md
+++ b/MAINTAINERS.md
@@ -1,42 +1,5 @@
# Mocha Maintainer's Handbook
-
-
-- [Introduction](#introduction)
-- [Terminology](#terminology)
- - [User](#user)
- - [Contributor](#contributor)
- - [A Note About Donations](#a-note-about-donations)
- - [Maintainer](#maintainer)
- - [The Responsibilities of a Maintainer](#the-responsibilities-of-a-maintainer)
- - [The Rights of a Maintainer](#the-rights-of-a-maintainer)
- - [About "Owners"](#about-owners)
-- [Mocha's Decision-Making Process](#mochas-decision-making-process)
-- [Communication](#communication)
-- [Working with Issues & Pull Requests](#working-with-issues--pull-requests)
- - [Semantic Versioning](#semantic-versioning)
- - [Questions](#questions)
- - [Bugs](#bugs)
- - [Features](#features)
- - [Subsystems, Environments, Etc.](#subsystems-environments-etc)
- - [Feedback & Follow-ups](#feedback--follow-ups)
- - [Meta](#meta)
- - [Closing Issues](#closing-issues)
-- [Commenting on Issues and Reviewing Pull Requests](#commenting-on-issues-and-reviewing-pull-requests)
- - [Reviewing Code](#reviewing-code)
- - [The Part About Jerks](#the-part-about-jerks)
- - [Rude or Entitled People](#rude-or-entitled-people)
- - [Code of Conduct Violations](#code-of-conduct-violations)
-- [Branches](#branches)
-- [Merging PRs](#merging-prs)
- - [Using Milestones](#using-milestones)
-- [Mocha's Release Process](#mochas-release-process)
-- [Projects](#projects)
-- [About The JS Foundation](#about-the-js-foundation)
-- [About OpenCollective](#about-opencollective)
-
-
-
## Introduction
Hi stranger! We've written this document for:
@@ -45,7 +8,10 @@ Hi stranger! We've written this document for:
1. Prospective maintainers of Mocha
1. Anyone curious about how Mocha's maintainers maintain Mocha
-The purpose of this document is to _describe our processes_. We want to avoid conflicts and confusion around "unwritten rules". In our opinion, the most straightforward way to address this is to _write them down_. This _also_ happens to be the most straightforward way to change them!
+The purpose of this document is to _describe our processes_.
+We want to avoid conflicts and confusion around "unwritten rules".
+In our opinion, the most straightforward way to address this is to _write them down_.
+This _also_ happens to be the most straightforward way to change them!
To assist in eliminating ambiguity, we will define some terms.
@@ -55,14 +21,16 @@ Anyone involved with Mocha will fall into one of these buckets: **user**, **cont
### User
-A "user" for the purpose of this document is any _individual developer_ who consumes Mocha to write and/or execute tests. A user interacts with contributors. A user interacts with the software, web site, documentation, etc., which these contributors provide.
+A "user" for the purpose of this document is any _individual developer_ who consumes Mocha to write and/or execute tests.
+A user interacts with contributors.
+A user interacts with the software, web site, documentation, etc., which these contributors provide.
-As a user, you're expected to follow the [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) when interacting in Mocha's "official" social spaces. This includes:
+As a user, you're expected to follow the [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) when interacting in Mocha's "official" social spaces.
+This includes:
-- Any chatroom under the `mochajs` organization on Gitter
+- Any channel under the `mochajs` Discord
- Any project under the `mochajs` organization on GitHub
-- The MochaJS Google Group
-- Any future social, in-person or online events which Mocha might organize
+- Any future social, in-person, or online events which Mocha might organize
### Contributor
@@ -70,11 +38,12 @@ This is the most important thing:
**You don't have to write code to be a contributor!**
-A "contributor" is any individual who has _given back_ in some way to the project and its community. Contributions include (but are not limited to):
+A "contributor" is any individual who has _given back_ in some way to the project and its community.
+Contributions include (but are not limited to):
1. Reporting bugs which follow the reporting guidelines
1. Suggesting and debating enhancements that have wide applicability
-1. Helping others with Mocha-related questions on [Gitter](https://gitter.im/mochajs/mocha), [StackOverflow](https://stackoverflow.com), Google groups, or other sites
+1. Helping others with Mocha-related questions on [our Discord](https://discord.gg/KeDn2uXhER), [StackOverflow](https://stackoverflow.com), or other sites
1. Sending pull requests which fix bugs, improve documentation, improve developer experience, improve code quality, and/or implement requested enhancements
1. Reviewing code on pull requests
1. Providing design assets
@@ -84,11 +53,13 @@ A "contributor" is any individual who has _given back_ in some way to the projec
1. Recruiting more contributors! Don't spam.
1. Researching the user base, getting feedback, etc. Don't spam.
-A contributor is _usually_ a user as well, but this isn't a hard-and-fast rule. A contributor is also expected to adhere to the [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) as a user would.
+A contributor is _usually_ a user as well, but this isn't a hard-and-fast rule.
+A contributor is also expected to adhere to the [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) as a user would.
As you can see, it's wide open! Think of it another way: if you are _adding value to Mocha_, then you are a contributor.
-> Due to the nature of GitHub, it's a challenge to recognize those who've made contributions _elsewhere_ on the web, or even contributions of the "non-code" variety. If you know of any great contributions which have gone unnoticed, please bring them to the maintainers' attention!
+> Due to the nature of GitHub, it's a challenge to recognize those who've made contributions _elsewhere_ on the web, or even contributions of the "non-code" variety.
+> If you know of any great contributions which have gone unnoticed, please bring them to the maintainers' attention!
#### A Note About Donations
@@ -98,11 +69,14 @@ We love our backers and sponsors! 💕
### Maintainer
-A maintainer has certain "rights" (or "permissions") to the Mocha project and other projects under the `mochajs` organization. There's no way to dance around this: with these rights come increased responsibilities.
+A maintainer has certain "rights" (or "permissions") to the Mocha project and other projects under the `mochajs` organization.
+There's no way to dance around this: with these rights come increased responsibilities.
-However, **there is no expectation of a standard of technical ability** to be a maintainer of Mocha. This doesn't imply a lack of technical oversight--every pull request will eventually be reviewed.
+However, **there is no expectation of a standard of technical ability** to be a maintainer of Mocha.
+This doesn't imply a lack of technical oversight--every pull request will eventually be reviewed.
-**If you think you aren't experienced enough to maintain a project like Mocha, you are incorrect.** The only requirements are the above responsibilities and a desire to help the project. It bears repeating:
+**If you think you aren't experienced enough to maintain a project like Mocha, you are incorrect.** The only requirements are the above responsibilities and a desire to help the project.
+It bears repeating:
**You don't have to write code to be a maintainer!**
@@ -110,14 +84,19 @@ However, **there is no expectation of a standard of technical ability** to be a
#### The Responsibilities of a Maintainer
-As a maintainer, you are expected to _not just_ "follow" the code of conduct, but embody its values. Your public behavior, whether in the physical or virtual world, reflects upon the project and other maintainers.
+As a maintainer, you are expected to _not just_ "follow" the code of conduct, but embody its values.
+Your public behavior, whether in the physical or virtual world, reflects upon the project and other maintainers.
> If you don't understand the code of conduct, or why it exists, it is _your responsibility_ to educate yourself.
> This does not imply the CoC is immutable.
-Furthermore, a maintainer is a contributor who **contributes regularly**, or expresses a _desire to do so._ That could be every day--but it might be once a week, or even once a month. Your boss doesn't work here; contribute as often as you wish. We are all people with Real Lives, and for many of us, contributing to OSS is just a hobby!
+Furthermore, a maintainer is a contributor who **contributes regularly**, or expresses a _desire to do so._ That could be every day--but it might be once a week, or even once a month.
+Your boss doesn't work here; contribute as often as you wish.
+We are all people with Real Lives, and for many of us, contributing to OSS is just a hobby!
-Finally, a maintainer must help define what makes Mocha "Mocha". At minimum, a maintainer must _understand_ the current definition (if a maintainer is not interested in decision-making). Some of these questions include:
+Finally, a maintainer must help define what makes Mocha "Mocha".
+At minimum, a maintainer must _understand_ the current definition (if a maintainer is not interested in decision-making).
+Some of these questions include:
- What's the scope of Mocha?
- Where should we focus efforts?
@@ -144,7 +123,9 @@ You may choose to do zero or more of these _at their discretion_:
- Add new maintainers to the team
- Tag releases and publish Mocha to npm
-> While maintainers have the ability to commit directly to the `master` branch, _this is to be avoided_ if any other maintainer could reasonably take issue with the change, or the change affects Mocha's API or output. For example, a spelling correction in `CHANGELOG.md` may not require a pull request. A change to a reporter's output most certainly would! Maintainers are trusted to use their best judgement; if unsure, err on the side of caution.
+> While maintainers have the ability to commit directly to the `master` branch, _this is to be avoided_ if any other maintainer could reasonably take issue with the change, or the change affects Mocha's API or output.
+> For example, a spelling correction in `CHANGELOG.md` may not require a pull request.
+> A change to a reporter's output most certainly would! Maintainers are trusted to use their best judgement; if unsure, err on the side of caution.
#### About "Owners"
@@ -155,20 +136,27 @@ Some maintainers will have full admin rights to the [mochajs org](https://github
## Mocha's Decision-Making Process
-Mocha follows a [consensus-seeking decision-making](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) process. In other words, all maintainers attempt to come to agreement. If that fails, we decide by a simple vote.
+Mocha follows a [consensus-seeking decision-making](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) process.
+In other words, all maintainers attempt to come to agreement.
+If that fails, we decide by a simple vote.
-Active maintainers will make an effort to solicit feedback from others before making important or potentially controversial decisions. Given the varying geographical distribution and availability of the maintenance team, we resolve to do the best we can to solicit feedback.
+Active maintainers will make an effort to solicit feedback from others before making important or potentially controversial decisions.
+Given the varying geographical distribution and availability of the maintenance team, we resolve to do the best we can to solicit feedback.
-In other words, to have your opinion heard, participate regularly. The rest of the team won't wait on feedback that isn't necessarily forthcoming!
+In other words, to have your opinion heard, participate regularly.
+The rest of the team won't wait on feedback that isn't necessarily forthcoming!
## Communication
-Maintainers will mainly gather in [the mochajs/contributors channel](https://gitter.im/mochajs/contributors). This is a _public_ channel, and _anyone_ can join.
-Videoconference (or audio) calls may happen on a regular or irregular basis, as schedules allow. This is mainly because we have Real Lives and time zones suck.
+Maintainers will mainly gather in the [Mocha Discord](https://discord.gg/KeDn2uXhER).
+This is a _public_ Discord, and _anyone_ can join.
+Videoconference (or audio) calls may happen on a regular or irregular basis, as schedules allow.
+This is mainly because we have Real Lives and time zones suck.
## Working with Issues & Pull Requests
-All new issues will need to be triaged, and pull requests must be examined. Maintainers must understand [Semantic Versioning](http://semver.org) ("SemVer"), as Mocha follows it strictly.
+All new issues will need to be triaged, and pull requests must be examined.
+Maintainers must understand [Semantic Versioning](http://semver.org) ("SemVer"), as Mocha follows it strictly.
> If you see an issue or PR that could use some labels, please add them!
@@ -211,54 +199,94 @@ Examples of a breaking changes might be:
- The exception is fixing likely false-positives
- A good example would be changing the default `timeout` value
-### Questions
+## Issue Triage
+
+Issues should be filed according to one of our [GitHub Issue forms](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms).
+If any required information is missing, add the `status: waiting for author` label and politely ask for the missing information.
+
+### Issue Meta
+
+For all issues, apply the following labels based on which area(s) the issue pertains to:
+
+- `area: async`: Issues around Mocha's asynchronous usage
+- `area: browser`: Issues unique to a browser environment
+- `area: parallel`: Issues around Mocha's parallel mode
+- `area: qa`: Issues around Mocha's own test suite
+- `area: reporter`: Usually concerning Mocha's output
+- `area: security`: Involving vulnerabilities, actual or potential
+- `area: windows`: Windows-specific issues, particularly around path discrepancies
-Support questions should be answered if possible, but the user should be directed to the chat room, StackOverflow, or Google Groups for further help, _if_ it is indeed a Mocha-related issue.
+Additionally:
-If it's _not_ a Mocha problem (people tend not to believe this), you may want to show a counter-example. It's often helpful to direct the issue author to the responsible project, if you can determine what that is.
+- `good first issue`: If the implementation is likely doable by someone who's never contributed to Mocha (or potentially any other open source project) before
+- `status: duplicate`: If an equivalent issue was already filed, add this label, close as not planned, and comment with something like `duplicate of #`
+- `status: in discussion`: Add this whenever the issue is blocked on community input and/or deeper discussions
+- `status: waiting for author`: Add this whenever the issue is blocked on something from the author
-- `faq`: Issues which are _repeatedly_ asked support questions or misunderstandings. This may also apply to questions which receive a lot of 👍's
-- `question`: Add this label if it's just a support question
+### 🐛 Bugs
-### Bugs
+Bug reports should include a way to reproduce the issue that someone who is not deeply familiar with Mocha can work with locally.
-- `confirmed-bug`: A confirmed bug
-- `unconfirmed-bug`: A maintainer has not yet or cannot reproduce; typically `needs-feedback` follows (see "Feedback & Follow-ups" below)
-- `invalid`: Not a bug. Close the issue.
-- `wontfix`: A bug, but for Reasons, it won't get fixed.
+Depending on that reproduction, add the following label(s) in addition to the auto-added `type: bug`:
-### Features
+- If the bug is valid and reproduction works: add `status: accepting prs`
+- If the bug might be valid but the reproduction isn't workable:
+ - Add `status: waiting for author`
+ - Politely comment explaining why the reproduction isn't workable
+- If the bug might be valid but it's not clear whether it's worth it:
+ - Add `status: in discussion`
+ - Explain that it _might_ be worth it and that more community input is needed
+- If the bug is clearly not worth it or valid, explain why, close the issue as not planned, and:
+ - If it isn't a bug at all: add the `invalid` label
+ - If it is roughly a bug but isn't something that can or should be fixed: add the `status: wontfix` label
-- `feature`: Any feature/enhancement that's up for discussion or has been agreed upon.
-- `wontfix`: A half-baked feature or one which is unsuitable or out-of-scope for Mocha.
+### 📝 Documentation
-### Subsystems, Environments, Etc.
+Documentation reports should clearly indicate a gap or problem that should be addressed in documentation.
+Triage documentation issues similar to bugs and/or feature requests - documentation is its own form of product area.
+Keep the auto-added `area: documentation` label.
-- `reporter`: Usually concerning Mocha's output
-- `browser`: Issues unique to a browser environment
-- `documentation`: Issues around incorrect or missing docs
-- `qa`: Issues around Mocha's own test suite
-- `chore`: Refactors, CI tweaks, dependencies, etc.
-- `developer-experience`: Issues which will make it easier to contribute and maintain Mocha
+### 🚀 Features
-### Feedback & Follow-ups
+Feature requests should include a compelling reason why we should spend the maintenance time on the feature.
+Given that Mocha is prioritizing stability over growth, this can be a high bar.
-Issues or PRs which require action or feedback from a _specific_ maintainer, should have that item _assigned_ to them.
+Depending on the reasoning, add the following label(s) in addition to the auto-added `type: feature`:
-- `needs-feedback`: Issues which _need feedback from the original author_. Will automatically become `stale` (see "Meta" section below)
-- `needs-review`: For _pull requests only_; PRs which need a maintainer to inspect and/or merge them
+- If the reasoning is valid and seems worth the maintenance cost: add `status: accepting prs`
+- If the reasoning is unclear:
+ - Add `status: waiting for author`
+ - Politely comment explaining what's missing
+- If the feature might be valid but it's not clear whether it's worth it:
+ - Add `status: in discussion`
+ - Explain that it _might_ be worth it and that more community input is needed
+- If the feature is not valid, explain why, close the issue as not planned, and:
+ - If it isn't a feature request at all: add the `invalid` label
+ - If it is roughly a feature request but isn't something that can or should be implemented: add the `status: wontfix` label
-### Meta
+### 🛠 Tooling
-- `stale`: The "stalebot" marks things as stale and will close issues if they need feedback but haven't received any. Comment on an issue to prevent this from happening.
-- `help wanted`: If it's an issue that is not a high priority for the maintenance team, use this label to solicit contributions. Note lack of `-` in this label's name.
-- `good-first-issue`: Typically combined with `help wanted`; an issue that new contributors to Mocha may find straightforward.
+Issues filed about improvements to Mocha's internal development processes.
+These can be more informally discussed by maintainers.
+Keep the auto-added `area: repository tooling`.
+
+### ❓ Questions
+
+Our issue tracker is not the right place to ask questions.
+If an issue is filed that seems like it's more of a question, add the `type: question` label, politely direct the user to the [❓ Got a Question?](./.github/CONTRIBUTING.md#❓-got-a-question) section, and close the issue as not planned.
+
+If it's _not_ a Mocha problem (people tend not to believe this), you may want to show a counter-example.
+It's often helpful to direct the issue author to the responsible project, if you can determine what that is.
+
+If this issue seems to be _repeatedly_ asked, add the `faq` label.
+This may also apply to questions which receive a lot of 👍 reactions.
### Closing Issues
Write "closes #" or "resolves #" in a commit or PR to have the original issue closed automatically once the PR is merged.
-For any issue which is a duplicate, write "duplicate of #" in a new comment, and close the issue. [Read more about marking issues as duplicates](https://help.github.com/articles/about-duplicate-issues-and-pull-requests/).
+For any issue which is a duplicate, write "duplicate of #" in a new comment, and close the issue.
+[Read more about marking issues as duplicates](https://help.github.com/articles/about-duplicate-issues-and-pull-requests/).
If the issue is a support question, and you believe it has been answered, close the issue.
@@ -266,13 +294,18 @@ If the issue is not Mocha-related, and/or a bug cannot be confirmed, label it `i
## Commenting on Issues and Reviewing Pull Requests
-**All maintainers should be courteous and kind.** Thank the external contributor for the pull request, even if it is not merged. If the pull request has been opened (and subsequently closed) without discussion in a corresponding issue, let them know that by creating an issue first, they could have saved wasted effort. _Clearly and objectively_ explain the reasoning for rejecting any PR.
+**All maintainers should be courteous and kind.** Thank the external contributor for the pull request, even if it is not merged.
+If the pull request has been opened (and subsequently closed) without discussion in a corresponding issue, let them know that by creating an issue first, they could have saved wasted effort.
+_Clearly and objectively_ explain the reasoning for rejecting any PR.
-If you need more information in an issue, nicely ask the user to provide it. Remind them to use the issue/PR templates if they have not. If the user never gets around to it, the "stalebot" will close it eventually anyhow.
+If you need more information in an issue, nicely ask the user to provide it.
+Remind them to use the issue/PR templates if they have not.
### Reviewing Code
-Use GitHub's code review features. Requesting a review from another maintainer _may or may not_ actually result in a review; don't wait on it. If the PR cannot move forward without input from a certain maintainer, _assign them to the PR_.
+Use GitHub's code review features.
+Requesting a review from another maintainer _may or may not_ actually result in a review; don't wait on it.
+If the PR cannot move forward without input from a certain maintainer, _assign them to the PR_.
### The Part About Jerks
@@ -280,31 +313,41 @@ There will be jerks.
#### Rude or Entitled People
-These are users who feel the Mocha project and its maintainers _owe them_ time or support. This is incorrect.
+These are users who feel the Mocha project and its maintainers _owe them_ time or support.
+This is incorrect.
-However, this behavior is often indicative of someone who is "new" to open source. Many just don't know better. It is not your _responsibility_ to educate them (again, you owe them nothing).
+However, this behavior is often indicative of someone who is "new" to open source.
+Many just don't know better.
+It is not your _responsibility_ to educate them (again, you owe them nothing).
Here are some suggestions:
1. If u mad, wait 20 minutes before writing a comment.
-1. "Kill them with kindness". Explain how they are presenting themselves; maybe link to a good article or two about it.
-1. Don't make it about "users vs. maintainers". Treat them like a potential future maintainer.
-1. Avoid adding to the drama. You could try to reach out privately; email may be in their GitHub profile. You will likely never hear from that individual again (problem solved)
+1. "Kill them with kindness".
+ Explain how they are presenting themselves; maybe link to a good article or two about it.
+1. Don't make it about "users vs.
+ maintainers".
+ Treat them like a potential future maintainer.
+1. Avoid adding to the drama.
+ You could try to reach out privately; email may be in their GitHub profile.
+ You will likely never hear from that individual again (problem solved)
1. If an issue is getting out of control, lock it.
-1. If someone is _repeatedly_ rude and does not correct their mistakes, you may ban them from participating in the `mochajs` org. If you do not have permission to do so, contact one which does (an "owner").
+1. If someone is _repeatedly_ rude and does not correct their mistakes, you may ban them from participating in the `mochajs` org.
+ If you do not have permission to do so, contact one which does (an "owner").
#### Code of Conduct Violations
**This section is theoretical, as it's yet to happen**.
1. Inform the individual of the violation; link to the CoC
-1. Follow up with JS Foundation for further guidance
+1. Follow up with OpenJS Foundation for further guidance
1. Repeated violators will be banned inasmuch as that is technically possible
1. No maintainer nor contributor is exempt from the CoC
## Branches
-`master` is the only maintained branch in `mochajs/mocha` or any of the other repos. **`master` is the only branch to which force-pushing is disallowed.**
+`master` is the only maintained branch in `mochajs/mocha` or any of the other repos.
+**`master` is the only branch to which force-pushing is disallowed.**
Maintainers may push new branches to a repo, as long as they remove them when finished (merging a PR will prompt to do so).
@@ -312,21 +355,20 @@ Please _please_ **_please_** delete old or unused branches.
## Merging PRs
-GitHub has several options for how to merge a PR. Here's what we do:
-
-1. _If a PR has multiple commits_, "Squash".
-1. _If a PR has a single commit_, "Rebase".
-1. Don't "Merge".
+We prefer to [squash merge](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-commits) PRs.
+Requiring users to keep clean histories for rebasing would be a large ask that we don't feel justifies the benefits.
**Upon acceptance of a PR, you must assign it a milestone.**
### Using Milestones
-If you know that the PR is breaking, assign it to a new or existing milestone correlating with the next major release. For example, if Mocha's current version is v6.5.2, then this milestone would be named `v7.0.0`.
+If you know that the PR is breaking, assign it to a new or existing milestone correlating with the next major release.
+For example, if Mocha's current version is v6.5.2, then this milestone would be named `v7.0.0`.
Likewise, if the PR is `semver-minor`, create or use a new milestone correlating to the next _minor_ release, e.g., `v6.6.0`.
-If it's unclear what the next milestone will be, use or create a milestone named `next`. This milestone will be renamed to the new version at release time.
+If it's unclear what the next milestone will be, use or create a milestone named `next`.
+This milestone will be renamed to the new version at release time.
By using milestones, we can cherry-pick non-breaking changes into minor or patch releases, and keep `master` as the latest version.
@@ -338,30 +380,42 @@ _It's easier to release often._
1. Decide whether this is a `patch`, `minor`, or `major` release.
1. Checkout `master` in your working copy & pull.
-1. Modify `CHANGELOG.md`; follow the existing conventions in that file. Use the "pull request" number, unless there isn't one. _You do not need to add Markdown links; this is done automatically._
+1. Modify `CHANGELOG.md`; follow the existing conventions in that file.
+ Use the "pull request" number, unless there isn't one.
+ _You do not need to add Markdown links; this is done automatically._
1. You can omit stuff from `CHANGELOG.md` that was done by a maintainer, but would have no interest to consumers of Mocha.
- 1. If the changes aren't of interest to consumers but _were not_ made by a maintainer, reference them anyway. It's cool to give attribution!
-1. Use `npm version` (use `npm@8+`) to bump the version; see `npm version --help` for more info. (Hint--use `-m`: e.g., `npm version patch -m 'Release v%s'`)
+ 1. If the changes aren't of interest to consumers but _were not_ made by a maintainer, reference them anyway.
+ It's cool to give attribution!
+1. Use `npm version` (use `npm@8+`) to bump the version; see `npm version --help` for more info.
+ (Hint--use `-m`: e.g., `npm version patch -m 'Release v%s'`)
1. This command will update the list of authors (from the Git history) in `AUTHORS`, and add GitHub links to `CHANGELOG.md`.
1. These changes are then added to the Git "stage" and will be added to the commit.
1. Push `master` to `origin` with your new tag; e.g. `git push origin master --tags`
-1. Copy & paste the `CHANGELOG.md` lines to a new GitHub "release". Save release as draft.
+1. Copy & paste the `CHANGELOG.md` lines to a new GitHub "release".
+ Save release as draft.
1. Meanwhile, you can check [the build](https://travis-ci.org/mochajs/mocha) on Travis-CI and [GitHub Actions](https://github.com/mochajs/mocha/actions?query=workflow%3A%22Windows+CI%22).
1. Once the build is green, you'll want to trigger an update of `mochajs.org`:
- 1. _If you're doing a prerelease_, fast-forward the `next` branch to `master`, and push it. This updates [https://next.mochajs.org](https://next.mochajs.org). That's all.
- 1. _If this is NOT a prerelease_, fast-forward the `mochajs.org` branch to `master` and push it. This updates [https://mochajs.org](https://mochajs.org).
+ 1. _If you're doing a prerelease_, fast-forward the `next` branch to `master`, and push it.
+ This updates [https://next.mochajs.org](https://next.mochajs.org).
+ That's all.
+ 1. _If this is NOT a prerelease_, fast-forward the `mochajs.org` branch to `master` and push it.
+ This updates [https://mochajs.org](https://mochajs.org).
1. _If this is a "final" release_ (the first release of a major _after_ one or more prereleases) then remove the `next` tag from npm via `npm dist-tag rm next`.
1. Finally, you're satisfied with the release notes, open your draft release on GitHub, then click "publish."
-1. Back in your working copy, run `npm publish`. _If you're doing a prerelease, ensure that you use `--tag=next`._
-1. Announce the update on Twitter or just tell your dog or something. New releases will be automatically tweeted by [@b0neskull](https://twitter.com/b0neskull) via a feed subscription to Mocha's "releases" page on GitHub.
+1. Back in your working copy, run `npm publish`.
+ _If you're doing a prerelease, ensure that you use `--tag=next`._
+1. Announce the update on Twitter or just tell your dog or something.
+ New releases will be automatically tweeted by [@b0neskull](https://twitter.com/b0neskull) via a feed subscription to Mocha's "releases" page on GitHub.
_Note: there are too many steps above._
-## About The JS Foundation
+## About The OpenJS Foundation
-The [JS Foundation](https://js.foundation) retains copyright of all projects underneath the [mochajs org](https://github.com/mochajs). The Foundation does not influence technical decisions nor the project roadmap. It is, however, charged with ensuring the continued vitality and sustainability of projects under its banner.
+The [OpenJS Foundation](https://js.foundation) retains copyright of all projects underneath the [mochajs org](https://github.com/mochajs).
+The Foundation does not influence technical decisions nor the project roadmap.
+It is, however, charged with ensuring the continued vitality and sustainability of projects under its banner.
-As a maintainer, you have access to the resources the JS Foundation provides.
+As a maintainer, you have access to the resources the OpenJS Foundation provides.
## About OpenCollective
@@ -371,4 +425,4 @@ Expense transparency is built in to OpenCollective.
---
-Questions? Ask in the [contributors' chat room](https://gitter.im/mochajs/contributors)!
+Questions? Ask in the [Mocha Discord](https://discord.gg/KeDn2uXhER)!
diff --git a/README.md b/README.md
index 0e5b677e7f..657df54ddc 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
☕️ Simple, flexible, fun JavaScript test framework for Node.js & The Browser ☕️
@@ -8,9 +8,9 @@
-
-
-
+
+
+
@@ -22,11 +22,12 @@
## Links
-- **[Documentation](https://mochajs.org/)**
+- **[Documentation](https://mochajs.org)**
- **[Release Notes / History / Changes](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)**
- [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md)
- [Contributing](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
-- [Gitter Chatroom](https://gitter.im/mochajs/mocha) (ask questions here!)
+- [Development](https://github.com/mochajs/mocha/blob/master/.github/DEVELOPMENT.md)
+- [Discord](https://discord.gg/KeDn2uXhER) (ask questions here!)
- [Issue Tracker](https://github.com/mochajs/mocha/issues)
## Backers
@@ -37,7 +38,10 @@
## Sponsors
-Does your company use Mocha? Ask your manager or marketing team if your company would be interested in supporting our project. Support will allow the maintainers to dedicate more time for maintenance and new features for everyone. Also, your company's logo will show [on GitHub](https://github.com/mochajs/mocha#readme) and on [our site](https://mochajs.org#sponsors) - who doesn't want a little extra exposure? [Here's the info](https://opencollective.com/mochajs).
+Does your company use Mocha? Ask your manager or marketing team if your company would be interested in supporting our project.
+Support will allow the maintainers to dedicate more time for maintenance and new features for everyone.
+Also, your company's logo will show [on GitHub](https://github.com/mochajs/mocha#readme) and on [our site](https://mochajs.org#sponsors) - who doesn't want a little extra exposure?
+[Here's the info](https://opencollective.com/mochajs).
[![MochaJS Sponsor](https://opencollective.com/mochajs/tiers/sponsors/0/avatar)](https://opencollective.com/mochajs/tiers/sponsors/0/website)
[![MochaJS Sponsor](https://opencollective.com/mochajs/tiers/sponsors/1/avatar)](https://opencollective.com/mochajs/tiers/sponsors/1/website)
@@ -57,7 +61,7 @@ You might want to help:
- Mocha could use a hand with [these issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
- The [maintainer's handbook](https://github.com/mochajs/mocha/blob/master/MAINTAINERS.md) explains how things get done
-Finally, come [chat with the maintainers](https://gitter.im/mochajs/contributors) on Gitter if you want to help with:
+Finally, come [chat with the maintainers on Discord](https://discord.gg/KeDn2uXhER) if you want to help with:
- Triaging issues, answering questions
- Review, merging, and closing pull requests
diff --git a/docs/API.md b/docs/API.md
index 573a56fe3e..7b63a6b433 100644
--- a/docs/API.md
+++ b/docs/API.md
@@ -15,5 +15,5 @@ Otherwise, **you probably want the [main documentation](https://mochajs.org)**.
- **[Main Documentation](https://mochajs.org)**
- **[Release Notes / History / Changes](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)**
- [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md)
-- [Gitter Chatroom](https://gitter.im/mochajs/mocha) (ask questions here!)
+- [Discord](https://discord.gg/KeDn2uXhER) (ask questions here!)
- [Issue Tracker](https://github.com/mochajs/mocha/issues)
diff --git a/docs/images/join-chat.svg b/docs/images/join-chat.svg
index 0edf5f3b1e..eebaa8344c 100644
--- a/docs/images/join-chat.svg
+++ b/docs/images/join-chat.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/docs/index.md b/docs/index.md
index cf6896a0bf..b6a70eba7c 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -7,7 +7,7 @@ description: 'Mocha is a feature-rich JavaScript test framework running on Node.
Mocha is a feature-rich JavaScript test framework running on [Node.js][] and in the browser, making asynchronous testing _simple_ and _fun_. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases. Hosted on [GitHub][github-mocha].
@@ -1777,7 +1777,7 @@ describe('Array', function () {
it('should not throw an error', function () {
(function () {
[1, 2, 3].indexOf(4);
- }.should.not.throw());
+ }).should.not.throw();
});
it('should return -1', function () {
[1, 2, 3].indexOf(4).should.equal(-1);
@@ -2346,7 +2346,7 @@ $ npm test
## More Information
-In addition to chatting with us on [Gitter][gitter-mocha], for additional information such as using
+In addition to chatting with us on [our Discord][discord-mocha], for additional information such as using
spies, mocking, and shared behaviours be sure to check out the [Mocha Wiki][mocha-wiki] on GitHub.
For a running example of Mocha, view [example/tests.html](example/tests.html). For the JavaScript API, view the [API documentation](api/)
or the [source](https://github.com/mochajs/mocha/blob/master/lib/mocha.js).
@@ -2359,6 +2359,7 @@ or the [source](https://github.com/mochajs/mocha/blob/master/lib/mocha.js).
[caniuse-promises]: https://caniuse.com/#feat=promises
[chai]: https://www.chaijs.com/
[connect-test-output]: https://github.com/senchalabs/connect/blob/90a725343c2945aaee637e799b1cd11e065b2bff/tests.md
+[discord-mocha]: https://discord.gg/KeDn2uXhER
[emacs]: https://www.gnu.org/software/emacs/
[emacs-mocha.el]: https://github.com/scottaj/mocha.el
[example-babel]: https://github.com/mochajs/mocha-examples/tree/master/packages/babel
@@ -2376,7 +2377,6 @@ or the [source](https://github.com/mochajs/mocha/blob/master/lib/mocha.js).
[github-mocha]: https://github.com/mochajs/mocha
[gist-async-hooks]: https://gist.github.com/boneskull/7fe75b63d613fa940db7ec990a5f5843
[gist-globbing-tutorial]: https://gist.github.com/reggi/475793ea1846affbcfe8
-[gitter-mocha]: https://gitter.im/mochajs/mocha
[jetbrains]: https://www.jetbrains.com/
[jetbrains-plugin]: https://www.jetbrains.com/idea/features/nodejs.html
[mdn-array-sort]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
diff --git a/lib/cli/cli.js b/lib/cli/cli.js
index 977a341564..b1b5354081 100755
--- a/lib/cli/cli.js
+++ b/lib/cli/cli.js
@@ -23,7 +23,7 @@ const {
const lookupFiles = require('./lookup-files');
const commands = require('./commands');
const ansi = require('ansi-colors');
-const {repository, homepage, version, gitter} = require('../../package.json');
+const {repository, homepage, version, discord} = require('../../package.json');
const {cwd} = require('../utils');
/**
@@ -68,7 +68,7 @@ exports.main = (argv = process.argv.slice(2), mochaArgs) => {
.wrap(process.stdout.columns ? Math.min(process.stdout.columns, 80) : 80)
.epilog(
`Mocha Resources
- Chat: ${ansi.magenta(gitter)}
+ Chat: ${ansi.magenta(discord)}
GitHub: ${ansi.blue(repository.url)}
Docs: ${ansi.yellow(homepage)}
`
diff --git a/package.json b/package.json
index 6da18b5cb8..10500e70ee 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
"bugs": {
"url": "https://github.com/mochajs/mocha/issues/"
},
- "gitter": "https://gitter.im/mochajs/mocha",
+ "discord": "https://discord.gg/KeDn2uXhER",
"homepage": "https://mochajs.org/",
"logo": "https://cldup.com/S9uQ-cOLYz.svg",
"notifyLogo": "https://ibin.co/4QuRuGjXvl36.png",
From 645469e1920e2e86458ff068e74eef2e2915083e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Josh=20Goldberg=20=E2=9C=A8?=
Date: Wed, 27 Dec 2023 00:18:43 -0500
Subject: [PATCH 11/27] docs: touchups to labels and a template title
post-revamp (#5050)
* docs: touchups to labels and a template title post-revamp
* nit: no space in repository tooling
---
.github/CONTRIBUTING.md | 4 ++--
.github/ISSUE_TEMPLATE/04-repository-tooling.yml | 4 ++--
README.md | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 01a3e10139..68376247e1 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -59,10 +59,10 @@ We ask you please keep these goals in mind when making or proposing changes.
_Excellent._ Here's how:
-- **Handy with JavaScript?** Please check out the issues labeled [`help wanted`](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) or [`good-first-issue`](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Agood-first-issue).
+- **Handy with JavaScript?** Please check out the issues labeled [`status: accepting prs`](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) or [`good first issue`](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22+).
Try `npx good-first-issue mocha`!
- **Can you write ~~good~~ well?** The [documentation](https://mochajs.org) almost always needs some love.
- See the [doc-related issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3Adocumentation).
+ See the [doc-related issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22area%3A+documentation%22).
- **Design your thing?** [Our site](https://mochajs.org) needs your magic touch.
- **Familiar with Mocha's codebase?** We could use your help triaging issues and/or reviewing pull requests.
Please contact an [org member](https://github.com/orgs/mochajs/people), and we'll chat.
diff --git a/.github/ISSUE_TEMPLATE/04-repository-tooling.yml b/.github/ISSUE_TEMPLATE/04-repository-tooling.yml
index 6b37f93225..03e9af72fb 100644
--- a/.github/ISSUE_TEMPLATE/04-repository-tooling.yml
+++ b/.github/ISSUE_TEMPLATE/04-repository-tooling.yml
@@ -25,6 +25,6 @@ body:
type: textarea
description: Report a bug or request an enhancement in the Mocha repository's internal tooling
labels:
- - "area: repository-tooling"
+ - "area: repository tooling"
name: 🛠 Repository Tooling
-title: "🛠 Repository Tooling: "
+title: "🛠 Repo: "
diff --git a/README.md b/README.md
index 657df54ddc..3545f7a721 100644
--- a/README.md
+++ b/README.md
@@ -57,8 +57,8 @@ You might want to know that:
You might want to help:
-- New to contributing to Mocha? Check out this list of [good first issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+label%3Agood-first-issue)
-- Mocha could use a hand with [these issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
+- New to contributing to Mocha? Check out this list of [good first issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+- Mocha could use a hand with [these issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22)
- The [maintainer's handbook](https://github.com/mochajs/mocha/blob/master/MAINTAINERS.md) explains how things get done
Finally, come [chat with the maintainers on Discord](https://discord.gg/KeDn2uXhER) if you want to help with:
From 8812413288c42ef80528f10181040ab75ed3375c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Josh=20Goldberg=20=E2=9C=A8?=
Date: Fri, 5 Jan 2024 06:15:10 -0500
Subject: [PATCH 12/27] fix: add alt text to Built with Netlify badge (#5068)
* fix: add alt text to Built with Netlify badge
* Update docs/_includes/default.liquid
Co-authored-by: Pelle Wessman
---------
Co-authored-by: Pelle Wessman
---
docs/_includes/default.liquid | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/_includes/default.liquid b/docs/_includes/default.liquid
index 7a149e8bbd..e8a7467990 100644
--- a/docs/_includes/default.liquid
+++ b/docs/_includes/default.liquid
@@ -130,7 +130,7 @@